[ASTERIXDB-1375][UI] New Admin Dashboard
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- New AsterixDB Admin Dashboard using Angular by Gachon team
Change-Id: Idc7752cd0b4df0ce6a5802f3e5f4f7e7f121621b
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2247
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Ian Maxon <imaxon@apache.org>
diff --git a/asterixdb/asterix-app/pom.xml b/asterixdb/asterix-app/pom.xml
index 2ca748f..70073bd 100644
--- a/asterixdb/asterix-app/pom.xml
+++ b/asterixdb/asterix-app/pom.xml
@@ -183,6 +183,7 @@
<exclude>src/main/resources/webui/**</exclude>
<exclude>src/test/resources/**/only*.xml</exclude>
<exclude>src/main/resources/sdk/**</exclude>
+ <exclude>src/main/resources/dashboard/**</exclude>
</excludes>
</configuration>
</execution>
diff --git a/asterixdb/asterix-app/src/main/appended-resources/META-INF/LICENSE b/asterixdb/asterix-app/src/main/appended-resources/META-INF/LICENSE
index 68b143c..4ad6d94 100644
--- a/asterixdb/asterix-app/src/main/appended-resources/META-INF/LICENSE
+++ b/asterixdb/asterix-app/src/main/appended-resources/META-INF/LICENSE
@@ -73,183 +73,6 @@
even a nice Tweet is enough. Of course if you want, you can say thank you and
support me by buying more icons on GLYPHICONS.com.
---
- Portions of the AsterixDB QueryUI
- located at:
- queryui/js/json-formatter.min.js,
- and
- queryui/css/json-formatter.min.css
-
- are available under the following license:
----
- Copyright 2014 Mohsen Azimi
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
----
- Portions of the AsterixDB QueryUI
- located at:
- queryui/js/bootstrap.min.js,
- queryui/css/bootstrap.min.css,
- queryui/css/bootstrap-theme.min.css,
- queryui/fonts/glyphicons-halflings-regular.eot,
- queryui/fonts/glyphicons-halflings-regular.svg,
- queryui/fonts/glyphicons-halflings-regular.ttf,
- queryui/fonts/glyphicons-halflings-regular.woff,
- and
- queryui/fonts/glyphicons-halflings-regular.woff2
-
- are available under the following license:
----
- The MIT License (MIT)
-
- Copyright (c) 2011-2015 Twitter, Inc
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-
- queryui/css/bootstrap.min.css also contains normalize.css v3.0.3
- (http://github.com/necolas/normalize.css), having the following copyright:
- --
- Copyright © Nicolas Gallagher and Jonathan Neal
-
- Permission is hereby granted, free of charge, to any person obtaining a copy of
- this software and associated documentation files (the "Software"), to deal in
- the Software without restriction, including without limitation the rights to
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- the Software, and to permit persons to whom the Software is furnished to do so,
- subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- --
-
- Credit for font files: queryui/fonts/glyphicons-halflings-regular.eot,
- queryui/fonts/glyphicons-halflings-regular.svg,
- queryui/fonts/glyphicons-halflings-regular.ttf,
- queryui/fonts/glyphicons-halflings-regular.woff,
- and
- queryui/fonts/glyphicons-halflings-regular.woff2
-
- GLYPHICONS Halflings font is also released as an extension of a Bootstrap
- (www.getbootstrap.com) for free and it is released under the same license as
- Bootstrap. While you are not required to include attribution on your
- Bootstrap-based projects, I would certainly appreciate any form of support,
- even a nice Tweet is enough. Of course if you want, you can say thank you and
- support me by buying more icons on GLYPHICONS.com.
----
-
- Portions of the AsterixDB QueryUI
- located at:
- queryui/js/angular.min.js
-
- are available under The MIT License:
----
- Copyright (c) 2010-2016 Google, Inc. http://angularjs.org
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
----
- Portions of the AsterixDB QueryUI
- located at:
- queryui/js/codemirror.js,
- queryui/js/javascript.js,
- and
- queryui/css/codemirror.css
-
- are available under The MIT License:
----
- Copyright (C) 2016 by Marijn Haverbeke <marijnh@gmail.com> and others
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
----
- Portions of the AsterixDB QueryUI
- located at:
- queryui/js/ui-codemirror.js
-
- are available under The MIT License:
----
- Copyright (c) 2012 the AngularUI Team, http://angular-ui.github.com
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
----
Portions of the AsterixDB WebUI
located at:
webui/static/js/jquery.json-viewer.js
@@ -278,4 +101,373 @@
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+---
+ File Saver Portions of the AsterixDB Dashboard
+ located at:
+ dashboard/src/app/dashboard/query/ouput.component.ts
+ dashboard/static/main.37b7b7cad656490b195a.bundle.js
+ dashboard/static/styles.9f50282210bba5318775.bundle
+ dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
+ dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
+ dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
+ dashboard/static/index.html
+
+ are available under The MIT License:
+---
+The MIT License
+
+Copyright © 2016 Eli Grey.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+---
+ReactiveX/rxjs
+ located at:
+ dashboard/src/app/dashboard/metadata/*.ts
+ dashboard/src/app/dashboard/metadata/datasets-collection/*.ts
+ dashboard/src/app/dashboard/metadata/datatypes-collection/*.ts
+ dashboard/src/app/dashboard/metadata/dataverses-collection/*.ts
+ dashboard/src/app/dashboard/query/*.ts
+ dashboard/src/app/dashboard/*.ts
+ dashboard/static/main.37b7b7cad656490b195a.bundle.js
+ dashboard/static/styles.9f50282210bba5318775.bundle
+ dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
+ dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
+ dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
+ dashboard/static/index.html
+
+is licensed under the Apache License 2.0
+---
+PrimeNG Portions of the AsterixDB Dashboard
+ located at:
+ dashboard/src/app/dashboard/query/output.component.ts
+ dashboard/src/app/dashboard/query/output.component.html
+ dashboard/src/app/dashboard/query/output.component.scss
+ dashboard/src/app/dashboard/query/metadata.component.ts
+ dashboard/src/app/dashboard/query/metadata.component.html
+ dashboard/src/app/dashboard/query/metadata.component.scss
+ dashboard/static/main.37b7b7cad656490b195a.bundle.js
+ dashboard/static/styles.9f50282210bba5318775.bundle
+ dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
+ dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
+ dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
+ dashboard/static/index.html
+
+are available under The MIT License:
+---
+The MIT License (MIT)
+
+Copyright (c) 2016-2017 PrimeTek
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+---
+
+NGRX Portions of the AsterixDB Dashboard
+ located at:
+ dashboard/src/app/dashboard/metadata/*.ts
+ dashboard/src/app/dashboard/metadata/datasets-collection/*.ts
+ dashboard/src/app/dashboard/metadata/datatypes-collection/*.ts
+ dashboard/src/app/dashboard/metadata/dataverses-collection/*.ts
+ dashboard/src/app/dashboard/query/*.ts
+ dashboard/src/app/dashboard/*.ts
+ dashboard/src/app/dashboard/*.ts
+ dashboard/src/app/*.ts
+ dashboard/static/main.37b7b7cad656490b195a.bundle.js
+ dashboard/static/styles.9f50282210bba5318775.bundle
+ dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
+ dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
+ dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
+ dashboard/static/index.html
+
+are available under The MIT License:
+---
+The MIT License (MIT)
+
+Copyright (c) 2017 Brandon Roberts, Mike Ryan, Victor Savkin, Rob Wormald
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+---
+Codemirror Portions of the AsterixDB Dashboard
+ located at:
+ dashboard/src/app/dashboard/query/input.component.ts
+ dashboard/src/app/dashboard/query/input.component.html
+ dashboard/src/app/dashboard/query/input.component.scss
+ dashboard/src/app/dashboard/query/codemirror.component.ts
+ dashboard/src/app/dashboard/query/codemirror.component.scss
+ dashboard/src/app/dashboard/metadata/input-metadata.component.ts
+ dashboard/src/app/dashboard/metadata/input-metadata.component.html
+ dashboard/src/app/dashboard/metadata/input-metadata.component.scss
+ dashboard/src/app/dashboard/metadata/codemirror-metadata.component.ts
+ dashboard/src/app/dashboard/metadata/codemirror-metadata.component.scss
+ dashboard/static/main.37b7b7cad656490b195a.bundle.js
+ dashboard/static/styles.9f50282210bba5318775.bundle
+ dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
+ dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
+ dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
+ dashboard/static/index.html
+
+ are available under The MIT License:
+---
+ MIT License
+
+Copyright (C) 2017 by Marijn Haverbeke <marijnh@gmail.com> and others
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+---
+Angular Portions of the AsterixDB Dashboard
+ located at:
+ dashboard/src/
+ dashboard/static/main.37b7b7cad656490b195a.bundle.js
+ dashboard/static/styles.9f50282210bba5318775.bundle
+ dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
+ dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
+ dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
+ dashboard/static/index.html
+
+ are available under The MIT License:
+---
+The MIT License
+
+Copyright (c) 2014-2017 Google, Inc. http://angular.io
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+---
+Angular Material, hammerjs Portions of the AsterixDB Dashboard
+ located at:
+ dashboard/src/app/dashboard/metadata/datasets-collection/
+ dashboard/src/app/material.module.ts
+ dashboard/src/main.ts
+ dashboard/static/main.37b7b7cad656490b195a.bundle.js
+ dashboard/static/styles.9f50282210bba5318775.bundle
+ dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
+ dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
+ dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
+ dashboard/static/index.html
+
+ are available under The MIT License:
+- --
+ The MIT License
+
+C opyright (c) 2017 Google LLC.
+
+P ermission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+---
+Core JS Material Portions of the AsterixDB Dashboard
+ located at:
+ dashboard/src/
+ dashboard/static/main.37b7b7cad656490b195a.bundle.js
+ dashboard/static/styles.9f50282210bba5318775.bundle
+ dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
+ dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
+ dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
+ dashboard/static/index.html
+
+ are available under following License:
+ https://github.com/zloirock/core-js/blob/master/LICENSE
+---
+
+Copyright (c) 2014-2017 Denis Pushkarev
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+---
+Roboto Font Portions of the AsterixDB Dashboard
+ located at:
+ dashboard/src/index.html
+ dashboard/static/roboto-v15-latin-regular.3d3a53586bd78d1069ae.svg
+ dashboard/static/roboto-v15-latin-regular.7e367be02cd17a96d513.woff2
+ dashboard/static/roboto-v15-latin-regular.9f916e330c478bbfa2a0.eot
+ dashboard/static/roboto-v15-latin-regular.16e1d930cf13fb7a9563.woff
+ dashboard/static/roboto-v15-latin-regular.38861cba61c66739c145.ttf
+ dashboard/static/index.html
+ are available under following License: Apache2.0
+ https://github.com/google/roboto/blob/master/LICENSE
+---
+Font Awesome Portions of the AsterixDB Dashboard, used in primeng components
+ located at:
+ dashboard/src/index.html
+ dashboard/static/index.html
+
+ http://fontawesome.io/license/
+ Applies to all CSS and LESS files in the following directories if exist:
+ font-awesome/css/, font-awesome/less/, and font-awesome/scss/.
+ and downloaded from CDN network services and loaded in index.html
+ License: MIT License
+ URL: http://opensource.org/licenses/mit-license.html
+---
+webpack@3.8.1 portions of the AsterixDB Dashboard
+ located at:
+ dashboard/
+ are available under The MIT License:
+---
+MIT
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+---
+zone.js@0.8.18 Portions of the AsterixDB Dashboard
+ located at:
+ dashboard/src/
+ dashboard/static/main.37b7b7cad656490b195a.bundle.js
+ dashboard/static/styles.9f50282210bba5318775.bundle
+ dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
+ dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
+ dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
+ dashboard/static/index.html
+
+ are available under The MIT License:
+---
+MIT
+The MIT License
+
+Copyright (c) 2016 Google, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
---
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
index 71ed6b0..a8f14b5 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
@@ -20,6 +20,9 @@
import java.io.IOException;
import java.io.PrintWriter;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.UnknownHostException;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentMap;
@@ -50,6 +53,7 @@
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.api.application.IServiceContext;
import org.apache.hyracks.api.exceptions.HyracksException;
+import org.apache.hyracks.control.common.controllers.CCConfig;
import org.apache.hyracks.http.api.IServletRequest;
import org.apache.hyracks.http.api.IServletResponse;
import org.apache.hyracks.http.server.utils.HttpUtil;
@@ -77,6 +81,7 @@
private final IStatementExecutorContext queryCtx;
protected final IServiceContext serviceCtx;
protected final Function<IServletRequest, Map<String, String>> optionalParamProvider;
+ protected String hostName;
public QueryServiceServlet(ConcurrentMap<String, Object> ctx, String[] paths, IApplicationContext appCtx,
ILangExtension.Language queryLanguage, ILangCompilationProvider compilationProvider,
@@ -90,6 +95,14 @@
this.queryCtx = (IStatementExecutorContext) ctx.get(ServletConstants.RUNNING_QUERIES_ATTR);
this.serviceCtx = (IServiceContext) ctx.get(ServletConstants.SERVICE_CONTEXT_ATTR);
this.optionalParamProvider = optionalParamProvider;
+ try {
+ this.hostName =
+ InetAddress.getByName(serviceCtx.getAppConfig().getString(CCConfig.Option.CLUSTER_PUBLIC_ADDRESS))
+ .getHostName();
+ } catch (UnknownHostException e) {
+ LOGGER.warn("Reverse DNS not properly configured, CORS defaulting to localhost", e);
+ this.hostName = "localhost";
+ }
}
@Override
@@ -109,6 +122,14 @@
}
}
+ @Override
+ protected void options(IServletRequest request, IServletResponse response) throws Exception {
+ response.setHeader("Access-Control-Allow-Origin",
+ "http://" + hostName + ":" + appCtx.getExternalProperties().getQueryWebInterfacePort());
+ response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
+ response.setStatus(HttpResponseStatus.OK);
+ }
+
public enum Parameter {
STATEMENT("statement"),
FORMAT("format"),
@@ -452,6 +473,10 @@
if (optionalParamProvider != null) {
optionalParams = optionalParamProvider.apply(request);
}
+ // CORS
+ response.setHeader("Access-Control-Allow-Origin",
+ "http://" + hostName + ":" + appCtx.getExternalProperties().getQueryWebInterfacePort());
+ response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
response.setStatus(execution.getHttpStatus());
executeStatement(statementsText, sessionOutput, delivery, stats, param, execution, optionalParams);
if (ResultDelivery.IMMEDIATE == delivery || ResultDelivery.DEFERRED == delivery) {
@@ -516,4 +541,4 @@
execution.setStatus(ResultStatus.FATAL, HttpResponseStatus.INTERNAL_SERVER_ERROR);
}
}
-}
\ No newline at end of file
+}
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryWebInterfaceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryWebInterfaceServlet.java
index 6680eb9..598d802 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryWebInterfaceServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryWebInterfaceServlet.java
@@ -50,7 +50,8 @@
String requestURI = request.getHttpRequest().uri();
if ("/".equals(requestURI)) {
HttpUtil.setContentType(response, HttpUtil.ContentType.TEXT_HTML);
- deliverResource("/queryui/queryui.html", response);
+ // Dashboard Administration Console
+ deliverResource("/dashboard/static/index.html", response);
} else {
deliverResource(requestURI, response);
}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/.angular-cli.json b/asterixdb/asterix-app/src/main/resources/dashboard/.angular-cli.json
new file mode 100755
index 0000000..7e41979
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/.angular-cli.json
@@ -0,0 +1,69 @@
+{
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+ "project": {
+ "name": "asterixdb-web-console"
+ },
+ "apps": [
+ {
+ "root": "src",
+ "outDir": "static",
+ "assets": [
+ "assets",
+ "favicon.ico"
+ ],
+ "index": "index.html",
+ "main": "main.ts",
+ "polyfills": "polyfills.ts",
+ "test": "test.ts",
+ "tsconfig": "tsconfig.app.json",
+ "testTsconfig": "tsconfig.spec.json",
+ "prefix": "app",
+ "styles": [
+ "main.scss",
+ "../node_modules/codemirror/lib/codemirror.css",
+ "../node_modules/codemirror/theme/monokai.css",
+ "../node_modules/primeng/resources/themes/omega/theme.css",
+ "../node_modules/primeng/resources/primeng.min.css"
+ ],
+ "scripts": [
+ "../node_modules/codemirror/lib/codemirror.js"
+ ],
+ "environmentSource": "environments/environment.ts",
+ "environments": {
+ "dev": "environments/environment.ts",
+ "prod": "environments/environment.prod.ts"
+ }
+ }
+ ],
+ "e2e": {
+ "protractor": {
+ "config": "./protractor.conf.js"
+ }
+ },
+ "lint": [
+ {
+ "project": "src/tsconfig.app.json",
+ "exclude": "**/node_modules/**"
+ },
+ {
+ "project": "src/tsconfig.spec.json",
+ "exclude": "**/node_modules/**"
+ },
+ {
+ "project": "e2e/tsconfig.e2e.json",
+ "exclude": "**/node_modules/**"
+ }
+ ],
+ "test": {
+ "karma": {
+ "config": "./karma.conf.js"
+ }
+ },
+ "defaults": {
+ "styleExt": "css",
+ "class": {
+ "spec": false
+ },
+ "component": {}
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/.editorconfig b/asterixdb/asterix-app/src/main/resources/dashboard/.editorconfig
new file mode 100755
index 0000000..ba060b8
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/.editorconfig
@@ -0,0 +1,25 @@
+# Editor configuration, see http://editorconfig.org
+#/*
+#Licensed under the Apache License, Version 2.0 (the "License");
+#you may not use this file except in compliance with the License.
+#You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+#Unless required by applicable law or agreed to in writing, software
+#Distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/.gitignore b/asterixdb/asterix-app/src/main/resources/dashboard/.gitignore
new file mode 100755
index 0000000..fc1e2ce
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/.gitignore
@@ -0,0 +1,47 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+/tmp
+/out-tsc
+
+# dependencies
+/node_modules
+/documents
+# /static
+/dist
+
+# IDEs and editors
+/.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# IDE - VSCode
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage
+/libpeerconnection.log
+npm-debug.log
+testem.log
+/typings
+
+# e2e
+/e2e/*.js
+/e2e/*.map
+
+# System Files
+.DS_Store
+Thumbs.db
+
+# Others
+package-lock.json
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/README.md b/asterixdb/asterix-app/src/main/resources/dashboard/README.md
new file mode 100755
index 0000000..14f16fc
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/README.md
@@ -0,0 +1,47 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+# AsterixDB Web Administration Console
+
+AsterixDB Administration Console is an Angular 5 HTML/CSS/Typescript web application using predictable state containers, immutable data updates with Redux/NGRx frameworks, observable patterns, and standard Open Sourced UI widgets for data, metadata manipulation and visualization through SQL++ AsterixDB Query language.
+
+The main goal is create a baseline solution with unopinionated UI/UX design and SW architecture with two differentiated isolated, indepent minimal coupled levels between the UI components and application core or internal core, easily extensible and scalable by the AsterixDB community.
+
+## Development
+
+This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.4.9.
+
+## Installation
+
+Install node and npm, any of the latest versions will do.
+
+Run `npm install` to download all the dependency packages an recreate the node_modules directory.
+
+## Development server
+
+The development version uses the webpack proxy to avoid CORS problems in Angular see:
+
+`https://daveceddia.com/access-control-allow-origin-cors-errors-in-angular`.
+
+Please check `proxy.config.js` to see how it's configured.
+
+Run `ng serve` or `npm start` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
+
+A technical document describing the internals and architecture exist, here:
+
+`https://github.com/EmilioMobile/asterixdb-dashboard/blob/master/documents/AsterixDB%20Architecture%20v1.0.pdf?raw=true`
+
+A brief user guide document describing how to use it, here:
+
+`https://github.com/EmilioMobile/asterixdb-dashboard/blob/master/documents/AsterixDB%20User%20Guide%20v1.0.pptx?raw=true`
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/e2e/app.e2e-spec.ts b/asterixdb/asterix-app/src/main/resources/dashboard/e2e/app.e2e-spec.ts
new file mode 100755
index 0000000..e75aa02
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/e2e/app.e2e-spec.ts
@@ -0,0 +1,27 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { AppPage } from './app.po';
+
+describe('asterixdb-dashboard', () => {
+ let page: AppPage;
+
+ beforeEach(() => {
+ page = new AppPage();
+ });
+
+ it('should display welcome message', () => {
+ page.navigateTo();
+ expect(page.getParagraphText()).toEqual('Welcome to AsterixDB Dashboard!');
+ });
+});
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/e2e/app.po.ts b/asterixdb/asterix-app/src/main/resources/dashboard/e2e/app.po.ts
new file mode 100755
index 0000000..37d3de9
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/e2e/app.po.ts
@@ -0,0 +1,24 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { browser, by, element } from 'protractor';
+
+export class AppPage {
+ navigateTo() {
+ return browser.get('/');
+ }
+
+ getParagraphText() {
+ return element(by.css('app-root h1')).getText();
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/e2e/tsconfig.e2e.json b/asterixdb/asterix-app/src/main/resources/dashboard/e2e/tsconfig.e2e.json
new file mode 100755
index 0000000..41b7fc0
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/e2e/tsconfig.e2e.json
@@ -0,0 +1,27 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/e2e",
+ "baseUrl": "./",
+ "module": "commonjs",
+ "target": "es5",
+ "types": [
+ "jasmine",
+ "jasminewd2",
+ "node"
+ ]
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/karma.conf.js b/asterixdb/asterix-app/src/main/resources/dashboard/karma.conf.js
new file mode 100755
index 0000000..c9da2c5
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/karma.conf.js
@@ -0,0 +1,47 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/1.0/config/configuration-file.html
+
+module.exports = function (config) {
+ config.set({
+ basePath: '',
+ frameworks: ['jasmine', '@angular/cli'],
+ plugins: [
+ require('karma-jasmine'),
+ require('karma-chrome-launcher'),
+ require('karma-jasmine-html-reporter'),
+ require('karma-coverage-istanbul-reporter'),
+ require('@angular/cli/plugins/karma')
+ ],
+ client:{
+ clearContext: false // leave Jasmine Spec Runner output visible in browser
+ },
+ coverageIstanbulReporter: {
+ reports: [ 'html', 'lcovonly' ],
+ fixWebpackSourcePaths: true
+ },
+ angularCli: {
+ environment: 'dev'
+ },
+ reporters: ['progress', 'kjhtml'],
+ port: 9876,
+ colors: true,
+ logLevel: config.LOG_INFO,
+ autoWatch: true,
+ browsers: ['Chrome'],
+ singleRun: false
+ });
+};
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/package.json b/asterixdb/asterix-app/src/main/resources/dashboard/package.json
new file mode 100755
index 0000000..3073159
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/package.json
@@ -0,0 +1,60 @@
+{
+ "name": "asterixdb-web-console",
+ "version": "1.0.0",
+ "license": "Apache License, Version 2.0",
+ "scripts": {
+ "ng": "ng",
+ "start": "ng serve --proxy-config proxy.config.js --host 0.0.0.0",
+ "build": "ng build",
+ "test": "ng test",
+ "lint": "ng lint",
+ "e2e": "ng e2e"
+ },
+ "private": true,
+ "dependencies": {
+ "@angular/animations": "^5.0.3",
+ "@angular/cdk": "^5.0.0-rc.2",
+ "@angular/common": "^5.0.3",
+ "@angular/compiler": "^5.0.3",
+ "@angular/core": "^5.0.3",
+ "@angular/forms": "^5.0.3",
+ "@angular/http": "^5.0.3",
+ "@angular/material": "^5.0.0-rc.2",
+ "@angular/platform-browser": "^5.0.3",
+ "@angular/platform-browser-dynamic": "^5.0.3",
+ "@angular/router": "^5.0.3",
+ "@ngrx/db": "^2.0.2",
+ "@ngrx/effects": "^4.1.0",
+ "@ngrx/entity": "^4.1.0",
+ "@ngrx/store": "^4.1.0",
+ "@ngrx/store-devtools": "^4.0.0",
+ "codemirror": "^5.31.0",
+ "core-js": "^2.4.1",
+ "file-saver": "^1.3.3",
+ "hammerjs": "^2.0.8",
+ "primeng": "^4.3.0",
+ "rxjs": "^5.5.2",
+ "zone.js": "^0.8.18"
+ },
+ "devDependencies": {
+ "@angular/cli": "1.5.4",
+ "@angular/compiler-cli": "^5.0.3",
+ "@angular/language-service": "^5.0.0",
+ "@types/file-saver": "^1.3.0",
+ "@types/jasmine": "~2.5.53",
+ "@types/jasminewd2": "~2.0.2",
+ "@types/node": "~6.0.60",
+ "jasmine-core": "~2.6.2",
+ "jasmine-spec-reporter": "~4.1.0",
+ "karma": "~1.7.0",
+ "karma-chrome-launcher": "~2.1.1",
+ "karma-cli": "~1.0.1",
+ "karma-coverage-istanbul-reporter": "^1.2.1",
+ "karma-jasmine": "~1.1.0",
+ "karma-jasmine-html-reporter": "^0.2.2",
+ "protractor": "~5.1.2",
+ "ts-node": "^3.2.2",
+ "tslint": "^5.7.0",
+ "typescript": "^2.4.2"
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/protractor.conf.js b/asterixdb/asterix-app/src/main/resources/dashboard/protractor.conf.js
new file mode 100755
index 0000000..ac4c723
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/protractor.conf.js
@@ -0,0 +1,41 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+// Protractor configuration file, see link for more information
+// https://github.com/angular/protractor/blob/master/lib/config.ts
+
+const { SpecReporter } = require('jasmine-spec-reporter');
+
+exports.config = {
+ allScriptsTimeout: 11000,
+ specs: [
+ './e2e/**/*.e2e-spec.ts'
+ ],
+ capabilities: {
+ 'browserName': 'chrome'
+ },
+ directConnect: true,
+ baseUrl: 'http://localhost:4200/',
+ framework: 'jasmine',
+ jasmineNodeOpts: {
+ showColors: true,
+ defaultTimeoutInterval: 30000,
+ print: function() {}
+ },
+ onPrepare() {
+ require('ts-node').register({
+ project: 'e2e/tsconfig.e2e.json'
+ });
+ jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
+ }
+};
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/proxy.config.js b/asterixdb/asterix-app/src/main/resources/dashboard/proxy.config.js
new file mode 100755
index 0000000..58752c3
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/proxy.config.js
@@ -0,0 +1,23 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const PROXY_CONFIG = {
+ "/query-service/*": {
+ "target": "http://localhost:19002",
+ "secure": false,
+ logLevel: "debug",
+ pathRewrite: function (path) { return path.replace('/query-service', '/query/service')}
+ }
+}
+
+module.exports = PROXY_CONFIG;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app-config.service.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app-config.service.ts
new file mode 100755
index 0000000..87a0c2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app-config.service.ts
@@ -0,0 +1,75 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Injectable } from '@angular/core';
+import { Observable } from 'rxjs/Observable';
+import {
+ Http,
+ Headers,
+ RequestOptions
+} from '@angular/http';
+
+@Injectable()
+export class ConfigService {
+
+ private config: Object
+ private env: Object
+
+ constructor(private http: Http) {}
+
+ /**
+ * Loads the environment config file first. Reads the environment variable from the file
+ * and based on that loads the appropriate configuration file - development or production
+ */
+ load() {
+ return new Promise((resolve, reject) => {
+ let headers = new Headers({ 'Accept': 'application/json', 'Content-Type': 'application/json', 'DataType': 'application/json' });
+ let options = new RequestOptions({ headers: headers });
+
+ this.http.get('/config/env.json')
+ .map(res => res.json())
+ .subscribe((env_data) => {
+ this.env = env_data;
+
+ this.http.get('/config/' + env_data.env + '.json')
+ .map(res => res.json())
+ .catch((error: any) => {
+ return Observable.throw(error.json().error || 'Server error');
+ })
+ .subscribe((data) => {
+ this.config = data;
+ resolve(true);
+ });
+ });
+
+ });
+ }
+
+ /**
+ * Returns environment variable based on given key
+ *
+ * @param key
+ */
+ getEnv(key: any) {
+ return this.env[key];
+ }
+
+ /**
+ * Returns configuration value based on given key
+ *
+ * @param key
+ */
+ get(key: any) {
+ return this.config[key];
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.component.html
new file mode 100755
index 0000000..58481be
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.component.html
@@ -0,0 +1,15 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/-->
+<awc-bar></awc-bar>
+<awc-tab></awc-tab>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.component.scss
new file mode 100755
index 0000000..b01fcf5
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.component.scss
@@ -0,0 +1,14 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+// Place holder for future expansion
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.component.ts
new file mode 100755
index 0000000..a913109
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.component.ts
@@ -0,0 +1,31 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component } from '@angular/core';
+import { AppCoreService } from './shared/services/app-core.service'
+
+/*
+ * Root component
+ * Defines AsterixDB Dashboard application's layout
+ */
+@Component({
+ selector: 'awc-root',
+ templateUrl: './app.component.html',
+ styleUrls: ['./app.component.scss']
+})
+export class AppComponent {
+ title = 'Asterix DB Web Console';
+
+ constructor(private appCoreService: AppCoreService) {
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.module.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.module.ts
new file mode 100755
index 0000000..11c8602
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/app.module.ts
@@ -0,0 +1,121 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { BrowserModule } from '@angular/platform-browser';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+import { HttpClientModule } from '@angular/common/http';
+import { EffectsModule } from '@ngrx/effects';
+import { DataverseEffects } from './shared/effects/dataverse.effects';
+import { DatasetEffects } from './shared/effects/dataset.effects';
+import { DatatypeEffects } from './shared/effects/datatype.effects';
+import { IndexEffects } from './shared/effects/index.effects';
+import { SQLQueryEffects } from './shared/effects/query.effects';
+import { MetadataEffects } from './shared/effects/metadata.effects';
+import { AppComponent } from './app.component';
+import { AppBarComponent } from './dashboard/appbar.component';
+import { DataverseCollection } from './dashboard/metadata/dataverses-collection/dataverses.component';
+import { DatasetCollection } from './dashboard/metadata/datasets-collection/datasets.component';
+import { DatatypeCollection } from './dashboard/metadata/datatypes-collection/datatypes.component';
+import { CodemirrorComponent } from './dashboard/query/codemirror.component';
+import { CodemirrorMetadataComponent } from './dashboard/metadata/codemirror-metadata.component';
+import { IndexCollection } from './dashboard/metadata/indexes-collection/indexes.component';
+import { MetadataContainerComponent } from './dashboard/metadata/metadata-container.component';
+import { MetadataComponent } from './dashboard/query/metadata.component';
+import { QueryContainerComponent } from './dashboard/query/query-container.component';
+import { InputQueryComponent } from './dashboard/query/input.component';
+import { InputQueryMetadataComponent } from './dashboard/metadata/input-metadata.component';
+import { QueryOutputComponent, SafeHtmlPipe } from './dashboard/query/ouput.component';
+import { AppTabComponent } from './dashboard/apptab.component';
+import { KeysPipe } from './shared/pipes/keys.pipe';
+import { ObjectTypePipe } from './shared/pipes/objectType.pipe';
+import { ObjectArrayTypePipe } from './shared/pipes/objectArrayType.pipe';
+import { reducers } from './shared/reducers';
+import { SQLService } from './shared/services/async-query.service'
+import { AppCoreService } from './shared/services/app-core.service'
+import { MetadataService } from './shared/services/async-metadata.service'
+import { DBModule } from '@ngrx/db';
+import { FormsModule } from '@angular/forms';
+import { MaterialModule } from './material.module';
+import { NgModule } from '@angular/core';
+import { StoreModule, } from '@ngrx/store';
+import { StoreDevtoolsModule } from '@ngrx/store-devtools';
+import { schema } from './db';
+import { DataTableModule, SharedModule } from 'primeng/primeng';
+import { TreeModule, TreeNode} from 'primeng/primeng';
+import { DialogCreateDataverse, DialogDropDataverse } from './dashboard/metadata/dataverses-collection/dataverses.component';
+import { DialogCreateDataset, DialogDropDataset } from './dashboard/metadata/datasets-collection/datasets.component';
+import { DialogCreateDatatype, DialogDropDatatype } from './dashboard/metadata/datatypes-collection/datatypes.component';
+import { DialogCreateIndex, DialogDropIndex } from './dashboard/metadata/indexes-collection/indexes.component';
+
+
+
+@NgModule({
+ declarations: [
+ AppComponent,
+ AppBarComponent,
+ InputQueryComponent,
+ InputQueryMetadataComponent,
+ QueryOutputComponent,
+ CodemirrorComponent,
+ CodemirrorMetadataComponent,
+ DataverseCollection,
+ DatasetCollection,
+ DatatypeCollection,
+ IndexCollection,
+ KeysPipe,
+ MetadataContainerComponent,
+ MetadataComponent,
+ QueryContainerComponent,
+ AppTabComponent,
+ ObjectTypePipe,
+ ObjectArrayTypePipe,
+ DialogCreateDataverse,
+ DialogDropDataverse,
+ DialogCreateDataset,
+ DialogDropDataset,
+ DialogCreateDatatype,
+ DialogDropDatatype,
+ DialogCreateIndex,
+ DialogDropIndex,
+ SafeHtmlPipe
+ ],
+ imports: [
+ TreeModule,
+ DataTableModule,
+ SharedModule,
+ FormsModule,
+ BrowserModule,
+ BrowserAnimationsModule,
+ DBModule.provideDB(schema),
+ EffectsModule.forRoot([MetadataEffects, DataverseEffects, DatasetEffects, DatatypeEffects, IndexEffects, SQLQueryEffects]),
+ HttpClientModule,
+ MaterialModule,
+ StoreModule.forRoot(reducers),
+ StoreDevtoolsModule.instrument({
+ maxAge: 10
+ })
+ ],
+ entryComponents: [
+ DialogCreateDataverse,
+ DialogDropDataverse,
+ DialogCreateDataset,
+ DialogDropDataset ,
+ DialogCreateDatatype,
+ DialogDropDatatype,
+ DialogCreateIndex,
+ DialogDropIndex
+ ],
+ providers: [AppCoreService, SQLService, MetadataService],
+ bootstrap: [AppComponent]
+})
+export class AppModule { }
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/appbar.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/appbar.component.html
new file mode 100755
index 0000000..62cf771
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/appbar.component.html
@@ -0,0 +1,45 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<header class="awc-navbar">
+ <nav class="awc-navbar-header">
+ <a mat-button class="awc-button" routerLink="/" aria-label="AsterixDB Web Console">
+ <img class="awc-asterixDB-logo"
+ src="assets/asterixdb_tm.png"
+ alt="AsterixDB">
+ <span>Administration Console</span>
+ </a>
+ <div class="flex-spacer"></div>
+ <a mat-button class="awc-button awc-navbar-hide-small" href="https://asterixDB.apache.org"
+ aria-label="WEBSITE">
+ WEBSITE
+ </a>
+ <a mat-button class="awc-button awc-navbar-hide-small" href="https://issues.apache.org/jira/browse/ASTERIXDB"
+ aria-label="FILE ISSUES">
+ FILE ISSUES
+ </a>
+ <a mat-button class="awc-button awc-navbar-hide-small" href="https://ci.apache.org/projects/asterixdb/index.html"
+ aria-label="DOCUMENTATION">
+ DOCUMENTATION
+ </a>
+ <a mat-button class="awc-button docs-navbar-hide-small" href="https://asterixdb.apache.org/community.html"
+ aria-label="CONTACT">
+ CONTACT
+ </a>
+
+ <a mat-button class="awc-button docs-navbar-hide-small" href="https://github.com/apache/asterixdb/"
+ aria-label="GITHUB">
+ GITHUB
+ </a>
+ </nav>
+</header>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/appbar.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/appbar.component.scss
new file mode 100755
index 0000000..8a764e6
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/appbar.component.scss
@@ -0,0 +1,62 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.awc-navbar {
+ a {
+ //color: #f0f0f0;
+ text-decoration: none;
+ }
+
+ border-bottom: 1px solid hsla(0,0%,0%,.10);
+ overflow: hidden;
+}
+
+.awc-navbar-header {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ padding: 8px 16px;
+
+ > .mat-button {
+ &:last-child {
+ margin-left: auto;
+ }
+ }
+}
+
+.flex-spacer {
+ flex-grow: 1;
+}
+
+.awc-asterixDB-logo {
+ height: 26px;
+ margin: 0 4px 3px 0;
+ vertical-align: middle;
+}
+
+.awc-github-logo {
+ height: 21px;
+ margin: 0 7px 2px 0;
+ vertical-align: middle;
+}
+
+.awc-navbar-link {
+ text-decoration: inherit;
+ flex: 1;
+}
+
+/*
+* Rules for when the device is detected to be a small screen.
+* Moves content two rows instead of one.
+*/
+//@media (max-width: 720px) {}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/appbar.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/appbar.component.ts
new file mode 100755
index 0000000..563ed11
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/appbar.component.ts
@@ -0,0 +1,25 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component } from '@angular/core';
+
+@Component({
+ moduleId: module.id,
+ selector: 'awc-bar',
+ templateUrl: 'appbar.component.html',
+ styleUrls: ['appbar.component.scss']
+})
+
+export class AppBarComponent {
+ constructor() {}
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/apptab.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/apptab.component.html
new file mode 100755
index 0000000..bd5c963
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/apptab.component.html
@@ -0,0 +1,23 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<div class="content">
+ <mat-tab-group class="menu">
+ <mat-tab label=">_ QUERY">
+ <awc-query-container></awc-query-container>
+ </mat-tab>
+ <mat-tab label="METADATA">
+ <awc-metadata-container></awc-metadata-container>
+ </mat-tab>
+ </mat-tab-group>
+</div>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/apptab.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/apptab.component.scss
new file mode 100755
index 0000000..4d6fb7b
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/apptab.component.scss
@@ -0,0 +1,26 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.content {
+ width:95%;
+ margin: 0 auto;
+}
+
+.menu {
+ /deep/ .mat-tab-label {
+ font-size: 0.80rem !important;
+ font-weight: 500 !important;
+ }
+}
+
+
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/apptab.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/apptab.component.ts
new file mode 100755
index 0000000..b4db7f4
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/apptab.component.ts
@@ -0,0 +1,25 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component } from '@angular/core';
+import { Store } from '@ngrx/store';
+
+@Component({
+ selector: 'awc-tab',
+ templateUrl: 'apptab.component.html',
+ styleUrls: ['apptab.component.scss']
+})
+
+export class AppTabComponent {
+ constructor(private store: Store<any>) {};
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/codemirror-metadata.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/codemirror-metadata.component.scss
new file mode 100755
index 0000000..9812ecb
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/codemirror-metadata.component.scss
@@ -0,0 +1,27 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.textarea-metadata {
+ background-color: red !important;
+ border: 1px solid black !important;
+ padding: 0;
+ margin: 0;
+}
+
+codemirror-metadata {
+ border: 1px solid #eee;
+ height: auto;
+ background-color: blue !important;
+ padding: 0;
+ margin: 0;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/codemirror-metadata.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/codemirror-metadata.component.ts
new file mode 100755
index 0000000..aed6ddf
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/codemirror-metadata.component.ts
@@ -0,0 +1,244 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+/**
+ * Integrating codemirror (using ng2-codemirror) with our application
+ *
+ * component from "https://runkit.com/npm/ng2-codemirror"
+ * "https://www.npmjs.com/package/ng2-codemirror"
+ * copy component from /src/codemirror.component.ts
+ * and modified for custom mode (asterix aql, sql++ code hilighting)
+ *
+ * therefore, actually we don't need to "npm install ng2-codemirror"
+ *
+ * Because on the outside of this component,
+ * It was hard to access the codemirror instance that 'ng-codemirror' use
+ * So, we copied the component in our application and modified it
+ *
+ * 'codemirror.js(^5.23.0)' is included in the 'index.html'
+ * And in this component(codemirror.component.ts)
+ * add statement like "declare var CodeMirror: any;"
+ *
+ * I don't know whether this is right way
+ *
+ * ref 1) usage : https://embed.plnkr.co/8e9gxss9u10VeFrv29Zt/
+ * ref 2) custom mode : http://jsfiddle.net/TcqAf/99/
+ * ref 3) integrating : http://stackoverflow.com/questions/37092142/integrating-codemirror-with-angular2-typescript
+ * ref 3) integrating : https://medium.com/@s_eschweiler/using-external-libraries-with-angular-2-87e06db8e5d1#.8ok74uvwg
+ */
+import {
+ Component,
+ Input,
+ Output,
+ ElementRef,
+ ViewChild,
+ EventEmitter,
+ forwardRef,
+ AfterViewInit,
+ OnDestroy,
+ ChangeDetectionStrategy
+ } from '@angular/core';
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
+ import * as CodeMirrorMetadata from 'codemirror';
+
+ /**
+ * CodeMirror component
+ * Usage :
+ * <codemirror [(ngModel)]="data" [config]="{...}"></codemirror>
+ */
+ @Component({
+ moduleId: module.id,
+ selector: 'codemirror-metadata',
+ providers: [
+ {
+ provide: NG_VALUE_ACCESSOR,
+ useExisting: forwardRef(() => CodemirrorMetadataComponent),
+ multi: true
+ }
+ ],
+ styleUrls: ['codemirror-metadata.component.scss'],
+ template: `<textarea class="textarea-metadata" #hostMetadata></textarea>`,//,
+ })
+
+export class CodemirrorMetadataComponent implements AfterViewInit, OnDestroy {
+ @Input() config;
+ @Output() change = new EventEmitter();
+ @Output() focus = new EventEmitter();
+ @Output() blur = new EventEmitter();
+ @Output() instance = null;
+ @ViewChild('hostMetadata') hostMetadata;
+ _value = '';
+
+ /**
+ * Constructor
+ */
+ constructor(){
+ /**
+ * Custom mode for AsterixDB
+ */
+ CodeMirrorMetadata.defineMode("asterix", function(){
+ var KEYWORD_MATCH = [
+ // AQL
+ "drop", "dataverse", "dataset",
+ "if", "exists", "create",
+ "use", "type", "as", "closed",
+ "primary", "key", "hints", "cardinality",
+ "index", "on", "btree", "rtree", "keyword",
+ "for", "in", "Metadata", "Dataset",
+ "return", "Index", "load", "using", "localfs", "path", "format",
+ // Query (not perfect)
+ "from", "in", "with", "group", "by", "select",
+ "let", "where", "order", "asc", "desc", "limit",
+ "keeping", "offset", "distinct", "or", "and",
+ // Built in functions (TODO)
+ // Built in functions (TODO)
+ // Built in functions (TODO)
+ // Asterix Data Model
+ // Primitive type
+ "boolean",
+ "tinyint", "smallint", "integer", "bigint",
+ "float", "double",
+ "string",
+ "binary", "hex", "base64",
+ "point", "line", "rectangle", "circle", "polygon",
+ "date", "time", "datetime", "duration", "interval", "uuid",
+ // Incomplete information type
+ "null", "missing",
+ // Derived type
+ // object {}, array [], multiset {{}}
+ // SQL++
+ "DROP", "DATAVERSE", "IF", "EXISTS", "CREATE", "USE", "TYPE", "AS", "DATASET", "PRIMARY", "KEY",
+ "INDEX", "SELECT", "VALUE", "INSERT", "INTO", "FROM", "WHERE", "AND", "SOME", "IN", "SATISFIES", "IS", "UNKNOWN", "NOT", "EVERY",
+ "GROUP", "BY", "ORDER", "DESC", "LIMIT", "OR", "SET", "DELETE", "LOAD", "USING",
+ ];
+
+ //"(", ")","{{", "}}", "[", "]", "{", "}", ";", ",", ":","?", "=",
+ var VAR_MATCH = /[$][a-zA-Z]+(\d*)/;
+ var DOT_MATCH = /[.](\S)*/;
+ var DOUBLE_QUOTE_MATCH = /["].*["]/;
+ var SINGLE_QUOTE_MATCH = /['].*[']/;
+ var BREAK_POINT = /(\s)/;
+
+ return {
+ startState: function() {return {inString: false};},
+ token: function(stream, state) {
+ if (state.newLine == undefined)state.newLine = true;
+
+ //match variable reference
+ if (stream.match(VAR_MATCH)) {
+ return "variable";
+ }
+
+ if (stream.match(DOT_MATCH)) {
+ return "dot-variable";
+ }
+
+ //string variable match
+ if (stream.match(DOUBLE_QUOTE_MATCH)) {
+ return "string";
+ }
+ if (stream.match(SINGLE_QUOTE_MATCH)) {
+ return "string";
+ }
+
+ //keyword match
+ for (var i in KEYWORD_MATCH){
+ if (state.newLine && stream.match(KEYWORD_MATCH[i])){
+ return "keyword";
+ }
+ }
+
+ if (stream.peek() === " " || stream.peek() === null){
+ state.newLine = true;
+ }else{
+ state.newLine = false;
+ }
+ stream.next();
+ return null;
+ }
+ };
+ });
+ }
+
+ get value() { return this._value; };
+
+ @Input() set value(v) {
+ if (v !== this._value) {
+ this._value = v;
+ this.onChange(v);
+ }
+ }
+
+ /**
+ * On component destroy
+ */
+ ngOnDestroy() {}
+
+ /**
+ * On component view init
+ */
+ ngAfterViewInit() {
+ this.config = this.config || {};
+ this.codemirrorInit(this.config);
+ }
+
+ /**
+ * Initialize codemirror
+ */
+ codemirrorMetadataConfig = { mode: "asterix",
+ //lineNumbers: true,
+ lineWrapping: true,
+ showCursorWhenSelecting: true,
+ autofocus: true
+ };
+
+ codemirrorInit(config){
+ this.instance = CodeMirrorMetadata.fromTextArea(this.hostMetadata.nativeElement, this.codemirrorMetadataConfig);
+ this.instance.setSize("100%" , "100px");
+ this.instance.on('change', () => {
+ this.updateValue(this.instance.getValue());
+ });
+
+ this.instance.on('focus', () => {
+ this.focus.emit();
+ });
+
+ this.instance.on('blur', () => {
+ this.blur.emit();
+ });
+ }
+
+ /**
+ * Value update process
+ */
+ updateValue(value){
+ this.value = value;
+ this.onTouched();
+ this.change.emit(value);
+ }
+
+ /**
+ * Implements ControlValueAccessor
+ */
+ writeValue(value){
+ this._value = value || '';
+ if (this.instance) {
+ this.instance.setValue(this._value);
+ }
+ }
+
+ onChange(_) {}
+ onTouched() {}
+ registerOnChange(fn){this.onChange = fn;}
+ registerOnTouched(fn){this.onTouched = fn;}
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-create-dialog.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-create-dialog.component.html
new file mode 100755
index 0000000..ef88719
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-create-dialog.component.html
@@ -0,0 +1,14 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/-->
+<!-- Place holder for future expansion -->
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-create-dialog.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-create-dialog.component.scss
new file mode 100755
index 0000000..c969489
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-create-dialog.component.scss
@@ -0,0 +1,18 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.dataset-dialog {
+ font-family: "Roboto Mono", monospace;
+ font-size: 0.80rem;
+ font-weight: 500;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-drop-dialog.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-drop-dialog.component.html
new file mode 100755
index 0000000..517006c
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-drop-dialog.component.html
@@ -0,0 +1,26 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/-->
+<div class="dataset-dialog">
+ <p mat-dialog-title>DROP DATASET</p>
+ <mat-dialog-content>
+ <p>PLEASE GIVE THE NAME OF THE DATASET TO DROP</p>
+ </mat-dialog-content>
+ <mat-form-field>
+ <input matInput tabindex="0" [(ngModel)]="data.datasetName">
+ </mat-form-field>
+ <mat-dialog-actions>
+ <button mat-button (click)="onClick()" tabindex="1">DROP</button>
+ <button mat-button (click)="onNoClick()" tabindex="2">CANCEL</button>
+ </mat-dialog-actions>
+</div>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-drop-dialog.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-drop-dialog.component.scss
new file mode 100755
index 0000000..c969489
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/dataset-drop-dialog.component.scss
@@ -0,0 +1,18 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.dataset-dialog {
+ font-family: "Roboto Mono", monospace;
+ font-size: 0.80rem;
+ font-weight: 500;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/datasets.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/datasets.component.html
new file mode 100755
index 0000000..f556951
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/datasets.component.html
@@ -0,0 +1,112 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<div class="container" (click)="onClick()">
+ <div class="master">
+ <mat-card class="datasets-card" *ngIf="loaded$ | async as ld">
+ <mat-toolbar color="primary" class="datasets-selector">
+ <mat-icon class="icon">menu</mat-icon>
+ <span>DATASETS - METADATA</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="datasets-content">
+ <mat-table #table [dataSource]="dataSource" class="datasets-table">
+ <!-- CompactionPolicy Column -->
+ <ng-container matColumnDef="CompactionPolicy">
+ <mat-header-cell *matHeaderCellDef class="header-compactionpolicy-cell">Compaction Policy</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataset-compactionpolicy-cell"> {{element.CompactionPolicy}} </mat-cell>
+ </ng-container>
+
+ <!-- DatasetId Column -->
+ <ng-container matColumnDef="DatasetId">
+ <mat-header-cell *matHeaderCellDef class="header-datasetid-cell">Dataset Id</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataset-datasetid-cell"> {{element.DatasetId}} </mat-cell>
+ </ng-container>
+
+ <!-- DatasetName Column -->
+ <ng-container matColumnDef="DatasetName">
+ <mat-header-cell *matHeaderCellDef class="header-datasetname-cell">Dataset Name</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataset-datasetname-cell"> {{element.DatasetName}} </mat-cell>
+ </ng-container>
+
+ <!-- DatasetType Column -->
+ <ng-container matColumnDef="DatasetType">
+ <mat-header-cell *matHeaderCellDef class="header-datasettype-cell">Dataset Type</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataset-datasettype-cell"> {{element.DatasetType}} </mat-cell>
+ </ng-container>
+
+ <!-- DatatypeDataverseName Column -->
+ <ng-container matColumnDef="DatatypeDataverseName">
+ <mat-header-cell *matHeaderCellDef class="header-datatypedataversename-cell">Datatype Dataverse Name</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataset-datatypedataversename-cell"> {{element.DatatypeDataverseName}} </mat-cell>
+ </ng-container>
+
+ <!-- DatatypeName Column -->
+ <ng-container matColumnDef="DatatypeName">
+ <mat-header-cell *matHeaderCellDef class="header-datatypename-cell">Datatype Name</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataset-datatypename-cell"> {{element.DatatypeName}} </mat-cell>
+ </ng-container>
+
+ <!-- DataverseName Column -->
+ <ng-container matColumnDef="DataverseName">
+ <mat-header-cell *matHeaderCellDef class="header-dataversename-cell">Dataverse Name</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataset-dataversename-cell"> {{element.DataverseName}} </mat-cell>
+ </ng-container>
+
+ <!-- GroupName Column -->
+ <ng-container matColumnDef="GroupName">
+ <mat-header-cell *matHeaderCellDef class="header-groupname-cell">Group Name</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataset-groupname-cell"> {{element.GroupName}} </mat-cell>
+ </ng-container>
+
+ <!-- PendingOp Column -->
+ <ng-container matColumnDef="PendingOp">
+ <mat-header-cell *matHeaderCellDef class="header-pendingop-cell">Pending Op</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataset-pendingop-cell"> {{element.PendingOp}} </mat-cell>
+ </ng-container>
+
+ <!-- DatasetType Column -->
+ <ng-container matColumnDef="Timestamp">
+ <mat-header-cell *matHeaderCellDef class="header-timestamp-cell">Timestamp</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataset-timestamp-cell"> {{element.Timestamp}} </mat-cell>
+ </ng-container>
+
+ <mat-header-row *matHeaderRowDef="['DatasetName', 'DataverseName', 'DatatypeName', 'Timestamp']"></mat-header-row>
+ <mat-row *matRowDef="let row; columns: ['DatasetName', 'DataverseName', 'DatatypeName', 'Timestamp'];"
+ [ngClass]="{'highlight': selectedRowIndex == row.id}"
+ (click)="highlight(row)">
+ </mat-row>
+ </mat-table>
+ </mat-card-content>
+ <mat-card-actions class="actions">
+ <button class="refresh-button" mat-button (click)="openDropDatasetDialog()">DROP</button>
+ <span class="error-message">{{errorMessage}}</span>
+ <span class="spacer"></span>
+ <button class="refresh-button" mat-button (click)="getDatasets()">REFRESH</button>
+ </mat-card-actions>
+ </mat-card>
+ <awc-query-metadata #querymetadata class="query"></awc-query-metadata>
+ </div>
+ <div class="detail">
+ <mat-card class="datasets-details-card">
+ <mat-toolbar color="primary" class="datasets-selector">
+ <mat-icon class="icon">menu</mat-icon>
+ <span>DATASET - METADATA - DETAILS</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="datasets-content output">
+ <span><pre>{{output}}</pre></span>
+ </mat-card-content>
+ </mat-card>
+ </div>
+</div>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/datasets.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/datasets.component.scss
new file mode 100755
index 0000000..38a8272
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/datasets.component.scss
@@ -0,0 +1,415 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+$datasets-spacing-unit: 8px;
+
+.container {
+ display: flex;
+ flex-flow: row;
+ padding: 0;
+ margin: 0;
+}
+
+.master {
+ width: 60%;
+ overflow: hidden;
+}
+
+.detail {
+ width: 40%;
+ overflow: hidden;
+}
+
+.datasets-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin:0 auto;
+ margin-top: ($datasets-spacing-unit * 2);
+ min-height: 450px;
+ max-height: 450px;
+ //min-width: 98%; //(100vw / 2);
+ //max-width: 98%; // (100vw / 2);
+ width: 95%; // 98%;
+ overflow: hidden;
+}
+
+.datasets-details-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin:0 auto;
+ margin: ($datasets-spacing-unit * 2);
+ min-height: 716px;
+ max-height: 716px;
+ //min-width: 95%; //(100vw / 2);
+ //max-width: 95%; // (100vw / 2);
+ overflow: hidden;
+}
+
+.icon {
+ padding: 0 14px 0 0;
+ margin: 0;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.datasets-selector {
+ min-height: 42px;
+ max-height: 42px;
+ justify-content: center;
+ font-size: 0.80rem;
+ font-weight: 500;
+ background-color: white;
+ border: 1px solid rgba(54, 147, 209, 0.87);
+}
+
+.datasets-content {
+ position:relative;
+ top: 0;
+ left: 0;
+ margin: 0px;
+ padding: 0px;
+ overflow: auto;
+}
+
+.datasets-table {
+ margin: $datasets-spacing-unit !important;
+ height: 330px;
+ overflow: auto;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.example-header {
+ min-height: 64px;
+ display: flex;
+ align-items: center;
+ padding-left: 24px;
+ font-size: 20px;
+}
+
+.mat-table {
+ overflow: auto;
+}
+
+.customWidthClass{
+ flex: 0 0 250px;
+}
+
+.mat-column-DataverseName {
+ text-align: left;
+}
+
+.mat-header-cell.mat-column-DataverseName {
+ text-align: left;
+}
+
+.mat-cell.mat-column-DataverseName {
+ text-align: left;
+}
+
+.header-compactionpolicy-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.dataset-compactionpolicy-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.header-datasetid-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.dataset-datasetid-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.header-datasetname-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.dataset-datasetname-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.header-datasettype-cell {
+ border: none;
+ font-size: 12px;
+ //letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.dataset-datasettype-cell {
+ border: none;
+ font-size: 12px;
+ //letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.header-datatypedataversename-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.dataset-datatypedataversename-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.header-datatypename-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.dataset-datatypename-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.header-dataversename-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.dataset-dataversename-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+
+.header-groupname-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.dataset-groupname-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.header-timestamp-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.dataset-timestamp-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datasets-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datasets-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.example-header {
+ min-height: 56px;
+ max-height: 56px;
+ display: flex;
+ align-items: center;
+ padding: 8px 24px 0;
+ font-size: 20px;
+ justify-content: space-between;
+ border-bottom: 1px solid transparent;
+}
+
+.mat-form-field {
+ font-size: 14px;
+ flex-grow: 1;
+ margin-top: 8px;
+}
+
+.example-no-results {
+ display: flex;
+ justify-content: center;
+ padding: 24px;
+ font-size: 12px;
+ font-style: italic;
+}
+
+.actions {
+ display: flex;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(54, 147, 209, 0.87);
+ padding: $datasets-spacing-unit;
+ margin: 0;
+}
+
+.error-message {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(209, 54, 54, 0.87);
+ padding-top: 10px;
+ padding-left: 20px;
+ text-overflow: ellipsis;
+}
+
+.output {
+ padding-left: ($datasets-spacing-unit * 2);
+}
+
+
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/datasets.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/datasets.component.ts
new file mode 100755
index 0000000..0fe8c74
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datasets-collection/datasets.component.ts
@@ -0,0 +1,231 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component, ElementRef, ViewChild, Inject, Input } from '@angular/core';
+import { Dataset } from '../../../shared/models/asterixDB.model'
+import { Store } from '@ngrx/store';
+import { Observable } from 'rxjs/Observable';
+import * as datasetActions from '../../../shared/actions/dataset.actions'
+import {DataSource} from '@angular/cdk/collections';
+import {BehaviorSubject} from 'rxjs/BehaviorSubject';
+import { Subscription } from "rxjs/Rx";
+import { State } from '../../../shared/reducers/dataset.reducer';
+import 'rxjs/add/operator/startWith';
+import 'rxjs/add/observable/merge';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/debounceTime';
+import 'rxjs/add/operator/distinctUntilChanged';
+import 'rxjs/add/observable/fromEvent';
+import { MatPaginator } from '@angular/material';
+import { SelectionModel } from '@angular/cdk/collections';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
+
+/**
+ * Root component
+ * Defines our application's layout
+ */
+@Component({
+ selector: 'awc-datasets',
+ templateUrl: 'datasets.component.html',
+ styleUrls: ['datasets.component.scss']
+})
+
+export class DatasetCollection {
+ displayedColumns = "['CompactionPolicy', 'DatasetId', 'DatasetName', 'DatasetType', 'DatatypeDataverseName', 'DatatypeName', 'DataverseName', 'GroupName', 'PendingOp', 'Timestamp']"
+
+/*
+ compactionPolicy: string;
+ compactionPolicyProperties: CompactionPolicyProperties[]; *
+ datasetId: string;
+ datasetName: string;
+ datasetType:string;
+ datatypeDataverseName: string;
+ datatypeName: string;
+ dataverseName: string;
+ groupName:string;
+ hints: string[]; *
+ internalDetails: InternalDetails; *
+ pendingOp: string;
+ timestamp: string; */
+ datasetName: string;
+ dataSource: DatasetDataSource | null;
+ loaded$: Observable<any>
+ @Input('message') errorMessage: string = ""
+ dsName = "";
+
+ constructor(private store: Store<any>, public dialog: MatDialog) {
+ this.loaded$ = this.store.select('dataset');
+
+ // Watching the name of the latest create dataset
+ this.store.select(s => s.dataset.createDatasetName).subscribe((data: any) => {
+ this.dsName = data;
+ })
+
+ // Watching the name of the latest drop dataset
+ this.store.select(s => s.dataset.dropDatasetName).subscribe((data: any) => {
+ this.dsName = data;
+ })
+
+ // Watching for the if there is a change in the collection
+ this.store.select(s => s.dataset.createDatasetSuccess).subscribe((data: any) => {
+ if (data === true) {
+ this.getDatasets();
+ this.errorMessage = "SUCCEED: CREATE DATASET " + this.dsName;
+ }
+ })
+
+ // Watching for the if there is a error in a create dataset operation
+ this.store.select(s => s.dataset.createDatasetError).subscribe((data: any) => {
+ if (data.errors) {
+ this.errorMessage = "ERROR: " + data.errors[0].msg;
+ }
+ })
+
+
+ // Watching for the success message in a drop dataset operation
+ this.store.select(s => s.dataset.dropDatasetSuccess).subscribe((data: any) => {
+ if (data === true) {
+ this.getDatasets();
+ this.errorMessage = "SUCCEED: DROP DATASET " + this.dsName;
+ }
+ })
+
+ // Watching for the if there is a error in a drop dataset operation
+ this.store.select(s => s.dataset.dropDatasetError).subscribe((data: any) => {
+ if (data.errors) {
+ this.errorMessage = "ERROR: " + data.errors[0].msg;
+ }
+ })
+ }
+
+ getDatasets() {
+ // Trigger the effect to refresh the dataset
+ this.store.dispatch(new datasetActions.SelectDatasets('-'));
+ }
+
+ ngOnInit() {
+ // Assign the datasource for the table
+ this.dataSource = new DatasetDataSource(this.store);
+ }
+
+ /*
+ * opens the create dataverse dialog
+ */
+ openCreateDatasetDialog(): void {
+ let dialogRef = this.dialog.open(DialogCreateDataset, {
+ width: '420px',
+ data: { name: this.datasetName }
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+ this.datasetName = result;
+ });
+ }
+
+ /*
+ * opens the drop dataverse dialog
+ */
+ openDropDatasetDialog(): void {
+ let dialogRef = this.dialog.open(DialogDropDataset, {
+ width: '420px',
+ data: { name: this.datasetName }
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+ this.datasetName = result;
+ });
+ }
+
+ /*
+ * Clean up the error message on the screen
+ */
+ onClick(): void {
+ this.errorMessage = "";
+ }
+
+ output: any;
+
+ highlight(row){
+ this.output = JSON.stringify(row, null, 2);
+ }
+
+ @ViewChild('querymetadata') inputQuery;
+
+ /* Cleans up error message */
+ cleanUp() {
+ this.errorMessage = "";
+ // Cascading
+ this.inputQuery.cleanUp();
+ }
+}
+
+@Component({
+ selector: 'dataset-create-dialog',
+ templateUrl: 'dataset-create-dialog.component.html',
+ styleUrls: ['dataset-create-dialog.component.scss']
+})
+
+export class DialogCreateDataset {
+ constructor( private store: Store<any>,
+ public dialogCreateDsRef: MatDialogRef<DialogCreateDataset>,
+ @Inject(MAT_DIALOG_DATA) public data: any) { }
+
+ onClick(): void {
+ this.store.dispatch(new datasetActions.CreateDataset(this.data.datasetName));
+ this.dialogCreateDsRef.close();
+ }
+
+ onNoClick(): void {
+ this.dialogCreateDsRef.close();
+ }
+}
+
+@Component({
+ selector: 'dataset-drop-dialog',
+ templateUrl: 'dataset-drop-dialog.component.html',
+ styleUrls: ['dataset-drop-dialog.component.scss']
+})
+
+export class DialogDropDataset {
+ constructor( private store: Store<any>,
+ public dialogDropDsRef: MatDialogRef<DialogDropDataset>,
+ @Inject(MAT_DIALOG_DATA) public data: any) { }
+
+ onClick(): void {
+ this.store.dispatch(new datasetActions.DropDataset(this.data.datasetName));
+ this.dialogDropDsRef.close();
+ }
+
+ onNoClick(): void {
+ this.dialogDropDsRef.close();
+ }
+}
+
+export class DatasetDataSource extends DataSource<any> {
+ private datasets$: Observable<any>
+ constructor(private store: Store<any>) {
+ super();
+ this.datasets$ = this.store.select(s => s.dataset.datasets.results);
+ }
+
+ /** Connect function called by the table to retrieve one stream containing the data to render. */
+ connect(): Observable<Dataset[]> {
+ const displayDataChanges = [
+ this.datasets$,
+ ];
+
+ return this.datasets$;
+ }
+
+ disconnect() {}
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-create-dialog.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-create-dialog.component.html
new file mode 100755
index 0000000..aca06fd
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-create-dialog.component.html
@@ -0,0 +1,14 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/-->
+<!-- Place holder for future expansion -->
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-create-dialog.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-create-dialog.component.scss
new file mode 100755
index 0000000..9502a7e
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-create-dialog.component.scss
@@ -0,0 +1,18 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.datatype-dialog {
+ font-family: "Roboto Mono", monospace;
+ font-size: 0.80rem;
+ font-weight: 500;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.html
new file mode 100755
index 0000000..1157261
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.html
@@ -0,0 +1,26 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/-->
+<div class="datatype-dialog">
+ <p mat-dialog-title>DROP DATATYPE</p>
+ <mat-dialog-content>
+ <p>PLEASE GIVE THE NAME OF THE DATATYPE TO DROP</p>
+ </mat-dialog-content>
+ <mat-form-field>
+ <input matInput tabindex="0" [(ngModel)]="data.datatypeName">
+ </mat-form-field>
+ <mat-dialog-actions>
+ <button mat-button (click)="onClick()" tabindex="1">DROP</button>
+ <button mat-button (click)="onNoClick()" tabindex="2">CANCEL</button>
+ </mat-dialog-actions>
+</div>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.scss
new file mode 100755
index 0000000..9502a7e
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatype-drop-dialog.component.scss
@@ -0,0 +1,18 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.datatype-dialog {
+ font-family: "Roboto Mono", monospace;
+ font-size: 0.80rem;
+ font-weight: 500;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatypes.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatypes.component.html
new file mode 100755
index 0000000..e580a54
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatypes.component.html
@@ -0,0 +1,70 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<div class="container" (click)="onClick()">
+ <div class="master">
+ <mat-card class="datatypes-card" *ngIf="loaded$ | async as ld">
+ <mat-toolbar color="primary" class="datatypes-selector">
+ <mat-icon class="icon">menu</mat-icon>
+ <span>DATATYPES - METADATA</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="datatypes-content">
+ <mat-table #table [dataSource]="dataSource" class="datatypes-table" role="treegrid">
+ <!-- Datatype Name -->
+ <ng-container matColumnDef="DatatypeName">
+ <mat-header-cell *matHeaderCellDef class="header-datatypename-cell">Datatype Name</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="datatypes-datatypename-cell">{{element.DatatypeName}} </mat-cell>
+ </ng-container>
+
+ <!-- Data Type Dataverse Name -->
+ <ng-container matColumnDef="DataverseName">
+ <mat-header-cell *matHeaderCellDef class="header-dataversename-cell">Dataverse Name </mat-header-cell>
+ <mat-cell *matCellDef="let element" class="datatypes-dataversename-cell">{{element.DataverseName}} </mat-cell>
+ </ng-container>
+
+ <!-- Timestamp Column -->
+ <ng-container matColumnDef="Timestamp">
+ <mat-header-cell *matHeaderCellDef class="header-timestamp-cell">Timestamp</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="datatypes-timestamp-cell">{{element.Timestamp}}</mat-cell>
+ </ng-container>
+
+ <mat-header-row *matHeaderRowDef="['DatatypeName', 'DataverseName', 'Timestamp']"></mat-header-row>
+ <mat-row *matRowDef="let row; columns: ['DatatypeName', 'DataverseName', 'Timestamp'];"
+ [ngClass]="{'highlight': selectedRowIndex == row.id}"
+ (click)="highlight(row)">
+ </mat-row>
+ </mat-table>
+ </mat-card-content>
+ <mat-card-actions class="actions">
+ <button class="refresh-button" mat-button (click)="openDropDatatypeDialog()">DROP</button>
+ <span class="error-message">{{errorMessage}}</span>
+ <span class="spacer"></span>
+ <button class="refresh-button" mat-button (click)="getDatatypes()">REFRESH</button>
+ </mat-card-actions>
+ </mat-card>
+ <awc-query-metadata #querymetadata class="query"></awc-query-metadata>
+ </div>
+ <div class="detail">
+ <mat-card class="datatypes-details-card">
+ <mat-toolbar color="primary" class="datatypes-selector">
+ <mat-icon class="icon">menu</mat-icon>
+ <span>DATATYPE - METADATA - DETAILS</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="datatypes-content output">
+ <span><pre>{{output}}</pre></span>
+ </mat-card-content>
+ </mat-card>
+ </div>
+</div>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatypes.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatypes.component.scss
new file mode 100755
index 0000000..d4aeffc
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatypes.component.scss
@@ -0,0 +1,267 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+$datatypes-spacing-unit: 8px;
+
+.container {
+ display: flex;
+ flex-flow: row;
+ padding: 0;
+ margin: 0;
+}
+
+.master {
+ width: 60%;
+ overflow: hidden;
+}
+
+.detail {
+ width: 40%;
+ overflow: hidden;
+}
+
+.datatypes-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin:0 auto;
+ margin-top: ($datatypes-spacing-unit * 2);
+ min-height: 450px;
+ max-height: 450px;
+ //min-width: 98%; //(100vw / 2);
+ //max-width: 98%; // (100vw / 2);
+ width: 95%; // 98%;
+ overflow: hidden;
+}
+
+.datatypes-details-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin:0 auto;
+ margin: ($datatypes-spacing-unit * 2);
+ min-height: 716px;
+ max-height: 716px;
+ //min-width: 95%; //(100vw / 2);
+ //max-width: 95%; // (100vw / 2);
+ overflow: hidden;
+}
+
+.icon {
+ padding: 0 14px 0 0;
+ margin: 0;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.datatypes-selector {
+ min-height: 42px;
+ max-height: 42px;
+ justify-content: center;
+ //align-items: center;
+ font-size: 0.80rem;
+ font-weight: 500;
+ background-color: white;
+ border: 1px solid rgba(54, 147, 209, 0.87);
+}
+
+.datatypes-content {
+ position:relative;
+ top: 0;
+ left: 0;
+ margin: 0px;
+ padding: 0px;
+ overflow: auto;
+}
+
+.datatypes-table {
+ margin: $datatypes-spacing-unit !important;
+ height: 330px;
+ overflow: auto;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.datatypes-toolbar {
+ display: block;
+ min-height: 56px;
+ height: 56px;
+// width: 250px;
+ font-size: 12px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ letter-spacing: 1px;
+ font-weight: 400;
+ background: rgba(0,0,1, .80);
+}
+
+.example-header {
+ min-height: 64px;
+ display: flex;
+ align-items: center;
+ padding-left: 24px;
+ font-size: 20px;
+}
+
+.mat-table {
+ overflow: auto;
+}
+
+.customWidthClass{
+ flex: 0 0 75px;
+}
+
+.mat-column-DataverseName {
+ text-align: left;
+}
+
+.mat-header-cell.mat-column-DataverseName {
+ text-align: left;
+}
+
+.mat-cell.mat-column-DataverseName {
+ text-align: left;
+}
+
+.header-datatypename-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datatypes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datatypes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 400px;
+}
+
+.datatypes-datatypename-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datatypes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datatypes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 400px;
+}
+
+.header-dataversename-cell {
+ display: flex;
+ justify-content: center;
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datatypes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datatypes-spacing-unit * 2);
+ text-align: center;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.datatypes-dataversename-cell {
+ display: flex;
+ justify-content: center;
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datatypes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datatypes-spacing-unit * 2);
+ flex: 0 0 250px;
+}
+
+.header-timestamp-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datatypes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datatypes-spacing-unit * 2);
+ text-align: center;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.datatypes-timestamp-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $datatypes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($datatypes-spacing-unit * 2);
+ text-align: center;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.example-header {
+ min-height: 56px;
+ max-height: 56px;
+ display: flex;
+ align-items: center;
+ padding: 8px 24px 0;
+ font-size: 20px;
+ justify-content: space-between;
+ border-bottom: 1px solid transparent;
+}
+
+.mat-form-field {
+ font-size: 14px;
+ flex-grow: 1;
+ margin-top: 8px;
+}
+
+.example-no-results {
+ display: flex;
+ justify-content: center;
+ padding: 24px;
+ font-size: 12px;
+ font-style: italic;
+}
+
+.actions {
+ display: flex;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(54, 147, 209, 0.87);
+ padding: $datatypes-spacing-unit;
+ margin: 0;
+}
+
+.error-message {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(209, 54, 54, 0.87);
+ padding-top: 10px;
+ padding-left: 20px;
+ text-overflow: ellipsis;
+}
+
+.output {
+ padding-left: ($datatypes-spacing-unit * 2);
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatypes.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatypes.component.ts
new file mode 100755
index 0000000..953a27e
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/datatypes-collection/datatypes.component.ts
@@ -0,0 +1,220 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component, ChangeDetectionStrategy, Inject, Input } from '@angular/core';
+import { Datatype } from '../../../shared/models/asterixDB.model'
+import { Store } from '@ngrx/store';
+import { Observable } from 'rxjs/Observable';
+import * as datatypeActions from '../../../shared/actions/datatype.actions'
+import { ElementRef, ViewChild} from '@angular/core';
+import {DataSource} from '@angular/cdk/collections';
+import {BehaviorSubject} from 'rxjs/BehaviorSubject';
+import 'rxjs/add/operator/startWith';
+import 'rxjs/add/observable/merge';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/debounceTime';
+import 'rxjs/add/operator/distinctUntilChanged';
+import 'rxjs/add/observable/fromEvent';
+import { Subscription } from "rxjs/Rx";
+import { State } from '../../../shared/reducers/datatype.reducer';
+import { MatPaginator } from '@angular/material';
+import { SelectionModel } from '@angular/cdk/collections';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
+
+@Component({
+ selector: 'awc-datatypes',
+ templateUrl: 'datatypes.component.html',
+ styleUrls: ['datatypes.component.scss']
+})
+
+export class DatatypeCollection {
+ displayedColumns = "['datatypeName', 'dataverseName', 'timeStamp']"
+ /*
+ datatypeName: string;
+ dataverseName: string;
+ derived: DatatypeDerived;
+ timeStamp: string;
+ */
+ datatypeName: string;
+ dataSource: DatatypeDataSource | null;
+ loaded$: Observable<any>;
+ @ViewChild(MatPaginator) paginator: MatPaginator;
+ @ViewChild('filter') filter: ElementRef;
+ selection = new SelectionModel<string>(true, []);
+ @Input('message') errorMessage: string = ""
+ dtName = "";
+
+ constructor(private store: Store<any>, public dialog: MatDialog) {
+ this.loaded$ = this.store.select('datatype');
+ // Watching the name of the latest create datatype
+ this.store.select(s => s.datatype.createDatatypeName).subscribe((data: any) => {
+ this.dtName = data;
+ })
+
+ // Watching the name of the latest drop datatype
+ this.store.select(s => s.datatype.dropDatatypeName).subscribe((data: any) => {
+ this.dtName = data;
+ })
+
+ // Watching for the if there is a change in the collection
+ this.store.select(s => s.datatype.createDatatypeSuccess).subscribe((data: any) => {
+ if (data === true) {
+ this.getDatatypes();
+ this.errorMessage = "SUCCEED: CREATE DATATYPE " + this.dtName;
+ }
+ })
+
+ // Watching for the if there is a error in a create datatype operation
+ this.store.select(s => s.datatype.createDatatypeError).subscribe((data: any) => {
+ if (data.errors) {
+ this.errorMessage = "ERROR: " + data.errors[0].msg;
+ }
+ })
+
+ // Watching for the success message in a drop datatype operation
+ this.store.select(s => s.datatype.dropDatatypeSuccess).subscribe((data: any) => {
+ if (data === true) {
+ this.getDatatypes();
+ this.errorMessage = "SUCCEED: DROP DATATYPE " + this.dtName;
+ }
+ })
+
+ // Watching for the if there is a error in a drop datatype operation
+ this.store.select(s => s.datatype.dropDatatypeError).subscribe((data: any) => {
+ if (data.errors) {
+ this.errorMessage = "ERROR: " + data.errors[0].msg;
+ }
+ })
+ }
+
+ getDatatypes() {
+ // Triggers the effect to refresg the datatypes
+ this.store.dispatch(new datatypeActions.SelectDatatypes('-'));
+ }
+
+ ngOnInit() {
+ // Assign the datasource for the table
+ this.dataSource = new DatatypeDataSource(this.store);
+ }
+
+ /*
+ * opens the create datatype dialog
+ */
+ openCreateDatatypeDialog(): void {
+ let dialogRef = this.dialog.open(DialogCreateDatatype, {
+ width: '420px',
+ data: { name: this.datatypeName }
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+ this.datatypeName = result;
+ });
+ }
+
+ /*
+ * opens the drop datatype dialog
+ */
+ openDropDatatypeDialog(): void {
+ let dialogRef = this.dialog.open(DialogDropDatatype, {
+ width: '420px',
+ data: { name: this.datatypeName }
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+ this.datatypeName = result;
+ });
+ }
+
+ onClick(): void {
+ this.errorMessage = "";
+ }
+
+ /* Showing all the datatype metadata information */
+ output: any;
+
+ highlight(row){
+ this.output = JSON.stringify(row, null, 2);
+ }
+
+ @ViewChild('querymetadata') inputQuery;
+
+ /* Cleans up error message */
+ cleanUp() {
+ this.errorMessage = "";
+ // Cascading
+ this.inputQuery.cleanUp();
+ }
+}
+
+@Component({
+ selector: 'datatype-create-dialog',
+ templateUrl: 'datatype-create-dialog.component.html',
+ styleUrls: ['datatype-create-dialog.component.scss']
+})
+
+export class DialogCreateDatatype {
+ constructor( private store: Store<any>,
+ public dialogCreateDtRef: MatDialogRef<DialogCreateDatatype>,
+ @Inject(MAT_DIALOG_DATA) public data: any) { }
+
+ onClick(): void {
+ this.store.dispatch(new datatypeActions.CreateDatatype(this.data.datasetName));
+ this.dialogCreateDtRef.close();
+ }
+
+ onNoClick(): void {
+ this.dialogCreateDtRef.close();
+ }
+}
+
+@Component({
+ selector: 'datatypes-drop-dialog',
+ templateUrl: 'datatype-drop-dialog.component.html',
+ styleUrls: ['datatype-drop-dialog.component.scss']
+})
+
+export class DialogDropDatatype {
+ constructor( private store: Store<any>,
+ public dialogDropDtRef: MatDialogRef<DialogDropDatatype>,
+ @Inject(MAT_DIALOG_DATA) public data: any) { }
+
+ onClick(): void {
+ this.store.dispatch(new datatypeActions.DropDatatype(this.data.datatypeName));
+ this.dialogDropDtRef.close();
+ }
+
+ onNoClick(): void {
+ this.dialogDropDtRef.close();
+ }
+}
+
+export class DatatypeDataSource extends DataSource<any> {
+ private datatypes$: Observable<any>
+
+ constructor(private store: Store<any>) {
+ super();
+ this.datatypes$ = this.store.select(s => s.datatype.datatypes.results);
+ }
+
+ /** Connect function called by the table to retrieve one stream containing the data to render. */
+ connect(): Observable<Datatype[]> {
+ const displayDataChanges = [
+ this.datatypes$,
+ // this._filterChange,
+ ];
+
+ return this.datatypes$;
+ }
+
+ disconnect() {}
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.html
new file mode 100755
index 0000000..5159e38
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.html
@@ -0,0 +1,27 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/-->
+<div class="dataverse-dialog">
+ <p mat-dialog-title>CREATE DATAVERSE</p>
+ <mat-dialog-content>
+ <p>GIVE A NAME TO THE NEW DATAVERSE</p>
+ </mat-dialog-content>
+ <mat-form-field>
+ <input matInput tabindex="0" [(ngModel)]="data.dataverseName">
+ </mat-form-field>
+ </div>
+ <div mat-dialog-actions>
+ <button mat-button [mat-dialog-close]="data.dataverseName" (click)="onClick()" tabindex="1">CREATE</button>
+ <button mat-button (click)="onNoClick()" tabindex="2">CANCEL</button>
+</div>
+
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.scss
new file mode 100755
index 0000000..6371068
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-create-dialog.component.scss
@@ -0,0 +1,18 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.dataverse-dialog {
+ font-family: "Roboto Mono", monospace;
+ font-size: 0.80rem;
+ font-weight: 500;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.html
new file mode 100755
index 0000000..b546a70
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.html
@@ -0,0 +1,26 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/-->
+<div class="dataverse-dialog">
+ <p mat-dialog-title>DROP DATAVERSE</p>
+ <mat-dialog-content>
+ <p>PLEASE GIVE THE NAME OF THE DATAVERSE TO DROP</p>
+ </mat-dialog-content>
+ <mat-form-field>
+ <input matInput tabindex="0" [(ngModel)]="data.dataverseName">
+ </mat-form-field>
+ <mat-dialog-actions>
+ <button mat-button (click)="onClick()" tabindex="1">DROP</button>
+ <button mat-button (click)="onNoClick()" tabindex="2">CANCEL</button>
+ </mat-dialog-actions>
+</div>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.scss
new file mode 100755
index 0000000..6371068
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses-drop-dialog.component.scss
@@ -0,0 +1,18 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.dataverse-dialog {
+ font-family: "Roboto Mono", monospace;
+ font-size: 0.80rem;
+ font-weight: 500;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses.component.html
new file mode 100755
index 0000000..4099704
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses.component.html
@@ -0,0 +1,77 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<div class="container" (click)="onClick()">
+ <div class="master">
+ <mat-card class="dataverses-card">
+ <mat-toolbar color="primary" class="dataverses-selector">
+ <mat-icon class="icon">menu</mat-icon>
+ <span>DATAVERSES - METADATA</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="dataverses-content">
+ <mat-table #table [dataSource]="dataSource" class="dataverses-table" *ngIf="loaded$ | async as ld">
+ <!-- Dataverse Name Column -->
+ <ng-container matColumnDef="DataverseName">
+ <mat-header-cell *matHeaderCellDef class="header-name-cell">Dataverse Name</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataverse-name-cell">{{element.DataverseName}}</mat-cell>
+ </ng-container>
+
+ <!-- Data Format Column -->
+ <ng-container matColumnDef="DataFormat">
+ <mat-header-cell *matHeaderCellDef class="header-dataformat-cell">Data Format</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataverse-dataformat-cell">{{element.DataFormat}}</mat-cell>
+ </ng-container>
+
+ <!-- Pending Ops -->
+ <ng-container matColumnDef="PendingOp">
+ <mat-header-cell *matHeaderCellDef class="header-pendingop-cell">Pending Ops</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataverse-pendingop-cell">{{element.PendingOp}}</mat-cell>
+ </ng-container>
+
+ <!-- Timestamp Column -->
+ <ng-container matColumnDef="Timestamp">
+ <mat-header-cell *matHeaderCellDef class="header-timestamp-cell">Timestamp</mat-header-cell>
+ <mat-cell *matCellDef="let element" class="dataverse-timestamp-cell">{{element.Timestamp}}</mat-cell>
+ </ng-container>
+
+ <mat-header-row *matHeaderRowDef="['DataverseName', 'DataFormat', 'Timestamp']"></mat-header-row>
+ <mat-row *matRowDef="let row; columns: ['DataverseName', 'DataFormat', 'Timestamp'];"
+ [ngClass]="{'highlight': selectedRowIndex == row.id}"
+ (click)="highlight(row)">
+ </mat-row>
+ </mat-table>
+ </mat-card-content>
+ <mat-card-actions class="actions">
+ <button class="refresh-button" mat-button (click)="openCreateDataverseDialog()">CREATE</button>
+ <button class="refresh-button" mat-button (click)="openDropDataverseDialog()">DROP</button>
+ <span class="error-message">{{errorMessage}}</span>
+ <span class="spacer"></span>
+ <button class="refresh-button" mat-button (click)="getDataverse()">REFRESH</button>
+ </mat-card-actions>
+ </mat-card>
+ <awc-query-metadata #querymetadata class="query"></awc-query-metadata>
+ </div>
+ <div class="detail">
+ <mat-card class="dataverses-details-card">
+ <mat-toolbar color="primary" class="dataverses-selector">
+ <mat-icon class="icon">menu</mat-icon>
+ <span>DATAVERSE - METADATA - DETAILS</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="dataverses-content output">
+ <span><pre>{{output}}</pre></span>
+ </mat-card-content>
+ </mat-card>
+ </div>
+</div>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses.component.scss
new file mode 100755
index 0000000..2821766
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses.component.scss
@@ -0,0 +1,259 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+$dataverses-spacing-unit: 8px;
+
+.container {
+ display: flex;
+ flex-flow: row;
+ padding: 0;
+ margin: 0;
+}
+
+.master {
+ width: 60%;
+}
+
+.detail {
+ width: 40%;
+}
+
+.dataverses-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin:0 auto;
+ margin-top: ($dataverses-spacing-unit * 2);
+ min-height: 450px;
+ max-height: 450px;
+ //min-width: 98%; //(100vw / 2);
+ //max-width: 98%; // (100vw / 2);
+ width: 95%; // 98%;
+ overflow: hidden;
+}
+
+.dataverses-details-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin:0 auto;
+ margin: ($dataverses-spacing-unit * 2);
+ min-height: 716px;
+ max-height: 716px;
+ //min-width: 95%; //(100vw / 2);
+ //max-width: 95%; // (100vw / 2);
+ overflow: hidden;
+}
+
+.icon {
+ padding: 0 14px 0 0;
+ margin: 0;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.dataverses-selector {
+ min-height: 42px;
+ max-height: 42px;
+ justify-content: center;
+ font-size: 0.80rem;
+ font-weight: 500;
+ background-color: white;
+ border: 1px solid rgba(54, 147, 209, 0.87);
+}
+
+//.metadata-content-area {
+// padding: ($dataverses-spacing-unit * 2);
+// margin: 0;
+// overflow: auto;
+//}
+
+
+.dataverses-content {
+ position:relative;
+ top: 0;
+ left: 0;
+ margin: 0px;
+ padding: 0px;
+ overflow: auto;
+}
+
+.dataverses-table {
+ margin: $dataverses-spacing-unit !important;
+ height: 330px;
+ overflow: auto;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.example-header {
+ min-height: 64px;
+ display: flex;
+ align-items: center;
+ padding-left: 24px;
+ font-size: 20px;
+}
+
+.mat-table {
+ overflow: auto;
+}
+
+.customWidthClass{
+ flex: 0 0 75px;
+}
+
+.mat-column-DataverseName {
+ text-align: left;
+}
+
+.mat-header-cell.mat-column-DataverseName {
+ text-align: left;
+}
+
+.mat-cell.mat-column-DataverseName {
+ text-align: left;
+}
+
+.header-name-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $dataverses-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($dataverses-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 150px;
+ text-transform: uppercase;
+}
+
+.header-dataformat-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $dataverses-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($dataverses-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 400px;
+ text-transform: uppercase;
+}
+
+.header-timestamp-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $dataverses-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($dataverses-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+ text-transform: uppercase;
+}
+
+.dataverse-name-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $dataverses-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($dataverses-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 150px;
+}
+
+.dataverse-dataformat-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $dataverses-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($dataverses-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 400px;
+}
+
+.dataverse-timestamp-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $dataverses-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($dataverses-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.example-header {
+ min-height: 56px;
+ max-height: 56px;
+ display: flex;
+ align-items: center;
+ padding: 8px 24px 0;
+ font-size: 20px;
+ justify-content: space-between;
+ border-bottom: 1px solid transparent;
+}
+
+.mat-form-field {
+ font-size: 14px;
+ flex-grow: 1;
+ margin-top: 8px;
+}
+
+.example-no-results {
+ display: flex;
+ justify-content: center;
+ padding: 24px;
+ font-size: 12px;
+ font-style: italic;
+}
+
+.actions {
+ display: flex;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(54, 147, 209, 0.87);
+ padding: $dataverses-spacing-unit;
+ margin: 0;
+}
+
+.error-message {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(209, 54, 54, 0.87);
+ padding-top: 10px;
+ padding-left: 20px;
+ text-overflow: ellipsis;
+}
+
+.highlight{
+ background: #42A948; /* green */
+}
+
+.output {
+ padding-left: ($dataverses-spacing-unit * 2);
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses.component.ts
new file mode 100755
index 0000000..981f029
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/dataverses-collection/dataverses.component.ts
@@ -0,0 +1,234 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component, ChangeDetectionStrategy, Inject, OnInit, AfterViewChecked, AfterViewInit, Input} from '@angular/core';
+import { Dataverse } from '../../../shared/models/asterixDB.model'
+import { Store } from '@ngrx/store';
+import { Observable } from 'rxjs/Observable';
+import * as dataverseActions from '../../../shared/actions/dataverse.actions'
+import { ElementRef, ViewChild} from '@angular/core';
+import { DataSource } from '@angular/cdk/collections';
+import { BehaviorSubject } from 'rxjs/BehaviorSubject';
+import 'rxjs/add/operator/startWith';
+import 'rxjs/add/observable/merge';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/debounceTime';
+import 'rxjs/add/operator/distinctUntilChanged';
+import 'rxjs/add/observable/fromEvent';
+import { Subscription } from "rxjs/Rx";
+import * as fromRoot from '../../../shared/reducers/dataverse.reducer';
+import { State } from '../../../shared/reducers/dataverse.reducer';
+import { MatPaginator } from '@angular/material';
+import { SelectionModel } from '@angular/cdk/collections';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
+
+@Component({
+ selector: 'awc-dataverses',
+ templateUrl: 'dataverses.component.html',
+ styleUrls: ['dataverses.component.scss'],
+})
+
+export class DataverseCollection implements OnInit, AfterViewChecked, AfterViewInit {
+ dataverseName: string;
+ displayedColumns = ['DataverseName', 'Dataformat', 'Timestamp', 'PendingOp'];
+ dataSource: DataversesDataSource | null;
+ loaded$: Observable<any>;
+ selection = new SelectionModel<string>(true, []);
+ @Input('message') errorMessage: string = ""
+ dvName = "";
+
+ constructor(private store: Store<any>, public dialog: MatDialog) {
+ this.loaded$ = this.store.select('dataverse');
+
+ // Watching the name of the latest created dataset
+ this.store.select(s => s.dataverse.createDataverseName).subscribe((data: any) => {
+ this.dvName = data;
+ })
+
+ // Watching for the success message in a drop dataset operation
+ this.store.select(s => s.dataverse.dropDataverseName).subscribe((data: any) => {
+ this.dvName = data;
+ })
+
+ // Watching for the if there is a change in the collection
+ this.store.select(s => s.dataverse.createDataverseSuccess).subscribe((data: any) => {
+ if (data === true) {
+ this.getDataverse();
+ this.errorMessage = "SUCCEED: CREATED DATAVERSE " + this.dvName + " ";
+ }
+ })
+
+ // Watching for the if there is a error in a create dataverse operation
+ this.store.select(s => s.dataverse.createDataverseError).subscribe((data: any) => {
+ if (data.errors) {
+ this.errorMessage = "ERROR: " + data.errors[0].msg;
+ }
+ })
+
+ // Watching for the if there is a change in the collection
+ this.store.select(s => s.dataverse.dropDataverseSuccess).subscribe((data: any) => {
+ if (data === true) {
+ this.getDataverse();
+ this.errorMessage = "SUCCEED: DROP DATAVERSE " + this.dvName;
+ }
+ })
+
+ // Watching for the if there is a error in a drop dataverse operation
+ this.store.select(s => s.dataverse.dropDataverseError).subscribe((data: any) => {
+ if (data.errors) {
+ this.errorMessage = "ERROR: " + data.errors[0].msg;
+ }
+ })
+ }
+
+ getDataverse() {
+ // Triggers the effect to refresg the dataverse
+ this.store.dispatch(new dataverseActions.SelectDataverses('-'));
+ }
+
+ ngOnInit() {
+ // Assign the datasource for the table
+ this.dataSource = new DataversesDataSource(this.store);
+ }
+
+ ngAfterViewChecked() {}
+
+ ngAfterViewInit() {}
+
+
+ /*
+ * opens the create dataverse dialog
+ */
+ openCreateDataverseDialog(): void {
+ let dialogRef = this.dialog.open(DialogCreateDataverse, {
+ width: '420px',
+ data: { name: this.dataverseName }
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+ //reference code
+ //this.dvName = result;
+ });
+ }
+
+ /*
+ * opens the drop dataverse dialog
+ */
+ openDropDataverseDialog(): void {
+ let dialogRef = this.dialog.open(DialogDropDataverse, {
+ width: '420px',
+ data: { name: this.dataverseName }
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+ this.dataverseName = result;
+ });
+ }
+
+ /*
+ * Clean up the error message on the screen
+ */
+ onClick(): void {
+ this.errorMessage = "";
+ }
+
+ selectedRowIndex: number = -1;
+
+ /* Showing all the datatype metadata information */
+ output: any;
+
+ highlight(row){
+ this.output = JSON.stringify(row, null, 2);
+ }
+
+ @ViewChild('querymetadata') inputQuery;
+
+ /* Cleans up error message */
+ cleanUp() {
+ this.errorMessage = "";
+ // Cascading
+ this.inputQuery.cleanUp();
+ }
+}
+
+@Component({
+ selector: 'dataverse-create-dialog',
+ templateUrl: 'dataverses-create-dialog.component.html',
+ styleUrls: ['dataverses-create-dialog.component.scss']
+})
+
+export class DialogCreateDataverse {
+ constructor( private store: Store<any>,
+ public dialogCreateDvRef: MatDialogRef<DialogCreateDataverse>,
+ @Inject(MAT_DIALOG_DATA) public data: any) { }
+
+ onClick(): void {
+ this.store.dispatch(new dataverseActions.CreateDataverse(this.data.dataverseName));
+ this.dialogCreateDvRef.close(this.data.dataverseName);
+ }
+
+ onNoClick(): void {
+ this.dialogCreateDvRef.close();
+ }
+}
+
+@Component({
+ selector: 'dataverse-drop-dialog',
+ templateUrl: 'dataverses-drop-dialog.component.html',
+ styleUrls: ['dataverses-drop-dialog.component.scss']
+})
+
+export class DialogDropDataverse {
+ constructor( private store: Store<any>,
+ public dialogDropDvRef: MatDialogRef<DialogDropDataverse>,
+ @Inject(MAT_DIALOG_DATA) public data: any) { }
+
+ onClick(): void {
+ this.store.dispatch(new dataverseActions.DropDataverse(this.data.dataverseName));
+ this.dialogDropDvRef.close(this.data.dataverseName);
+ }
+
+ onNoClick(): void {
+ this.dialogDropDvRef.close();
+ }
+}
+
+/**
+ * Data source to provide what data should be rendered in the table. Note that the data source
+ * can retrieve its data in any way. In this case, the data source is provided a reference
+ * to a common data base, ExampleDatabase. It is not the data source's responsibility to manage
+ * the underlying data. Instead, it only needs to take the data and send the table exactly what
+ * should be rendered.
+ */
+ export class DataversesDataSource extends DataSource<any> {
+ dataverse$: Observable<any>
+ _filterChange = new BehaviorSubject('');
+ get filter(): string { return this._filterChange.value; }
+ set filter(filter: string) { this._filterChange.next(filter); }
+
+ constructor(private store: Store<any>) {
+ super();
+ this.dataverse$ = this.store.select(s => s.dataverse.dataverses.results);
+ }
+
+ /** Connect function called by the table to retrieve one stream containing the data to render. */
+ connect(): Observable<Dataverse[]> {
+ const displayDataChanges = [
+ this.dataverse$,
+ ];
+
+ return this.dataverse$;
+ }
+
+ disconnect() {}
+ }
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.html
new file mode 100755
index 0000000..aca06fd
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.html
@@ -0,0 +1,14 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/-->
+<!-- Place holder for future expansion -->
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.scss
new file mode 100755
index 0000000..039dcf1
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-create-dialog.component.scss
@@ -0,0 +1,18 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.index-dialog {
+ font-family: "Roboto Mono", monospace;
+ font-size: 0.80rem;
+ font-weight: 500;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.html
new file mode 100755
index 0000000..5e675d8
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.html
@@ -0,0 +1,26 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/-->
+<div class="index-dialog">
+ <p mat-dialog-title>DROP INDEX</p>
+ <mat-dialog-content>
+ <p>PLEASE GIVE THE DATAVERSENAME.INDEXNAME OF THE INDEX TO DROP</p>
+ </mat-dialog-content>
+ <mat-form-field>
+ <input matInput tabindex="0" [(ngModel)]="data.indexName">
+ </mat-form-field>
+ <mat-dialog-actions>
+ <button mat-button (click)="onClick()" tabindex="1">DROP</button>
+ <button mat-button (click)="onNoClick()" tabindex="2">CANCEL</button>
+ </mat-dialog-actions>
+</div>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.scss
new file mode 100755
index 0000000..039dcf1
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/index-drop-dialog.component.scss
@@ -0,0 +1,18 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+.index-dialog {
+ font-family: "Roboto Mono", monospace;
+ font-size: 0.80rem;
+ font-weight: 500;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/indexes.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/indexes.component.html
new file mode 100755
index 0000000..c63b254
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/indexes.component.html
@@ -0,0 +1,94 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<div class="container" (click)="onClick()">
+ <div class="master">
+ <mat-card class="indexes-card" *ngIf="loaded$ | async as ld">
+ <mat-toolbar color="primary" class="indexes-selector">
+ <mat-icon class="icon">menu</mat-icon>
+ <span>INDEXES - METADATA</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="indexes-content">
+ <mat-table #table [dataSource]="dataSource" class="indexes-table">
+ <!-- Dataverse Name -->
+ <ng-container matColumnDef="DataverseName">
+ <mat-header-cell *matHeaderCellDef class="header-dataversename-cell"> Dataverse Name </mat-header-cell>
+ <mat-cell *matCellDef="let element" class="indexes-dataversename-cell"> {{element.DataverseName}} </mat-cell>
+ </ng-container>
+
+ <!-- Dataset Name -->
+ <ng-container matColumnDef="DatasetName">
+ <mat-header-cell *matHeaderCellDef class="header-datasetname-cell"> Dataset Name </mat-header-cell>
+ <mat-cell *matCellDef="let element" class="indexes-datasetname-cell"> {{element.DatasetName}} </mat-cell>
+ </ng-container>
+
+ <!-- Index Name -->
+ <ng-container matColumnDef="IndexName">
+ <mat-header-cell *matHeaderCellDef class="header-indexname-cell"> Index Name </mat-header-cell>
+ <mat-cell *matCellDef="let element" class="indexes-indexname-cell"> {{element.IndexName}} </mat-cell>
+ </ng-container>
+
+ <!-- Index Structure -->
+ <ng-container matColumnDef="IndexStructure">
+ <mat-header-cell *matHeaderCellDef class="header-indexestructure-cell"> Index Structure </mat-header-cell>
+ <mat-cell *matCellDef="let element" class="indexes-indexstructure-cell"> {{element.IndexStructure}} </mat-cell>
+ </ng-container>
+
+ <!-- IsPrimary -->
+ <ng-container matColumnDef="IsPrimary">
+ <mat-header-cell *matHeaderCellDef class="header-isprimary-cell"> Is Primary </mat-header-cell>
+ <mat-cell *matCellDef="let element" class="indexes-isprimary-cell"> {{element.IsPrimary}} </mat-cell>
+ </ng-container>
+
+ <!-- Timestamp Column -->
+ <ng-container matColumnDef="Timestamp">
+ <mat-header-cell *matHeaderCellDef class="header-timestamp-cell"> Timestamp </mat-header-cell>
+ <mat-cell *matCellDef="let element" class="indexes-timestamp-cell"> {{element.Timestamp}} </mat-cell>
+ </ng-container>
+
+ <!-- Pending Op Column -->
+ <ng-container matColumnDef="PendingOp">
+ <mat-header-cell *matHeaderCellDef class="header-pendingop-cell"> PendingOp </mat-header-cell>
+ <mat-cell *matCellDef="let element" class="indexes-dataverse-cell"> {{element.PendingOp}} </mat-cell>
+ </ng-container>
+
+ <mat-header-row *matHeaderRowDef="['IndexName', 'DatasetName', 'DataverseName', 'IndexStructure', 'IsPrimary', 'Timestamp']"></mat-header-row>
+ <mat-row *matRowDef="let row; columns: ['IndexName', 'DatasetName', 'DataverseName', 'IndexStructure', 'IsPrimary', 'Timestamp'];"
+ [ngClass]="{'highlight': selectedRowIndex == row.id}"
+ (click)="highlight(row)">
+ </mat-row>
+ </mat-table>
+ </mat-card-content>
+ <mat-card-actions class="actions">
+ <button class="refresh-button" mat-button (click)="openDropIndexDialog()">DROP</button>
+ <span class="error-message">{{errorMessage}}</span>
+ <span class="spacer"></span>
+ <button class="refresh-button" mat-button (click)="getIndexes()">REFRESH</button>
+ </mat-card-actions>
+ </mat-card>
+ <awc-query-metadata #querymetadata class="query"></awc-query-metadata>
+ </div>
+ <div class="detail">
+ <mat-card class="indexes-details-card">
+ <mat-toolbar color="primary" class="indexes-selector">
+ <mat-icon class="icon">menu</mat-icon>
+ <span>INDEX - METADATA - DETAILS</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="indexes-content output">
+ <span><pre>{{output}}</pre></span>
+ </mat-card-content>
+ </mat-card>
+ </div>
+</div>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/indexes.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/indexes.component.scss
new file mode 100755
index 0000000..15b364a
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/indexes.component.scss
@@ -0,0 +1,398 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+$indexes-spacing-unit: 8px;
+
+.container {
+ display: flex;
+ flex-flow: row;
+ padding: 0;
+ margin: 0;
+}
+
+.master {
+ width: 60%;
+}
+
+.detail {
+ width: 40%;
+}
+
+.indexes-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin:0 auto;
+ margin-top: ($indexes-spacing-unit * 2);
+ min-height: 450px;
+ max-height: 450px;
+ //min-width: 98%; //(100vw / 2);
+ //max-width: 98%; // (100vw / 2);
+ width: 95%; // 98%;
+ overflow: hidden;
+}
+
+.indexes-details-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin:0 auto;
+ margin: ($indexes-spacing-unit * 2);
+ min-height: 716px;
+ max-height: 716px;
+ //min-width: 95%; //(100vw / 2);
+ //max-width: 95%; // (100vw / 2);
+ overflow: hidden;
+}
+
+.icon {
+ padding: 0 14px 0 0;
+ margin: 0;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.indexes-selector {
+ min-height: 42px;
+ max-height: 42px;
+ justify-content: center;
+ //align-items: center;
+ font-size: 0.80rem;
+ font-weight: 500;
+ background-color: white;
+ border: 1px solid rgba(54, 147, 209, 0.87);
+}
+
+.indexes-content {
+ position:relative;
+ top: 0;
+ left: 0;
+ margin: 0px;
+ padding: 0px;
+ overflow: auto;
+}
+
+.indexes-table {
+ margin: $indexes-spacing-unit !important;
+ height: 330px;
+ overflow: auto;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+//.indexes-toolbar {
+// display: block;
+// min-height: 56px;
+// height: 56px;
+ //width: 250px;
+// font-size: 12px;
+// white-space: nowrap;
+// overflow: hidden;
+// text-overflow: ellipsis;
+// letter-spacing: 1px;
+// font-weight: 400;
+// background: rgba(0,0,1, .80);
+//}
+
+.example-header {
+ min-height: 64px;
+ display: flex;
+ align-items: center;
+ padding-left: 24px;
+ font-size: 20px;
+}
+
+.mat-table {
+ overflow: auto;
+}
+
+.customWidthClass{
+ flex: 0 0 75px;
+}
+
+.mat-column-DataverseName {
+ text-align: left;
+}
+
+.mat-header-cell.mat-column-DataverseName {
+ text-align: left;
+}
+
+.mat-cell.mat-column-DataverseName {
+ text-align: left;
+}
+
+.header-dataversename-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 150px;
+}
+
+.indexes-dataversename-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 150px;
+}
+
+.header-datasetname-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 150px;
+}
+
+.indexes-datasetname-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 150px;
+}
+
+.header-indexname-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 150px;
+}
+
+.indexes-indexname-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 150px;
+}
+
+.header-indexestructure-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: center;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 150px;
+}
+
+.indexes-indexstructure-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: center;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 150px;
+}
+
+.header-isprimary-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: center;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 150px;
+}
+
+.indexes-isprimary-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: center;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 150px;
+}
+
+.header-timestamp-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 150px;
+}
+
+.indexes-timestamp-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 150px;
+}
+
+.header-groupname-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 150px;
+}
+
+.indexes-groupname-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 150px;
+}
+
+.header-timestamp-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ text-transform: uppercase;
+ flex: 0 0 250px;
+}
+
+.indexes-timestamp-cell {
+ border: none;
+ font-size: 12px;
+ letter-spacing: 1px;
+ line-height: $indexes-spacing-unit * 3;
+ font-weight: 400;
+ margin: 0;
+ padding: 0 ($indexes-spacing-unit * 2);
+ text-align: left;
+ color: hsla(0,0%,0%,.87);
+ flex: 0 0 250px;
+}
+
+.example-header {
+ min-height: 56px;
+ max-height: 56px;
+ display: flex;
+ align-items: center;
+ padding: 8px 24px 0;
+ font-size: 20px;
+ justify-content: space-between;
+ border-bottom: 1px solid transparent;
+}
+
+.mat-form-field {
+ font-size: 14px;
+ flex-grow: 1;
+ margin-top: 8px;
+}
+
+.example-no-results {
+ display: flex;
+ justify-content: center;
+ padding: 24px;
+ font-size: 12px;
+ font-style: italic;
+}
+
+.actions {
+ display: flex;
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(54, 147, 209, 0.87);
+ padding: $indexes-spacing-unit;
+ margin: 0;
+}
+
+.error-message {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(209, 54, 54, 0.87);
+ padding-top: 10px;
+ padding-left: 20px;
+ text-overflow: ellipsis;
+}
+
+.output {
+ padding-left: ($indexes-spacing-unit * 2);
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/indexes.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/indexes.component.ts
new file mode 100755
index 0000000..2913470
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/indexes-collection/indexes.component.ts
@@ -0,0 +1,230 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component, Inject, Input } from '@angular/core';
+import { Index } from '../../../shared/models/asterixDB.model'
+import { Store } from '@ngrx/store';
+import { Observable } from 'rxjs/Observable';
+import * as indexActions from '../../../shared/actions/index.actions'
+import { ElementRef, ViewChild} from '@angular/core';
+import {DataSource} from '@angular/cdk/collections';
+import {BehaviorSubject} from 'rxjs/BehaviorSubject';
+import 'rxjs/add/operator/startWith';
+import 'rxjs/add/observable/merge';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/debounceTime';
+import 'rxjs/add/operator/distinctUntilChanged';
+import 'rxjs/add/observable/fromEvent';
+import { Subscription } from "rxjs/Rx";
+import { State } from '../../../shared/reducers/index.reducer';
+import { MatPaginator } from '@angular/material';
+import { SelectionModel } from '@angular/cdk/collections';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
+
+/**
+ * Root component
+ * Defines our application's layout
+ */
+@Component({
+ selector: 'awc-indexes',
+ templateUrl: 'indexes.component.html',
+ styleUrls: ['indexes.component.scss']
+})
+
+export class IndexCollection {
+ displayedColumns = "['dataverseName', 'datasetName', 'indexName', 'indexStructure', 'isPrimary', 'timestamp', 'pendingOp']"
+ /*
+ dataverseName: string;
+ datasetName: string;
+ indexName: string;
+ indexStructure: string;
+ searchKey: string[];
+ isPrimary: boolean;
+ timestamp: string;
+ pendingOp: string;
+ */
+ indexName: string;
+ dataSource: IndexDataSource | null;
+ loaded$: Observable<any>;
+ @Input('message') errorMessage: string = ""
+
+ idxName = "";
+
+ constructor(private store: Store<any>, public dialog: MatDialog) {
+ this.loaded$ = this.store.select('index');
+ // Watching the name of the latest create index
+ this.store.select(s => s.index.createIndexName).subscribe((data: any) => {
+ this.idxName = data;
+ })
+
+ // Watching the name of the latest drop index
+ this.store.select(s => s.index.dropIndexName).subscribe((data: any) => {
+ this.idxName = data;
+ })
+
+ // Watching for the if there is a change in the collection
+ this.store.select(s => s.index.createIndexSuccess).subscribe((data: any) => {
+ if (data === true) {
+ this.getIndexes();
+ this.errorMessage = "SUCCEED: CREATE INDEX " + this.idxName;
+ }
+ })
+
+ // Watching for the if there is a error in a create index operation
+ this.store.select(s => s.index.createIndexError).subscribe((data: any) => {
+ if (data.errors) {
+ this.errorMessage = "ERROR: " + data.errors[0].msg;
+ }
+ })
+
+ // Watching for the success message in a drop index operation
+ this.store.select(s => s.index.dropIndexSuccess).subscribe((data: any) => {
+ if (data === true) {
+ this.getIndexes();
+ this.errorMessage = "SUCCEED: DROP INDEX " + this.idxName;
+ }
+ })
+
+ // Watching for the if there is a error in a drop index operation
+ this.store.select(s => s.index.dropIndexError).subscribe((data: any) => {
+ if (data.errors) {
+ this.errorMessage = "ERROR: " + data.errors[0].msg;
+ }
+ })
+ }
+
+ getIndexes() {
+ // Triggers the effect to refresg the indexes
+ this.store.dispatch(new indexActions.SelectIndexes('-'));
+ }
+
+ ngOnInit() {
+ // Assign the datasource for the table
+ this.dataSource = new IndexDataSource(this.store);
+ }
+
+ /*
+ * opens the create index dialog
+ */
+ openCreateIndexDialog(): void {
+ let dialogRef = this.dialog.open(DialogCreateIndex, {
+ width: '420px',
+ data: { name: this.indexName }
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+ this.indexName = result;
+ });
+ }
+
+
+ /*
+ * opens the drop index dialog
+ */
+ openDropIndexDialog(): void {
+ let dialogRef = this.dialog.open(DialogDropIndex, {
+ width: '420px',
+ data: { name: this.indexName }
+ });
+
+ dialogRef.afterClosed().subscribe(result => {
+ this.indexName = result;
+ });
+ }
+
+ /*
+ * Clean up the error message on the screen
+ */
+ onClick(): void {
+ this.errorMessage = "";
+ }
+
+ /* Showing all the index metadata information */
+ output: any;
+
+ highlight(row){
+ this.output = JSON.stringify(row, null, 2);
+ }
+
+ @ViewChild('querymetadata') inputQuery;
+
+ /* Cleans up error message */
+ cleanUp() {
+ this.errorMessage = "";
+ // Cascading
+ this.inputQuery.cleanUp();
+ }
+}
+
+@Component({
+ selector: 'index-create-dialog',
+ templateUrl: 'index-create-dialog.component.html',
+ styleUrls: ['index-create-dialog.component.scss']
+})
+
+export class DialogCreateIndex {
+ constructor( private store: Store<any>,
+ public dialogCreateIdxRef: MatDialogRef<DialogCreateIndex>,
+ @Inject(MAT_DIALOG_DATA) public data: any) { }
+
+ onClick(): void {
+ this.store.dispatch(new indexActions.CreateIndex(this.data.indexName));
+ this.dialogCreateIdxRef.close();
+ }
+
+ onNoClick(): void {
+ this.dialogCreateIdxRef.close();
+ }
+}
+
+@Component({
+ selector: 'index-drop-dialog',
+ templateUrl: 'index-drop-dialog.component.html',
+ styleUrls: ['index-drop-dialog.component.scss']
+})
+
+export class DialogDropIndex {
+ constructor( private store: Store<any>,
+ public dialogDropIdxRef: MatDialogRef<DialogDropIndex>,
+ @Inject(MAT_DIALOG_DATA) public data: any) { }
+
+ onClick(): void {
+ console.log(this.data.indexName)
+ this.store.dispatch(new indexActions.DropIndex(this.data.indexName));
+ this.dialogDropIdxRef.close();
+ }
+
+ onNoClick(): void {
+ this.dialogDropIdxRef.close();
+ }
+}
+
+export class IndexDataSource extends DataSource<any> {
+ private indexes$: Observable<any>
+
+ constructor(private store: Store<any>) {
+ super();
+ this.indexes$ = this.store.select(s => s.index.indexes.results);
+ }
+
+ /** Connect function called by the table to retrieve one stream containing the data to render. */
+ connect(): Observable<Index[]> {
+ const displayDataChanges = [
+ this.indexes$,
+ ];
+
+ return this.indexes$;
+ }
+
+ disconnect() {}
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/input-metadata.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/input-metadata.component.html
new file mode 100755
index 0000000..939ab06
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/input-metadata.component.html
@@ -0,0 +1,31 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<mat-card class="input-card" (click)="onClick()">
+ <mat-toolbar color="primary" class="input-selector">
+ <mat-icon class="toolbar-icon">menu</mat-icon>
+ <span>INPUT: SQL++</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="content-area">
+ <div class="codemirror-container">
+ <codemirror-metadata class="code" [(ngModel)]="queryMetadataString" [config]="codemirrorMetadataConfig">
+ </codemirror-metadata>
+ </div>
+ </mat-card-content>
+ <mat-card-actions class="actions">
+ <button mat-button class="query-button" (click)="executeQuery()">RUN</button>
+ <span class="error-message">{{errorMessage}}</span>
+ <span class="spacer"></span>
+ </mat-card-actions>
+</mat-card>
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/input-metadata.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/input-metadata.component.scss
new file mode 100755
index 0000000..b98080c
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/input-metadata.component.scss
@@ -0,0 +1,78 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+$query-spacing-unit: 8px;
+
+.input-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin: 0 auto;
+ margin-top: $query-spacing-unit;
+ height: 250px;
+ width: 95%;
+ overflow: hidden;
+}
+
+.toolbar-icon {
+ padding: 0 14px 0 0;
+ margin: 0;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.input-selector {
+ max-height: 42px;
+ min-height: 42px;
+ justify-content: center;
+ //align-items: center;
+ font-size: 0.80rem;
+ font-weight: 500;
+ background-color: white;
+ border: 1px solid rgba(54, 147, 209, 0.87);
+}
+
+.content-area {
+ position: relative;
+ color: hsla(0,0%,0%,.87);
+ height: 120px;
+ padding: 0;
+ margin: $query-spacing-unit * 2;
+ overflow: none;
+}
+
+.codemirror-container {
+ width: 100%;
+ height: 100%;
+ padding: 0;
+ margin: 0;
+ font-size: 14px;
+ line-height: 1.8;
+}
+
+.actions {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(54, 147, 209, 0.87);
+ padding: $query-spacing-unit;
+ margin: 0;
+}
+
+.error-message {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(209, 54, 54, 0.87);
+ padding-top: 10px;
+ padding-left: 20px;
+ text-overflow: ellipsis;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/input-metadata.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/input-metadata.component.ts
new file mode 100755
index 0000000..06b9375
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/input-metadata.component.ts
@@ -0,0 +1,111 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
+import { Observable } from 'rxjs/Observable';
+import { Store } from '@ngrx/store';
+import * as sqlQueryActions from '../../shared/actions/query.actions'
+import * as dataverseActions from '../../shared/actions/dataverse.actions'
+import * as datasetActions from '../../shared/actions/dataset.actions'
+import * as datatypeActions from '../../shared/actions/datatype.actions'
+import * as indexActions from '../../shared/actions/index.actions'
+
+
+import * as CodeMirror from 'codemirror';
+
+/*
+ * Query metadata component
+ * has editor (codemirror) for writing some query
+ */
+@Component({
+ moduleId: module.id,
+ selector: 'awc-query-metadata',
+ templateUrl:'input-metadata.component.html',
+ styleUrls: ['input-metadata.component.scss'],
+})
+
+export class InputQueryMetadataComponent {
+ private dataverses$: Observable<any>;
+ private datatypes$: Observable<any>;
+ private datasets$: Observable<any>;
+ private indexes$: Observable<any>;
+ dataverses = [];
+ datatypes = [];
+ datasets = [];
+ indexes = [];
+ queryMetadataString: string = "";
+ loaded$: Observable<any>;
+ errorMessage: string = "";
+
+ /**
+ * Initialize codemirror
+ */
+ codemirrorMetadataConfig = { mode: "asterix",
+ //lineNumbers: true,
+ lineWrapping: true,
+ showCursorWhenSelecting: true,
+ autofocus: true
+ };
+
+ constructor(private store: Store<any>, private changeDetector: ChangeDetectorRef) {
+ this.store.select("sqlMetadataQuery").subscribe((data: any) => {
+ if (data.success === false){
+ if (data.sqlQueryMetadataError.errors){
+ this.errorMessage = "ERROR: " + data.sqlQueryMetadataError.errors[0].msg
+ this.changeDetector.detectChanges();
+ }
+ } else {
+ this.errorMessage = "SUCCEED";
+
+ // Refresh the tables automatically
+ let stringQuery = data.sqlQueryMetadataString;
+ stringQuery = stringQuery.toUpperCase();
+
+ if (stringQuery.includes("CREATE DATAVERSE") || stringQuery.includes("DROP DATAVERSE") ){
+ this.store.dispatch(new dataverseActions.SelectDataverses('-'));
+ }
+ else if (stringQuery.includes("CREATE DATASET") || stringQuery.includes("DROP DATASET")){
+ this.store.dispatch(new datasetActions.SelectDatasets('-'));
+ }
+ else if (stringQuery.includes("CREATE TYPE") || stringQuery.includes("DROP TYPE")){
+ this.store.dispatch(new datatypeActions.SelectDatatypes('-'));
+ }
+ else if (stringQuery.includes("CREATE INDEX") || stringQuery.includes("DROP INDEX")){
+ this.store.dispatch(new indexActions.SelectIndexes('-'));
+ }
+
+ this.changeDetector.detectChanges();
+ }
+
+ })
+ }
+
+ getQueryResults(queryMetadataString: string) {
+ this.store.dispatch(new sqlQueryActions.ExecuteMetadataQuery(queryMetadataString));
+ }
+
+ executeQuery() {
+ this.getQueryResults(this.queryMetadataString.replace(/\n/g, " "));
+ // Component View Refresh
+
+ }
+
+ onClick() {
+ this.errorMessage = "";
+ }
+
+ /* Cleans up error message */
+ cleanUp() {
+ this.errorMessage = "";
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/metadata-container.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/metadata-container.component.html
new file mode 100755
index 0000000..a2f3a73
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/metadata-container.component.html
@@ -0,0 +1,36 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<mat-tab-group class="metadata-menu" (selectedTabChange)="tabChange()">
+ <mat-tab label="DATAVERSES" class="submenu">
+ <div class="dataverses">
+ <awc-dataverses #dataverses [message]="message" class="dataverses"></awc-dataverses>
+ </div>
+ </mat-tab>
+ <mat-tab label="DATASETS">
+ <div class="datasets">
+ <awc-datasets #datasets [message]="message" class="datasets"></awc-datasets>
+ </div>
+ </mat-tab>
+ <mat-tab label="DATATYPES">
+ <div class="datatypes">
+ <awc-datatypes #datatypes [message]="message" class="datatypes"></awc-datatypes>
+ </div>
+ </mat-tab>
+ <mat-tab label="INDEXES" class="indexes">
+ <div class="indexes">
+ <awc-indexes #indexes [message]="message" class="indexes"></awc-indexes>
+ </div>
+ </mat-tab>
+</mat-tab-group>
+
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/metadata-container.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/metadata-container.component.scss
new file mode 100755
index 0000000..3857d74
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/metadata-container.component.scss
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ .dataverses {
+ margin: 0;
+ min-height: 750px;
+ max-height: 750px;
+ width: 100%;
+ overflow: hidden;
+ }
+
+.datasets {
+ margin: 0;
+ min-height: 750px;
+ max-height: 750px;
+ width: 100%;
+ overflow: hidden;
+}
+
+.datatypes {
+ margin: 0;
+ min-height: 750px;
+ max-height: 750px;
+ width: 100%;
+ overflow: hidden;
+}
+
+.indexes {
+ margin: 0;
+ min-height: 750px;
+ max-height: 750px;
+ width: 100%;
+ overflow: hidden;
+}
+
+.metadata-menu {
+ /deep/ .mat-tab-label {
+ font-size: 0.80rem !important;
+ font-weight: 500 !important;
+ }
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/metadata-container.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/metadata-container.component.ts
new file mode 100755
index 0000000..c8382cf
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/metadata/metadata-container.component.ts
@@ -0,0 +1,41 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component, ViewChild } from '@angular/core';
+
+@Component({
+ moduleId: module.id,
+ selector: 'awc-metadata-container',
+ templateUrl: 'metadata-container.component.html',
+ styleUrls: ['metadata-container.component.scss']
+})
+
+export class MetadataContainerComponent {
+
+ @ViewChild('dataverses') dataverses ;
+ @ViewChild('datasets') datasets ;
+ @ViewChild('datatypes') datatypes ;
+ @ViewChild('indexes') indexes ;
+ message = "";
+
+ constructor() {}
+
+ tabChange() {
+ this.indexes.cleanUp();
+ this.datasets.cleanUp();
+ this.datatypes.cleanUp();
+ this.dataverses.cleanUp();
+ }
+
+
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/codemirror.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/codemirror.component.scss
new file mode 100755
index 0000000..ba795c2
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/codemirror.component.scss
@@ -0,0 +1,23 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+/* -- Place holder for future expansion --> */
+code {
+ width: 100%;
+ height: 100%;
+ padding: 10%;
+ margin: 0;
+ overflow-wrap: break-word;
+ word-break: break-all;
+ background-color: pink;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/codemirror.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/codemirror.component.ts
new file mode 100755
index 0000000..91b711d
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/codemirror.component.ts
@@ -0,0 +1,237 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+/**
+ * Integrating codemirror (using ng2-codemirror) with our application
+ *
+ * component from "https://runkit.com/npm/ng2-codemirror"
+ * "https://www.npmjs.com/package/ng2-codemirror"
+ * copy component from /src/codemirror.component.ts
+ * and modified for custom mode (asterix aql, sql++ code hilighting)
+ *
+ * therefore, actually we don't need to "npm install ng2-codemirror"
+ *
+ * Because on the outside of this component,
+ * It was hard to access the codemirror instance that 'ng-codemirror' use
+ * So, we copied the component in our application and modified it
+ *
+ * 'codemirror.js(^5.23.0)' is included in the 'index.html'
+ * And in this component(codemirror.component.ts)
+ * add statement like "declare var CodeMirror: any;"
+ *
+ * I don't know whether this is right way
+ *
+ * ref 1) usage : https://embed.plnkr.co/8e9gxss9u10VeFrv29Zt/
+ * ref 2) custom mode : http://jsfiddle.net/TcqAf/99/
+ * ref 3) integrating : http://stackoverflow.com/questions/37092142/integrating-codemirror-with-angular2-typescript
+ * ref 3) integrating : https://medium.com/@s_eschweiler/using-external-libraries-with-angular-2-87e06db8e5d1#.8ok74uvwg
+ */
+ import {
+ Component,
+ Input,
+ Output,
+ ElementRef,
+ ViewChild,
+ EventEmitter,
+ forwardRef,
+ AfterViewInit,
+ OnDestroy
+ } from '@angular/core';
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
+ import * as CodeMirror from 'codemirror';
+
+/**
+ * CodeMirror component
+ * Usage :
+ * <codemirror [(ngModel)]="data" [config]="{...}"></codemirror>
+ */
+@Component({
+ moduleId: module.id,
+ selector: 'codemirror',
+ providers: [
+ {
+ provide: NG_VALUE_ACCESSOR,
+ useExisting: forwardRef(() => CodemirrorComponent),
+ multi: true
+ }
+ ],
+ styleUrls: ['codemirror.component.scss'],
+ template: `<textarea class="code" #host></textarea>`,//,
+})
+
+export class CodemirrorComponent implements AfterViewInit, OnDestroy {
+ @Input() config;
+ @Output() change = new EventEmitter();
+ @Output() focus = new EventEmitter();
+ @Output() blur = new EventEmitter();
+ @Output() instance = null;
+ @ViewChild('host') host;
+ _value = '';
+
+ /**
+ * Constructor
+ */
+ constructor(){
+ /**
+ * Custom mode for AsterixDB
+ */
+ CodeMirror.defineMode("asterix", function(){
+ var KEYWORD_MATCH = [
+ // AQL
+ "drop", "dataverse", "dataset",
+ "if", "exists", "create",
+ "use", "type", "as", "closed",
+ "primary", "key", "hints", "cardinality",
+ "index", "on", "btree", "rtree", "keyword",
+ "for", "in", "Metadata", "Dataset",
+ "return", "Index", "load", "using", "localfs", "path", "format",
+ // Query (not perfect)
+ "from", "in", "with", "group", "by", "select",
+ "let", "where", "order", "asc", "desc", "limit",
+ "keeping", "offset", "distinct", "or", "and",
+ // Built in functions (TODO)
+ // Built in functions (TODO)
+ // Built in functions (TODO)
+ // Asterix Data Model
+ // Primitive type
+ "boolean",
+ "tinyint", "smallint", "integer", "bigint",
+ "float", "double",
+ "string",
+ "binary", "hex", "base64",
+ "point", "line", "rectangle", "circle", "polygon",
+ "date", "time", "datetime", "duration", "interval", "uuid",
+ // Incomplete information type
+ "null", "missing",
+ // Derived type
+ // object {}, array [], multiset {{}}
+ // SQL++
+ "DROP", "DATAVERSE", "IF", "EXISTS", "CREATE", "USE", "TYPE", "AS", "DATASET", "PRIMARY", "KEY",
+ "INDEX", "SELECT", "VALUE", "INSERT", "INTO", "FROM", "WHERE", "AND", "SOME", "IN", "SATISFIES", "IS", "UNKNOWN", "NOT", "EVERY",
+ "GROUP", "BY", "ORDER", "DESC", "LIMIT", "OR", "SET", "DELETE", "LOAD", "USING",
+ ];
+
+ //"(", ")","{{", "}}", "[", "]", "{", "}", ";", ",", ":","?", "=",
+ var VAR_MATCH = /[$][a-zA-Z]+(\d*)/;
+ var DOT_MATCH = /[.](\S)*/;
+ var DOUBLE_QUOTE_MATCH = /["].*["]/;
+ var SINGLE_QUOTE_MATCH = /['].*[']/;
+ var BREAK_POINT = /(\s)/;
+
+ return {
+ startState: function() {return {inString: false};},
+ token: function(stream, state) {
+ if (state.newLine == undefined)state.newLine = true;
+
+ //match variable reference
+ if (stream.match(VAR_MATCH)) {
+ return "variable";
+ }
+
+ if (stream.match(DOT_MATCH)) {
+ return "dot-variable";
+ }
+
+ //string variable match
+ if (stream.match(DOUBLE_QUOTE_MATCH)) {
+ return "string";
+ }
+ if (stream.match(SINGLE_QUOTE_MATCH)) {
+ return "string";
+ }
+
+ //keyword match
+ for (var i in KEYWORD_MATCH){
+ if (state.newLine && stream.match(KEYWORD_MATCH[i])){
+ return "keyword";
+ }
+ }
+
+ if (stream.peek() === " " || stream.peek() === null){
+ state.newLine = true;
+ }else{
+ state.newLine = false;
+ }
+ stream.next();
+ return null;
+ }
+ };
+ });
+ }
+
+ get value() { return this._value; };
+
+ @Input() set value(v) {
+ if (v !== this._value) {
+ this._value = v;
+ this.onChange(v);
+ }
+ }
+
+ /**
+ * On component destroy
+ */
+ ngOnDestroy() {}
+
+ /**
+ * On component view init
+ */
+ ngAfterViewInit() {
+ this.config = this.config || {};
+ this.codemirrorInit(this.config);
+ }
+
+ /**
+ * Initialize codemirror
+ */
+ codemirrorInit(config){
+ this.instance = CodeMirror.fromTextArea(this.host.nativeElement, config);
+ this.instance.setValue(this._value);
+ this.instance.setSize(null, 90);
+ this.instance.on('change', () => {
+ this.updateValue(this.instance.getValue());
+ });
+
+ this.instance.on('focus', () => {
+ this.focus.emit();
+ });
+
+ this.instance.on('blur', () => {
+ this.blur.emit();
+ });
+ }
+
+ /**
+ * Value update process
+ */
+ updateValue(value){
+ this.value = value;
+ this.onTouched();
+ this.change.emit(value);
+ }
+
+ /**
+ * Implements ControlValueAccessor
+ */
+ writeValue(value){
+ this._value = value || '';
+ if (this.instance) {
+ this.instance.setValue(this._value);
+ }
+ }
+
+ onChange(_) {}
+ onTouched() {}
+ registerOnChange(fn){this.onChange = fn;}
+ registerOnTouched(fn){this.onTouched = fn;}
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/input.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/input.component.html
new file mode 100755
index 0000000..2eec6b7
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/input.component.html
@@ -0,0 +1,28 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<mat-card class="input-card">
+ <mat-toolbar color="primary" class="input-selector">
+ <mat-icon class="toolbar-icon">menu</mat-icon>
+ <span>INPUT: SQL++</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="content-area">
+ <div class="codemirror-container">
+ <codemirror class="code" #host [(ngModel)]="queryString" [config]="codemirrorConfig"></codemirror>
+ </div>
+ </mat-card-content>
+ <mat-card-actions class="actions">
+ <button mat-button class="query-button" (click)="onClick()">RUN</button>
+ </mat-card-actions>
+</mat-card>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/input.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/input.component.scss
new file mode 100755
index 0000000..437ff58
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/input.component.scss
@@ -0,0 +1,82 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+$query-spacing-unit: 5px;
+
+.input-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin: ($query-spacing-unit * 2);
+ height: 200px;
+ width: 100%;
+ min-height: 150px;
+
+ //background-color: orange;
+}
+
+.toolbar-icon {
+ padding: 0 14px 0 0;
+ margin: 0;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.input-selector {
+ max-height: 42px;
+ min-height: 42px;
+ justify-content: center;
+ //align-items: center;
+ font-size: 0.80rem;
+ font-weight: 500;
+ background-color: white;
+ border: 1px solid rgba(54, 147, 209, 0.87);
+}
+
+.content-area {
+ //position: relative;
+ color: hsla(0,0%,0%,.87);
+ //height: 102px;
+ padding: 0;
+ margin: 0;
+ overflow: none;
+ }
+
+.codemirror-container {
+ width: 95%;
+ height: 98%;
+ padding: 0; // ($query-spacing-unit * 2);
+ margin: 0 auto;
+ font-size: 14px;
+ //letter-spacing: 3px;
+ line-height: 1.8;
+ background-color: red;
+}
+
+//.code {
+// width: 100%;
+// height: 100%;
+// padding: 0;
+// margin: 0;
+// overflow-wrap: break-word;
+// word-break: break-all;
+//}
+
+.actions {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(54, 147, 209, 0.87);
+ padding-left: $query-spacing-unit;
+ margin: 0;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/input.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/input.component.ts
new file mode 100755
index 0000000..9be9bd9
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/input.component.ts
@@ -0,0 +1,90 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component, ViewChild } from '@angular/core';
+import { Observable } from 'rxjs/Observable';
+import { Store } from '@ngrx/store';
+import * as sqlQueryActions from '../../shared/actions/query.actions'
+import * as CodeMirror from 'codemirror';
+
+/*
+ * query component
+ * has editor (codemirror) for writing some query
+ */
+@Component({
+ moduleId: module.id,
+ selector: 'awc-query',
+ templateUrl:'input.component.html',
+ styleUrls: ['input.component.scss']
+})
+
+export class InputQueryComponent {
+ private guideSelectedDataset$: Observable<any>;
+ private dataverses$: Observable<any>;
+ private datatypes$: Observable<any>;
+ private datasets$: Observable<any>;
+ private indexes$: Observable<any>;
+ dataverses = [];
+ datatypes = [];
+ datasets = [];
+ indexes = [];
+ datasetName = "";
+ dataverseName = "";
+ queryString: string = ""
+
+ /* Codemirror configuration
+ */
+ codemirrorConfig = { mode: "asterix",
+ lineWrapping: true,
+ showCursorWhenSelecting: true,
+ autofocus: true
+ } ;
+
+ loaded$: Observable<any>
+
+ constructor(private store: Store<any>) {
+ // Watching for guide selected or clicked dataset
+ this.guideSelectedDataset$ = this.store.select(s => s.dataset.guideSelectsDataset);
+ this.guideSelectedDataset$.subscribe((data: any) => {
+ if (data) {
+ this.datasetName = data;
+ for (let i = 0; i < this.datasets.length; i++) {
+ if ( this.datasets[i]['DatasetName'] === this.datasetName ) {
+ this.dataverseName = this.datasets[i]['DataverseName'];
+ }
+ }
+ this.queryString = "USE " + this.dataverseName + "; SELECT * FROM " + this.datasetName;
+ }
+ });
+
+ // Watching for Datatypes
+ this.dataverses$ = this.store.select(s => s.dataverse.dataverses.results);
+ this.dataverses$.subscribe((data: any[]) => {
+ this.dataverses = data;
+ });
+
+ // Watching for Datasets
+ this.datasets$ = this.store.select(s => s.dataset.datasets.results);
+ this.datasets$.subscribe((data: any[]) => {
+ this.datasets = data;
+ });
+ }
+
+ getQueryResults(queryString: string) {
+ this.store.dispatch(new sqlQueryActions.ExecuteQuery(queryString));
+ }
+
+ onClick() {
+ this.getQueryResults(this.queryString.replace(/\n/g, " "));
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/metadata.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/metadata.component.html
new file mode 100755
index 0000000..4641426
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/metadata.component.html
@@ -0,0 +1,44 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<mat-card class="metadata-card">
+ <mat-toolbar color="primary" class="metadata-selector">
+ <mat-icon class="example-icon">menu</mat-icon>
+ <span>METADATA GUIDE</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <div class="metadata-content-area">
+ <div class="metadata-tree">
+ <div class="metadata-all">
+ <p-tree [style]="{'width':'100%', 'border': 'none', 'font-family': 'Roboto Mono', 'font-size': '0.80rem',
+ 'font-weight': '500'}" selectionMode="single" [value]="nodesAll" (onNodeSelect)="nodeSelectAll($event)"></p-tree>
+ </div>
+ <div class="metadata-datasets">
+ <p-tree [style]="{'width':'100%', 'border': 'none', 'font-family': 'Roboto Mono', 'font-size': '0.80rem',
+ 'font-weight': '500'}" selectionMode="single" [value]="nodesDatasets" (onNodeSelect)="nodeSelectDataset($event)"></p-tree>
+ </div>
+ <div class="metadata-datatypes">
+ <p-tree [style]="{'width':'100%', 'border': 'none', 'font-family': 'Roboto Mono', 'font-size': '0.80rem',
+ 'font-weight': '500'}" selectionMode="single" [value]="nodesDatatypes"></p-tree>
+ </div>
+ <div class="metadata-index">
+ <p-tree [style]="{'width':'100%', 'border': 'none', 'font-family': 'Roboto Mono', 'font-size': '0.80rem',
+ 'font-weight': '500'}" selectionMode="single" [value]="nodesIndexes"></p-tree>
+ </div>
+
+ </div>
+ </div>
+ <!--<mat-card-actions class="actions">
+ <button mat-button class="refresh-button" (click)="menuRefresh()">COLLAPSE</button>
+ </mat-card-actions> -->
+</mat-card>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/metadata.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/metadata.component.scss
new file mode 100755
index 0000000..4ee2339
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/metadata.component.scss
@@ -0,0 +1,97 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+$metadata-spacing-unit: 5px;
+
+.metadata-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ margin: 0 auto; //($metadata-spacing-unit * 2);
+ margin-top: ($metadata-spacing-unit * 2);
+ margin-bottom: ($metadata-spacing-unit * 2);
+ min-height: 150px;
+ box-shadow: none !important;
+ width: 92%;
+ overflow: hidden;
+}
+
+.example-icon {
+ padding: 0 14px 0 0;
+ margin: 0;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.metadata-selector {
+ min-height: 42px;
+ max-height: 42px;
+ justify-content: center;
+ //align-items: center;
+ font-size: 0.80rem;
+ font-weight: 500;
+ background-color: white;
+ border: 1px solid rgba(54, 147, 209, 0.87);
+}
+
+.metadata-content-area {
+ padding: ($metadata-spacing-unit * 2);
+ margin: 0;
+}
+
+.metadata-tree {
+ min-height: 30px;
+ font-size: 0.80rem;
+ font-weight: 500;
+}
+
+.metadata-datasets {
+ margin-top: ($metadata-spacing-unit * 2);
+ margin-bottom: ($metadata-spacing-unit * 2);
+}
+
+.metadata-datatypes {
+ margin-top: ($metadata-spacing-unit * 2);
+ margin-bottom: ($metadata-spacing-unit * 2);
+}
+
+.metadata-dataindexes {
+ margin-top: ($metadata-spacing-unit * 2);
+ margin-bottom: ($metadata-spacing-unit * 2);
+}
+
+
+.metadata-tree.ui-tree {
+ //width: 260px !important;
+ font-size: 0.80rem;
+ font-weight: 500;
+ border: none !important;
+ background-color: red;
+}
+
+.refresh-button {
+ float: left;
+ margin-top: $metadata-spacing-unit;
+}
+
+.actions {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(54, 147, 209, 0.87);
+ padding: $metadata-spacing-unit;
+ margin: 0;
+}
+
+
+
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/metadata.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/metadata.component.ts
new file mode 100755
index 0000000..e60c9de
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/metadata.component.ts
@@ -0,0 +1,209 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component, OnInit, ChangeDetectorRef } from '@angular/core';
+import { Router } from '@angular/router';
+import { Dataverse } from '../../shared/models/asterixDB.model';
+import { Store } from '@ngrx/store';
+import { Observable } from 'rxjs/Observable';
+import * as dataverseActions from '../../shared/actions/dataverse.actions';
+import * as datasetActions from '../../shared/actions/dataset.actions';
+import * as datatypesActions from '../../shared/actions/datatype.actions';
+import * as indexesActions from '../../shared/actions/index.actions';
+import * as metadataActions from '../../shared/actions/metadata.actions';
+import * as datasetsActions from '../../shared/actions/dataset.actions';
+import { ElementRef, ViewChild} from '@angular/core';
+import {DataSource} from '@angular/cdk/collections';
+import {BehaviorSubject} from 'rxjs/BehaviorSubject';
+import 'rxjs/add/operator/startWith';
+import 'rxjs/add/observable/merge';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/debounceTime';
+import 'rxjs/add/operator/distinctUntilChanged';
+import 'rxjs/add/observable/fromEvent';
+import { Subscription } from 'rxjs/Rx';
+import * as fromRoot from '../../shared/reducers/dataverse.reducer';
+import { State } from '../../shared/reducers/dataverse.reducer';
+import { TreeModule, TreeNode} from 'primeng/primeng';
+
+
+/**
+ * query component
+ * has editor (codemirror) for writing some query
+ */
+@Component({
+ moduleId: module.id,
+ selector: 'awc-metadata',
+ templateUrl: 'metadata.component.html',
+ styleUrls: ['metadata.component.scss']
+})
+
+export class MetadataComponent implements OnInit {
+ nodesAll = [];
+ nodesDatasets = [];
+ nodesDatatypes = [];
+ nodesIndexes = [];
+
+ constructor(private store: Store<any>, private changeDetector: ChangeDetectorRef) {}
+
+ ngOnInit(): void {
+
+ // Watching for the metadata tree
+ this.store.select(s => s.metadata.tree).subscribe((data: any[]) => {
+
+ this.nodesAll = [];
+ this.nodesDatasets = [];
+ this.nodesDatatypes = [];
+ this.nodesIndexes = [];
+ const indexesMenu = [];
+ const datatypesMenu = [];
+ const datasetsMenu = [];
+ const dataversesRoot = { label: '', children: []};
+ dataversesRoot.label = 'DATAVERSES';
+ dataversesRoot.children = [];
+
+ for (let i = 0; i < data.length; i++) {
+
+ // Don't want to show metadata system datasets, datatypes or indexes
+ // if (data[i]['DataverseName'] && data[i]['DataverseName'] !== "Metadata" )
+ // {
+ // Counting dataverses to align the menu identifiers
+ const dataverse = { label: '', children: [] };
+ dataverse.label = data[i]['DataverseName'];
+ dataversesRoot.children.push(dataverse);
+
+ // Adding the datasets to correspondent dataverse
+ if (data[i]['Datasets'].length) {
+ const datasetRoot = { label: '', children: [] };
+ datasetRoot.label = 'DATASETS';
+ dataverse.children.push(datasetRoot);
+ for (let j = 0; j < data[i]['Datasets'].length; j++) {
+ const dataset = { label: '', children: [] };
+ dataset.label = data[i]['Datasets'][j]['DatasetName'];
+
+ //
+ // Adding the datatype to correspondent dataset
+ //
+ if (data[i]['Datasets'][j]['Datatype']) {
+ const datatypeRoot = { label: '', children: [] };
+ datatypeRoot.label = 'Datatype: ' + data[i]['Datasets'][j]['Datatype']['DatatypeName'];
+ //
+ // Looking for the datatype fields
+ //
+ if (data[i]['Datasets'][j]['Datatype']['Derived']) {
+ if (data[i]['Datasets'][j]['Datatype']['Derived']['Record']) {
+ const datatypeFieldsRoot = { label: '', leaf: true, expanded: true, children: [] };
+ datatypeFieldsRoot.label = 'FIELDS';
+ for (let k = 0; k < data[i]['Datasets'][j]['Datatype']['Derived']['Record']['Fields'].length; k++) {
+ const datatypeField = { label: '', children: [] };
+ datatypeField.label = data[i]['Datasets'][j]['Datatype']['Derived']['Record']['Fields'][k]['FieldName'] + ": " + data[i]['Datasets'][j]['Datatype']['Derived']['Record']['Fields'][k]['FieldType'];
+ datatypeFieldsRoot.children.push(datatypeField);
+ }
+ datatypeRoot.children.push(datatypeFieldsRoot);
+
+ }
+ }
+ dataset.children.push(datatypeRoot);
+
+ datatypeRoot.label = data[i]['Datasets'][j]['Datatype']['DatatypeName'];
+ datatypesMenu.push(datatypeRoot);
+ }
+
+ //
+ // Adding the indexes to correspondent dataset
+ //
+ if (data[i]['Datasets'][j]['Indexes'].length) {
+ const indexRoot = { label: '', children: [] };
+ indexRoot.label = 'INDEXES';
+
+ for (let k = 0; k < data[i]['Datasets'][j]['Indexes'].length; k++) {
+ const indexChild = { label: '', children: [] };
+ indexChild.label = data[i]['Datasets'][j]['Indexes'][k]['IndexName'];
+
+ // is Primary
+ const indexIsPrimaryRoot = { label: '', children: [] };
+ indexIsPrimaryRoot.label = 'isPrimary' + ': ' + data[i]['Datasets'][j]['Indexes'][k]['IsPrimary'];
+ indexChild.children.push(indexIsPrimaryRoot);
+
+ // SearchKey
+ if (data[i]['Datasets'][j]['Indexes'][k]['SearchKey']) {
+ const indexSearchKeyRoot = { label: '', children: [] };
+ indexSearchKeyRoot.label = 'SEARCH KEY';
+ for (let l = 0; l < data[i]['Datasets'][j]['Indexes'][k]['SearchKey'].length; l++) {
+ const indexsearchKeyField = { label: '', children: [] };
+ indexsearchKeyField.label = data[i]['Datasets'][j]['Indexes'][k]['SearchKey'][l]
+ indexSearchKeyRoot.children.push(indexsearchKeyField);
+ }
+
+ indexChild.children.push(indexSearchKeyRoot);
+ indexesMenu.push(indexChild);
+ }
+
+ indexRoot.children.push(indexChild);
+ }
+
+ dataset.children.push(indexRoot);
+ datasetRoot.children.push(dataset);
+ datasetsMenu.push(dataset);
+ }
+ }
+ }
+ // }
+ }
+
+ this.nodesAll.push(dataversesRoot);
+
+ /*
+ * Making the rest of the stand alone submenus
+ */
+
+ // Adding the DATASET stand alone submenu
+ const datasetMenuRoot = { label: '', children: [] };
+ datasetMenuRoot.label = 'DATASETS';
+ datasetMenuRoot.children = datasetsMenu;
+ this.nodesDatasets.push(datasetMenuRoot);
+
+ // Adding the DATATYPES stand alone submenu
+ const datatypeMenuRoot = { label: '', children: [] };
+ datatypeMenuRoot.label = 'DATATYPES';
+ datatypeMenuRoot.children = datatypesMenu;
+ this.nodesDatatypes.push(datatypeMenuRoot);
+
+ // Adding the DATATYPE stand alone submenu
+ const indexesMenuRoot = { label: '', children: [] };
+ indexesMenuRoot.label = 'INDEXES';
+ indexesMenuRoot.children = indexesMenu;
+ this.nodesIndexes.push(indexesMenuRoot);
+
+ // Component View Refresh
+ this.changeDetector.detectChanges();
+ });
+ }
+
+ /*
+ * UI helpers to select dataverses from the guide menu
+ */
+ nodeSelectAll(event) {
+ if (event.node.parent && event.node.parent.label === 'DATASETS') {
+ const datasetName = event.node.label.replace(/-;-/g);
+ this.store.dispatch(new datasetsActions.GuideSelectDatasets(datasetName));
+ }
+ }
+
+ nodeSelectDataset(event) {
+ if (event.node.parent && event.node.parent.label === 'DATASETS') {
+ const datasetName = event.node.label.replace(/-;-/g);
+ this.store.dispatch(new datasetsActions.GuideSelectDatasets(datasetName));
+ }
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/ouput.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/ouput.component.ts
new file mode 100755
index 0000000..fcfc235
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/ouput.component.ts
@@ -0,0 +1,278 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component, OnInit, ViewChild, AfterViewInit, ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';
+import { Observable } from 'rxjs/Observable';
+import { Store } from '@ngrx/store';
+import * as sqlQueryActions from '../../shared/actions/query.actions'
+import { saveAs } from 'file-saver';
+import { DomSanitizer } from '@angular/platform-browser';
+import {TreeModule,TreeNode} from 'primeng/primeng';
+
+/**
+ * query component
+ * has editor (codemirror) for writing some query
+ */
+
+@Pipe({ name: 'safeHtml'})
+export class SafeHtmlPipe implements PipeTransform {
+ constructor(private sanitized: DomSanitizer) {}
+ transform(value) {
+ return this.sanitized.bypassSecurityTrustHtml(value);
+ }
+}
+
+@Component({
+ moduleId: module.id,
+ selector: 'awc-results',
+ templateUrl:'output.component.html',
+ styleUrls: ['output.component.scss']
+})
+
+
+export class QueryOutputComponent implements OnInit {
+ queryMessage: string;
+ treeData = [];
+ flattenData = [];
+ dataColumns = [];
+ query_message: string;
+ execution_time: number;
+ loaded$: Observable<any>
+ data: any[];
+ loading: Boolean;
+ jsonOutput = "";
+ selectedOutputView = "NONE";
+ outputQueryString = "";
+ toogleExpand = "EXPAND TREE"
+
+ /* Codemirror configuration */
+ codemirrorConfig = { mode: "asterix",
+ lineWrapping: true,
+ showCursorWhenSelecting: true
+ };
+
+ generateTreeMenu(node, rootMenu): any {
+
+ // Check in case the root object is not defined properly
+ if (rootMenu === undefined) {
+ rootMenu = { label: '', children: []};
+ }
+
+ let nodeArray = [];
+
+ // Going through all the keys in a node looking for objects or array of key values
+ // and create a sub menu if is an object.
+ Object.keys(node).map((k) => {
+
+ if (typeof node[k] === 'object') {
+ let nodeObject = { label: '', children: []};
+ nodeObject = { label: '', children: []};
+ nodeObject.label = k;
+ // if this is an object then a new node is created and
+ // recursive call to find and fill with the nested elements
+ let newNodeObject = this.generateTreeMenu(node[k], nodeObject);
+
+ // if this is the first node, then will become the root.
+ if (rootMenu.children) {
+ rootMenu.children.push(newNodeObject)
+ } else {
+ rootMenu = newNodeObject
+ }
+ }
+ else {
+ // Array of key values converted into a unique string with a : separator
+ let nodeKeyValue = { label: '', children: []};
+ nodeKeyValue.label = k + " : " + node[k]
+ nodeArray.push(nodeKeyValue);
+ }
+ })
+
+ // The array will be added as value to a parent key.
+ if (nodeArray.length > 0) {
+ rootMenu.children = nodeArray.concat(rootMenu.children)
+ }
+
+ return rootMenu
+ }
+
+ constructor(private store: Store<any>, private changeDetector: ChangeDetectorRef) {
+ this.loaded$ = this.store.select(s => s.sqlQuery.loaded);
+ this.store.select("sqlQuery").subscribe((data: any) => {
+ // Set the output toolbar query string and default view settings
+ if (data.loaded) {
+ this.selectedOutputView = "TABLE";
+ this.loading = true;
+ this.data = data.sqlQueryResult.results;
+ this.treeData = [];
+ let stringQuery = data.sqlQueryString;
+
+ // Preparing the toolbar
+ if (stringQuery.length > 150) {
+ this.outputQueryString = ": " + stringQuery.slice(0, 150) + " (..)"
+ } else {
+ this.outputQueryString = ": " + stringQuery;
+ }
+
+ // Processing the results
+ if (data.sqlQueryResult.results && data.sqlQueryResult.results.length > 0 && this.data[0]) {
+
+ /* Removing the root object, disabled for the time being
+ var resultKeyList = Object.keys(this.data[0]);
+ var resultKey: string = resultKeyList[0];
+ */
+
+ for (let i = 0; i < this.data.length; i++) {
+
+ /* Removing the root object, disabled for the time being
+ if (this.data[i][resultKey] instanceof Object) {
+ this.data[i] = this.data[i][resultKey];
+ }*/
+
+ let nodeContent = { label:"[" + i + "]" , children: []};
+ this.treeData.push(this.generateTreeMenu(this.data[i], nodeContent))
+ }
+
+ this.loading = false;
+ }
+
+ // JSON OUTPUT
+ // Making into a JSON String for JSON String Output
+ this.jsonOutput = JSON.stringify(data.sqlQueryResult.results, null, 2)
+
+ // TABLE OUTPUT
+ if (this.data && this.data.length > 0) {
+
+ this.collapseAll();
+ // Normalize the data ( removing the first key if is an object )
+ // TODO: Move it into a recursive function.
+ this.dataColumns = [];
+
+ var resultKeyList = Object.keys(this.data[0]);
+ var resultKey: string = resultKeyList[0];
+ if (this.data[0][resultKey] instanceof Object) {
+ // is a SQL++ Query Results
+ var nestedKeyList = Object.keys(this.data[0][resultKey]);
+ for (let i = 0; i < nestedKeyList.length; i++) {
+ if (typeof this.data[0][resultKey][nestedKeyList[i]] === 'object') {
+ // Creating a key to display a nested type
+ this.dataColumns.push({field: 'nestedString' + i, header: nestedKeyList[i]})
+
+ } else {
+ this.dataColumns.push({field: nestedKeyList[i], header: nestedKeyList[i] })
+ }
+
+ }
+ }
+ else { // is a SQL++ Metadata Results and there is an Array
+ for (let i = 0; i < resultKeyList.length; i++) {
+ this.dataColumns.push({field: resultKeyList[i], header: resultKeyList[i] })
+ }
+ }
+
+ // Now prepare the data ( SQL++ Query, Metatada Queries no need to change anything ).
+ // TODO: Move it into a recursive function.
+ if (this.data[0][resultKey] instanceof Object) {
+ // is a SQL++ Query Results
+ for (let i = 0; i < this.data.length; i++) {
+
+ // // is a SQL++ Query Results
+ var nestedKeyList = Object.keys(this.data[i][resultKey]);
+ for (let k = 0; k < nestedKeyList.length; k++) {
+ if ( typeof this.data[i][resultKey][nestedKeyList[k]] === 'object' ){
+ // Creating a display value to for a nested type JSON.stringify(jsObj,
+ var nestedObjectStr = JSON.stringify(this.data[i][resultKey][nestedKeyList[k]], null, '\n');
+ var nestedKey = 'nestedString' + k;
+ this.data[i][resultKey][nestedKey] = nestedObjectStr;
+ }
+ }
+
+ this.data[i] = this.data[i][resultKey];
+ }
+ }
+ }
+ }
+ });
+ }
+
+ /*
+ * Subscribing to store values
+ */
+ ngOnInit(): void {
+ this.loaded$ = this.store.select('sqlQuery');
+ this.store.select("sqlQuery").subscribe((data: any) => {
+ if (data.sqlQueryError.errors){
+ this.queryMessage = data.sqlQueryError.errors[0].msg
+ }else{
+ this.queryMessage = ""
+ }
+ })
+ }
+
+ /*
+ * Changes view mode [ TABLE, TREE, JSON VIEW ]
+ */
+ onSelect(value: any) {
+ this.selectedOutputView = value;
+ }
+
+ /*
+ * Export to CSV
+ */
+ exportToCSV(){
+ var blob = new Blob([this.jsonOutput], {type: "text/csv;charset=utf-8"});
+ saveAs(blob, "Asterix-results.csv");
+ }
+
+ /*
+ * Export to plain text
+ */
+ exportToText(){
+ var exportOutput = this.jsonOutput;
+ var blob = new Blob([exportOutput], {type: "text/plain;charset=utf-8"});
+ saveAs(blob, "Asterix-results.txt");
+ }
+
+ /*
+ * Expand/Collapse Tree
+ */
+ expandTree(){
+ if (this.toogleExpand === "EXPAND TREE"){
+ this.expandAll();
+ } else {
+ this.collapseAll();
+ }
+ }
+
+ expandAll(){
+ this.toogleExpand = "TREE COLLAPSE";
+ this.treeData.forEach( node => {
+ this.expandRecursive(node, true);
+ } );
+ }
+
+ collapseAll(){
+ this.toogleExpand = "EXPAND TREE";
+ this.treeData.forEach( node => {
+ this.expandRecursive(node, false);
+ } );
+ }
+
+ private expandRecursive(node:TreeNode, isExpand:boolean){
+ node.expanded = isExpand;
+ if(node.children){
+ node.children.forEach( childNode => {
+ this.expandRecursive(childNode, isExpand);
+ } );
+ }
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/output.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/output.component.html
new file mode 100755
index 0000000..f7c4b43
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/output.component.html
@@ -0,0 +1,68 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+<mat-card class="sql-results-card">
+ <mat-toolbar color="primary" class="results-selector">
+ <mat-icon class="toolbar-icon">menu</mat-icon>
+ <span class="output-query-string">OUTPUT{{outputQueryString}}</span>
+ <span class="spacer"></span>
+ </mat-toolbar>
+ <mat-card-content class="content-area">
+ <div *ngIf="loaded$ | async as ld">
+ <div *ngIf="selectedOutputView=='TABLE'">
+ <p-dataTable [style]="{'width':'100%', 'overflow':'hidden'}" id='review-table' [responsive]="true" [hidden]="loading" [value]="data" [rows]="20" [paginator]="true" [pageLinks]="3" [rowsPerPageOptions]="[5,10,20, 30, 40, 50]" >
+ <p-column [style]="{'text-align':'left',
+ 'text-overflow': 'ellipsis', 'word-wrap': 'break-word', 'word-break': 'break-all'}"
+
+ [footerStyle]="{'color':'blue'}" [headerStyleClass]="datatable-header" *ngFor="let node of dataColumns;" [field]="node.field"
+ [header]="node.header" [sortable]="true">
+ </p-column>
+ </p-dataTable>
+ </div>
+ </div>
+ <div *ngIf="loaded$ | async as ld">
+ <div *ngIf="ld.sqlQueryError.metrics" class="queryErrorMessage">
+ <span>ERROR:</span>
+ <span>{{queryMessage}}</span>
+ </div>
+ <div [hidden]="selectedOutputView!='TREE'" class="data-viewer-container">
+ <button mat-button class="button-expand" (click)="expandTree()">{{toogleExpand}}</button>
+ <p-tree [style]="{'width':'100%', 'border': 'none', 'font-family': 'Roboto Mono', 'font-size': '0.80rem',
+ 'font-weight': '500'}" [value]="treeData"></p-tree>
+ </div>
+ <div *ngIf="loaded$ | async as ld">
+ <div *ngIf="selectedOutputView=='JSON'" class="data-viewer-container">
+ <button mat-button class="button-export" (click)="exportToText()">EXPORT</button>
+ <pre class="json-output">{{jsonOutput}}</pre>
+ </div>
+ </div>
+ </div>
+ </mat-card-content>
+ <mat-card-actions class="actions">
+ <div *ngIf="loaded$ | async as ld">
+ <span *ngIf="ld.sqlQueryResult.metrics" class="metrics">
+ <span class="span-results">SUCCESS:</span>
+ <span class="span-results">Count: {{ld.sqlQueryResult.metrics.resultCount}}</span>
+ <span class="span-results">Size: {{ld.sqlQueryResult.metrics.resultSize}}</span>
+ <span class="span-results">Elapsed time: {{ld.sqlQueryResult.metrics.elapsedTime}}</span>
+ <span class="span-results">Execution time: {{ld.sqlQueryResult.metrics.executionTime}}</span>
+ <span class="spacer"></span>
+ <mat-button-toggle-group #group="matButtonToggleGroup" class="output-group" value={{selectedOutput}} (change)="onSelect(group.value)">
+ <mat-button-toggle mat-button value="TABLE">TABLE</mat-button-toggle>
+ <mat-button-toggle mat-button value="TREE">TREE</mat-button-toggle>
+ <mat-button-toggle mat-button value="JSON">JSON</mat-button-toggle>
+ </mat-button-toggle-group>
+ </span>
+ </div>
+ </mat-card-actions>
+</mat-card>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/output.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/output.component.scss
new file mode 100755
index 0000000..099ca87
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/output.component.scss
@@ -0,0 +1,169 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+$results-spacing-unit: 5px;
+
+.sql-results-card {
+ display: flex;
+ flex-flow: column;
+ padding: 0;
+ height: 600px;
+ width: 100%; // 1350px;
+ margin: ($results-spacing-unit * 2);
+ min-height: 150px;
+}
+
+.toolbar-icon {
+ padding: 0 14px 0 0;
+ margin: 0;
+}
+
+.spacer {
+ flex: 1 1 auto;
+}
+
+.results-selector {
+ max-height: 42px;
+ min-height: 42px;
+ justify-content: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ font-size: 0.80rem;
+ font-weight: 500;
+ background-color: white;
+ border: 1px solid rgba(54, 147, 209, 0.87);
+ overflow-wrap: break-word;
+ word-break: break-all;
+}
+
+.content-area {
+ position: relative;
+ color: hsla(0,0%,0%,.87);
+ height: 500px;
+ padding: 0;
+ margin: 0;
+ overflow: auto;
+ font-size: 0.80rem;
+ font-weight: 500;
+ font-family: "Roboto", monospace;
+}
+
+.root-closed {
+ list-style-type:none;
+}
+
+.root-open {
+ list-style-type:none;
+}
+
+.leaf-list-open {
+ list-style-type:none;
+ // padding-top: ($results-spacing-unit) * 2;
+ padding-left: 25px;
+ color: red;
+}
+
+.leaf-list-open.div
+//.leaf-list-open.ul
+.leaf-list-open.li {
+ margin-left: ($results-spacing-unit * 10) !important;
+ color: green;
+}
+
+.leaf {
+ color: blue;
+}
+
+.leaf-list-closed {
+ list-style-type:none;
+ display: none;
+}
+
+ul > .root-closed::before {
+ content:'+'
+}
+
+ul > .root-open::before {
+ content:'-'
+}
+
+.queryErrorMessage {
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(209, 54, 54, 0.87);
+ padding: $results-spacing-unit;
+ padding-left: ($results-spacing-unit * 2);
+}
+
+.metrics {
+ display: flex;
+ color: rgba(54, 147, 209, 0.87);
+ font-size: 0.80rem;
+ font-weight: 500;
+}
+
+.span-results {
+ padding-top: ($results-spacing-unit * 2);
+ padding-left: ($results-spacing-unit * 2);
+}
+
+.actions {
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
+ color: rgba(54, 147, 209, 0.87);
+ margin: 0;
+}
+
+//someID\:review-table
+th {
+ text-align: left !important;
+}
+
+.datatable-header {
+ color: red !important;
+ background-color: blue;
+}
+
+.data-viewer-container {
+ padding: ($results-spacing-unit * 4);
+ padding-bottom: ($results-spacing-unit * 8);
+ height: 100%;
+ overflow: hidden;
+}
+
+.output-group {
+ margin-right: ($results-spacing-unit * 4);
+}
+
+.menu-export {
+ font-size: 0.80rem !important;
+ font-weight: 500 !important;
+}
+
+.button-export {
+ margin-right: ($results-spacing-unit * 4);
+ color: rgba(54, 147, 209, 0.87);
+}
+
+.button-expand {
+ margin-right: ($results-spacing-unit * 4);
+ color: rgba(54, 147, 209, 0.87);
+}
+
+.ui-datatable-data> tr> td {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 150px;
+ color: red;
+}
+
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/query-container.component.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/query-container.component.html
new file mode 100755
index 0000000..6dd3ef3
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/query-container.component.html
@@ -0,0 +1,24 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/ -->
+
+<div class="query-container">
+ <div class="metadata">
+ <awc-metadata class="metadata-card"></awc-metadata>
+ </div>
+ <div class="vertical">
+ <awc-query class="query-card"></awc-query>
+ <awc-results class="output-card"></awc-results>
+ </div>
+</div>
+
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/query-container.component.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/query-container.component.scss
new file mode 100755
index 0000000..d6b530b
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/query-container.component.scss
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ .query-container {
+ display: flex;
+ flex-direction: row;
+ //background-color: red;
+ width: 100%;
+ margin:0;
+ padding:0;
+ overflow: hidden;
+ }
+
+.metadata {
+ display: flex;
+ flex-direction: row;
+ width: 20%;
+ // background-color: rgb(0, 255, 42);
+ margin:0;
+ padding: 0;
+ // padding-right: 10px;
+ border-right: 1px solid hsla(0,0%,0%,.20);
+}
+
+.vertical {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 80%;
+ overflow: hidden;
+ margin:0;
+ padding: 1px0;
+ // background-color: rgb(38, 0, 255);
+}
+
+.metadata-card {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ width: 100%;
+ overflow: hidden;
+ margin:0;
+ padding: 0;
+ // background-color: green;
+}
+
+.query-card {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ width: 100%;
+ overflow: hidden;
+ margin:0;
+ padding: 0;
+ //background-color: green;
+}
+
+.output-card {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ width: 100%;
+ overflow: hidden;
+ margin:0;
+ padding: 0;
+ //background-color: yellow;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/query-container.component.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/query-container.component.ts
new file mode 100755
index 0000000..776e184
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/dashboard/query/query-container.component.ts
@@ -0,0 +1,74 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Component, OnInit } from '@angular/core';
+import { Router } from '@angular/router';
+import { Dataverse } from '../../shared/models/asterixDB.model'
+import { Store } from '@ngrx/store';
+import { Observable } from 'rxjs/Observable';
+import * as dataverseActions from '../../shared/actions/dataverse.actions'
+import * as datasetActions from '../../shared/actions/dataset.actions'
+import * as datatypesActions from '../../shared/actions/datatype.actions'
+import * as indexesActions from '../../shared/actions/index.actions'
+import * as metadataActions from '../../shared/actions/metadata.actions'
+import { ElementRef, ViewChild} from '@angular/core';
+import {DataSource} from '@angular/cdk/collections';
+import {BehaviorSubject} from 'rxjs/BehaviorSubject';
+import 'rxjs/add/operator/startWith';
+import 'rxjs/add/observable/merge';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/debounceTime';
+import 'rxjs/add/operator/distinctUntilChanged';
+import 'rxjs/add/observable/fromEvent';
+import { Subscription } from "rxjs/Rx";
+import * as fromRoot from '../../shared/reducers/dataverse.reducer';
+import { State } from '../../shared/reducers/dataverse.reducer';
+import * as sqlQueryActions from '../../shared/actions/query.actions'
+/*
+ * query component
+ * has editor (codemirror) for writing some query
+ */
+@Component({
+ moduleId: module.id,
+ selector: 'awc-query-container',
+ templateUrl:'query-container.component.html',
+ styleUrls: ['query-container.component.scss']
+})
+
+export class QueryContainerComponent {
+ nodes = []
+ constructor(private store: Store<any>) {
+
+ this.store.select(s => s.metadata.tree).subscribe((data: any[]) => {
+ this.nodes = []
+ for (let i = 0; i < data.length; i++) {
+ if (data[i]['DataverseName']) {
+ let node = { id: 0, name:"", children:[] };
+ node.id = i;
+ node.name = data[i]['DataverseName'];
+ for (let j = 0; j < data[i]['Datasets'].length; j++) {
+ let children = { id: 0, name:"", children:[] };
+ children.id = j
+ children.name = data[i]['Datasets'][j]['DatasetName'];
+ node.children.push(children)
+ }
+ this.nodes.push(node)
+ }
+ }
+ });
+ }
+
+ treeCalc() {
+ this.store.dispatch(new metadataActions.UpdateMetadataTree());
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/db.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/db.ts
new file mode 100755
index 0000000..8f51b00
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/db.ts
@@ -0,0 +1,23 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { DBSchema } from '@ngrx/db';
+
+/*
+* Persistent storage capability to the dashboard in case is needed.
+*/
+export const schema: DBSchema = {
+ version: 1,
+ name: 'asterixDB_app',
+ stores: {},
+};
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/material.module.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/material.module.ts
new file mode 100755
index 0000000..3bb67d9
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/material.module.ts
@@ -0,0 +1,105 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import {NgModule} from '@angular/core';
+import {
+ MatAutocompleteModule,
+ MatButtonModule,
+ MatButtonToggleModule,
+ MatCardModule,
+ MatCheckboxModule,
+ MatChipsModule,
+ MatDatepickerModule,
+ MatDialogModule,
+ MatExpansionModule,
+ MatFormFieldModule,
+ MatGridListModule,
+ MatIconModule,
+ MatInputModule,
+ MatListModule,
+ MatMenuModule,
+ MatPaginatorModule,
+ MatProgressBarModule,
+ MatProgressSpinnerModule,
+ MatRadioModule,
+ MatSelectModule,
+ MatSidenavModule,
+ MatSliderModule,
+ MatSlideToggleModule,
+ MatSnackBarModule,
+ MatSortModule,
+ MatTableModule,
+ MatTabsModule,
+ MatToolbarModule,
+ MatTooltipModule,
+ MatStepperModule,
+} from '@angular/material';
+import {MatNativeDateModule, MatRippleModule} from '@angular/material';
+import {CdkTableModule} from '@angular/cdk/table';
+//import {CdkAccordionModule} from '@angular/cdk/accordion';
+import {A11yModule} from '@angular/cdk/a11y';
+import {BidiModule} from '@angular/cdk/bidi';
+import {OverlayModule} from '@angular/cdk/overlay';
+import {PlatformModule} from '@angular/cdk/platform';
+import {ObserversModule} from '@angular/cdk/observers';
+import {PortalModule} from '@angular/cdk/portal';
+
+/*
+* NgModule that includes all Material modules that are required to
+* serve AsterixDB Dashboard
+*/
+@NgModule({
+ exports: [
+ MatAutocompleteModule,
+ MatButtonModule,
+ MatButtonToggleModule,
+ MatCardModule,
+ MatCheckboxModule,
+ MatChipsModule,
+ MatTableModule,
+ MatDatepickerModule,
+ MatDialogModule,
+ MatExpansionModule,
+ MatFormFieldModule,
+ MatGridListModule,
+ MatIconModule,
+ MatInputModule,
+ MatListModule,
+ MatMenuModule,
+ MatPaginatorModule,
+ MatProgressBarModule,
+ MatProgressSpinnerModule,
+ MatRadioModule,
+ MatRippleModule,
+ MatSelectModule,
+ MatSidenavModule,
+ MatSlideToggleModule,
+ MatSliderModule,
+ MatSnackBarModule,
+ MatSortModule,
+ MatStepperModule,
+ MatTabsModule,
+ MatToolbarModule,
+ MatTooltipModule,
+ MatNativeDateModule,
+ CdkTableModule,
+ A11yModule,
+ BidiModule,
+ // CdkAccordionModule,
+ ObserversModule,
+ OverlayModule,
+ PlatformModule,
+ PortalModule,
+ ]
+})
+export class MaterialModule {}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/app.actions.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/app.actions.ts
new file mode 100755
index 0000000..29da05f
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/app.actions.ts
@@ -0,0 +1,33 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Action } from '@ngrx/store';
+import { AsterixDBQueryMessage, Dataset } from '../models/asterixDB.model';
+
+/*
+* Definition of App Actions
+*/
+export const APP_MODE_CHANGE = '[App State] App Mode Change';
+
+/*
+* Guide Select Datasets for UI Helpers
+*/
+export class ChangeMode implements Action {
+ readonly type = APP_MODE_CHANGE;
+ constructor(public payload: string) {}
+}
+
+/*
+* Exports of datasets actions
+*/
+export type All = ChangeMode;
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/dataset.actions.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/dataset.actions.ts
new file mode 100755
index 0000000..a49e07c
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/dataset.actions.ts
@@ -0,0 +1,130 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Action } from '@ngrx/store';
+import { AsterixDBQueryMessage, Dataset } from '../models/asterixDB.model';
+
+/*
+* Definition of Datasets Actions
+*/
+export const SELECT_DATASETS = '[Dataset Collection] Select Dataset';
+export const SELECT_DATASETS_SUCCESS = '[Dataset Collection] Select Dataset Success';
+export const SELECT_DATASETS_FAIL = '[Dataset Collection] Select Dataset Fail';
+export const CREATE_DATASET = '[Dataset Collection] Create Dataset';
+export const CREATE_DATASET_SUCCESS = '[Dataset Collection] Create Dataset Success';
+export const CREATE_DATASET_FAIL = '[Dataset Collection] Create Dataset Fail';
+export const UPDATE_DATASET = '[Dataset Collection] Update Dataset';
+export const UPDATE_DATASET_SUCCESS = '[Dataset Collection] Update Dataset Success';
+export const UPDATE_DATASET_FAIL = '[Dataset Collection] Update Dataset Fail';
+export const DROP_DATASET = '[Dataset Collection] Drop Dataset';
+export const DROP_DATASET_SUCCESS = '[Dataset Collection] Drop Dataset Success';
+export const DROP_DATASET_FAIL = '[Dataset Collection] Drop Dataset Fail';
+export const GUIDE_SELECT_DATASET = '[Dataset Collection] Guide Select Dataset';
+
+
+/*
+* Guide Select Datasets for UI Helpers
+*/
+export class GuideSelectDatasets implements Action {
+ readonly type = GUIDE_SELECT_DATASET;
+ constructor(public payload: string) {}
+}
+
+/*
+* Select Datasets
+*/
+export class SelectDatasets implements Action {
+ readonly type = SELECT_DATASETS;
+ constructor(public payload: string) {}
+}
+
+export class SelectDatasetsSuccess implements Action {
+ readonly type = SELECT_DATASETS_SUCCESS;
+ constructor(public payload: AsterixDBQueryMessage[]) {}
+}
+
+export class SelectDatasetsFail implements Action {
+ readonly type = SELECT_DATASETS_FAIL;
+ constructor(public payload: AsterixDBQueryMessage[]) {}
+}
+
+/*
+* Create Dataset
+*/
+export class CreateDataset implements Action {
+ readonly type = CREATE_DATASET;
+ constructor(public payload: string) {}
+}
+
+export class CreateDatasetSuccess implements Action {
+ readonly type = CREATE_DATASET_SUCCESS;
+ constructor(public payload: Dataset[]) {}
+}
+
+export class CreateDatasetFail implements Action {
+ readonly type = CREATE_DATASET_FAIL;
+ constructor(public payload: Dataset) {}
+}
+
+/*
+* Update Dataset
+*/
+export class UpdateDataset implements Action {
+ readonly type = UPDATE_DATASET;
+ constructor(public payload: Dataset) {}
+}
+
+export class UpdateDatasetSuccess implements Action {
+ readonly type = UPDATE_DATASET_SUCCESS;
+ constructor(public payload: Dataset[]) {}
+}
+
+export class UpdateDatasetFail implements Action {
+ readonly type = UPDATE_DATASET_FAIL;
+ constructor(public payload: Dataset) {}
+}
+
+/*
+* Drop Dataset
+*/
+export class DropDataset implements Action {
+ readonly type = DROP_DATASET;
+ constructor(public payload: string) {}
+}
+
+export class DropDatasetSuccess implements Action {
+ readonly type = DROP_DATASET_SUCCESS;
+ constructor(public payload: Dataset[]) {}
+}
+
+export class DropDatasetFail implements Action {
+ readonly type = DROP_DATASET_FAIL;
+ constructor(public payload: Dataset) {}
+}
+
+/*
+* Exports of datasets actions
+*/
+export type All = SelectDatasets |
+ SelectDatasetsSuccess |
+ SelectDatasetsFail |
+ CreateDataset |
+ CreateDatasetSuccess |
+ CreateDatasetFail |
+ UpdateDataset |
+ UpdateDatasetSuccess |
+ UpdateDatasetFail |
+ DropDataset |
+ DropDatasetSuccess |
+ DropDatasetFail |
+ GuideSelectDatasets;
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/datatype.actions.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/datatype.actions.ts
new file mode 100755
index 0000000..5543a7a
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/datatype.actions.ts
@@ -0,0 +1,122 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Action } from '@ngrx/store';
+import { AsterixDBQueryMessage, Datatype } from '../models/asterixDB.model';
+
+/*
+* Definition of Datatypes Actions
+*/
+export const SELECT_DATATYPES = '[Datatype Collection] Select Datatypes';
+export const SELECT_DATATYPES_SUCCESS = '[Datatype Collection] Select Datatypes Success';
+export const SELECT_DATATYPES_FAIL = '[Datatype Collection] Select Datatypes Fail';
+export const CREATE_DATATYPE = '[Datatype Collection] Create Datatypes';
+export const CREATE_DATATYPE_SUCCESS = '[Datatype Collection] Create Datatypes Success';
+export const CREATE_DATATYPE_FAIL = '[Datatype Collection] Create Datatypes Fail';
+export const UPDATE_DATATYPE = '[Datatype Collection] Update Datatype';
+export const UPDATE_DATATYPE_SUCCESS = '[Datatype Collection] Update Datatype Success';
+export const UPDATE_DATATYPE_FAIL = '[Datatype Collection] Update Datatype Fail';
+export const DROP_DATATYPE = '[Datatype Collection] Drop Datatypes';
+export const DROP_DATATYPE_SUCCESS = '[Datatype Collection] Drop Datatypes Success';
+export const DROP_DATATYPE_FAIL = '[Datatype Collection] Drop Datatypes Fail';
+
+/*
+* Select Datatypes
+*/
+export class SelectDatatypes implements Action {
+ readonly type = SELECT_DATATYPES;
+ constructor(public payload: string) {}
+}
+
+export class SelectDatatypesSuccess implements Action {
+ readonly type = SELECT_DATATYPES_SUCCESS;
+ constructor(public payload: AsterixDBQueryMessage[]) {}
+}
+
+export class SelectDatatypesFail implements Action {
+ readonly type = SELECT_DATATYPES_FAIL;
+ constructor(public payload: AsterixDBQueryMessage[]) {}
+}
+
+/*
+* Create Datatype
+*/
+export class CreateDatatype implements Action {
+ readonly type = CREATE_DATATYPE;
+ constructor(public payload: string) {}
+}
+
+export class CreateDatatypeSuccess implements Action {
+ readonly type = CREATE_DATATYPE_SUCCESS;
+ constructor(public payload: Datatype[]) {}
+}
+
+export class CreateDatatypeFail implements Action {
+ readonly type = CREATE_DATATYPE_FAIL;
+ constructor(public payload: Datatype) {}
+}
+
+/*
+* Update Datatype
+*/
+export class UpdateDatatype implements Action {
+ readonly type = UPDATE_DATATYPE;
+ constructor(public payload: Datatype) {}
+}
+
+export class UpdateDatatypeSuccess implements Action {
+ readonly type = UPDATE_DATATYPE_SUCCESS;
+ constructor(public payload: Datatype[]) {}
+}
+
+export class UpdateDatatypeFail implements Action {
+ readonly type = UPDATE_DATATYPE_FAIL;
+ constructor(public payload: Datatype) {}
+}
+
+/*
+* Drop Datatype
+*/
+export class DropDatatype implements Action {
+ readonly type = DROP_DATATYPE;
+
+ constructor(public payload: string) {}
+}
+
+export class DropDatatypeSuccess implements Action {
+ readonly type = DROP_DATATYPE_SUCCESS;
+
+ constructor(public payload: Datatype[]) {}
+}
+
+export class DropDatatypeFail implements Action {
+ readonly type = DROP_DATATYPE_FAIL;
+
+ constructor(public payload: Datatype) {}
+}
+
+/*
+* Exports of datastypes actions
+*/
+export type All = SelectDatatypes |
+ SelectDatatypesSuccess |
+ SelectDatatypesFail |
+ CreateDatatype |
+ CreateDatatypeSuccess |
+ CreateDatatypeFail |
+ UpdateDatatype |
+ UpdateDatatypeSuccess |
+ UpdateDatatypeFail |
+ DropDatatype |
+ DropDatatypeSuccess |
+ DropDatatypeFail;
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/dataverse.actions.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/dataverse.actions.ts
new file mode 100755
index 0000000..dc33c0a
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/dataverse.actions.ts
@@ -0,0 +1,119 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Action } from '@ngrx/store';
+import { AsterixDBQueryMessage, Dataverse } from '../models/asterixDB.model';
+
+/*
+* Definition of Dataverses Actions
+*/
+export const SELECT_DATAVERSES = '[Dataverse Collection] Select Dataverses';
+export const SELECT_DATAVERSES_SUCCESS = '[Dataverse Collection] Select Dataverses Success';
+export const SELECT_DATAVERSES_FAIL = '[Dataverse Collection] Select Dataverses Fail';
+export const CREATE_DATAVERSE = '[Dataverse Collection] Create Dataverse';
+export const CREATE_DATAVERSE_SUCCESS = '[Dataverse Collection] Create Dataverse Success';
+export const CREATE_DATAVERSE_FAIL = '[Dataverse Collection] Create Dataverse Fail';
+export const UPDATE_DATAVERSE = '[Dataverse Collection] Update Dataverse';
+export const UPDATE_DATAVERSE_SUCCESS = '[Dataverse Collection] Update Dataverse Success';
+export const UPDATE_DATAVERSE_FAIL = '[Dataverse Collection] Update Dataverse Fail';
+export const DROP_DATAVERSE = '[Dataverse Collection] Drop Dataverses';
+export const DROP_DATAVERSE_SUCCESS = '[Dataverse Collection] Drop Dataverses Success';
+export const DROP_DATAVERSE_FAIL = '[Dataverse Collection] Drop Dataverses Fail';
+
+/*
+* Select Dataverses
+*/
+export class SelectDataverses implements Action {
+ readonly type = SELECT_DATAVERSES;
+ constructor(public payload: string) {}
+}
+
+export class SelectDataversesSuccess implements Action {
+ readonly type = SELECT_DATAVERSES_SUCCESS;
+ constructor(public payload: AsterixDBQueryMessage[]) {}
+}
+
+export class SelectDataversesFail implements Action {
+ readonly type = SELECT_DATAVERSES_FAIL;
+ constructor(public payload: AsterixDBQueryMessage[]) {}
+}
+
+/*
+* Create Dataverse
+*/
+export class CreateDataverse implements Action {
+ readonly type = CREATE_DATAVERSE;
+ constructor(public payload: string) {}
+}
+
+export class CreateDataverseSuccess implements Action {
+ readonly type = CREATE_DATAVERSE_SUCCESS;
+ constructor(public payload: Dataverse[]) {}
+}
+
+export class CreateDataverseFail implements Action {
+ readonly type = CREATE_DATAVERSE_FAIL;
+ constructor(public payload: Dataverse) {}
+}
+
+/*
+* Update Dataverse
+*/
+export class UpdateDataverse implements Action {
+ readonly type = UPDATE_DATAVERSE;
+ constructor(public payload: Dataverse) {}
+}
+
+export class UpdateDataverseSuccess implements Action {
+ readonly type = UPDATE_DATAVERSE_SUCCESS;
+ constructor(public payload: Dataverse[]) {}
+}
+
+export class UpdateDataverseFail implements Action {
+ readonly type = UPDATE_DATAVERSE_FAIL;
+ constructor(public payload: Dataverse) {}
+}
+
+/*
+* Drop Dataverse
+*/
+export class DropDataverse implements Action {
+ readonly type = DROP_DATAVERSE;
+ constructor(public payload: string) {}
+}
+
+export class DropDataverseSuccess implements Action {
+ readonly type = DROP_DATAVERSE_SUCCESS;
+ constructor(public payload: Dataverse[]) {}
+}
+
+export class DropDataverseFail implements Action {
+ readonly type = DROP_DATAVERSE_FAIL;
+ constructor(public payload: Dataverse) {}
+}
+
+/*
+* Exports of datasverses actions
+*/
+export type All = SelectDataverses |
+ SelectDataversesSuccess |
+ SelectDataversesFail |
+ CreateDataverse |
+ CreateDataverseSuccess |
+ CreateDataverseFail |
+ UpdateDataverse |
+ UpdateDataverseSuccess |
+ UpdateDataverseFail |
+ DropDataverse |
+ DropDataverseSuccess |
+ DropDataverseFail;
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/index.actions.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/index.actions.ts
new file mode 100755
index 0000000..1304644
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/index.actions.ts
@@ -0,0 +1,119 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Action } from '@ngrx/store';
+import { Index } from '../models/asterixDB.model';
+
+/*
+* Definition of Index Actions
+*/
+export const SELECT_INDEXES = '[Index Collection] Select Indexes';
+export const SELECT_INDEXES_SUCCESS = '[Index Collection] Select Indexes Success';
+export const SELECT_INDEXES_FAIL = '[Index Collection] Select Indexes Fail';
+export const CREATE_INDEX = '[Index Collection] Create Index';
+export const CREATE_INDEX_SUCCESS = '[Index Collection] Create Index Success';
+export const CREATE_INDEX_FAIL = '[Index Collection] Create Index Fail';
+export const UPDATE_INDEX = '[Index Collection] Update Index';
+export const UPDATE_INDEX_SUCCESS = '[Index Collection] Update Index Success';
+export const UPDATE_INDEX_FAIL = '[Index Collection] Update Index Fail';
+export const DROP_INDEX = '[Index Collection] Drop Indexes';
+export const DROP_INDEX_SUCCESS = '[Index Collection] Drop Indexes Success';
+export const DROP_INDEX_FAIL = '[Index Collection] Drop Indexes Fail';
+
+/*
+* Select Indexes
+*/
+export class SelectIndexes implements Action {
+ readonly type = SELECT_INDEXES;
+ constructor(public payload: string) {}
+}
+
+export class SelectIndexesSuccess implements Action {
+ readonly type = SELECT_INDEXES_SUCCESS;
+ constructor(public payload: Index[]) {}
+}
+
+export class SelectIndexesFail implements Action {
+ readonly type = SELECT_INDEXES_FAIL;
+ constructor(public payload: Index[]) {}
+}
+
+/*
+* Create Index
+*/
+export class CreateIndex implements Action {
+ readonly type = CREATE_INDEX;
+ constructor(public payload: string) {}
+}
+
+export class CreateIndexSuccess implements Action {
+ readonly type = CREATE_INDEX_SUCCESS;
+ constructor(public payload: Index[]) {}
+}
+
+export class CreateIndexFail implements Action {
+ readonly type = CREATE_INDEX_FAIL;
+ constructor(public payload: Index) {}
+}
+
+/*
+* Update Index
+*/
+export class UpdateIndex implements Action {
+ readonly type = UPDATE_INDEX;
+ constructor(public payload: Index) {}
+}
+
+export class UpdateIndexSuccess implements Action {
+ readonly type = UPDATE_INDEX_SUCCESS;
+ constructor(public payload: Index[]) {}
+}
+
+export class UpdateIndexFail implements Action {
+ readonly type = UPDATE_INDEX_FAIL;
+ constructor(public payload: Index) {}
+}
+
+/*
+* Remove Index
+*/
+export class DropIndex implements Action {
+ readonly type = DROP_INDEX;
+ constructor(public payload: string) {}
+}
+
+export class DropIndexSuccess implements Action {
+ readonly type = DROP_INDEX_SUCCESS;
+ constructor(public payload: Index[]) {}
+}
+
+export class DropIndexFail implements Action {
+ readonly type = DROP_INDEX_FAIL;
+ constructor(public payload: Index) {}
+}
+
+/*
+* Exports of indexes actions
+*/
+export type All = SelectIndexes |
+ SelectIndexesSuccess |
+ SelectIndexesFail |
+ CreateIndex |
+ CreateIndexSuccess |
+ CreateIndexFail |
+ UpdateIndex |
+ UpdateIndexSuccess |
+ UpdateIndexFail |
+ DropIndex |
+ DropIndexSuccess |
+ DropIndexFail;
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/metadata.actions.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/metadata.actions.ts
new file mode 100755
index 0000000..4a3c125
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/metadata.actions.ts
@@ -0,0 +1,46 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Action } from '@ngrx/store';
+
+/*
+* Definition of Metadata Tree Actions
+*/
+export const UPDATE_METADATA_TREE = '[Metadata Tree Query] UPDATE Metadata tree';
+export const UPDATE_METADATA_TREE_SUCCESS = '[Metadata Tree Query] UPDATE Metadata tree Success';
+export const UPDATE_METADATA_TREE_FAIL = '[Metadata Tree Query] UPDATE Metadata tree Fail';
+
+/*
+* Construct Metadata Tree Actions
+*/
+export class UpdateMetadataTree implements Action {
+ readonly type = UPDATE_METADATA_TREE
+ constructor() {}
+}
+
+export class UpdateMetadataTreeSuccess implements Action {
+ readonly type = UPDATE_METADATA_TREE_SUCCESS;
+ constructor(public payload: any) {}
+}
+
+export class UpdateMetadataTreeFail implements Action {
+ readonly type = UPDATE_METADATA_TREE_FAIL;
+ constructor(public payload: any) {}
+}
+
+/*
+* Exports of Metatada Tree actions
+*/
+export type All = UpdateMetadataTree |
+ UpdateMetadataTreeSuccess |
+ UpdateMetadataTreeFail;
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/query.actions.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/query.actions.ts
new file mode 100755
index 0000000..866b3e9
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/actions/query.actions.ts
@@ -0,0 +1,71 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Action } from '@ngrx/store';
+import { AsterixDBQueryMessage } from '../models/asterixDB.model';
+
+/*
+* Definition of SQL++ Actions
+*/
+export const EXECUTE_QUERY = '[Query] Execute SQL++ Query';
+export const EXECUTE_QUERY_SUCCESS = '[Query] Execute SQL++ Query Success';
+export const EXECUTE_QUERY_FAIL = '[Query] Execute SQL++ Query Fail';
+export const EXECUTE_METADATA_QUERY = '[Query] Execute Metadata SQL++ Query';
+export const EXECUTE_METADATA_QUERY_SUCCESS = '[Query] Execute Metadata SQL++ Query Success';
+export const EXECUTE_METADATA_QUERY_FAIL = '[Query] Execute Metadata SQL++ Query Fail';
+
+/*
+* Execute SQL++ Query
+*/
+export class ExecuteQuery implements Action {
+ readonly type = EXECUTE_QUERY;
+ constructor(public payload: string) {} // the AsterixDB Query String
+}
+
+export class ExecuteQuerySuccess implements Action {
+ readonly type = EXECUTE_QUERY_SUCCESS;
+ constructor(public payload: AsterixDBQueryMessage[]) {}
+}
+
+export class ExecuteQueryFail implements Action {
+ readonly type = EXECUTE_QUERY_FAIL;
+ constructor(public payload: AsterixDBQueryMessage[]) {}
+}
+
+/*
+* Execute Metadata SQL++ Query
+*/
+export class ExecuteMetadataQuery implements Action {
+ readonly type = EXECUTE_METADATA_QUERY;
+ constructor(public payload: string) {} // the AsterixDB Query String
+}
+
+export class ExecuteMetadataQuerySuccess implements Action {
+ readonly type = EXECUTE_METADATA_QUERY_SUCCESS;
+ constructor(public payload: AsterixDBQueryMessage[]) {}
+}
+
+export class ExecuteMetadataQueryFail implements Action {
+ readonly type = EXECUTE_METADATA_QUERY_FAIL;
+ constructor(public payload: AsterixDBQueryMessage[]) {}
+}
+
+/*
+* Exports of SQL++ actions
+*/
+export type All = ExecuteQuery |
+ ExecuteQuerySuccess |
+ ExecuteQueryFail |
+ ExecuteMetadataQuery |
+ ExecuteMetadataQuerySuccess |
+ ExecuteMetadataQueryFail;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/dataset.effects.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/dataset.effects.ts
new file mode 100755
index 0000000..b5624a4
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/dataset.effects.ts
@@ -0,0 +1,65 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Injectable } from '@angular/core';
+import { Action } from '@ngrx/store';
+import { Effect, Actions } from '@ngrx/effects';
+import { Observable } from 'rxjs/Observable';
+import { of } from 'rxjs/observable/of';
+import * as datasetActions from '../actions/dataset.actions';
+import { SQLService } from '../services/async-query.service';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/switchMap';
+import 'rxjs/add/operator/catch';
+
+export type Action = datasetActions.All
+
+@Injectable()
+export class DatasetEffects {
+ constructor(private actions: Actions,
+ private sqlService: SQLService) {}
+
+ /* Effect to load a collection of all Datasets from AsterixDB
+ */
+ @Effect()
+ selectDatasets$: Observable<Action> = this.actions
+ .ofType(datasetActions.SELECT_DATASETS)
+ .switchMap(query => {
+ return this.sqlService.selectDatasets()
+ .map(dataset => new datasetActions.SelectDatasetsSuccess(dataset))
+ .catch(err => of(new datasetActions.SelectDatasetsFail(err)));
+ });
+
+ /* Effect to create a Datasets from AsterixDB
+ */
+ @Effect()
+ createDatasets$: Observable<Action> = this.actions
+ .ofType(datasetActions.CREATE_DATASET)
+ .switchMap(dataset => {
+ return this.sqlService.createDataset((dataset as any).payload)
+ .map(dataset => new datasetActions.CreateDatasetSuccess(dataset))
+ .catch(err => of(new datasetActions.CreateDatasetFail(err)));
+ });
+
+ /* Effect to drop a Datasets from AsterixDB
+ */
+ @Effect()
+ dropDatasets$: Observable<Action> = this.actions
+ .ofType(datasetActions.DROP_DATASET)
+ .switchMap(dataset => {
+ console.log((dataset as any).payload)
+ return this.sqlService.dropDataset((dataset as any).payload)
+ .map(dataset => new datasetActions.DropDatasetSuccess(dataset))
+ .catch(err => of(new datasetActions.DropDatasetFail(err)));
+ });
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/datatype.effects.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/datatype.effects.ts
new file mode 100755
index 0000000..4fa187f
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/datatype.effects.ts
@@ -0,0 +1,63 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Injectable } from '@angular/core';
+import { Effect, Actions } from '@ngrx/effects';
+import { Observable } from 'rxjs/Observable';
+import { of } from 'rxjs/observable/of';
+import * as datatypeActions from '../actions/datatype.actions';
+import { SQLService } from '../services/async-query.service';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/switchMap';
+import 'rxjs/add/operator/catch';
+
+export type Action = datatypeActions.All
+
+@Injectable()
+export class DatatypeEffects {
+ constructor(private actions: Actions,
+ private sqlService: SQLService) {}
+
+ /* Effect to load a collection of all Datatypes from AsterixDB
+ */
+ @Effect()
+ selectDatatypes$: Observable<Action> = this.actions
+ .ofType(datatypeActions.SELECT_DATATYPES)
+ .switchMap(query => {
+ return this.sqlService.selectDatatypes()
+ .map(datatype => new datatypeActions.SelectDatatypesSuccess(datatype))
+ .catch(err => of(new datatypeActions.SelectDatatypesFail(err)));
+ });
+
+ /* Effect to create a Datatype from AsterixDB
+ */
+ @Effect()
+ createDatatypes$: Observable<Action> = this.actions
+ .ofType(datatypeActions.CREATE_DATATYPE)
+ .switchMap(datatype => {
+ return this.sqlService.createDatatype((datatype as any).payload)
+ .map(datatype => new datatypeActions.CreateDatatypeSuccess(datatype))
+ .catch(err => of(new datatypeActions.CreateDatatypeFail(err)));
+ });
+
+ /* Effect to drop a Datatype from AsterixDB
+ */
+ @Effect()
+ dropDatatypes$: Observable<Action> = this.actions
+ .ofType(datatypeActions.DROP_DATATYPE)
+ .switchMap(datatype => {
+ return this.sqlService.dropDatatype((datatype as any).payload)
+ .map(datatype => new datatypeActions.DropDatatypeSuccess(datatype))
+ .catch(err => of(new datatypeActions.DropDatatypeFail(err)));
+ });
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/dataverse.effects.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/dataverse.effects.ts
new file mode 100755
index 0000000..d917420
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/dataverse.effects.ts
@@ -0,0 +1,63 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Injectable } from '@angular/core';
+import { Effect, Actions } from '@ngrx/effects';
+import { Observable } from 'rxjs/Observable';
+import { of } from 'rxjs/observable/of';
+import * as dataverseActions from '../actions/dataverse.actions';
+import { SQLService } from '../services/async-query.service';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/switchMap';
+import 'rxjs/add/operator/catch';
+
+export type Action = dataverseActions.All
+
+@Injectable()
+export class DataverseEffects {
+ constructor(private actions: Actions,
+ private sqlService: SQLService) {}
+
+ /* Effect to load a collection of all Dataverses from AsterixDB
+ */
+ @Effect()
+ selectDataverses$: Observable<Action> = this.actions
+ .ofType(dataverseActions.SELECT_DATAVERSES)
+ .switchMap(query => {
+ return this.sqlService.selectDataverses()
+ .map(dataverse => new dataverseActions.SelectDataversesSuccess(dataverse))
+ .catch(err => of(new dataverseActions.SelectDataversesFail(err)));
+ });
+
+ /* Effect to create Dataverse from AsterixDB
+ */
+ @Effect()
+ createDataverses$: Observable<Action> = this.actions
+ .ofType(dataverseActions.CREATE_DATAVERSE)
+ .switchMap(dataverseName => {
+ return this.sqlService.createDataverse((dataverseName as any).payload)
+ .map(dataverse => new dataverseActions.CreateDataverseSuccess(dataverse))
+ .catch(err => of(new dataverseActions.CreateDataverseFail(err)));
+ });
+
+ /* Effect to drop a Dataverse from AsterixDB
+ */
+ @Effect()
+ dropDataverses$: Observable<Action> = this.actions
+ .ofType(dataverseActions.DROP_DATAVERSE)
+ .switchMap(dataverseName => {
+ return this.sqlService.dropDataverse((dataverseName as any).payload)
+ .map(dataverse => new dataverseActions.DropDataverseSuccess(dataverse))
+ .catch(err => of(new dataverseActions.DropDataverseFail(err)));
+ });
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/index.effects.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/index.effects.ts
new file mode 100755
index 0000000..8491392
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/index.effects.ts
@@ -0,0 +1,63 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Injectable } from '@angular/core';
+import { Effect, Actions } from '@ngrx/effects';
+import { Observable } from 'rxjs/Observable';
+import { of } from 'rxjs/observable/of';
+import * as indexActions from '../actions/index.actions';
+import { SQLService } from '../services/async-query.service';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/switchMap';
+import 'rxjs/add/operator/catch';
+
+export type Action = indexActions.All
+
+@Injectable()
+export class IndexEffects {
+ constructor(private actions: Actions,
+ private sqlService: SQLService) {}
+
+ /* Effect to load a collection of all Index from AsterixDB
+ */
+ @Effect()
+ selectIndexes$: Observable<Action> = this.actions
+ .ofType(indexActions.SELECT_INDEXES)
+ .switchMap(query => {
+ return this.sqlService.selectIndexes()
+ .map(index => new indexActions.SelectIndexesSuccess(index))
+ .catch(err => of(new indexActions.SelectIndexesFail(err)));
+ });
+
+ /* Effect to create a Index
+ */
+ @Effect()
+ createIndexes$: Observable<Action> = this.actions
+ .ofType(indexActions.CREATE_INDEX)
+ .switchMap(index => {
+ return this.sqlService.createIndex((index as any).payload)
+ .map(index => new indexActions.CreateIndexSuccess(index))
+ .catch(err => of(new indexActions.CreateIndexFail(err)));
+ });
+
+ /* Effect to drop a Index
+ */
+ @Effect()
+ dropIndexes$: Observable<Action> = this.actions
+ .ofType(indexActions.DROP_INDEX)
+ .switchMap(index => {
+ return this.sqlService.dropIndex((index as any).payload)
+ .map(index => new indexActions.DropIndexSuccess(index))
+ .catch(err => of(new indexActions.DropIndexFail(err)));
+ });
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/metadata.effects.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/metadata.effects.ts
new file mode 100755
index 0000000..ddcdb27
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/metadata.effects.ts
@@ -0,0 +1,41 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Injectable } from '@angular/core';
+import { Action } from '@ngrx/store';
+import { Effect, Actions } from '@ngrx/effects';
+import { Observable } from 'rxjs/Observable';
+import { of } from 'rxjs/observable/of';
+import { MetadataService } from '../services/async-metadata.service';
+import * as metadataActions from '../actions/metadata.actions';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/switchMap';
+import 'rxjs/add/operator/catch';
+
+export type Action = metadataActions.All
+
+@Injectable()
+export class MetadataEffects {
+ constructor(private actions: Actions,
+ private metadataService: MetadataService) {}
+
+ /* Effect to update and retrieve the Metadata Tree
+ */
+ @Effect()
+ calculateDBTree$: Observable<Action> = this.actions
+ .ofType(metadataActions.UPDATE_METADATA_TREE)
+ .switchMap(() => {
+ return this.metadataService.getMetadataTree()
+ .map(tree => new metadataActions.UpdateMetadataTreeSuccess(tree))
+ });
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/query.effects.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/query.effects.ts
new file mode 100755
index 0000000..cb78255
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/effects/query.effects.ts
@@ -0,0 +1,53 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Injectable } from '@angular/core';
+import { Action } from '@ngrx/store';
+import { Effect, Actions } from '@ngrx/effects';
+import { Observable } from 'rxjs/Observable';
+import { of } from 'rxjs/observable/of';
+import { SQLService } from '../services/async-query.service';
+import * as sqlQueryActions from '../actions/query.actions';
+import 'rxjs/add/operator/map';
+import 'rxjs/add/operator/switchMap';
+import 'rxjs/add/operator/catch';
+
+export type Action = sqlQueryActions.All
+
+@Injectable()
+export class SQLQueryEffects {
+ constructor(private actions: Actions,
+ private sqlService: SQLService) {}
+
+ /* Effect to Execute an SQL++ Query against the AsterixDB
+ */
+ @Effect()
+ executeQuery$: Observable<Action> = this.actions
+ .ofType(sqlQueryActions.EXECUTE_QUERY)
+ .switchMap(query => {
+ return this.sqlService.executeSQLQuery((query as any).payload)
+ .map(sqlQueryResult => new sqlQueryActions.ExecuteQuerySuccess(sqlQueryResult))
+ .catch(sqlQueryError => of(new sqlQueryActions.ExecuteQueryFail(sqlQueryError)));
+ });
+
+ /* Effect to Execute an SQL++ Metadata Query against the AsterixDB
+ */
+ @Effect()
+ executeMetadataQuery$: Observable<Action> = this.actions
+ .ofType(sqlQueryActions.EXECUTE_METADATA_QUERY)
+ .switchMap(query => {
+ return this.sqlService.executeSQLQuery((query as any).payload)
+ .map(sqlMetadataQueryResult => new sqlQueryActions.ExecuteMetadataQuerySuccess(sqlMetadataQueryResult))
+ .catch(sqlMetadataQueryError => of(new sqlQueryActions.ExecuteMetadataQueryFail(sqlMetadataQueryError)));
+ });
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/models/asterixDB.model.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/models/asterixDB.model.ts
new file mode 100755
index 0000000..bbdabe2
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/models/asterixDB.model.ts
@@ -0,0 +1,112 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+/*
+* Interfaces representing AsterixDB data model structures.
+*/
+
+export interface Dataverse {
+ dataFormat: string;
+ dataverseName: string;
+ pendingOp: string;
+ timeStamp: string;
+};
+
+export interface ResultsM {
+ dataFormat: string;
+ dataverseName: string;
+ pendingOp: string;
+ timeStamp: string;
+};
+
+export interface Dataset {
+ compactionPolicy: string;
+ compactionPolicyProperties: CompactionPolicyProperties[];
+ datasetId: string;
+ datasetName: string;
+ datasetType:string;
+ datatypeDataverseName: string;
+ datatypeName: string;
+ dataverseName: string;
+ groupName:string;
+ hints: string[];
+ internalDetails: InternalDetails;
+ pendingOp: string;
+ timestamp: string;
+};
+
+export interface CompactionPolicyProperties {
+ name: string;
+ value: string;
+};
+
+export interface InternalDetails {
+ autogenerated: string;
+ fileStructure: string;
+ partitioningKey: string;
+ partitioningStrategy: string;
+ primaryKey: string[];
+};
+
+// Message format coming back from AsterixDB REST API
+export interface AsterixDBQueryMessage {
+ metrics: Metrics;
+ requestId: string;
+ results: any[];
+ signature: string;
+ status: string;
+};
+
+export interface Metrics {
+ elapsedTime: string;
+ executionTime: string;
+ resultCount: string;
+ resultSize: string;
+};
+
+// Datatype Data Model comming from AsterixDB REST API
+export interface Datatype {
+ datatypeName: string;
+ dataverseName: string;
+ derived: DatatypeDerived;
+ timeStamp: string;
+};
+
+export interface DatatypeDerived {
+ isAnonymous: boolean;
+ record: DatatypeDerivedRecord;
+ tag: string;
+};
+
+export interface DatatypeDerivedRecord {
+ Fields: DatatypeDerivedRecordField[];
+ isOpen: boolean;
+};
+
+export interface DatatypeDerivedRecordField {
+ fieldName: string;
+ fieldType: "string";
+ isNullable: boolean;
+}
+
+// Index Data Model comming from AsterixDB REST API
+export interface Index {
+ dataverseName: string;
+ datasetName: string;
+ indexName: string;
+ indexStructure: string;
+ searchKey: string[];
+ isPrimary: boolean;
+ timestamp: string;
+ pendingOp: string;
+};
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/pipes/keys.pipe.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/pipes/keys.pipe.ts
new file mode 100755
index 0000000..77cac5a
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/pipes/keys.pipe.ts
@@ -0,0 +1,25 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { PipeTransform, Pipe } from '@angular/core';
+
+@Pipe({name: 'keys'})
+export class KeysPipe implements PipeTransform {
+ transform(value, args:string[]) : any {
+ let keys = [];
+ for (let key in value) {
+ keys.push(key);
+ }
+ return keys;
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/pipes/objectArrayType.pipe.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/pipes/objectArrayType.pipe.ts
new file mode 100755
index 0000000..220b53c
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/pipes/objectArrayType.pipe.ts
@@ -0,0 +1,23 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+// Detecting if an object is an array
+import { PipeTransform, Pipe } from '@angular/core';
+
+@Pipe({name: 'isObjectArray'})
+export class ObjectArrayTypePipe implements PipeTransform {
+ transform(value, args:string[]) : any {
+ return value && (value.constructor.toString().indexOf("Array") != -1)
+ && value[0] && (value[0].constructor.toString().indexOf("Object") != -1);
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/pipes/objectType.pipe.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/pipes/objectType.pipe.ts
new file mode 100755
index 0000000..5b8f795
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/pipes/objectType.pipe.ts
@@ -0,0 +1,21 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { PipeTransform, Pipe } from '@angular/core';
+
+@Pipe({name: 'isObject'})
+export class ObjectTypePipe implements PipeTransform {
+ transform(value, args:string[]) : any {
+ return value && (value.constructor.toString().indexOf("Object") != -1);
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/app.reducer.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/app.reducer.ts
new file mode 100755
index 0000000..01c65ac
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/app.reducer.ts
@@ -0,0 +1,73 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { AsterixDBQueryMessage } from '../models/asterixDB.model';
+import * as appActions from '../actions/app.actions';
+
+export type Action = appActions.All;
+
+/*
+** Interfaces for app state in store/state
+*/
+export interface State {
+ loading: boolean,
+ loaded: boolean,
+ success: boolean,
+ sqlQueryString: string,
+ sqlQueryResult: AsterixDBQueryMessage[],
+ sqlQueryError: AsterixDBQueryMessage[],
+ sqlMetadataQueryString: string,
+ sqlMetadataQueryResult: AsterixDBQueryMessage[],
+ sqlMetadataQueryError: AsterixDBQueryMessage[]
+};
+
+const initialState: State = {
+ loading: false,
+ loaded: false,
+ success: false,
+ sqlQueryString: "",
+ sqlQueryResult: [],
+ sqlQueryError: [],
+ sqlMetadataQueryString: "",
+ sqlMetadataQueryResult: [],
+ sqlMetadataQueryError: [],
+};
+
+/*
+** Reducer function for app state in store/state
+*/
+export function appReducer(state = initialState, action: Action) {
+ switch (action.type) {
+
+ /*
+ * Change the load state to true, and clear previous results
+ * to signaling that a EXECUTE a SQL++ Query is ongoing
+ */
+ case appActions.APP_MODE_CHANGE: {
+ return Object.assign({}, state, {
+ loading: false,
+ loaded: true,
+ success: false,
+ sqlQueryString: action.payload,
+ sqlQueryResult: [],
+ sqlQueryError: []
+ });
+ }
+
+ /*
+ * Just returns the current store/state object
+ */
+ default:
+ return state;
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/dataset.reducer.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/dataset.reducer.ts
new file mode 100755
index 0000000..25d09b9
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/dataset.reducer.ts
@@ -0,0 +1,177 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Dataset } from '../models/asterixDB.model';
+import * as DatasetAction from '../actions/dataset.actions';
+
+export type Action = DatasetAction.All;
+
+/*
+** Interfaces for datasets in store/state
+*/
+export interface State {
+ loaded: boolean,
+ loading: boolean,
+ datasets: any[],
+ createDataset: any[],
+ createDatasetError: any[],
+ createDatasetSuccess: boolean,
+ createDatasetFailed: boolean,
+ dropDataset: any[],
+ dropDatasetError: any[],
+ dropDatasetSuccess: boolean,
+ dropDatasetFailed: boolean,
+ guideSelectsDataset: string,
+};
+
+const initialState: State = {
+ loaded: false,
+ loading: false,
+ datasets: [],
+ createDataset: [],
+ createDatasetError: [],
+ createDatasetSuccess: false,
+ createDatasetFailed: false,
+ dropDataset: [],
+ dropDatasetError: [],
+ dropDatasetSuccess: false,
+ dropDatasetFailed: false,
+ guideSelectsDataset: ""
+};
+
+/*
+** Reducer function for datasets in store/state
+*/
+export function datasetReducer(state = initialState, action: Action) {
+ switch (action.type) {
+
+ /*
+ * Change the selected dataset state to true to signaling
+ * UI from metadata guide
+ */
+ case DatasetAction.GUIDE_SELECT_DATASET: {
+ return Object.assign({}, state, { guideSelectsDataset: action.payload });
+ }
+
+ /*
+ * Change the load state to true to signaling
+ * that a SELECT Query is ongoing
+ */
+ case DatasetAction.SELECT_DATASETS: {
+ return Object.assign({}, state, { loading: true });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a SELECT Query is success and there is datasets available in the
+ * store
+ */
+ case DatasetAction.SELECT_DATASETS_SUCCESS: {
+ return Object.assign({}, state, {
+ loaded: true,
+ loading: false,
+ datasets: action.payload
+ })
+ }
+
+ /*
+ * Change the load state to true to signaling
+ * that a CREATE a Dataset Query is ongoing
+ */
+ case DatasetAction.CREATE_DATASET: {
+ return Object.assign({}, state, {
+ createDataset: [],
+ createDatasetError: [],
+ createDatasetSuccess: false,
+ createDatasetFailed: false,
+ });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a CREATE a Dataset Query is success and there is datasets available in the
+ * store
+ */
+ case DatasetAction.CREATE_DATASET_SUCCESS: {
+ return Object.assign({}, state, {
+ createDataset: action.payload,
+ createDatasetName: action.payload,
+ createDatasetError: [],
+ createDatasetSuccess: true,
+ createDatasetFailed: false
+ })
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a CREATE a Dataset Query is failed and there is an error message available in the
+ * store
+ */
+ case DatasetAction.CREATE_DATASET_FAIL: {
+ return Object.assign({}, state, {
+ createDataset: [],
+ createDatasetError: action.payload,
+ createDatasetSuccess: false,
+ createDatasetFailed: true
+ })
+ }
+
+ /*
+ * Change the load state to true to signaling
+ * that a DROP a Dataset Query is ongoing
+ */
+ case DatasetAction.DROP_DATASET: {
+ return Object.assign({}, state, {
+ dropDataset: [],
+ dropDatasetError: [],
+ dropDatasetName: action.payload,
+ dropDatasetSuccess: false,
+ dropDatasetFailed: false
+ });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a DROP a Dataset Query is success and there is datasets available in the
+ * store
+ */
+ case DatasetAction.DROP_DATASET_SUCCESS: {
+ return Object.assign({}, state, {
+ dropDataset: action.payload,
+ dropDatasetError: [],
+ dropDatasetSuccess: true,
+ dropDatasetFailed: false
+ })
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a DROP a Dataset Query is failed and there is an error message available in the
+ * store
+ */
+ case DatasetAction.DROP_DATASET_FAIL: {
+ return Object.assign({}, state, {
+ dropDataset: [],
+ dropDatasetError: action.payload,
+ dropDatasetSuccess: false,
+ dropDatasetFailed: true
+ })
+ }
+
+ /*
+ * Just returns the current store/state object
+ */
+ default:
+ return state;
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/datatype.reducer.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/datatype.reducer.ts
new file mode 100755
index 0000000..1036fdb
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/datatype.reducer.ts
@@ -0,0 +1,167 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Datatype } from '../models/asterixDB.model';
+import * as DatatypeAction from '../actions/datatype.actions';
+
+export type Action = DatatypeAction.All;
+
+/*
+** Interfaces for datatype in store/state
+*/
+export interface State {
+ loaded: boolean,
+ loading: boolean,
+ datatypes: Datatype[],
+ createDatatype: any[],
+ createDatatypeError: any[],
+ createDatatypeSuccess: boolean,
+ createDatatypeFailed: boolean,
+ dropDatatype: any[],
+ dropDatatypeError: any[],
+ dropDatatypeSuccess: boolean,
+ dropDatatypeFailed: boolean
+};
+
+const initialState: State = {
+ loaded: false,
+ loading: false,
+ datatypes: [],
+ createDatatype: [],
+ createDatatypeError: [],
+ createDatatypeSuccess: false,
+ createDatatypeFailed: false,
+ dropDatatype: [],
+ dropDatatypeError: [],
+ dropDatatypeSuccess: false,
+ dropDatatypeFailed: false
+};
+
+/*
+** Reducer function for datatypes in store/state
+*/
+export function datatypeReducer(state = initialState, action: Action) {
+ switch (action.type) {
+
+ /*
+ * Change the load state to true to signaling
+ * that a SELECT Query is ongoing
+ */
+ case DatatypeAction.SELECT_DATATYPES: {
+ return Object.assign({}, state, { loading: true });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a SELECT Query is success and there is datatypes available in the
+ * store
+ */
+ case DatatypeAction.SELECT_DATATYPES_SUCCESS: {
+ return Object.assign({}, state, {
+ loaded: true,
+ loading: false,
+ datatypes: action.payload
+ })
+ }
+
+ /*
+ * Change the load state to true to signaling
+ * that a CREATE a Datatype Query is ongoing
+ */
+ case DatatypeAction.CREATE_DATATYPE: {
+ return Object.assign({}, state, {
+ createDatatype: [],
+ createDatatypeName: action.payload,
+ createDatatypeError: [],
+ createDatatypeSuccess: false,
+ createDatatypeFailed: false,
+ });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a CREATE a Datatype Query is success and there is datasets available in the
+ * store
+ */
+ case DatatypeAction.CREATE_DATATYPE_SUCCESS: {
+ return Object.assign({}, state, {
+ createDatatype: action.payload,
+ createDatatypeError: [],
+ createDatatypeSuccess: true,
+ createDatatypeFailed: false
+ })
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a CREATE a Datatype Query is failed and there is an error message available in the
+ * store
+ */
+ case DatatypeAction.CREATE_DATATYPE_FAIL: {
+ return Object.assign({}, state, {
+ createDatatype: [],
+ createDatatypeError: action.payload,
+ createDatatypeSuccess: false,
+ createDatatypeFailed: true
+ })
+ }
+
+ /*
+ * Change the load state to true to signaling
+ * that a DROP a Datatype Query is ongoing
+ */
+ case DatatypeAction.DROP_DATATYPE: {
+ return Object.assign({}, state, {
+ dropDatatype: [],
+ dropDatatypeName: action.payload,
+ dropDatatypeError: [],
+ dropDatatypeSuccess: false,
+ dropDatatypeFailed: false
+ });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a DROP a Datatype Query is success and there is datasets available in the
+ * store
+ */
+ case DatatypeAction.DROP_DATATYPE_SUCCESS: {
+ return Object.assign({}, state, {
+ dropDatatype: action.payload,
+ dropDatatypeError: [],
+ dropDatatypeSuccess: true,
+ dropDatatypeFailed: false
+ })
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a DROP a Datatype Query is failed and there is an error message available in the
+ * store
+ */
+ case DatatypeAction.DROP_DATATYPE_FAIL: {
+ return Object.assign({}, state, {
+ dropDatatype: [],
+ dropDatatypeError: action.payload,
+ dropDatatypeSuccess: false,
+ dropDatatypeFailed: true
+ })
+ }
+
+ /*
+ * Just returns the current store/state object
+ */
+ default:
+ return state;
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/dataverse.reducer.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/dataverse.reducer.ts
new file mode 100755
index 0000000..7ac78ea
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/dataverse.reducer.ts
@@ -0,0 +1,171 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Dataverse } from '../models/asterixDB.model';
+import * as DataverseAction from '../actions/dataverse.actions';
+
+export type Action = DataverseAction.All;
+
+/*
+** Interfaces for dataverses in store/state
+*/
+export interface State {
+ loaded: boolean,
+ loading: boolean,
+ dataverses: any[],
+ createDataverse: any[],
+ createDataverseName: string,
+ createDataverseError: any[],
+ createDataverseSuccess: boolean,
+ createDataverseFailed: boolean
+ dropDataverse: any[],
+ dropDataverseName: string;
+ dropDataverseError: any[],
+ dropDataverseSuccess: boolean,
+ dropDataverseFailed: boolean
+};
+
+const initialState: State = {
+ loaded: false,
+ loading: false,
+ dataverses: [],
+ createDataverse: [],
+ createDataverseName: "",
+ createDataverseError: [],
+ createDataverseSuccess: false,
+ createDataverseFailed: false,
+ dropDataverse: [],
+ dropDataverseName: "",
+ dropDataverseError: [],
+ dropDataverseSuccess: false,
+ dropDataverseFailed: false
+};
+
+/*
+** Reducer function for dataverses in store/state
+*/
+export function dataverseReducer(state = initialState, action: Action) {
+ switch (action.type) {
+
+ /*
+ * Change the load state to true to signaling
+ * that a SELECT Query is ongoing
+ */
+ case DataverseAction.SELECT_DATAVERSES: {
+ return Object.assign({}, state, { loading: true });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a SELECT Query is success and there is dataverses available in the
+ * store
+ */
+ case DataverseAction.SELECT_DATAVERSES_SUCCESS: {
+ return Object.assign({}, state, {
+ loaded: true,
+ loading: false,
+ dataverses: action.payload // _.sortBy(_.values(action.payload), 'dataverseName')
+ })
+ }
+
+ /*
+ * Change the load state to true to signaling
+ * that a CREATE a Dataset Query is ongoing
+ */
+ case DataverseAction.CREATE_DATAVERSE: {
+ return Object.assign({}, state, {
+ createDataverse: [],
+ createDataverseName: action.payload,
+ createDataverseError: [],
+ createDataverseSuccess: false,
+ createDataverseFailed: false
+ });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a CREATE a Dataverse Query is success and there is a success message available in the
+ * store
+ */
+ case DataverseAction.CREATE_DATAVERSE_SUCCESS: {
+ return Object.assign({}, state, {
+ createDataverse: action.payload,
+ createDataverseError: [],
+ createDataverseSuccess: true,
+ createDataverseFailed: false
+ })
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a CREATE a Dataverse Query is failed and there is an error message available in the
+ * store
+ */
+ case DataverseAction.CREATE_DATAVERSE_FAIL: {
+ return Object.assign({}, state, {
+ createDataverse: [],
+ createDataverseError: action.payload,
+ createDataverseSuccess: false,
+ createDataverseFailed: true
+ })
+ }
+
+ /*
+ * Change the load state to true to signaling
+ * that a DROP a Dataverse Query is ongoing
+ */
+ case DataverseAction.DROP_DATAVERSE: {
+ return Object.assign({}, state, {
+ dropDataverse: [],
+ dropDataverseName: action.payload,
+ dropDataverseError: [],
+ dropDataverseSuccess: false,
+ dropDataverseFailed: false
+ });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a DROP a Dataverse Query is success and there is success message available in the
+ * store
+ */
+ case DataverseAction.DROP_DATAVERSE_SUCCESS: {
+ return Object.assign({}, state, {
+ dropDataverse: action.payload,
+ dropDataverseError: [],
+ dropDataverseSuccess: true,
+ dropDataverseFailed: false
+ })
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a DROP a Dataverse Query is failed and there is an error message available in the
+ * store
+ */
+ case DataverseAction.DROP_DATAVERSE_FAIL: {
+ return Object.assign({}, state, {
+ dropDataverse: [],
+ dropDataverseError: action.payload,
+ dropDataverseSuccess: false,
+ dropDataverseFailed: true
+ })
+ }
+
+ /*
+ * Just returns the current store/state object
+ */
+ default:
+ return state;
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/index.reducer.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/index.reducer.ts
new file mode 100755
index 0000000..792abc7
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/index.reducer.ts
@@ -0,0 +1,167 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Index } from '../models/asterixDB.model';
+import * as IndexAction from '../actions/index.actions';
+
+export type Action = IndexAction.All;
+
+/*
+** Interfaces for indexes in store/state
+*/
+export interface State {
+ loaded: boolean,
+ loading: boolean,
+ indexes: Index[],
+ createIndex: any[],
+ createIndexError: any[],
+ createIndexSuccess: boolean,
+ createIndexFailed: boolean,
+ dropIndex: any[],
+ dropIndexError: any[],
+ dropIndexSuccess: boolean,
+ dropIndexFailed: boolean
+};
+
+const initialState: State = {
+ loaded: false,
+ loading: false,
+ indexes: [],
+ createIndex: [],
+ createIndexError: [],
+ createIndexSuccess: false,
+ createIndexFailed: false,
+ dropIndex: [],
+ dropIndexError: [],
+ dropIndexSuccess: false,
+ dropIndexFailed: false
+};
+
+/*
+** Reducer function for indexes in store/state
+*/
+export function indexReducer(state = initialState, action: Action) {
+ switch (action.type) {
+
+ /*
+ * Change the load state to true to signaling
+ * that a SELECT Query is ongoing
+ */
+ case IndexAction.SELECT_INDEXES: {
+ return Object.assign({}, state, { loading: true });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a SELECT Query is success and there is indexes available in the
+ * store
+ */
+ case IndexAction.SELECT_INDEXES_SUCCESS: {
+ return Object.assign({}, state, {
+ loaded: true,
+ loading: false,
+ indexes: action.payload
+ })
+ }
+
+ /*
+ * Change the load state to true to signaling
+ * that a CREATE a Index Query is ongoing
+ */
+ case IndexAction.CREATE_INDEX: {
+ return Object.assign({}, state, {
+ createIndex: [],
+ createIndexName: action.payload,
+ createIndexError: [],
+ createIndexSuccess: false,
+ createIndexFailed: false
+ });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a CREATE a Index Query is success and there is datasets available in the
+ * store
+ */
+ case IndexAction.CREATE_INDEX_SUCCESS: {
+ return Object.assign({}, state, {
+ createIndex: [],
+ createIndexError: [],
+ createIndexSuccess: true,
+ createIndexFailed: false
+ })
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a CREATE a Index Query is success and there is datasets available in the
+ * store
+ */
+ case IndexAction.CREATE_INDEX_SUCCESS: {
+ return Object.assign({}, state, {
+ createIndex: action.payload,
+ createIndexError: [],
+ createIndexSuccess: false,
+ createIndexFailed: true
+ })
+ }
+
+ /*
+ * Change the load state to true to signaling
+ * that a DROP a Index Query is ongoing
+ */
+ case IndexAction.DROP_INDEX: {
+ return Object.assign({}, state, {
+ dropIndex: [],
+ dropIndexError: [],
+ dropIndexName: action.payload,
+ dropIndexSuccess: false,
+ dropIndexFailed: false
+ });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a DROP a Index Query is success and there is datasets available in the
+ * store
+ */
+ case IndexAction.DROP_INDEX_SUCCESS: {
+ return Object.assign({}, state, {
+ dropIndex: action.payload,
+ dropIndexError: [],
+ dropIndexSuccess: true,
+ dropIndexFailed: false
+ })
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a DROP a Index Query is failed and there is an error message available in the
+ * store
+ */
+ case IndexAction.DROP_INDEX_FAIL: {
+ return Object.assign({}, state, {
+ dropIndex: [],
+ dropIndexError: action.payload,
+ dropIndexSuccess: false,
+ dropIndexFailed: true
+ })
+ }
+
+ /*
+ * Just returns the current store/state object
+ */
+ default:
+ return state;
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/index.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/index.ts
new file mode 100755
index 0000000..1965d8c
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/index.ts
@@ -0,0 +1,49 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { ActionReducer } from '@ngrx/store';
+import * as fromDataverse from './dataverse.reducer';
+import * as fromDataset from './dataset.reducer';
+import * as fromDatatype from './datatype.reducer';
+import * as fromIndex from './index.reducer';
+import * as fromQuery from './query.reducer';
+import * as fromQueryMetadata from './query-metadata.reducer';
+import * as fromMetadata from './metadata.reducer';
+import * as fromAppState from './app.reducer';
+
+/*
+** Global Interfaces store/state
+*/
+export interface ModelState {
+ dataverse: fromDataverse.State,
+ dataset: fromDataset.State,
+ datatype: fromDatatype.State,
+ index: fromIndex.State,
+ sqlQuery: fromQuery.State,
+ sqlMetadataQuery: fromQueryMetadata.State,
+ metadata: fromMetadata.State,
+ appState: fromAppState.State,
+}
+
+/*
+** Global Reducers configuration
+*/
+export const reducers = {
+ dataverse: fromDataverse.dataverseReducer,
+ dataset: fromDataset.datasetReducer,
+ datatype: fromDatatype.datatypeReducer,
+ index: fromIndex.indexReducer,
+ sqlQuery: fromQuery.sqlReducer,
+ sqlMetadataQuery: fromQueryMetadata.sqlMetadataReducer,
+ metadata: fromMetadata.metadataTreeReducer
+};
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/metadata.reducer.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/metadata.reducer.ts
new file mode 100755
index 0000000..52b88f2
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/metadata.reducer.ts
@@ -0,0 +1,56 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import * as metadataTreeActions from '../actions/metadata.actions';
+
+export type Action = metadataTreeActions.All;
+
+/*
+** Interfaces for the metadata tree in store/state
+*/
+export interface State {
+ tree: any[],
+ loading: boolean,
+ loaded: boolean,
+};
+
+const initialState: State = {
+ tree: [],
+ loading: false,
+ loaded: false
+};
+
+export function metadataTreeReducer(state = initialState, action: Action) {
+ switch (action.type) {
+ case metadataTreeActions.UPDATE_METADATA_TREE: {
+ return Object.assign({}, state, {
+ tree: [],
+ loading: true,
+ loaded: false
+ });
+ }
+
+ case metadataTreeActions.UPDATE_METADATA_TREE_SUCCESS: {
+ return Object.assign({}, state, {
+ tree: [...state.tree, action.payload],
+ loading: false,
+ loaded: true
+ });
+ }
+ /*
+ * Just returns the current store/state object
+ */
+ default:
+ return state;
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/query-metadata.reducer.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/query-metadata.reducer.ts
new file mode 100755
index 0000000..e360e95
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/query-metadata.reducer.ts
@@ -0,0 +1,96 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { AsterixDBQueryMessage } from '../models/asterixDB.model';
+import * as sqlQueryActions from '../actions/query.actions';
+
+export type Action = sqlQueryActions.All;
+
+/*
+** Interfaces for sql++ queries in store/state
+*/
+export interface State {
+ loading: boolean,
+ loaded: boolean,
+ success: boolean,
+ sqlQueryMetadataString: string,
+ sqlQueryMetadataResult: AsterixDBQueryMessage[],
+ sqlQueryMetadataError: AsterixDBQueryMessage[]
+};
+
+const initialState: State = {
+ loading: false,
+ loaded: false,
+ success: false,
+ sqlQueryMetadataString: "",
+ sqlQueryMetadataResult: [],
+ sqlQueryMetadataError: [],
+};
+
+/*
+** Reducer function for sql++ queries in store/state
+*/
+export function sqlMetadataReducer(state = initialState, action: Action) {
+ switch (action.type) {
+ /*
+ * Change the load state to true, and clear previous results
+ * to signaling that a METADATA EXECUTE a SQL++ Query is ongoing
+ */
+ case sqlQueryActions.EXECUTE_METADATA_QUERY: {
+ return Object.assign({}, state, {
+ loading: false,
+ loaded: true,
+ success: false,
+ sqlQueryMetadataString: action.payload,
+ sqlQueryMetadataResult: [],
+ sqlQueryMetadataError: []
+ });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a METADATA EXECUTE Query is success and there is data available in the
+ * store
+ */
+ case sqlQueryActions.EXECUTE_METADATA_QUERY_SUCCESS: {
+ return Object.assign({}, state, {
+ loading: false,
+ loaded: true,
+ success: true,
+ sqlQueryMetadataResult: action.payload,
+ sqlQueryMetadataError: []
+ })
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a METADATA EXECUTE Query is failed and there is error data available in the
+ * store
+ */
+ case sqlQueryActions.EXECUTE_METADATA_QUERY_FAIL: {
+ return Object.assign({}, state, {
+ loading: false,
+ loaded: true,
+ success: false,
+ sqlQueryMetadataResult: [],
+ sqlQueryMetadataError: action.payload
+ })
+ }
+
+ /*
+ * Just returns the current store/state object
+ */
+ default:
+ return state;
+ }
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/query.reducer.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/query.reducer.ts
new file mode 100755
index 0000000..5c8ad08
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/reducers/query.reducer.ts
@@ -0,0 +1,97 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { AsterixDBQueryMessage } from '../models/asterixDB.model';
+import * as sqlQueryActions from '../actions/query.actions';
+
+export type Action = sqlQueryActions.All;
+
+/*
+** Interfaces for sql++ queries in store/state
+*/
+export interface State {
+ loading: boolean,
+ loaded: boolean,
+ success: boolean,
+ sqlQueryString: string,
+ sqlQueryResult: AsterixDBQueryMessage[],
+ sqlQueryError: AsterixDBQueryMessage[]
+};
+
+const initialState: State = {
+ loading: false,
+ loaded: false,
+ success: false,
+ sqlQueryString: "",
+ sqlQueryResult: [],
+ sqlQueryError: []
+};
+
+/*
+** Reducer function for sql++ queries in store/state
+*/
+export function sqlReducer(state = initialState, action: Action) {
+ switch (action.type) {
+
+ /*
+ * Change the load state to true, and clear previous results
+ * to signaling that a EXECUTE a SQL++ Query is ongoing
+ */
+ case sqlQueryActions.EXECUTE_QUERY: {
+ return Object.assign({}, state, {
+ loading: false,
+ loaded: true,
+ success: false,
+ sqlQueryString: action.payload,
+ sqlQueryResult: [],
+ sqlQueryError: []
+ });
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a EXECUTE Query is success and there is data available in the
+ * store
+ */
+ case sqlQueryActions.EXECUTE_QUERY_SUCCESS: {
+ return Object.assign({}, state, {
+ loading: false,
+ loaded: true,
+ success: true,
+ sqlQueryResult: action.payload,
+ sqlQueryError: []
+ })
+ }
+
+ /*
+ * Change the load state to false, and loaded to true to signaling
+ * that a EXECUTE Query is failed and there is error data available in the
+ * store
+ */
+ case sqlQueryActions.EXECUTE_QUERY_FAIL: {
+ return Object.assign({}, state, {
+ loading: false,
+ loaded: true,
+ success: false,
+ sqlQueryResult: [],
+ sqlQueryError: action.payload
+ })
+ }
+
+ /*
+ * Just returns the current store/state object
+ */
+ default:
+ return state;
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/services/app-core.service.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/services/app-core.service.ts
new file mode 100755
index 0000000..ed38c26
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/services/app-core.service.ts
@@ -0,0 +1,38 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Injectable } from '@angular/core';
+import { Store } from '@ngrx/store';
+import * as dataverseActions from '../../shared/actions/dataverse.actions'
+import * as datasetActions from '../../shared/actions/dataset.actions'
+import * as datatypesActions from '../../shared/actions/datatype.actions'
+import * as indexesActions from '../../shared/actions/index.actions'
+import * as metadataActions from '../../shared/actions/metadata.actions'
+
+/*
+* Main application service to initialize,
+* load, set App status and initial data, and synchronize app level functionality
+*/
+@Injectable()
+export class AppCoreService {
+ /*
+ * Initialize and load metadata store structures
+ */
+ constructor(private store: Store<any>) {
+ console.log('AsterixDB Web Console Core Service')
+ this.store.dispatch(new dataverseActions.SelectDataverses('-'));
+ this.store.dispatch(new datasetActions.SelectDatasets('-'));
+ this.store.dispatch(new datatypesActions.SelectDatatypes('-'));
+ this.store.dispatch(new indexesActions.SelectIndexes('-'));
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/services/async-metadata.service.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/services/async-metadata.service.ts
new file mode 100755
index 0000000..8492a54
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/services/async-metadata.service.ts
@@ -0,0 +1,120 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Injectable, ApplicationRef } from '@angular/core';
+import { Store } from '@ngrx/store';
+import { Observable } from "rxjs/Observable";
+import 'rxjs/add/operator/map';
+import 'rxjs/add/observable/from';
+import * as dataverseActions from '../../shared/actions/dataverse.actions'
+import * as datasetActions from '../../shared/actions/dataset.actions'
+import * as datatypesActions from '../../shared/actions/datatype.actions'
+import * as indexesActions from '../../shared/actions/index.actions'
+import * as metadataActions from '../../shared/actions/metadata.actions'
+
+/*
+ Metadata service watch any changes in Dataverses, Datasets, Datatypes, indexes
+ state in store and builds a tree state structure with datasets->dataverse->datatype->index relationship
+*/
+@Injectable()
+export class MetadataService {
+
+ /* Arrays to expose updated dataverses, datasets, datatypes,
+ indexes collections*/
+ dv = [];
+ ds = [];
+ dt = [];
+ idx = [];
+
+ /*
+ * contructor will initialize the store state watchers
+ */
+ constructor(private store: Store<any>, private ref: ApplicationRef ) {
+
+ /* Watching changes in dataverse collection */
+ this.store.select(s => s.dataverse.dataverses).subscribe((data: any) => {
+ if (data.results) {
+ this.dv = []
+ for (let i = 0; i < data.results.length; i++) {
+ let node = { id: 0, DataverseName: "", Datasets:[] }
+ node.id = i
+ node.DataverseName = data.results[i]['DataverseName']
+ this.dv.push(node)
+ }
+ this.updateMetadataTree();
+ }
+ })
+
+ /* Watching changes in datasets collections */
+ this.store.select(s => s.dataset.datasets).subscribe((data: any) => {
+ if (data.results) {
+ this.ds = data.results;
+ this.updateMetadataTree();
+ }
+ })
+
+ /* Watching changes in datatypes collections */
+ this.store.select(s => s.datatype.datatypes).subscribe((data: any) => {
+ if (data.results) {
+ this.dt = data.results;
+ this.updateMetadataTree();
+ }
+ })
+
+ /* Watching changes in index collections */
+ this.store.select(s => s.index.indexes).subscribe((data: any) => {
+ if (data.results) {
+ this.idx = data.results;
+ this.updateMetadataTree();
+ }
+ })
+ }
+
+ /*
+ * convenience function to update and return the metadata tree.
+ */
+ getMetadataTree(): Observable<any[]> {
+ return Observable.from(this.dv);
+ }
+
+ updateMetadataTree() {
+ for (let i = 0; i < this.dv.length; i++) {
+ // Filling datasets
+ this.dv[i]['Datasets'] = [];
+ for (let j = 0; j < this.ds.length; j++) {
+ if (this.ds[j]['DataverseName'] === this.dv[i]['DataverseName']){
+
+ // Filling datatypes, there is one datatype per dataset
+ this.ds[j]['Datatype'] = [];
+ for (let k = 0; k < this.dt.length; k++) {
+ if (this.dt[k]['DatatypeName'] === this.ds[j]['DatatypeName']){
+ this.ds[j]['Datatype'] = this.dt[k]; // push(this.dt[k])
+ }
+ }
+
+ // Filling indexes
+ this.ds[j]['Indexes'] = [];
+ for (let l = 0; l < this.idx.length; l++) {
+ if (this.idx[l]['DatasetName'] === this.ds[j]['DatasetName']){
+ this.ds[j]['Indexes'].push(this.idx[l])
+ }
+ }
+
+ this.dv[i]['Datasets'].push(this.ds[j])
+ }
+ }
+ }
+
+ this.store.dispatch(new metadataActions.UpdateMetadataTree());
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/services/async-query.service.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/services/async-query.service.ts
new file mode 100755
index 0000000..e37872e
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/app/shared/services/async-query.service.ts
@@ -0,0 +1,190 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import { Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { Store } from '@ngrx/store';
+import { Observable } from "rxjs/Observable";
+import 'rxjs/add/operator/map';
+
+var AsterixRestApiUrl = 'http://localhost:19002/query/service';
+//var AsterixRestApiUrl = '/query-service';
+
+/*
+* SQL query service using AsterixDB REST API /query/service
+*/
+@Injectable()
+export class SQLService {
+
+ /*
+ * SQLQueryService constructor using
+ * HttpClient from Angular 4
+ */
+ constructor(private http: HttpClient) {}
+
+ /*
+ * sends a select sql++ query to return all the dataverses
+ * from AsterixDB Metadata
+ */
+ selectDataverses() : Observable<any[]> {
+ let query = "SELECT VALUE dv FROM Metadata.`Dataverse` dv"
+ return this.executeSQLQuery(query);
+ }
+
+ /*
+ * sends a select sql++ query to return all the datasets
+ * from AsterixDB Metadata
+ */
+ selectDatasets() : Observable<any[]> {
+ let query = "SELECT VALUE ds FROM Metadata.`Dataset` ds"
+ return this.executeSQLQuery(query);
+ }
+
+ /*
+ * sends a select sql++ query to return all the datatypes
+ * from AsterixDB Metadata
+ */
+ selectDatatypes() : Observable<any[]> {
+ let query = "SELECT VALUE dt FROM Metadata.`Datatype` dt"
+ return this.executeSQLQuery(query);
+ }
+
+ /*
+ * sends a select sql++ query to return all the indexes
+ * from AsterixDB Metadata
+ */
+ selectIndexes() : Observable<any[]> {
+ let query = "SELECT VALUE ix FROM Metadata.`Index` ix"
+ return this.executeSQLQuery(query);
+ }
+
+ /*
+ * creates a sql++ ddl query to create a Dataverse
+ * from AsterixDB Metadata
+ */
+ createDataverse(dataverse: string) : Observable<any[]> {
+ let ddlQuery = "CREATE DATAVERSE " + dataverse + ";";
+ return this.executeDDLSQLQuery(ddlQuery);
+ }
+
+ /*
+ * creates a sql++ ddl query to drop a Dataverse
+ * from AsterixDB Metadata
+ */
+ dropDataverse(dataverse: string) : Observable<any[]> {
+ let ddlQuery = "DROP DATAVERSE " + dataverse; // " IF EXISTS;";
+ return this.executeDDLSQLQuery(ddlQuery);
+ }
+
+ /*
+ * creates a sql++ ddl query to create a Dataset
+ * from AsterixDB Metadata
+ */
+ createDataset(dataset: string) : Observable<any[]> {
+ let ddlQuery = "CREATE DATASET " + dataset + ";";
+ return this.executeDDLSQLQuery(ddlQuery);
+ }
+
+ /*
+ * creates a sql++ ddl query to drop a Dataset
+ * from AsterixDB Metadata
+ */
+ dropDataset(dataset: string) : Observable<any[]> {
+ let ddlQuery = "DROP DATASET " + dataset; //" IF EXISTS;";
+ return this.executeDDLSQLQuery(ddlQuery);
+ }
+
+ /*
+ * creates a sql++ ddl query to create a Datatype
+ * from AsterixDB Metadata
+ */
+ createDatatype(datatype: string) : Observable<any[]> {
+ let ddlQuery = "CREATE DATATYPE " + datatype + ";";
+ return this.executeDDLSQLQuery(ddlQuery);
+ }
+
+ /*
+ * creates a sql++ ddl query to drop a Datatype
+ * from AsterixDB Metadata
+ */
+ dropDatatype(datatype: string) : Observable<any[]> {
+ let ddlQuery = "DROP TYPE " + datatype; //" IF EXISTS;";
+ return this.executeDDLSQLQuery(ddlQuery);
+ }
+
+ /*
+ * creates a sql++ ddl query to create a Index
+ * from AsterixDB Metadata
+ */
+ createIndex(index: string) : Observable<any[]> {
+ let ddlQuery = "CREATE INDEX " + index + ";";
+ return this.executeDDLSQLQuery(ddlQuery);
+ }
+
+ /*
+ * creates a sql++ ddl query to drop a Index
+ * from AsterixDB Metadata
+ */
+ dropIndex(index: string) : Observable<any[]> {
+ let ddlQuery = "DROP INDEX " + index; // + " IF EXISTS;";
+ return this.executeDDLSQLQuery(ddlQuery);
+ }
+
+ /*
+ * Executes a sql++ ddl query against AsterixDB
+ * response is a JSON object with following structure:
+ metrics: Metrics;
+ requestId: string;
+ results: any[];
+ signature: string;
+ status: string;
+ */
+ executeDDLSQLQuery(ddlQuery: string): Observable<any[]> {
+ const apiUrl = AsterixRestApiUrl;
+ return this.http.post(apiUrl, {statement: ddlQuery})
+ .map((response: Response) => { return response })
+ .catch((error: any) => this.handleExecuteQueryError(error));
+ }
+
+ /*
+ * Executes a sql++ query against AsterixDB
+ * response is a JSON object with following structure:
+ metrics: Metrics;
+ requestId: string;
+ results: any[];
+ signature: string;
+ status: string;
+ */
+ executeSQLQuery(query: string): Observable<any[]> {
+ const apiUrl = AsterixRestApiUrl;
+ return this.http.post(apiUrl, {statement: query})
+ .map((response: Response) => { return response })
+ .catch((error: any) => this.handleExecuteQueryError(error));
+ }
+
+ /*
+ * AsterixDB query-service API raises HTTP errors if the sql++ query has some
+ * syntax error, or some elements in the query are not found
+ * this function extract the error JSON object with the relevant information
+ response is a JSON object with following structure:
+ metrics: Metrics;
+ requestId: string;
+ errors: any[];
+ signature: string;
+ status: string;
+ */
+ private handleExecuteQueryError(error: any): Promise<any> {
+ console.log(error)
+ return Promise.reject(error.error || error);
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/assets/asterixdb_tm.png b/asterixdb/asterix-app/src/main/resources/dashboard/src/assets/asterixdb_tm.png
new file mode 100755
index 0000000..0fa2ff0
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/assets/asterixdb_tm.png
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/environments/environment.prod.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/environments/environment.prod.ts
new file mode 100755
index 0000000..ca15503
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/environments/environment.prod.ts
@@ -0,0 +1,16 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+export const environment = {
+ production: true
+};
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/environments/environment.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/environments/environment.ts
new file mode 100755
index 0000000..2750f0a
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/environments/environment.ts
@@ -0,0 +1,21 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+// The file contents for the current environment will overwrite these during build.
+// The build system defaults to the dev environment which uses `environment.ts`, but if you do
+// `ng build --env=prod` then `environment.prod.ts` will be used instead.
+// The list of which env maps to which file can be found in `.angular-cli.json`.
+
+export const environment = {
+ production: false
+};
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/favicon.ico b/asterixdb/asterix-app/src/main/resources/dashboard/src/favicon.ico
new file mode 100755
index 0000000..282c28d
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/favicon.ico
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/index.html b/asterixdb/asterix-app/src/main/resources/dashboard/src/index.html
new file mode 100755
index 0000000..8dab418
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/index.html
@@ -0,0 +1,30 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/-->
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+ <title>AsterixDb Administration Console</title>
+ <base href="/">
+ <link rel="icon" type="image/x-icon" href="favicon.ico">
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono">
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500">
+ <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+ </head>
+ <body>
+ <awc-root></awc-root>
+ </body>
+</html>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/main.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/main.scss
new file mode 100755
index 0000000..cc02584
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/main.scss
@@ -0,0 +1,29 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+@import './styles/general';
+
+// Include material core styles.
+@import '~@angular/material/theming';
+@include mat-core();
+
+// Define the light theme.
+$primary: mat-palette($mat-grey);
+$accent: mat-palette($mat-orange, A200, A100, A400);
+
+$theme: mat-light-theme($primary, $accent);
+@include angular-material-theme($theme);
+
+* {
+ font-family: Roboto, "Helvetica Neue", sans-serif;
+ }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/main.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/main.ts
new file mode 100755
index 0000000..446a9dc
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/main.ts
@@ -0,0 +1,26 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+import './polyfills.ts';
+import 'hammerjs';
+import { enableProdMode } from '@angular/core';
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+import { AppModule } from './app/app.module';
+import { environment } from './environments/environment';
+
+if (environment.production) {
+ enableProdMode();
+}
+
+platformBrowserDynamic().bootstrapModule(AppModule)
+ .catch(err => console.log(err));
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/polyfills.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/polyfills.ts
new file mode 100755
index 0000000..20d4075
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/polyfills.ts
@@ -0,0 +1,76 @@
+/**
+ * This file includes polyfills needed by Angular and is loaded before the app.
+ * You can add your own extra polyfills to this file.
+ *
+ * This file is divided into 2 sections:
+ * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
+ * 2. Application imports. Files imported after ZoneJS that should be loaded before your main
+ * file.
+ *
+ * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
+ * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
+ * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
+ *
+ * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
+ */
+
+/***************************************************************************************************
+ * BROWSER POLYFILLS
+ */
+
+/** IE9, IE10 and IE11 requires all of the following polyfills. **/
+// import 'core-js/es6/symbol';
+// import 'core-js/es6/object';
+// import 'core-js/es6/function';
+// import 'core-js/es6/parse-int';
+// import 'core-js/es6/parse-float';
+// import 'core-js/es6/number';
+// import 'core-js/es6/math';
+// import 'core-js/es6/string';
+// import 'core-js/es6/date';
+// import 'core-js/es6/array';
+// import 'core-js/es6/regexp';
+// import 'core-js/es6/map';
+// import 'core-js/es6/weak-map';
+// import 'core-js/es6/set';
+
+/** IE10 and IE11 requires the following for NgClass support on SVG elements */
+// import 'classlist.js'; // Run `npm install --save classlist.js`.
+
+/** IE10 and IE11 requires the following for the Reflect API. */
+// import 'core-js/es6/reflect';
+
+
+/** Evergreen browsers require these. **/
+// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
+import 'core-js/es7/reflect';
+
+
+/**
+ * Required to support Web Animations `@angular/platform-browser/animations`.
+ * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
+ **/
+// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
+
+
+
+/***************************************************************************************************
+ * Zone JS is required by Angular itself.
+ */
+import 'zone.js/dist/zone'; // Included with Angular CLI.
+
+
+
+/***************************************************************************************************
+ * APPLICATION IMPORTS
+ */
+
+/**
+ * Date, currency, decimal and percent pipes.
+ * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
+ */
+// import 'intl'; // Run `npm install --save intl`.
+/**
+ * Need to import at least one locale-data with intl.
+ */
+// import 'intl/locale-data/jsonp/en';
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/styles/_constants.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/styles/_constants.scss
new file mode 100755
index 0000000..b3a5d07
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/styles/_constants.scss
@@ -0,0 +1,21 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+@import '../../node_modules/@angular/material/theming';
+
+$small-breakpoint-width: 720px;
+
+/* For desktop, the content should be aligned with the page title. */
+$content-padding-side: 70px;
+$content-padding-side-xs: 15px;
+$awc-spacing-unit: 8px;
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/styles/_general.scss b/asterixdb/asterix-app/src/main/resources/dashboard/src/styles/_general.scss
new file mode 100755
index 0000000..9691cf8
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/styles/_general.scss
@@ -0,0 +1,32 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+html {
+ box-sizing: border-box;
+}
+
+body {
+ font-family: "Roboto Mono", monospace;
+ font-size: 0.80rem;
+ font-weight: 500;
+}
+
+// Tree and table styling
+
+.ui-datatable{
+ //overflow : auto
+}
+
+.ui-datatable .ui-sortable-column div.ui-dt-c {
+ padding-right: 15px !important;
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/test.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/test.ts
new file mode 100755
index 0000000..6edcb85
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/test.ts
@@ -0,0 +1,46 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+// This file is required by karma.conf.js and loads recursively all the .spec and framework files
+
+import 'zone.js/dist/long-stack-trace-zone';
+import 'zone.js/dist/proxy.js';
+import 'zone.js/dist/sync-test';
+import 'zone.js/dist/jasmine-patch';
+import 'zone.js/dist/async-test';
+import 'zone.js/dist/fake-async-test';
+import { getTestBed } from '@angular/core/testing';
+import {
+ BrowserDynamicTestingModule,
+ platformBrowserDynamicTesting
+} from '@angular/platform-browser-dynamic/testing';
+
+// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
+declare const __karma__: any;
+declare const require: any;
+
+// Prevent Karma from running prematurely.
+__karma__.loaded = function () {};
+
+// First, initialize the Angular testing environment.
+getTestBed().initTestEnvironment(
+ BrowserDynamicTestingModule,
+ platformBrowserDynamicTesting()
+);
+// Then we find all the tests.
+const context = require.context('./', true, /\.spec\.ts$/);
+// And load the modules.
+context.keys().map(context);
+// Finally, start Karma to run the tests.
+__karma__.start();
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/tsconfig.app.json b/asterixdb/asterix-app/src/main/resources/dashboard/src/tsconfig.app.json
new file mode 100755
index 0000000..54434df
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/tsconfig.app.json
@@ -0,0 +1,26 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/app",
+ "baseUrl": "./",
+ "module": "es2015",
+ "types": []
+ },
+ "exclude": [
+ "test.ts",
+ "**/*.spec.ts"
+ ]
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/tsconfig.spec.json b/asterixdb/asterix-app/src/main/resources/dashboard/src/tsconfig.spec.json
new file mode 100755
index 0000000..15bcf37
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/tsconfig.spec.json
@@ -0,0 +1,33 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/spec",
+ "baseUrl": "./",
+ "module": "commonjs",
+ "target": "es5",
+ "types": [
+ "jasmine",
+ "node"
+ ]
+ },
+ "files": [
+ "test.ts"
+ ],
+ "include": [
+ "**/*.spec.ts",
+ "**/*.d.ts"
+ ]
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/src/typings.d.ts b/asterixdb/asterix-app/src/main/resources/dashboard/src/typings.d.ts
new file mode 100755
index 0000000..ef5c7bd
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/src/typings.d.ts
@@ -0,0 +1,5 @@
+/* SystemJS module definition */
+declare var module: NodeModule;
+interface NodeModule {
+ id: string;
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/3rdpartylicenses.txt b/asterixdb/asterix-app/src/main/resources/dashboard/static/3rdpartylicenses.txt
new file mode 100644
index 0000000..03758a4
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/3rdpartylicenses.txt
@@ -0,0 +1,222 @@
+@angular/animations@5.1.1
+MIT
+MIT
+
+@angular/common@5.1.1
+MIT
+MIT
+
+@angular/core@5.1.1
+MIT
+MIT
+
+@angular/platform-browser@5.1.1
+MIT
+MIT
+
+@ngrx/store-devtools@4.1.1
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2017 Brandon Roberts, Mike Ryan, Victor Savkin, Rob Wormald
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+codemirror@5.32.0
+MIT
+MIT License
+
+Copyright (C) 2017 by Marijn Haverbeke <marijnh@gmail.com> and others
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+core-js@2.5.3
+MIT
+Copyright (c) 2014-2017 Denis Pushkarev
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+file-saver@1.3.3
+MIT
+The MIT License
+
+Copyright © 2016 [Eli Grey][1].
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ [1]: http://eligrey.com
+
+hammerjs@2.0.8
+MIT
+The MIT License (MIT)
+
+Copyright (C) 2011-2014 by Jorik Tangelder (Eight Media)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+primeng@4.3.0
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2016-2017 PrimeTek
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+@angular/forms@5.1.1
+MIT
+MIT
+
+@ngrx/store@4.1.1
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2017 Brandon Roberts, Mike Ryan, Victor Savkin, Rob Wormald
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+webpack@3.8.1
+MIT
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+zone.js@0.8.18
+MIT
+The MIT License
+
+Copyright (c) 2016 Google, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/assets/asterixdb_tm.png b/asterixdb/asterix-app/src/main/resources/dashboard/static/assets/asterixdb_tm.png
new file mode 100644
index 0000000..0fa2ff0
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/assets/asterixdb_tm.png
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/color.c7a33805ffda0d32bd2a.png b/asterixdb/asterix-app/src/main/resources/dashboard/static/color.c7a33805ffda0d32bd2a.png
new file mode 100644
index 0000000..561cdd9
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/color.c7a33805ffda0d32bd2a.png
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/favicon.ico b/asterixdb/asterix-app/src/main/resources/dashboard/static/favicon.ico
new file mode 100644
index 0000000..282c28d
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/favicon.ico
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/index.html b/asterixdb/asterix-app/src/main/resources/dashboard/static/index.html
new file mode 100644
index 0000000..c34009b
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/index.html
@@ -0,0 +1,13 @@
+<!--/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/--><!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><title>AsterixDb Administration Console</title><base href="/dashboard/static/"><link rel="icon" type="image/x-icon" href="favicon.ico"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto+Mono"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500"><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"><link href="styles.9f50282210bba5318775.bundle.css" rel="stylesheet"/></head><body><awc-root></awc-root><script type="text/javascript" src="inline.66bd6b83f86cf773a001.bundle.js"></script><script type="text/javascript" src="polyfills.32ca5670d6503e090789.bundle.js"></script><script type="text/javascript" src="scripts.da68998bdd77aff4e764.bundle.js"></script><script type="text/javascript" src="main.37b7b7cad656490b195a.bundle.js"></script></body></html>
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/inline.66bd6b83f86cf773a001.bundle.js b/asterixdb/asterix-app/src/main/resources/dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
new file mode 100644
index 0000000..1868b98
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/inline.66bd6b83f86cf773a001.bundle.js
@@ -0,0 +1 @@
+!function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,c,a){for(var u,i,f,l=0,s=[];l<t.length;l++)o[i=t[l]]&&s.push(o[i][0]),o[i]=0;for(u in c)Object.prototype.hasOwnProperty.call(c,u)&&(e[u]=c[u]);for(r&&r(t,c,a);s.length;)s.shift()();if(a)for(l=0;l<a.length;l++)f=n(n.s=a[l]);return f};var t={},o={3:0};n.e=function(e){function r(){u.onerror=u.onload=null,clearTimeout(i);var n=o[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),o[e]=void 0)}var t=o[e];if(0===t)return new Promise(function(e){e()});if(t)return t[2];var c=new Promise(function(n,r){t=o[e]=[n,r]});t[2]=c;var a=document.getElementsByTagName("head")[0],u=document.createElement("script");u.type="text/javascript",u.charset="utf-8",u.async=!0,u.timeout=12e4,n.nc&&u.setAttribute("nonce",n.nc),u.src=n.p+""+e+"."+{0:"37b7b7cad656490b195a",1:"32ca5670d6503e090789",2:"bd9c51474f663c9da388"}[e]+".chunk.js";var i=setTimeout(r,12e4);return u.onerror=u.onload=r,a.appendChild(u),c},n.m=e,n.c=t,n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:t})},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,"a",r),r},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/line.567f57385ea3dde2c9ae.gif b/asterixdb/asterix-app/src/main/resources/dashboard/static/line.567f57385ea3dde2c9ae.gif
new file mode 100644
index 0000000..64e2280
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/line.567f57385ea3dde2c9ae.gif
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/main.37b7b7cad656490b195a.bundle.js b/asterixdb/asterix-app/src/main/resources/dashboard/static/main.37b7b7cad656490b195a.bundle.js
new file mode 100644
index 0000000..43d0410
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/main.37b7b7cad656490b195a.bundle.js
@@ -0,0 +1 @@
+webpackJsonp([0],{"+GRi":function(e,t,n){var r=n("Wo2w"),i=n("Wy9r");e.exports=function(e){return r(i(e))}},"+iEx":function(e,t,n){n("fHxy"),n("5GJ3"),n("X0O/"),n("HCkn"),n("ncNB"),n("soMw"),n("8sYH"),n("IJ3P"),n("t6ta"),e.exports=n("b4gG").Reflect},"+pQw":function(e,t,n){var r=n("JXkd");e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},"/zAi":function(e,t,n){"use strict";var r=n("6Xbx").__decorate,i=n("6Xbx").__metadata;Object.defineProperty(t,"__esModule",{value:!0});var o=n("LMZF"),l=n("Un6q"),a=n("LMZF"),s=function(){};s=r([a.Component({selector:"p-header",template:"<ng-content></ng-content>"})],s),t.Header=s;var u=function(){};u=r([a.Component({selector:"p-footer",template:"<ng-content></ng-content>"})],u),t.Footer=u;var c=function(){function e(e){this.template=e}return e.prototype.getType=function(){return this.name},e}();r([o.Input(),i("design:type",String)],c.prototype,"type",void 0),r([o.Input("pTemplate"),i("design:type",String)],c.prototype,"name",void 0),c=r([o.Directive({selector:"[pTemplate]",host:{}})],c),t.PrimeTemplate=c;var d=function(){function e(e){this.viewContainer=e}return e.prototype.ngOnInit=function(){this.view=this.viewContainer.createEmbeddedView(this.templateRef,{$implicit:this.item,index:this.index})},e.prototype.ngOnDestroy=function(){this.view.destroy()},e}();r([o.Input(),i("design:type",Object)],d.prototype,"item",void 0),r([o.Input(),i("design:type",Number)],d.prototype,"index",void 0),r([o.Input("pTemplateWrapper"),i("design:type",o.TemplateRef)],d.prototype,"templateRef",void 0),d=r([o.Directive({selector:"[pTemplateWrapper]"})],d),t.TemplateWrapper=d;var p=function(){function e(){this.filterType="text",this.exportable=!0,this.sortFunction=new o.EventEmitter}return e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach(function(t){switch(t.getType()){case"header":e.headerTemplate=t.template;break;case"body":e.bodyTemplate=t.template;break;case"footer":e.footerTemplate=t.template;break;case"filter":e.filterTemplate=t.template;break;case"editor":e.editorTemplate=t.template;break;default:e.bodyTemplate=t.template}})},e}();r([o.Input(),i("design:type",String)],p.prototype,"field",void 0),r([o.Input(),i("design:type",String)],p.prototype,"colId",void 0),r([o.Input(),i("design:type",String)],p.prototype,"sortField",void 0),r([o.Input(),i("design:type",String)],p.prototype,"filterField",void 0),r([o.Input(),i("design:type",String)],p.prototype,"header",void 0),r([o.Input(),i("design:type",String)],p.prototype,"footer",void 0),r([o.Input(),i("design:type",Object)],p.prototype,"sortable",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"editable",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"filter",void 0),r([o.Input(),i("design:type",String)],p.prototype,"filterMatchMode",void 0),r([o.Input(),i("design:type",String)],p.prototype,"filterType",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"excludeGlobalFilter",void 0),r([o.Input(),i("design:type",Number)],p.prototype,"rowspan",void 0),r([o.Input(),i("design:type",Number)],p.prototype,"colspan",void 0),r([o.Input(),i("design:type",String)],p.prototype,"scope",void 0),r([o.Input(),i("design:type",Object)],p.prototype,"style",void 0),r([o.Input(),i("design:type",String)],p.prototype,"styleClass",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"exportable",void 0),r([o.Input(),i("design:type",Object)],p.prototype,"headerStyle",void 0),r([o.Input(),i("design:type",String)],p.prototype,"headerStyleClass",void 0),r([o.Input(),i("design:type",Object)],p.prototype,"bodyStyle",void 0),r([o.Input(),i("design:type",String)],p.prototype,"bodyStyleClass",void 0),r([o.Input(),i("design:type",Object)],p.prototype,"footerStyle",void 0),r([o.Input(),i("design:type",String)],p.prototype,"footerStyleClass",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"hidden",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"expander",void 0),r([o.Input(),i("design:type",String)],p.prototype,"selectionMode",void 0),r([o.Input(),i("design:type",String)],p.prototype,"filterPlaceholder",void 0),r([o.Input(),i("design:type",Number)],p.prototype,"filterMaxlength",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"frozen",void 0),r([o.Output(),i("design:type",o.EventEmitter)],p.prototype,"sortFunction",void 0),r([o.ContentChildren(c),i("design:type",o.QueryList)],p.prototype,"templates",void 0),r([o.ContentChild(o.TemplateRef),i("design:type",o.TemplateRef)],p.prototype,"template",void 0),p=r([a.Component({selector:"p-column",template:""})],p),t.Column=p;var f=function(){};r([o.ContentChildren(p),i("design:type",o.QueryList)],f.prototype,"columns",void 0),f=r([a.Component({selector:"p-row",template:""})],f),t.Row=f;var h=function(){};r([o.Input(),i("design:type",Boolean)],h.prototype,"frozen",void 0),r([o.ContentChildren(f),i("design:type",o.QueryList)],h.prototype,"rows",void 0),h=r([a.Component({selector:"p-headerColumnGroup",template:""})],h),t.HeaderColumnGroup=h;var m=function(){};r([o.Input(),i("design:type",Boolean)],m.prototype,"frozen",void 0),r([o.ContentChildren(f),i("design:type",o.QueryList)],m.prototype,"rows",void 0),m=r([a.Component({selector:"p-footerColumnGroup",template:""})],m),t.FooterColumnGroup=m;var g=function(){function e(e){this.viewContainer=e}return e.prototype.ngOnInit=function(){this.view=this.viewContainer.createEmbeddedView(this.column.bodyTemplate,{$implicit:this.column,rowData:this.rowData,rowIndex:this.rowIndex})},e.prototype.ngOnChanges=function(e){this.view&&"rowIndex"in e&&(this.view.context.rowIndex=e.rowIndex.currentValue)},e.prototype.ngOnDestroy=function(){this.view.destroy()},e}();r([o.Input(),i("design:type",Object)],g.prototype,"column",void 0),r([o.Input(),i("design:type",Object)],g.prototype,"rowData",void 0),r([o.Input(),i("design:type",Number)],g.prototype,"rowIndex",void 0),g=r([a.Component({selector:"p-columnBodyTemplateLoader",template:""})],g),t.ColumnBodyTemplateLoader=g;var y=function(){function e(e){this.viewContainer=e}return e.prototype.ngOnInit=function(){this.view=this.viewContainer.createEmbeddedView(this.column.headerTemplate,{$implicit:this.column})},e.prototype.ngOnDestroy=function(){this.view.destroy()},e}();r([o.Input(),i("design:type",Object)],y.prototype,"column",void 0),y=r([a.Component({selector:"p-columnHeaderTemplateLoader",template:""})],y),t.ColumnHeaderTemplateLoader=y;var v=function(){function e(e){this.viewContainer=e}return e.prototype.ngOnInit=function(){this.view=this.viewContainer.createEmbeddedView(this.column.footerTemplate,{$implicit:this.column})},e.prototype.ngOnDestroy=function(){this.view.destroy()},e}();r([o.Input(),i("design:type",Object)],v.prototype,"column",void 0),v=r([a.Component({selector:"p-columnFooterTemplateLoader",template:""})],v),t.ColumnFooterTemplateLoader=v;var b=function(){function e(e){this.viewContainer=e}return e.prototype.ngOnInit=function(){this.view=this.viewContainer.createEmbeddedView(this.column.filterTemplate,{$implicit:this.column})},e.prototype.ngOnDestroy=function(){this.view.destroy()},e}();r([o.Input(),i("design:type",Object)],b.prototype,"column",void 0),b=r([a.Component({selector:"p-columnFilterTemplateLoader",template:""})],b),t.ColumnFilterTemplateLoader=b;var _=function(){function e(e){this.viewContainer=e}return e.prototype.ngOnInit=function(){this.view=this.viewContainer.createEmbeddedView(this.column.editorTemplate,{$implicit:this.column,rowData:this.rowData,rowIndex:this.rowIndex})},e.prototype.ngOnDestroy=function(){this.view.destroy()},e}();r([o.Input(),i("design:type",Object)],_.prototype,"column",void 0),r([o.Input(),i("design:type",Object)],_.prototype,"rowData",void 0),r([o.Input(),i("design:type",Object)],_.prototype,"rowIndex",void 0),_=r([a.Component({selector:"p-columnEditorTemplateLoader",template:""})],_),t.ColumnEditorTemplateLoader=_;var w=function(){function e(e){this.viewContainer=e}return e.prototype.ngOnInit=function(){this.template&&(this.view=this.viewContainer.createEmbeddedView(this.template,{$implicit:this.data}))},e.prototype.ngOnDestroy=function(){this.view&&this.view.destroy()},e}();r([o.Input(),i("design:type",o.TemplateRef)],w.prototype,"template",void 0),r([o.Input(),i("design:type",Object)],w.prototype,"data",void 0),w=r([a.Component({selector:"p-templateLoader",template:""})],w),t.TemplateLoader=w;var x=function(){};x=r([o.NgModule({imports:[l.CommonModule],exports:[s,u,p,d,y,g,v,b,c,w,f,h,m,_],declarations:[s,u,p,d,y,g,v,b,c,w,f,h,m,_]})],x),t.SharedModule=x},0:function(e,t,n){e.exports=n("cDNt")},"0l2a":function(e,t,n){"use strict";var r=n("6Xbx"),i=n("E9/g"),o=function(){function e(e){this.total=e}return e.prototype.call=function(e,t){return t.subscribe(new l(e,this.total))},e}(),l=function(e){function t(t,n){e.call(this,t),this.total=n,this.count=0}return Object(r.__extends)(t,e),t.prototype._next=function(e){++this.count>this.total&&this.destination.next(e)},t}(i.a);t.a=function(e){return function(e){return function(t){return t.lift(new o(e))}}(e)(this)}},"0nO6":function(e,t,n){"use strict";function r(e){return null==e||0===e.length}function i(e){return null!=e}function o(e){var t=Object(D["\u0275isPromise"])(e)?R(e):e;if(!Object(D["\u0275isObservable"])(t))throw new Error("Expected validator to return Promise or Observable.");return t}function l(e){var t=e.reduce(function(e,t){return null!=t?Object(k.__assign)({},e,t):e},{});return 0===Object.keys(t).length?null:t}function a(e){return e.validate?function(t){return e.validate(t)}:e}function s(e){return e.validate?function(t){return e.validate(t)}:e}function u(){throw new Error("unimplemented")}function c(e,t){return null==e?""+t:(t&&"object"==typeof t&&(t="Object"),(e+": "+t).slice(0,50))}function d(e,t){return null==e?""+t:("string"==typeof t&&(t="'"+t+"'"),t&&"object"==typeof t&&(t="Object"),(e+": "+t).slice(0,50))}function p(e,t){return t.path.concat([e])}function f(e,t){e||y(t,"Cannot find control with"),t.valueAccessor||y(t,"No value accessor for form control with"),e.validator=V.compose([e.validator,t.validator]),e.asyncValidator=V.composeAsync([e.asyncValidator,t.asyncValidator]),t.valueAccessor.writeValue(e.value),function(e,t){t.valueAccessor.registerOnChange(function(n){e._pendingValue=n,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&h(e,t)})}(e,t),function(t,n){e.registerOnChange(function(e,t){n.valueAccessor.writeValue(e),t&&n.viewToModelUpdate(e)})}(0,t),function(e,t){t.valueAccessor.registerOnTouched(function(){e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&h(e,t),"submit"!==e.updateOn&&e.markAsTouched()})}(e,t),t.valueAccessor.setDisabledState&&e.registerOnDisabledChange(function(e){t.valueAccessor.setDisabledState(e)}),t._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(function(){return e.updateValueAndValidity()})}),t._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(function(){return e.updateValueAndValidity()})})}function h(e,t){t.viewToModelUpdate(e._pendingValue),e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),e._pendingChange=!1}function m(e,t){null==e&&y(t,"Cannot find control with"),e.validator=V.compose([e.validator,t.validator]),e.asyncValidator=V.composeAsync([e.asyncValidator,t.asyncValidator])}function g(e){return y(e,"There is no FormControl instance attached to form control element with")}function y(e,t){var n;throw n=e.path.length>1?"path: '"+e.path.join(" -> ")+"'":e.path[0]?"name: '"+e.path+"'":"unspecified name attribute",new Error(t+" "+n)}function v(e){return null!=e?V.compose(e.map(a)):null}function b(e){return null!=e?V.composeAsync(e.map(s)):null}function _(e,t){if(!e.hasOwnProperty("model"))return!1;var n=e.model;return!!n.isFirstChange()||!Object(D["\u0275looseIdentical"])(t,n.currentValue)}function w(e,t){e._syncPendingControls(),t.forEach(function(e){var t=e.control;"submit"===t.updateOn&&t._pendingChange&&(e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1)})}function x(e,t){if(!t)return null;var n=void 0,r=void 0,i=void 0;return t.forEach(function(t){t.constructor===U?n=t:function(e){return le.some(function(t){return e.constructor===t})}(t)?(r&&y(e,"More than one built-in value accessor matches form control with"),r=t):(i&&y(e,"More than one custom value accessor matches form control with"),i=t)}),i||r||n||(y(e,"No valid value accessor for form control with"),null)}function C(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}function E(e){var t=O(e)?e.validators:e;return Array.isArray(t)?v(t):t||null}function S(e,t){var n=O(t)?t.asyncValidators:e;return Array.isArray(n)?b(n):n||null}function O(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}function T(e){return!(e instanceof je||e instanceof Le||e instanceof ze)}Object.defineProperty(t,"__esModule",{value:!0});var k=n("6Xbx"),D=n("LMZF"),I=n("Jsyr"),R=n("KRwF").a.create,M=n("dmC+"),P=n("RyBE");n.d(t,"AbstractControlDirective",function(){return N}),n.d(t,"AbstractFormGroupDirective",function(){return ae}),n.d(t,"CheckboxControlValueAccessor",function(){return H}),n.d(t,"ControlContainer",function(){return A}),n.d(t,"NG_VALUE_ACCESSOR",function(){return z}),n.d(t,"COMPOSITION_BUFFER_MODE",function(){return q}),n.d(t,"DefaultValueAccessor",function(){return U}),n.d(t,"NgControl",function(){return $}),n.d(t,"NgControlStatus",function(){return ce}),n.d(t,"NgControlStatusGroup",function(){return de}),n.d(t,"NgForm",function(){return xe}),n.d(t,"NgModel",function(){return Re}),n.d(t,"NgModelGroup",function(){return ke}),n.d(t,"RadioControlValueAccessor",function(){return Y}),n.d(t,"FormControlDirective",function(){return Ne}),n.d(t,"FormControlName",function(){return He}),n.d(t,"FormGroupDirective",function(){return Le}),n.d(t,"FormArrayName",function(){return ze}),n.d(t,"FormGroupName",function(){return je}),n.d(t,"NgSelectOption",function(){return ne}),n.d(t,"SelectControlValueAccessor",function(){return te}),n.d(t,"SelectMultipleControlValueAccessor",function(){return ie}),n.d(t,"CheckboxRequiredValidator",function(){return Ge}),n.d(t,"EmailValidator",function(){return $e}),n.d(t,"MaxLengthValidator",function(){return Xe}),n.d(t,"MinLengthValidator",function(){return Qe}),n.d(t,"PatternValidator",function(){return et}),n.d(t,"RequiredValidator",function(){return Ue}),n.d(t,"FormBuilder",function(){return tt}),n.d(t,"AbstractControl",function(){return ge}),n.d(t,"FormArray",function(){return be}),n.d(t,"FormControl",function(){return ye}),n.d(t,"FormGroup",function(){return ve}),n.d(t,"NG_ASYNC_VALIDATORS",function(){return F}),n.d(t,"NG_VALIDATORS",function(){return L}),n.d(t,"Validators",function(){return V}),n.d(t,"VERSION",function(){return nt}),n.d(t,"FormsModule",function(){return st}),n.d(t,"ReactiveFormsModule",function(){return ut}),n.d(t,"\u0275ba",function(){return at}),n.d(t,"\u0275z",function(){return lt}),n.d(t,"\u0275x",function(){return it}),n.d(t,"\u0275y",function(){return ot}),n.d(t,"\u0275a",function(){return B}),n.d(t,"\u0275b",function(){return W}),n.d(t,"\u0275c",function(){return se}),n.d(t,"\u0275d",function(){return ue}),n.d(t,"\u0275e",function(){return _e}),n.d(t,"\u0275f",function(){return De}),n.d(t,"\u0275g",function(){return Te}),n.d(t,"\u0275bf",function(){return rt}),n.d(t,"\u0275bb",function(){return G}),n.d(t,"\u0275bc",function(){return K}),n.d(t,"\u0275h",function(){return Z}),n.d(t,"\u0275i",function(){return Q}),n.d(t,"\u0275bd",function(){return X}),n.d(t,"\u0275be",function(){return J}),n.d(t,"\u0275j",function(){return Pe}),n.d(t,"\u0275k",function(){return Be}),n.d(t,"\u0275l",function(){return Ae}),n.d(t,"\u0275n",function(){return Ve}),n.d(t,"\u0275m",function(){return Fe}),n.d(t,"\u0275o",function(){return ee}),n.d(t,"\u0275q",function(){return oe}),n.d(t,"\u0275p",function(){return re}),n.d(t,"\u0275s",function(){return qe}),n.d(t,"\u0275t",function(){return Ke}),n.d(t,"\u0275v",function(){return Ye}),n.d(t,"\u0275u",function(){return Ze}),n.d(t,"\u0275w",function(){return Je}),n.d(t,"\u0275r",function(){return We});var N=function(){function e(){}return Object.defineProperty(e.prototype,"value",{get:function(){return this.control?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return this.control?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"invalid",{get:function(){return this.control?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pending",{get:function(){return this.control?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this.control?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"enabled",{get:function(){return this.control?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"errors",{get:function(){return this.control?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pristine",{get:function(){return this.control?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dirty",{get:function(){return this.control?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"touched",{get:function(){return this.control?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"status",{get:function(){return this.control?this.control.status:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"untouched",{get:function(){return this.control?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"statusChanges",{get:function(){return this.control?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valueChanges",{get:function(){return this.control?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),e.prototype.reset=function(e){void 0===e&&(e=void 0),this.control&&this.control.reset(e)},e.prototype.hasError=function(e,t){return!!this.control&&this.control.hasError(e,t)},e.prototype.getError=function(e,t){return this.control?this.control.getError(e,t):null},e}(),A=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(k.__extends)(t,e),Object.defineProperty(t.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),t}(N),L=new D.InjectionToken("NgValidators"),F=new D.InjectionToken("NgAsyncValidators"),j=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,V=function(){function e(){}return e.min=function(e){return function(t){if(r(t.value)||r(e))return null;var n=parseFloat(t.value);return!isNaN(n)&&n<e?{min:{min:e,actual:t.value}}:null}},e.max=function(e){return function(t){if(r(t.value)||r(e))return null;var n=parseFloat(t.value);return!isNaN(n)&&n>e?{max:{max:e,actual:t.value}}:null}},e.required=function(e){return r(e.value)?{required:!0}:null},e.requiredTrue=function(e){return!0===e.value?null:{required:!0}},e.email=function(e){return j.test(e.value)?null:{email:!0}},e.minLength=function(e){return function(t){if(r(t.value))return null;var n=t.value?t.value.length:0;return n<e?{minlength:{requiredLength:e,actualLength:n}}:null}},e.maxLength=function(e){return function(t){var n=t.value?t.value.length:0;return n>e?{maxlength:{requiredLength:e,actualLength:n}}:null}},e.pattern=function(t){if(!t)return e.nullValidator;var n,i;return"string"==typeof t?(i="^"+t+"$",n=new RegExp(i)):(i=t.toString(),n=t),function(e){if(r(e.value))return null;var t=e.value;return n.test(t)?null:{pattern:{requiredPattern:i,actualValue:t}}}},e.nullValidator=function(e){return null},e.compose=function(e){if(!e)return null;var t=e.filter(i);return 0==t.length?null:function(e){return l(function(e,n){return t.map(function(t){return t(e)})}(e))}},e.composeAsync=function(e){if(!e)return null;var t=e.filter(i);return 0==t.length?null:function(e){var n=function(e,n){return t.map(function(t){return t(e)})}(e).map(o);return M.a.call(Object(I.a)(n),l)}},e}(),z=new D.InjectionToken("NgValueAccessor"),B={provide:z,useExisting:Object(D.forwardRef)(function(){return H}),multi:!0},H=function(){function e(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return e.prototype.writeValue=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"checked",e)},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e}(),W={provide:z,useExisting:Object(D.forwardRef)(function(){return U}),multi:!0},q=new D.InjectionToken("CompositionEventMode"),U=function(){function e(e,t,n){this._renderer=e,this._elementRef=t,this._compositionMode=n,this.onChange=function(e){},this.onTouched=function(){},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function(){var e=Object(P.s)()?Object(P.s)().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}return e.prototype.writeValue=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==e?"":e)},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e.prototype._handleInput=function(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)},e.prototype._compositionStart=function(){this._composing=!0},e.prototype._compositionEnd=function(e){this._composing=!1,this._compositionMode&&this.onChange(e)},e}(),G={provide:z,useExisting:Object(D.forwardRef)(function(){return K}),multi:!0},K=function(){function e(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return e.prototype.writeValue=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==e?"":e)},e.prototype.registerOnChange=function(e){this.onChange=function(t){e(""==t?null:parseFloat(t))}},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e}(),$=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._parent=null,t.name=null,t.valueAccessor=null,t._rawValidators=[],t._rawAsyncValidators=[],t}return Object(k.__extends)(t,e),Object.defineProperty(t.prototype,"validator",{get:function(){return u()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return u()},enumerable:!0,configurable:!0}),t}(N),Z={provide:z,useExisting:Object(D.forwardRef)(function(){return Y}),multi:!0},Q=function(){function e(){this._accessors=[]}return e.prototype.add=function(e,t){this._accessors.push([e,t])},e.prototype.remove=function(e){for(var t=this._accessors.length-1;t>=0;--t)if(this._accessors[t][1]===e)return void this._accessors.splice(t,1)},e.prototype.select=function(e){var t=this;this._accessors.forEach(function(n){t._isSameGroup(n,e)&&n[1]!==e&&n[1].fireUncheck(e.value)})},e.prototype._isSameGroup=function(e,t){return!!e[0].control&&e[0]._parent===t._control._parent&&e[1].name===t.name},e}(),Y=function(){function e(e,t,n,r){this._renderer=e,this._elementRef=t,this._registry=n,this._injector=r,this.onChange=function(){},this.onTouched=function(){}}return e.prototype.ngOnInit=function(){this._control=this._injector.get($),this._checkName(),this._registry.add(this._control,this)},e.prototype.ngOnDestroy=function(){this._registry.remove(this)},e.prototype.writeValue=function(e){this._state=e===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)},e.prototype.registerOnChange=function(e){var t=this;this._fn=e,this.onChange=function(){e(t.value),t._registry.select(t)}},e.prototype.fireUncheck=function(e){this.writeValue(e)},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},e.prototype._throwNameError=function(){throw new Error('\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <input type="radio" formControlName="food" name="food">\n ')},e}(),X={provide:z,useExisting:Object(D.forwardRef)(function(){return J}),multi:!0},J=function(){function e(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return e.prototype.writeValue=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(e))},e.prototype.registerOnChange=function(e){this.onChange=function(t){e(""==t?null:parseFloat(t))}},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e}(),ee={provide:z,useExisting:Object(D.forwardRef)(function(){return te}),multi:!0},te=function(){function e(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=D["\u0275looseIdentical"]}return Object.defineProperty(e.prototype,"compareWith",{set:function(e){if("function"!=typeof e)throw new Error("compareWith must be a function, but received "+JSON.stringify(e));this._compareWith=e},enumerable:!0,configurable:!0}),e.prototype.writeValue=function(e){this.value=e;var t=this._getOptionId(e);null==t&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=c(t,e);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)},e.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){t.value=t._getOptionValue(n),e(t.value)}},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e.prototype._registerOption=function(){return(this._idCounter++).toString()},e.prototype._getOptionId=function(e){for(var t=0,n=Array.from(this._optionMap.keys());t<n.length;t++){var r=n[t];if(this._compareWith(this._optionMap.get(r),e))return r}return null},e.prototype._getOptionValue=function(e){var t=e.split(":")[0];return this._optionMap.has(t)?this._optionMap.get(t):e},e}(),ne=function(){function e(e,t,n){this._element=e,this._renderer=t,this._select=n,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(e.prototype,"ngValue",{set:function(e){null!=this._select&&(this._select._optionMap.set(this.id,e),this._setElementValue(c(this.id,e)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{set:function(e){this._setElementValue(e),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),e.prototype._setElementValue=function(e){this._renderer.setProperty(this._element.nativeElement,"value",e)},e.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},e}(),re={provide:z,useExisting:Object(D.forwardRef)(function(){return ie}),multi:!0},ie=function(){function e(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){},this._compareWith=D["\u0275looseIdentical"]}return Object.defineProperty(e.prototype,"compareWith",{set:function(e){if("function"!=typeof e)throw new Error("compareWith must be a function, but received "+JSON.stringify(e));this._compareWith=e},enumerable:!0,configurable:!0}),e.prototype.writeValue=function(e){var t=this;this.value=e;var n;if(Array.isArray(e)){var r=e.map(function(e){return t._getOptionId(e)});n=function(e,t){e._setSelected(r.indexOf(t.toString())>-1)}}else n=function(e,t){e._setSelected(!1)};this._optionMap.forEach(n)},e.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){var r=[];if(n.hasOwnProperty("selectedOptions"))for(var i=n.selectedOptions,o=0;o<i.length;o++){var l=i.item(o),a=t._getOptionValue(l.value);r.push(a)}else for(i=n.options,o=0;o<i.length;o++)(l=i.item(o)).selected&&(a=t._getOptionValue(l.value),r.push(a));t.value=r,e(r)}},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",e)},e.prototype._registerOption=function(e){var t=(this._idCounter++).toString();return this._optionMap.set(t,e),t},e.prototype._getOptionId=function(e){for(var t=0,n=Array.from(this._optionMap.keys());t<n.length;t++){var r=n[t];if(this._compareWith(this._optionMap.get(r)._value,e))return r}return null},e.prototype._getOptionValue=function(e){var t=e.split(":")[0];return this._optionMap.has(t)?this._optionMap.get(t)._value:e},e}(),oe=function(){function e(e,t,n){this._element=e,this._renderer=t,this._select=n,this._select&&(this.id=this._select._registerOption(this))}return Object.defineProperty(e.prototype,"ngValue",{set:function(e){null!=this._select&&(this._value=e,this._setElementValue(d(this.id,e)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{set:function(e){this._select?(this._value=e,this._setElementValue(d(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)},enumerable:!0,configurable:!0}),e.prototype._setElementValue=function(e){this._renderer.setProperty(this._element.nativeElement,"value",e)},e.prototype._setSelected=function(e){this._renderer.setProperty(this._element.nativeElement,"selected",e)},e.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},e}(),le=[H,J,K,te,ie,Y],ae=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(k.__extends)(t,e),t.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(t.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return p(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return v(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return b(this._asyncValidators)},enumerable:!0,configurable:!0}),t.prototype._checkParentType=function(){},t}(A),se=function(){function e(e){this._cd=e}return Object.defineProperty(e.prototype,"ngClassUntouched",{get:function(){return!!this._cd.control&&this._cd.control.untouched},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngClassTouched",{get:function(){return!!this._cd.control&&this._cd.control.touched},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngClassPristine",{get:function(){return!!this._cd.control&&this._cd.control.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngClassDirty",{get:function(){return!!this._cd.control&&this._cd.control.dirty},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngClassValid",{get:function(){return!!this._cd.control&&this._cd.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngClassInvalid",{get:function(){return!!this._cd.control&&this._cd.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngClassPending",{get:function(){return!!this._cd.control&&this._cd.control.pending},enumerable:!0,configurable:!0}),e}(),ue={"[class.ng-untouched]":"ngClassUntouched","[class.ng-touched]":"ngClassTouched","[class.ng-pristine]":"ngClassPristine","[class.ng-dirty]":"ngClassDirty","[class.ng-valid]":"ngClassValid","[class.ng-invalid]":"ngClassInvalid","[class.ng-pending]":"ngClassPending"},ce=function(e){function t(t){return e.call(this,t)||this}return Object(k.__extends)(t,e),t}(se),de=function(e){function t(t){return e.call(this,t)||this}return Object(k.__extends)(t,e),t}(se),pe="VALID",fe="INVALID",he="PENDING",me="DISABLED",ge=function(){function e(e,t){this.validator=e,this.asyncValidator=t,this._onCollectionChange=function(){},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}return Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return this.status===pe},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"invalid",{get:function(){return this.status===fe},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pending",{get:function(){return this.status==he},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this.status===me},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"enabled",{get:function(){return this.status!==me},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"untouched",{get:function(){return!this.touched},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"updateOn",{get:function(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"},enumerable:!0,configurable:!0}),e.prototype.setValidators=function(e){this.validator=E(e)},e.prototype.setAsyncValidators=function(e){this.asyncValidator=S(e)},e.prototype.clearValidators=function(){this.validator=null},e.prototype.clearAsyncValidators=function(){this.asyncValidator=null},e.prototype.markAsTouched=function(e){void 0===e&&(e={}),this.touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)},e.prototype.markAsUntouched=function(e){void 0===e&&(e={}),this.touched=!1,this._pendingTouched=!1,this._forEachChild(function(e){e.markAsUntouched({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)},e.prototype.markAsDirty=function(e){void 0===e&&(e={}),this.pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)},e.prototype.markAsPristine=function(e){void 0===e&&(e={}),this.pristine=!0,this._pendingDirty=!1,this._forEachChild(function(e){e.markAsPristine({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)},e.prototype.markAsPending=function(e){void 0===e&&(e={}),this.status=he,this._parent&&!e.onlySelf&&this._parent.markAsPending(e)},e.prototype.disable=function(e){void 0===e&&(e={}),this.status=me,this.errors=null,this._forEachChild(function(e){e.disable({onlySelf:!0})}),this._updateValue(),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(!!e.onlySelf),this._onDisabledChange.forEach(function(e){return e(!0)})},e.prototype.enable=function(e){void 0===e&&(e={}),this.status=pe,this._forEachChild(function(e){e.enable({onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors(!!e.onlySelf),this._onDisabledChange.forEach(function(e){return e(!1)})},e.prototype._updateAncestors=function(e){this._parent&&!e&&(this._parent.updateValueAndValidity(),this._parent._updatePristine(),this._parent._updateTouched())},e.prototype.setParent=function(e){this._parent=e},e.prototype.updateValueAndValidity=function(e){void 0===e&&(e={}),this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),this.status!==pe&&this.status!==he||this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)},e.prototype._updateTreeValidity=function(e){void 0===e&&(e={emitEvent:!0}),this._forEachChild(function(t){return t._updateTreeValidity(e)}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})},e.prototype._setInitialStatus=function(){this.status=this._allControlsDisabled()?me:pe},e.prototype._runValidator=function(){return this.validator?this.validator(this):null},e.prototype._runAsyncValidator=function(e){var t=this;if(this.asyncValidator){this.status=he;var n=o(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(function(n){return t.setErrors(n,{emitEvent:e})})}},e.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},e.prototype.setErrors=function(e,t){void 0===t&&(t={}),this.errors=e,this._updateControlsErrors(!1!==t.emitEvent)},e.prototype.get=function(e){return function(e,t,n){return null==t?null:(t instanceof Array||(t=t.split(".")),t instanceof Array&&0===t.length?null:t.reduce(function(e,t){return e instanceof ve?e.controls[t]||null:e instanceof be?e.at(t)||null:null},e))}(this,e)},e.prototype.getError=function(e,t){var n=t?this.get(t):this;return n&&n.errors?n.errors[e]:null},e.prototype.hasError=function(e,t){return!!this.getError(e,t)},Object.defineProperty(e.prototype,"root",{get:function(){for(var e=this;e._parent;)e=e._parent;return e},enumerable:!0,configurable:!0}),e.prototype._updateControlsErrors=function(e){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(e)},e.prototype._initObservables=function(){this.valueChanges=new D.EventEmitter,this.statusChanges=new D.EventEmitter},e.prototype._calculateStatus=function(){return this._allControlsDisabled()?me:this.errors?fe:this._anyControlsHaveStatus(he)?he:this._anyControlsHaveStatus(fe)?fe:pe},e.prototype._anyControlsHaveStatus=function(e){return this._anyControls(function(t){return t.status===e})},e.prototype._anyControlsDirty=function(){return this._anyControls(function(e){return e.dirty})},e.prototype._anyControlsTouched=function(){return this._anyControls(function(e){return e.touched})},e.prototype._updatePristine=function(e){void 0===e&&(e={}),this.pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)},e.prototype._updateTouched=function(e){void 0===e&&(e={}),this.touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)},e.prototype._isBoxedValue=function(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e},e.prototype._registerOnCollectionChange=function(e){this._onCollectionChange=e},e.prototype._setUpdateStrategy=function(e){O(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)},e}(),ye=function(e){function t(t,n,r){void 0===t&&(t=null);var i=e.call(this,E(n),S(r,n))||this;return i._onChange=[],i._applyFormState(t),i._setUpdateStrategy(n),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i._initObservables(),i}return Object(k.__extends)(t,e),t.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this.value=this._pendingValue=e,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(function(e){return e(n.value,!1!==t.emitViewToModelChange)}),this.updateValueAndValidity(t)},t.prototype.patchValue=function(e,t){void 0===t&&(t={}),this.setValue(e,t)},t.prototype.reset=function(e,t){void 0===e&&(e=null),void 0===t&&(t={}),this._applyFormState(e),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1},t.prototype._updateValue=function(){},t.prototype._anyControls=function(e){return!1},t.prototype._allControlsDisabled=function(){return this.disabled},t.prototype.registerOnChange=function(e){this._onChange.push(e)},t.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},t.prototype.registerOnDisabledChange=function(e){this._onDisabledChange.push(e)},t.prototype._forEachChild=function(e){},t.prototype._syncPendingControls=function(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))},t.prototype._applyFormState=function(e){this._isBoxedValue(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e},t}(ge),ve=function(e){function t(t,n,r){var i=e.call(this,E(n),S(r,n))||this;return i.controls=t,i._initObservables(),i._setUpdateStrategy(n),i._setUpControls(),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i}return Object(k.__extends)(t,e),t.prototype.registerControl=function(e,t){return this.controls[e]?this.controls[e]:(this.controls[e]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)},t.prototype.addControl=function(e,t){this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.removeControl=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),delete this.controls[e],this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),delete this.controls[e],t&&this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.contains=function(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled},t.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this._checkAllValuesPresent(e),Object.keys(e).forEach(function(r){n._throwIfControlMissing(r),n.controls[r].setValue(e[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)},t.prototype.patchValue=function(e,t){var n=this;void 0===t&&(t={}),Object.keys(e).forEach(function(r){n.controls[r]&&n.controls[r].patchValue(e[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)},t.prototype.reset=function(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this._forEachChild(function(n,r){n.reset(e[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t),this._updatePristine(t),this._updateTouched(t)},t.prototype.getRawValue=function(){return this._reduceChildren({},function(e,t,n){return e[n]=t instanceof ye?t.value:t.getRawValue(),e})},t.prototype._syncPendingControls=function(){var e=this._reduceChildren(!1,function(e,t){return!!t._syncPendingControls()||e});return e&&this.updateValueAndValidity({onlySelf:!0}),e},t.prototype._throwIfControlMissing=function(e){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[e])throw new Error("Cannot find form control with name: "+e+".")},t.prototype._forEachChild=function(e){var t=this;Object.keys(this.controls).forEach(function(n){return e(t.controls[n],n)})},t.prototype._setUpControls=function(){var e=this;this._forEachChild(function(t){t.setParent(e),t._registerOnCollectionChange(e._onCollectionChange)})},t.prototype._updateValue=function(){this.value=this._reduceValue()},t.prototype._anyControls=function(e){var t=this,n=!1;return this._forEachChild(function(r,i){n=n||t.contains(i)&&e(r)}),n},t.prototype._reduceValue=function(){var e=this;return this._reduceChildren({},function(t,n,r){return(n.enabled||e.disabled)&&(t[r]=n.value),t})},t.prototype._reduceChildren=function(e,t){var n=e;return this._forEachChild(function(e,r){n=t(n,e,r)}),n},t.prototype._allControlsDisabled=function(){for(var e=0,t=Object.keys(this.controls);e<t.length;e++)if(this.controls[t[e]].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled},t.prototype._checkAllValuesPresent=function(e){this._forEachChild(function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")})},t}(ge),be=function(e){function t(t,n,r){var i=e.call(this,E(n),S(r,n))||this;return i.controls=t,i._initObservables(),i._setUpdateStrategy(n),i._setUpControls(),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i}return Object(k.__extends)(t,e),t.prototype.at=function(e){return this.controls[e]},t.prototype.push=function(e){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.insert=function(e,t){this.controls.splice(e,0,t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.removeAt=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),this.controls.splice(e,1),this.updateValueAndValidity(),this._onCollectionChange()},t.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),this.controls.splice(e,1),t&&(this.controls.splice(e,0,t),this._registerControl(t)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(t.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),t.prototype.setValue=function(e,t){var n=this;void 0===t&&(t={}),this._checkAllValuesPresent(e),e.forEach(function(e,r){n._throwIfControlMissing(r),n.at(r).setValue(e,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)},t.prototype.patchValue=function(e,t){var n=this;void 0===t&&(t={}),e.forEach(function(e,r){n.at(r)&&n.at(r).patchValue(e,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)},t.prototype.reset=function(e,t){void 0===e&&(e=[]),void 0===t&&(t={}),this._forEachChild(function(n,r){n.reset(e[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t),this._updatePristine(t),this._updateTouched(t)},t.prototype.getRawValue=function(){return this.controls.map(function(e){return e instanceof ye?e.value:e.getRawValue()})},t.prototype._syncPendingControls=function(){var e=this.controls.reduce(function(e,t){return!!t._syncPendingControls()||e},!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e},t.prototype._throwIfControlMissing=function(e){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(e))throw new Error("Cannot find form control at index "+e)},t.prototype._forEachChild=function(e){this.controls.forEach(function(t,n){e(t,n)})},t.prototype._updateValue=function(){var e=this;this.value=this.controls.filter(function(t){return t.enabled||e.disabled}).map(function(e){return e.value})},t.prototype._anyControls=function(e){return this.controls.some(function(t){return t.enabled&&e(t)})},t.prototype._setUpControls=function(){var e=this;this._forEachChild(function(t){return e._registerControl(t)})},t.prototype._checkAllValuesPresent=function(e){this._forEachChild(function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control at index: "+n+".")})},t.prototype._allControlsDisabled=function(){for(var e=0,t=this.controls;e<t.length;e++)if(t[e].enabled)return!1;return this.controls.length>0||this.disabled},t.prototype._registerControl=function(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)},t}(ge),_e={provide:A,useExisting:Object(D.forwardRef)(function(){return xe})},we=Promise.resolve(null),xe=function(e){function t(t,n){var r=e.call(this)||this;return r.submitted=!1,r._directives=[],r.ngSubmit=new D.EventEmitter,r.form=new ve({},v(t),b(n)),r}return Object(k.__extends)(t,e),t.prototype.ngAfterViewInit=function(){this._setUpdateStrategy()},Object.defineProperty(t.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),t.prototype.addControl=function(e){var t=this;we.then(function(){var n=t._findContainer(e.path);e.control=n.registerControl(e.name,e.control),f(e.control,e),e.control.updateValueAndValidity({emitEvent:!1}),t._directives.push(e)})},t.prototype.getControl=function(e){return this.form.get(e.path)},t.prototype.removeControl=function(e){var t=this;we.then(function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name),C(t._directives,e)})},t.prototype.addFormGroup=function(e){var t=this;we.then(function(){var n=t._findContainer(e.path),r=new ve({});m(r,e),n.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})},t.prototype.removeFormGroup=function(e){var t=this;we.then(function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name)})},t.prototype.getFormGroup=function(e){return this.form.get(e.path)},t.prototype.updateModel=function(e,t){var n=this;we.then(function(){n.form.get(e.path).setValue(t)})},t.prototype.setValue=function(e){this.control.setValue(e)},t.prototype.onSubmit=function(e){return this.submitted=!0,w(this.form,this._directives),this.ngSubmit.emit(e),!1},t.prototype.onReset=function(){this.resetForm()},t.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this.submitted=!1},t.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)},t.prototype._findContainer=function(e){return e.pop(),e.length?this.form.get(e):this.form},t}(A),Ce='\n <div [formGroup]="myGroup">\n <input formControlName="firstName">\n </div>\n\n In your class:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });',Ee='\n <div [formGroup]="myGroup">\n <div formGroupName="person">\n <input formControlName="firstName">\n </div>\n </div>\n\n In your class:\n\n this.myGroup = new FormGroup({\n person: new FormGroup({ firstName: new FormControl() })\n });',Se='\n <form>\n <div ngModelGroup="person">\n <input [(ngModel)]="person.name" name="firstName">\n </div>\n </form>',Oe=function(){function e(){}return e.modelParentException=function(){throw new Error('\n ngModel cannot be used to register form controls with a parent formGroup directive. Try using\n formGroup\'s partner directive "formControlName" instead. Example:\n\n '+Ce+'\n\n Or, if you\'d like to avoid registering this form control, indicate that it\'s standalone in ngModelOptions:\n\n Example:\n\n \n <div [formGroup]="myGroup">\n <input formControlName="firstName">\n <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n </div>\n ')},e.formGroupNameException=function(){throw new Error("\n ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n "+Ee+"\n\n Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n "+Se)},e.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n control must be defined as \'standalone\' in ngModelOptions.\n\n Example 1: <input [(ngModel)]="person.firstName" name="first">\n Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')},e.modelGroupParentException=function(){throw new Error("\n ngModelGroup cannot be used with a parent formGroup directive.\n\n Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n "+Ee+"\n\n Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n "+Se)},e}(),Te={provide:A,useExisting:Object(D.forwardRef)(function(){return ke})},ke=function(e){function t(t,n,r){var i=e.call(this)||this;return i._parent=t,i._validators=n,i._asyncValidators=r,i}return Object(k.__extends)(t,e),t.prototype._checkParentType=function(){this._parent instanceof t||this._parent instanceof xe||Oe.modelGroupParentException()},t}(ae),De={provide:$,useExisting:Object(D.forwardRef)(function(){return Re})},Ie=Promise.resolve(null),Re=function(e){function t(t,n,r,i){var o=e.call(this)||this;return o.control=new ye,o._registered=!1,o.update=new D.EventEmitter,o._parent=t,o._rawValidators=n||[],o._rawAsyncValidators=r||[],o.valueAccessor=x(o,i),o}return Object(k.__extends)(t,e),t.prototype.ngOnChanges=function(e){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in e&&this._updateDisabled(e),_(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(t.prototype,"path",{get:function(){return this._parent?p(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return v(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return b(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},t.prototype._setUpControl=function(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},t.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)},t.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},t.prototype._setUpStandalone=function(){f(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})},t.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},t.prototype._checkParentType=function(){!(this._parent instanceof ke)&&this._parent instanceof ae?Oe.formGroupNameException():this._parent instanceof ke||this._parent instanceof xe||Oe.modelParentException()},t.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||Oe.missingNameException()},t.prototype._updateValue=function(e){var t=this;Ie.then(function(){t.control.setValue(e,{emitViewToModelChange:!1})})},t.prototype._updateDisabled=function(e){var t=this,n=e.isDisabled.currentValue,r=""===n||n&&"false"!==n;Ie.then(function(){r&&!t.control.disabled?t.control.disable():!r&&t.control.disabled&&t.control.enable()})},t}($),Me=function(){function e(){}return e.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+Ce)},e.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n Option 1: Update the parent to be formGroupName (reactive form strategy)\n\n '+Ee+"\n\n Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n "+Se)},e.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n Example:\n\n "+Ce)},e.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+Ee)},e.arrayParentException=function(){throw new Error('formArrayName must be used with a parent formGroup directive. You\'ll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n \n <div [formGroup]="myGroup">\n <div formArrayName="cities">\n <div *ngFor="let city of cityArray.controls; index as i">\n <input [formControlName]="i">\n </div>\n </div>\n </div>\n\n In your class:\n\n this.cityArray = new FormArray([new FormControl(\'SF\')]);\n this.myGroup = new FormGroup({\n cities: this.cityArray\n });')},e.disabledAttrWarning=function(){console.warn("\n It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n you. We recommend using this approach to avoid 'changed after checked' errors.\n \n Example: \n form = new FormGroup({\n first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n last: new FormControl('Drew', Validators.required)\n });\n ")},e}(),Pe={provide:$,useExisting:Object(D.forwardRef)(function(){return Ne})},Ne=function(e){function t(t,n,r){var i=e.call(this)||this;return i.update=new D.EventEmitter,i._rawValidators=t||[],i._rawAsyncValidators=n||[],i.valueAccessor=x(i,r),i}return Object(k.__extends)(t,e),Object.defineProperty(t.prototype,"isDisabled",{set:function(e){Me.disabledAttrWarning()},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(e){this._isControlChanged(e)&&(f(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),_(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return v(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return b(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},t.prototype._isControlChanged=function(e){return e.hasOwnProperty("form")},t}($),Ae={provide:A,useExisting:Object(D.forwardRef)(function(){return Le})},Le=function(e){function t(t,n){var r=e.call(this)||this;return r._validators=t,r._asyncValidators=n,r.submitted=!1,r.directives=[],r.form=null,r.ngSubmit=new D.EventEmitter,r}return Object(k.__extends)(t,e),t.prototype.ngOnChanges=function(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(t.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),t.prototype.addControl=function(e){var t=this.form.get(e.path);return f(t,e),t.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),t},t.prototype.getControl=function(e){return this.form.get(e.path)},t.prototype.removeControl=function(e){C(this.directives,e)},t.prototype.addFormGroup=function(e){var t=this.form.get(e.path);m(t,e),t.updateValueAndValidity({emitEvent:!1})},t.prototype.removeFormGroup=function(e){},t.prototype.getFormGroup=function(e){return this.form.get(e.path)},t.prototype.addFormArray=function(e){var t=this.form.get(e.path);m(t,e),t.updateValueAndValidity({emitEvent:!1})},t.prototype.removeFormArray=function(e){},t.prototype.getFormArray=function(e){return this.form.get(e.path)},t.prototype.updateModel=function(e,t){this.form.get(e.path).setValue(t)},t.prototype.onSubmit=function(e){return this.submitted=!0,w(this.form,this.directives),this.ngSubmit.emit(e),!1},t.prototype.onReset=function(){this.resetForm()},t.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this.submitted=!1},t.prototype._updateDomValue=function(){var e=this;this.directives.forEach(function(t){var n=e.form.get(t.path);t.control!==n&&(function(e,t){t.valueAccessor.registerOnChange(function(){return g(t)}),t.valueAccessor.registerOnTouched(function(){return g(t)}),t._rawValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)}),t._rawAsyncValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)}),e&&e._clearChangeFns()}(t.control,t),n&&f(n,t),t.control=n)}),this.form._updateTreeValidity({emitEvent:!1})},t.prototype._updateRegistrations=function(){var e=this;this.form._registerOnCollectionChange(function(){return e._updateDomValue()}),this._oldForm&&this._oldForm._registerOnCollectionChange(function(){}),this._oldForm=this.form},t.prototype._updateValidators=function(){var e=v(this._validators);this.form.validator=V.compose([this.form.validator,e]);var t=b(this._asyncValidators);this.form.asyncValidator=V.composeAsync([this.form.asyncValidator,t])},t.prototype._checkFormPresent=function(){this.form||Me.missingFormException()},t}(A),Fe={provide:A,useExisting:Object(D.forwardRef)(function(){return je})},je=function(e){function t(t,n,r){var i=e.call(this)||this;return i._parent=t,i._validators=n,i._asyncValidators=r,i}return Object(k.__extends)(t,e),t.prototype._checkParentType=function(){T(this._parent)&&Me.groupParentException()},t}(ae),Ve={provide:A,useExisting:Object(D.forwardRef)(function(){return ze})},ze=function(e){function t(t,n,r){var i=e.call(this)||this;return i._parent=t,i._validators=n,i._asyncValidators=r,i}return Object(k.__extends)(t,e),t.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(t.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return p(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return v(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return b(this._asyncValidators)},enumerable:!0,configurable:!0}),t.prototype._checkParentType=function(){T(this._parent)&&Me.arrayParentException()},t}(A),Be={provide:$,useExisting:Object(D.forwardRef)(function(){return He})},He=function(e){function t(t,n,r,i){var o=e.call(this)||this;return o._added=!1,o.update=new D.EventEmitter,o._parent=t,o._rawValidators=n||[],o._rawAsyncValidators=r||[],o.valueAccessor=x(o,i),o}return Object(k.__extends)(t,e),Object.defineProperty(t.prototype,"isDisabled",{set:function(e){Me.disabledAttrWarning()},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(e){this._added||this._setUpControl(),_(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},t.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},t.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},Object.defineProperty(t.prototype,"path",{get:function(){return p(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"validator",{get:function(){return v(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"asyncValidator",{get:function(){return b(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),t.prototype._checkParentType=function(){!(this._parent instanceof je)&&this._parent instanceof ae?Me.ngModelGroupException():this._parent instanceof je||this._parent instanceof Le||this._parent instanceof ze||Me.controlParentException()},t.prototype._setUpControl=function(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},t}($),We={provide:L,useExisting:Object(D.forwardRef)(function(){return Ue}),multi:!0},qe={provide:L,useExisting:Object(D.forwardRef)(function(){return Ge}),multi:!0},Ue=function(){function e(){}return Object.defineProperty(e.prototype,"required",{get:function(){return this._required},set:function(e){this._required=null!=e&&!1!==e&&""+e!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),e.prototype.validate=function(e){return this.required?V.required(e):null},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e}(),Ge=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(k.__extends)(t,e),t.prototype.validate=function(e){return this.required?V.requiredTrue(e):null},t}(Ue),Ke={provide:L,useExisting:Object(D.forwardRef)(function(){return $e}),multi:!0},$e=function(){function e(){}return Object.defineProperty(e.prototype,"email",{set:function(e){this._enabled=""===e||!0===e||"true"===e,this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),e.prototype.validate=function(e){return this._enabled?V.email(e):null},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e}(),Ze={provide:L,useExisting:Object(D.forwardRef)(function(){return Qe}),multi:!0},Qe=function(){function e(){}return e.prototype.ngOnChanges=function(e){"minlength"in e&&(this._createValidator(),this._onChange&&this._onChange())},e.prototype.validate=function(e){return null==this.minlength?null:this._validator(e)},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e.prototype._createValidator=function(){this._validator=V.minLength(parseInt(this.minlength,10))},e}(),Ye={provide:L,useExisting:Object(D.forwardRef)(function(){return Xe}),multi:!0},Xe=function(){function e(){}return e.prototype.ngOnChanges=function(e){"maxlength"in e&&(this._createValidator(),this._onChange&&this._onChange())},e.prototype.validate=function(e){return null!=this.maxlength?this._validator(e):null},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e.prototype._createValidator=function(){this._validator=V.maxLength(parseInt(this.maxlength,10))},e}(),Je={provide:L,useExisting:Object(D.forwardRef)(function(){return et}),multi:!0},et=function(){function e(){}return e.prototype.ngOnChanges=function(e){"pattern"in e&&(this._createValidator(),this._onChange&&this._onChange())},e.prototype.validate=function(e){return this._validator(e)},e.prototype.registerOnValidatorChange=function(e){this._onChange=e},e.prototype._createValidator=function(){this._validator=V.pattern(this.pattern)},e}(),tt=function(){function e(){}return e.prototype.group=function(e,t){void 0===t&&(t=null);var n=this._reduceControls(e);return new ve(n,null!=t?t.validator:null,null!=t?t.asyncValidator:null)},e.prototype.control=function(e,t,n){return new ye(e,t,n)},e.prototype.array=function(e,t,n){var r=this,i=e.map(function(e){return r._createControl(e)});return new be(i,t,n)},e.prototype._reduceControls=function(e){var t=this,n={};return Object.keys(e).forEach(function(r){n[r]=t._createControl(e[r])}),n},e.prototype._createControl=function(e){return e instanceof ye||e instanceof ve||e instanceof be?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)},e}(),nt=new D.Version("5.1.1"),rt=function(){},it=[rt,ne,oe,U,K,J,H,te,ie,Y,ce,de,Ue,Qe,Xe,et,Ge,$e],ot=[Re,ke,xe],lt=[Ne,Le,He,je,ze],at=function(){},st=function(){},ut=function(){}},"1j/l":function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=Array.isArray||function(e){return e&&"number"==typeof e.length}},"2Fuj":function(e,t,n){var r=n("R5c1"),i=n("a/Sk");e.exports=Object.keys||function(e){return r(e,i)}},"2kLc":function(e,t,n){"use strict";t.a=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var n=Number.POSITIVE_INFINITY,a=null,s=e[e.length-1];return Object(o.a)(s)?(a=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(n=e.pop())):"number"==typeof s&&(n=e.pop()),null===a&&1===e.length&&e[0]instanceof r.a?e[0]:Object(l.a)(n)(new i.a(e,a))};var r=n("AP4T"),i=n("Oryw"),o=n("3iOE"),l=n("bywS")},"3LDD":function(e,t,n){"use strict";var r=n("tose").f,i=n("51pc"),o=n("pBmS"),l=n("pa70"),a=n("Lcie"),s=n("p/bR"),u=n("WsSm"),c=n("w/BM"),d=n("KpXt"),p=n("V+0c"),f=n("xI8H").fastKey,h=n("Y5fy"),m=p?"_s":"size",g=function(e,t){var n,r=f(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,u){var c=e(function(e,r){a(e,c,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,void 0!=r&&s(r,n,e[u],e)});return o(c.prototype,{clear:function(){for(var e=h(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=h(this,t),r=g(n,e);if(r){var i=r.n,o=r.p;delete n._i[r.i],r.r=!0,o&&(o.n=i),i&&(i.p=o),n._f==r&&(n._f=i),n._l==r&&(n._l=o),n[m]--}return!!r},forEach:function(e){h(this,t);for(var n,r=l(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(h(this,t),e)}}),p&&r(c.prototype,"size",{get:function(){return h(this,t)[m]}}),c},def:function(e,t,n){var r,i,o=g(e,t);return o?o.v=n:(e._l=o={i:i=f(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=o),r&&(r.n=o),e[m]++,"F"!==i&&(e._i[i]=o)),e},getEntry:g,setStrong:function(e,t,n){u(e,t,function(e,n){this._t=h(e,t),this._k=n,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?c(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,c(1))},n?"entries":"values",!n,!0),d(t)}}},"3iOE":function(e,t,n){"use strict";t.a=function(e){return e&&"function"==typeof e.schedule}},"3k/+":function(e,t,n){"use strict";function r(e,t){var n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new l(e,t,n))}}var i=n("6Xbx"),o=n("E9/g"),l=function(){function e(e,t,n){void 0===n&&(n=!1),this.accumulator=e,this.seed=t,this.hasSeed=n}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.accumulator,this.seed,this.hasSeed))},e}(),a=function(e){function t(t,n,r,i){e.call(this,t),this.accumulator=n,this._seed=r,this.hasSeed=i,this.index=0}return Object(i.__extends)(t,e),Object.defineProperty(t.prototype,"seed",{get:function(){return this._seed},set:function(e){this.hasSeed=!0,this._seed=e},enumerable:!0,configurable:!0}),t.prototype._next=function(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)},t.prototype._tryNext=function(e){var t,n=this.index++;try{t=this.accumulator(this.seed,e,n)}catch(e){this.destination.error(e)}this.seed=t,this.destination.next(t)},t}(o.a);t.a=function(e,t){return arguments.length>=2?r(e,t)(this):r(e)(this)}},"3m71":function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=n("Ecq+").a.create},"3r0D":function(e,t,n){var r=n("Iclu")("wks"),i=n("c09d"),o=n("ptrv").Symbol,l="function"==typeof o;(e.exports=function(e){return r[e]||(r[e]=l&&o[e]||(l?o:i)("Symbol."+e))}).store=r},"4cOY":function(e,t,n){"use strict";var r=n("6Xbx").__decorate;Object.defineProperty(t,"__esModule",{value:!0});var i=n("LMZF"),o=function(){function e(){this.calculatedScrollbarWidth=null}return e.prototype.addClass=function(e,t){e.classList?e.classList.add(t):e.className+=" "+t},e.prototype.addMultipleClasses=function(e,t){if(e.classList)for(var n=t.split(" "),r=0;r<n.length;r++)e.classList.add(n[r]);else for(n=t.split(" "),r=0;r<n.length;r++)e.className+=" "+n[r]},e.prototype.removeClass=function(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(^|\\b)"+t.split(" ").join("|")+"(\\b|$)","gi")," ")},e.prototype.hasClass=function(e,t){return e.classList?e.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(e.className)},e.prototype.siblings=function(e){return Array.prototype.filter.call(e.parentNode.children,function(t){return t!==e})},e.prototype.find=function(e,t){return e.querySelectorAll(t)},e.prototype.findSingle=function(e,t){return e.querySelector(t)},e.prototype.index=function(e){for(var t=e.parentNode.childNodes,n=0,r=0;r<t.length;r++){if(t[r]==e)return n;1==t[r].nodeType&&n++}return-1},e.prototype.relativePosition=function(e,t){var n,r,i=e.offsetParent?{width:e.offsetWidth,height:e.offsetHeight}:this.getHiddenElementDimensions(e),o=t.offsetHeight,l=t.offsetWidth,a=t.getBoundingClientRect(),s=(this.getWindowScrollTop(),this.getViewport());a.top+o+i.height>s.height?a.top+(n=-1*i.height)<0&&(n=0):n=o,r=a.left+i.width>s.width?l-i.width:0,e.style.top=n+"px",e.style.left=r+"px"},e.prototype.absolutePosition=function(e,t){var n,r,i=e.offsetParent?{width:e.offsetWidth,height:e.offsetHeight}:this.getHiddenElementDimensions(e),o=i.height,l=i.width,a=t.offsetHeight,s=t.offsetWidth,u=t.getBoundingClientRect(),c=this.getWindowScrollTop(),d=this.getWindowScrollLeft(),p=this.getViewport();u.top+a+o>p.height?(n=u.top+c-o)<0&&(n=0+c):n=a+u.top+c,r=u.left+s+l>p.width?u.left+d+s-l:u.left+d,e.style.top=n+"px",e.style.left=r+"px"},e.prototype.getHiddenElementOuterHeight=function(e){e.style.visibility="hidden",e.style.display="block";var t=e.offsetHeight;return e.style.display="none",e.style.visibility="visible",t},e.prototype.getHiddenElementOuterWidth=function(e){e.style.visibility="hidden",e.style.display="block";var t=e.offsetWidth;return e.style.display="none",e.style.visibility="visible",t},e.prototype.getHiddenElementDimensions=function(e){var t={};return e.style.visibility="hidden",e.style.display="block",t.width=e.offsetWidth,t.height=e.offsetHeight,e.style.display="none",e.style.visibility="visible",t},e.prototype.scrollInView=function(e,t){var n=getComputedStyle(e).getPropertyValue("borderTopWidth"),r=n?parseFloat(n):0,i=getComputedStyle(e).getPropertyValue("paddingTop"),o=i?parseFloat(i):0,l=e.getBoundingClientRect(),a=t.getBoundingClientRect().top+document.body.scrollTop-(l.top+document.body.scrollTop)-r-o,s=e.scrollTop,u=e.clientHeight,c=this.getOuterHeight(t);a<0?e.scrollTop=s+a:a+c>u&&(e.scrollTop=s+a-u+c)},e.prototype.fadeIn=function(e,t){e.style.opacity=0;var n=+new Date,r=0,i=function(){r=+e.style.opacity+((new Date).getTime()-n)/t,e.style.opacity=r,n=+new Date,+r<1&&(window.requestAnimationFrame&&requestAnimationFrame(i)||setTimeout(i,16))};i()},e.prototype.fadeOut=function(e,t){var n=1,r=50/t,i=setInterval(function(){(n-=r)<=0&&(n=0,clearInterval(i)),e.style.opacity=n},50)},e.prototype.getWindowScrollTop=function(){var e=document.documentElement;return(window.pageYOffset||e.scrollTop)-(e.clientTop||0)},e.prototype.getWindowScrollLeft=function(){var e=document.documentElement;return(window.pageXOffset||e.scrollLeft)-(e.clientLeft||0)},e.prototype.matches=function(e,t){var n=Element.prototype;return(n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector||function(e){return-1!==[].indexOf.call(document.querySelectorAll(e),this)}).call(e,t)},e.prototype.getOuterWidth=function(e,t){var n=e.offsetWidth;if(t){var r=getComputedStyle(e);n+=parseFloat(r.marginLeft)+parseFloat(r.marginRight)}return n},e.prototype.getHorizontalPadding=function(e){var t=getComputedStyle(e);return parseFloat(t.paddingLeft)+parseFloat(t.paddingRight)},e.prototype.getHorizontalMargin=function(e){var t=getComputedStyle(e);return parseFloat(t.marginLeft)+parseFloat(t.marginRight)},e.prototype.innerWidth=function(e){var t=e.offsetWidth,n=getComputedStyle(e);return t+=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)},e.prototype.width=function(e){var t=e.offsetWidth,n=getComputedStyle(e);return t-=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)},e.prototype.getInnerHeight=function(e){var t=e.offsetHeight,n=getComputedStyle(e);return t+=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)},e.prototype.getOuterHeight=function(e,t){var n=e.offsetHeight;if(t){var r=getComputedStyle(e);n+=parseFloat(r.marginTop)+parseFloat(r.marginBottom)}return n},e.prototype.getHeight=function(e){var t=e.offsetHeight,n=getComputedStyle(e);return t-=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)+parseFloat(n.borderTopWidth)+parseFloat(n.borderBottomWidth)},e.prototype.getWidth=function(e){var t=e.offsetWidth,n=getComputedStyle(e);return t-=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)+parseFloat(n.borderLeftWidth)+parseFloat(n.borderRightWidth)},e.prototype.getViewport=function(){var e=window,t=document,n=t.documentElement,r=t.getElementsByTagName("body")[0];return{width:e.innerWidth||n.clientWidth||r.clientWidth,height:e.innerHeight||n.clientHeight||r.clientHeight}},e.prototype.getOffset=function(e){var t=e.getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}},e.prototype.getUserAgent=function(){return navigator.userAgent},e.prototype.isIE=function(){var e=window.navigator.userAgent;return e.indexOf("MSIE ")>0||(e.indexOf("Trident/")>0?(e.indexOf("rv:"),!0):e.indexOf("Edge/")>0)},e.prototype.appendChild=function(e,t){if(this.isElement(t))t.appendChild(e);else{if(!t.el||!t.el.nativeElement)throw"Cannot append "+t+" to "+e;t.el.nativeElement.appendChild(e)}},e.prototype.removeChild=function(e,t){if(this.isElement(t))t.removeChild(e);else{if(!t.el||!t.el.nativeElement)throw"Cannot remove "+e+" from "+t;t.el.nativeElement.removeChild(e)}},e.prototype.isElement=function(e){return"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&null!==e&&1===e.nodeType&&"string"==typeof e.nodeName},e.prototype.calculateScrollbarWidth=function(){if(null!==this.calculatedScrollbarWidth)return this.calculatedScrollbarWidth;var e=document.createElement("div");e.className="ui-scrollbar-measure",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;return document.body.removeChild(e),this.calculatedScrollbarWidth=t,t},e.prototype.invokeElementMethod=function(e,t,n){e[t].apply(e,n)},e.prototype.clearSelection=function(){if(window.getSelection)window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().rangeCount>0&&window.getSelection().getRangeAt(0).getClientRects().length>0&&window.getSelection().removeAllRanges();else if(document.selection&&document.selection.empty)try{document.selection.empty()}catch(e){}},e.zindex=1e3,e}();o=r([i.Injectable()],o),t.DomHandler=o},"51pc":function(e,t,n){var r=n("+pQw"),i=n("ewdp"),o=n("a/Sk"),l=n("yIWP")("IE_PROTO"),a=function(){},s=function(){var e,t=n("BQSv")("iframe"),r=o.length;for(t.style.display="none",n("Ed9o").appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),s=e.F;r--;)delete s.prototype[o[r]];return s()};e.exports=Object.create||function(e,t){var n;return null!==e?(a.prototype=r(e),n=new a,a.prototype=null,n[l]=e):n=s(),void 0===t?n:i(n,t)}},"5GJ3":function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=r.key,l=r.map,a=r.store;r.exp({deleteMetadata:function(e,t){var n=arguments.length<3?void 0:o(arguments[2]),r=l(i(t),n,!1);if(void 0===r||!r.delete(e))return!1;if(r.size)return!0;var s=a.get(t);return s.delete(n),!!s.size||a.delete(t)}})},"5O0w":function(e,t,n){"use strict";t.a=function(e){return function(t){return t.lift(new l(e))}};var r=n("6Xbx"),i=n("lI6h"),o=n("qgI0"),l=function(){function e(e){this.notifier=e}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.notifier))},e}(),a=function(e){function t(t,n){e.call(this,t),this.notifier=n,this.add(Object(o.a)(this,n))}return Object(r.__extends)(t,e),t.prototype.notifyNext=function(e,t,n,r,i){this.complete()},t.prototype.notifyComplete=function(){},t}(i.a)},"5jKg":function(e,t,n){"use strict";t.a=function(e,t){return function(n){return n.lift(new l(e,t))}};var r=n("6Xbx"),i=n("lI6h"),o=n("qgI0"),l=function(){function e(e,t){this.project=e,this.resultSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.project,this.resultSelector))},e}(),a=function(e){function t(t,n,r){e.call(this,t),this.project=n,this.resultSelector=r,this.index=0}return Object(r.__extends)(t,e),t.prototype._next=function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(e){return void this.destination.error(e)}this._innerSub(t,e,n)},t.prototype._innerSub=function(e,t,n){var r=this.innerSubscription;r&&r.unsubscribe(),this.add(this.innerSubscription=Object(o.a)(this,e,t,n))},t.prototype._complete=function(){var t=this.innerSubscription;t&&!t.closed||e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){this.innerSubscription=null},t.prototype.notifyComplete=function(t){this.remove(t),this.innerSubscription=null,this.isStopped&&e.prototype._complete.call(this)},t.prototype.notifyNext=function(e,t,n,r,i){this.resultSelector?this._tryNotifyNext(e,t,n,r):this.destination.next(t)},t.prototype._tryNotifyNext=function(e,t,n,r){var i;try{i=this.resultSelector(e,t,n,r)}catch(e){return void this.destination.error(e)}this.destination.next(i)},t}(i.a)},"5oDA":function(e,t,n){var r=n("JXkd"),i=n("+pQw"),o=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n("pa70")(Function.call,n("6De9").f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:o}},"5q5V":function(e,t,n){"use strict";n.d(t,"a",function(){return c});var r=n("6Xbx"),i=n("TO51"),o=n("Gcw1"),l=n("qLnt"),a=n("YRqN"),s=n("Upor"),u=n("jaVc"),c=function(e){function t(t,n,r){void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===n&&(n=Number.POSITIVE_INFINITY),e.call(this),this.scheduler=r,this._events=[],this._bufferSize=t<1?1:t,this._windowTime=n<1?1:n}return Object(r.__extends)(t,e),t.prototype.next=function(t){var n=this._getNow();this._events.push(new d(n,t)),this._trimBufferThenGetEvents(),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){var t,n=this._trimBufferThenGetEvents(),r=this.scheduler;if(this.closed)throw new s.a;this.hasError?t=l.a.EMPTY:this.isStopped?t=l.a.EMPTY:(this.observers.push(e),t=new u.a(this,e)),r&&e.add(e=new a.a(e,r));for(var i=n.length,o=0;o<i&&!e.closed;o++)e.next(n[o].value);return this.hasError?e.error(this.thrownError):this.isStopped&&e.complete(),t},t.prototype._getNow=function(){return(this.scheduler||o.a).now()},t.prototype._trimBufferThenGetEvents=function(){for(var e=this._getNow(),t=this._bufferSize,n=this._windowTime,r=this._events,i=r.length,o=0;o<i&&!(e-r[o].time<n);)o++;return i>t&&(o=Math.max(o,i-t)),o>0&&r.splice(0,o),r},t}(i.Subject),d=function(e,t){this.time=e,this.value=t}},"6De9":function(e,t,n){var r=n("9e9+"),i=n("piOq"),o=n("+GRi"),l=n("A1WY"),a=n("rMsi"),s=n("gNkH"),u=Object.getOwnPropertyDescriptor;t.f=n("V+0c")?u:function(e,t){if(e=o(e),t=l(t,!0),s)try{return u(e,t)}catch(e){}if(a(e,t))return i(!r.f.call(e,t),e[t])}},"6S6c":function(e,t,n){"use strict";t.a=function(e,t){return Object(r.a)(e,t)(this)};var r=n("LaOa")},"6Xbx":function(e,t,n){"use strict";function r(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function i(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)l.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return l}function o(e){return this instanceof o?(this.v=e,this):new o(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.__extends=function(e,t){function n(){this.constructor=e}l(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},n.d(t,"__assign",function(){return a}),t.__rest=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&(n[r[i]]=e[r[i]])}return n},t.__decorate=function(e,t,n,r){var i,o=arguments.length,l=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(l=(o<3?i(l):o>3?i(t,n,l):i(t,n))||l);return o>3&&l&&Object.defineProperty(t,n,l),l},t.__param=function(e,t){return function(n,r){t(n,r,e)}},t.__metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},t.__awaiter=function(e,t,n,r){return new(n||(n=Promise))(function(i,o){function l(e){try{s(r.next(e))}catch(e){o(e)}}function a(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){e.done?i(e.value):new n(function(t){t(e.value)}).then(l,a)}s((r=r.apply(e,t||[])).next())})},t.__generator=function(e,t){function n(n){return function(l){return function(n){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,i&&(o=i[2&n[0]?"return":n[0]?"throw":"next"])&&!(o=o.call(i,n[1])).done)return o;switch(i=0,o&&(n=[0,o.value]),n[0]){case 0:case 1:o=n;break;case 4:return a.label++,{value:n[1],done:!1};case 5:a.label++,i=n[1],n=[0];continue;case 7:n=a.ops.pop(),a.trys.pop();continue;default:if(o=a.trys,!(o=o.length>0&&o[o.length-1])&&(6===n[0]||2===n[0])){a=0;continue}if(3===n[0]&&(!o||n[1]>o[0]&&n[1]<o[3])){a.label=n[1];break}if(6===n[0]&&a.label<o[1]){a.label=o[1],o=n;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(n);break}o[2]&&a.ops.pop(),a.trys.pop();continue}n=t.call(e,a)}catch(e){n=[6,e],i=0}finally{r=o=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}([n,l])}}var r,i,o,l,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return l={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l},t.__exportStar=function(e,t){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])},t.__values=r,t.__read=i,t.__spread=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(i(arguments[t]));return e},t.__await=o,t.__asyncGenerator=function(e,t,n){function r(e){c[e]&&(u[e]=function(t){return new Promise(function(n,r){d.push([e,t,n,r])>1||i(e,t)})})}function i(e,t){try{!function(e){e.value instanceof o?Promise.resolve(e.value.v).then(l,a):s(d[0][2],e)}(c[e](t))}catch(e){s(d[0][3],e)}}function l(e){i("next",e)}function a(e){i("throw",e)}function s(e,t){e(t),d.shift(),d.length&&i(d[0][0],d[0][1])}if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var u,c=n.apply(e,t||[]),d=[];return u={},r("next"),r("throw"),r("return"),u[Symbol.asyncIterator]=function(){return this},u},t.__asyncDelegator=function(e){function t(t,i){e[t]&&(n[t]=function(n){return(r=!r)?{value:o(e[t](n)),done:"return"===t}:i?i(n):n})}var n,r;return n={},t("next"),t("throw",function(e){throw e}),t("return"),n[Symbol.iterator]=function(){return this},n},t.__asyncValues=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator];return t?t.call(e):r(e)},t.__makeTemplateObject=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e};var l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e}},"6y8h":function(e,t,n){"use strict";var r=n("6Xbx"),i=n("E9/g"),o=n("8ofh"),l=n("NePw"),a=function(){function e(e,t){this.compare=e,this.keySelector=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.compare,this.keySelector))},e}(),s=function(e){function t(t,n,r){e.call(this,t),this.keySelector=r,this.hasKey=!1,"function"==typeof n&&(this.compare=n)}return Object(r.__extends)(t,e),t.prototype.compare=function(e,t){return e===t},t.prototype._next=function(e){var t=e;if(this.keySelector&&(t=Object(o.a)(this.keySelector)(e))===l.a)return this.destination.error(l.a.e);var n=!1;if(this.hasKey){if((n=Object(o.a)(this.compare)(this.key,t))===l.a)return this.destination.error(l.a.e)}else this.hasKey=!0;!1===Boolean(n)&&(this.key=t,this.destination.next(e))},t}(i.a);t.a=function(e,t){return function(e,t){return function(n){return n.lift(new a(e,t))}}(e,t)(this)}},"8Ut3":function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("6Xbx"),i=function(e){function t(t,n){e.call(this),this.value=t,this.scheduler=n,this._isScalar=!0,n&&(this._isScalar=!1)}return Object(r.__extends)(t,e),t.create=function(e,n){return new t(e,n)},t.dispatch=function(e){var t=e.value,n=e.subscriber;e.done?n.complete():(n.next(t),n.closed||(e.done=!0,this.schedule(e)))},t.prototype._subscribe=function(e){var n=this.value,r=this.scheduler;if(r)return r.schedule(t.dispatch,0,{done:!1,value:n,subscriber:e});e.next(n),e.closed||e.complete()},t}(n("AP4T").a)},"8ofh":function(e,t,n){"use strict";function r(){try{return i.apply(this,arguments)}catch(e){return o.a.e=e,o.a}}t.a=function(e){return i=e,r};var i,o=n("NePw")},"8sYH":function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=n("TJLg"),l=r.has,a=r.key,s=function(e,t,n){if(l(e,t,n))return!0;var r=o(t);return null!==r&&s(e,r,n)};r.exp({hasMetadata:function(e,t){return s(e,i(t),arguments.length<3?void 0:a(arguments[2]))}})},"9ScN":function(e,t,n){"use strict";var r=n("51pc"),i=n("piOq"),o=n("P6IN"),l={};n("gxdV")(l,n("3r0D")("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(l,{next:i(1,n)}),o(e,t+" Iterator")}},"9e9+":function(e,t){t.f={}.propertyIsEnumerable},"9wYb":function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},A1WY:function(e,t,n){var r=n("JXkd");e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},ADVA:function(e,t,n){"use strict";function r(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var n=e.length;if(0===n)throw new Error("list of properties cannot be empty.");return function(t){return Object(_.a)(function(e,t){return function(n){for(var r=n,i=0;i<t;i++){var o=r[e[i]];if(void 0===o)return;r=o}return r}}(e,n))(t)}}.apply(void 0,e)(this)}function i(e,t){void 0===t&&(t={});for(var n=Object.keys(e),r={},i=0;i<n.length;i++){var o=n[i];"function"==typeof e[o]&&(r[o]=e[o])}var l=Object.keys(r);return function(e,n){e=e||t;for(var i=!1,o={},a=0;a<l.length;a++){var s=l[a],u=e[s],c=(0,r[s])(u,n);o[s]=c,i=i||c!==u}return i?o:e}}function o(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){if(0===e.length)return t;var n=e[e.length-1];return e.slice(0,-1).reduceRight(function(e,t){return t(e)},n(t))}}function l(e,t){return Array.isArray(t)&&t.length>0?o.apply(null,t.concat([e])):e}function a(e,t){void 0===e&&(e={state:void 0});var n=t[0];return{state:(0,t[1])(e.state,n),action:n}}function s(e,t,n){return t instanceof d.InjectionToken?e.get(t):t}function u(e,t,n){return t.map(function(t,n){return t instanceof d.InjectionToken?e.get(t):t})}function c(e){return"function"==typeof e?e():e}var d=n("LMZF"),p=n("eoFs"),f=n("AP4T"),h=n("TO51"),m=n("Gcw1"),g=n("ozyc"),y=n("ThPn"),v=n("3k/+"),b=n("dmC+"),_=n("qqDE"),w=n("6y8h");n.d(t,"n",function(){return X}),n.d(t,"m",function(){return $}),n.d(t,"w",function(){return i}),n.d(t,"x",function(){return o}),n.d(t,"y",function(){return l}),n.d(t,"a",function(){return L}),n.d(t,"b",function(){return A}),n.d(t,"g",function(){return B}),n.d(t,"i",function(){return j}),n.d(t,"h",function(){return V}),n.d(t,"p",function(){return z}),n.d(t,"j",function(){return W}),n.d(t,"k",function(){return G}),n.d(t,"l",function(){return U}),n.d(t,"d",function(){return E}),n.d(t,"s",function(){return O}),n.d(t,"f",function(){return S}),n.d(t,"q",function(){return k}),n.d(t,"c",function(){return T}),n.d(t,"r",function(){return C}),n.d(t,"e",function(){return D}),n.d(t,"t",function(){return R}),n.d(t,"o",function(){return Q}),n.d(t,"v",function(){return c}),n.d(t,"u",function(){return s});var x=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),C=new d.InjectionToken("@ngrx/store Internal Initial State"),E=new d.InjectionToken("@ngrx/store Initial State"),S=new d.InjectionToken("@ngrx/store Reducer Factory"),O=new d.InjectionToken("@ngrx/store Reducer Factory Provider"),T=new d.InjectionToken("@ngrx/store Initial Reducers"),k=new d.InjectionToken("@ngrx/store Internal Initial Reducers"),D=new d.InjectionToken("@ngrx/store Meta Reducers"),I=new d.InjectionToken("@ngrx/store Store Features"),R=new d.InjectionToken("@ngrx/store Internal Store Reducers"),M=new d.InjectionToken("@ngrx/store Internal Feature Reducers"),P=new d.InjectionToken("@ngrx/store Internal Feature Reducers Token"),N=new d.InjectionToken("@ngrx/store Feature Reducers"),A="@ngrx/store/init",L=function(e){function t(){return e.call(this,{type:A})||this}return x(t,e),t.prototype.next=function(t){if(void 0===t)throw new TypeError("Actions must be objects");if(void 0===t.type)throw new TypeError("Actions must have a type property");e.prototype.next.call(this,t)},t.prototype.complete=function(){},t.prototype.ngOnDestroy=function(){e.prototype.complete.call(this)},t}(p.a),F=[L],j=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return x(t,e),t}(f.a),V=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return x(t,e),t}(L),z="@ngrx/store/update-reducers",B=function(e){function t(t,n,r,i){var o=e.call(this,i(r,n))||this;return o.dispatcher=t,o.initialState=n,o.reducers=r,o.reducerFactory=i,o}return x(t,e),t.prototype.addFeature=function(e){var t=e.reducers,n=e.initialState,r=e.key,i="function"==typeof t?function(e,r){return t(e||n,r)}:l(e.reducerFactory,e.metaReducers)(t,n);this.addReducer(r,i)},t.prototype.removeFeature=function(e){this.removeReducer(e.key)},t.prototype.addReducer=function(e,t){this.reducers=Object.assign({},this.reducers,(n={},n[e]=t,n)),this.updateReducers();var n},t.prototype.removeReducer=function(e){this.reducers=function(e,t){return Object.keys(e).filter(function(e){return e!==t}).reduce(function(t,n){return Object.assign(t,(r={},r[n]=e[n],r));var r},{})}(this.reducers,e),this.updateReducers()},t.prototype.updateReducers=function(){this.next(this.reducerFactory(this.reducers,this.initialState)),this.dispatcher.next({type:z})},t.prototype.ngOnDestroy=function(){this.complete()},t}(p.a),H=[B,{provide:j,useExisting:B},{provide:V,useExisting:L}],W=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return x(t,e),t.prototype.ngOnDestroy=function(){this.complete()},t}(h.Subject),q=[W],U=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return x(t,e),t}(f.a),G=function(e){function t(t,n,r,i){var o=e.call(this,i)||this,l=g.a.call(t,m.a),s=y.a.call(l,n),u=v.a.call(s,a,{state:i});return o.stateSubscription=u.subscribe({next:function(e){var t=e.action;o.next(e.state),r.next(t)}}),o}return x(t,e),t.prototype.ngOnDestroy=function(){this.stateSubscription.unsubscribe(),this.complete()},t}(p.a);G.INIT=A;var K=[G,{provide:U,useExisting:G}],$=function(e){function t(t,n,r){var i=e.call(this)||this;return i.actionsObserver=n,i.reducerManager=r,i.source=t,i}return x(t,e),t.prototype.select=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i;if("string"==typeof e)i=r.call.apply(r,[this,e].concat(t));else{if("function"!=typeof e)throw new TypeError("Unexpected type '"+typeof e+"' in select operator, expected 'string' or 'function'");i=b.a.call(this,e)}return w.a.call(i)},t.prototype.lift=function(e){var n=new t(this,this.actionsObserver,this.reducerManager);return n.operator=e,n},t.prototype.dispatch=function(e){this.actionsObserver.next(e)},t.prototype.next=function(e){this.actionsObserver.next(e)},t.prototype.error=function(e){this.actionsObserver.error(e)},t.prototype.complete=function(){this.actionsObserver.complete()},t.prototype.addReducer=function(e,t){this.reducerManager.addReducer(e,t)},t.prototype.removeReducer=function(e){this.reducerManager.removeReducer(e)},t}(f.a),Z=[$],Q=function(e,t,n){},Y=function(){function e(e,t,n){this.features=e,this.featureReducers=t,this.reducerManager=n,e.map(function(e,n){var r=t.shift()[n];return Object.assign({},e,{reducers:r,initialState:c(e.initialState)})}).forEach(function(e){return n.addFeature(e)})}return e.prototype.ngOnDestroy=function(){var e=this;this.features.forEach(function(t){return e.reducerManager.removeFeature(t)})},e}(),X=function(){function e(){}return e.forRoot=function(e,t){return void 0===t&&(t={}),{ngModule:Q,providers:[{provide:C,useValue:t.initialState},{provide:E,useFactory:c,deps:[C]},{provide:k,useValue:e},{provide:R,useExisting:e instanceof d.InjectionToken?e:k},{provide:T,deps:[d.Injector,k,[new d.Inject(R)]],useFactory:s},{provide:D,useValue:t.metaReducers?t.metaReducers:[]},{provide:O,useValue:t.reducerFactory?t.reducerFactory:i},{provide:S,deps:[O,D],useFactory:l},F,H,q,K,Z]}},e.forFeature=function(e,t,n){return void 0===n&&(n={}),{ngModule:Y,providers:[{provide:I,multi:!0,useValue:{key:e,reducerFactory:n.reducerFactory?n.reducerFactory:i,metaReducers:n.metaReducers?n.metaReducers:[],initialState:n.initialState}},{provide:M,multi:!0,useValue:t},{provide:P,multi:!0,useExisting:t instanceof d.InjectionToken?t:M},{provide:N,multi:!0,deps:[d.Injector,M,[new d.Inject(P)]],useFactory:u}]}},e}()},AP4T:function(e,t,n){"use strict";var r=n("xIGM"),i=n("E9/g"),o=n("V7AE"),l=n("grVA"),a=n("mz3w"),s=n("PR+T");n.d(t,"a",function(){return u});var u=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this.operator,a=function(e,t,n){if(e){if(e instanceof i.a)return e;if(e[o.a])return e[o.a]()}return e||t||n?new i.a(e,t,n):new i.a(l.a)}(e,t,n);if(r?r.call(a,this.source):a.add(this.source?this._subscribe(a):this._trySubscribe(a)),a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.syncErrorThrown=!0,e.syncErrorValue=t,e.error(t)}},e.prototype.forEach=function(e,t){var n=this;if(t||(r.a.Rx&&r.a.Rx.config&&r.a.Rx.config.Promise?t=r.a.Rx.config.Promise:r.a.Promise&&(t=r.a.Promise)),!t)throw new Error("no Promise impl found");return new t(function(t,r){var i;i=n.subscribe(function(t){if(i)try{e(t)}catch(e){r(e),i.unsubscribe()}else e(t)},r,t)})},e.prototype._subscribe=function(e){return this.source.subscribe(e)},e.prototype[a.a]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return 0===e.length?this:function(e){return e?1===e.length?e[0]:function(t){return e.reduce(function(e,t){return t(e)},t)}:s.a}(e)(this)},e.prototype.toPromise=function(e){var t=this;if(e||(r.a.Rx&&r.a.Rx.config&&r.a.Rx.config.Promise?e=r.a.Rx.config.Promise:r.a.Promise&&(e=r.a.Promise)),!e)throw new Error("no Promise impl found");return new e(function(e,n){var r;t.subscribe(function(e){return r=e},function(e){return n(e)},function(){return e(r)})})},e.create=function(t){return new e(t)},e}()},B1iP:function(e,t,n){"use strict";t.a=function(e){return"function"==typeof e}},BCYq:function(e,t,n){var r=n("pa70"),i=n("Wo2w"),o=n("RT4T"),l=n("rppw"),a=n("UKZQ");e.exports=function(e,t){var n=1==e,s=2==e,u=3==e,c=4==e,d=6==e,p=5==e||d,f=t||a;return function(t,a,h){for(var m,g,y=o(t),v=i(y),b=r(a,h,3),_=l(v.length),w=0,x=n?f(t,_):s?f(t,0):void 0;_>w;w++)if((p||w in v)&&(m=v[w],g=b(m,w,y),e))if(n)x[w]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return w;case 2:x.push(m)}else if(c)return!1;return d?-1:u||c?c:x}}},BQSv:function(e,t,n){var r=n("JXkd"),i=n("ptrv").document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},BThc:function(e,t,n){"use strict";var r=n("2kLc");t.a=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){return t.lift.call(r.a.apply(void 0,[t].concat(e)))}}.apply(void 0,e)(this)},n.d(t,!1,function(){return r.a})},CDXM:function(e,t,n){var r=n("ptrv"),i=n("b4gG"),o=n("gxdV"),l=n("lfBE"),a=n("pa70"),s=function(e,t,n){var u,c,d,p,f=e&s.F,h=e&s.G,m=e&s.P,g=e&s.B,y=h?r:e&s.S?r[t]||(r[t]={}):(r[t]||{}).prototype,v=h?i:i[t]||(i[t]={}),b=v.prototype||(v.prototype={});h&&(n=t);for(u in n)d=((c=!f&&y&&void 0!==y[u])?y:n)[u],p=g&&c?a(d,r):m&&"function"==typeof d?a(Function.call,d):d,y&&l(y,u,d,e&s.U),v[u]!=d&&o(v,u,p),m&&b[u]!=d&&(b[u]=d)};r.core=i,s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,e.exports=s},"E9/g":function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n("6Xbx"),i=n("B1iP"),o=n("qLnt"),l=n("grVA"),a=n("V7AE"),s=function(e){function t(n,r,i){switch(e.call(this),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=l.a;break;case 1:if(!n){this.destination=l.a;break}if("object"==typeof n){n instanceof t?(this.destination=n,this.destination.add(this)):(this.syncErrorThrowable=!0,this.destination=new u(this,n));break}default:this.syncErrorThrowable=!0,this.destination=new u(this,n,r,i)}}return Object(r.__extends)(t,e),t.prototype[a.a]=function(){return this},t.create=function(e,n,r){var i=new t(e,n,r);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parent,t=this._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=e,this._parents=t,this},t}(o.a),u=function(e){function t(t,n,r,o){e.call(this),this._parentSubscriber=t;var a,s=this;Object(i.a)(n)?a=n:n&&(a=n.next,r=n.error,o=n.complete,n!==l.a&&(s=Object.create(n),Object(i.a)(s.unsubscribe)&&this.add(s.unsubscribe.bind(s)),s.unsubscribe=this.unsubscribe.bind(this))),this._context=s,this._next=a,this._error=r,this._complete=o}return Object(r.__extends)(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber;if(this._error)t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else{if(!t.syncErrorThrowable)throw this.unsubscribe(),e;t.syncErrorValue=e,t.syncErrorThrown=!0,this.unsubscribe()}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){throw this.unsubscribe(),e}},t.prototype.__tryOrSetError=function(e,t,n){try{t.call(this._context,n)}catch(t){return e.syncErrorValue=t,e.syncErrorThrown=!0,!0}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(s)},"Ecq+":function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("6Xbx"),i=function(e){function t(t){e.call(this),this.scheduler=t}return Object(r.__extends)(t,e),t.create=function(e){return new t(e)},t.dispatch=function(e){e.subscriber.complete()},t.prototype._subscribe=function(e){var n=this.scheduler;if(n)return n.schedule(t.dispatch,0,{subscriber:e});e.complete()},t}(n("AP4T").a)},Ed9o:function(e,t,n){var r=n("ptrv").document;e.exports=r&&r.documentElement},GTlS:function(e,t,n){"use strict";var r=n("6Xbx"),i=n("xIGM"),o=function(e){function t(t,n){e.call(this)}return Object(r.__extends)(t,e),t.prototype.schedule=function(e,t){return void 0===t&&(t=0),this},t}(n("qLnt").a);n.d(t,"a",function(){return l});var l=function(e){function t(t,n){e.call(this,t,n),this.scheduler=t,this.work=n,this.pending=!1}return Object(r.__extends)(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e,this.pending=!0;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),i.a.setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!==n&&this.delay===n&&!1===this.pending)return t;i.a.clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n=!1,r=void 0;try{this.work(e)}catch(e){n=!0,r=!!e&&e||new Error(e)}if(n)return this.unsubscribe(),r},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,n=t.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(o)},Gcw1:function(e,t,n){"use strict";var r=n("6Xbx"),i=function(e){function t(t,n){e.call(this,t,n),this.scheduler=t,this.work=n}return Object(r.__extends)(t,e),t.prototype.schedule=function(t,n){return void 0===n&&(n=0),n>0?e.prototype.schedule.call(this,t,n):(this.delay=n,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,n){return n>0||this.closed?e.prototype.execute.call(this,t,n):this._execute(t,n)},t.prototype.requestAsyncId=function(t,n,r){return void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0?e.prototype.requestAsyncId.call(this,t,n,r):t.flush(this)},t}(n("GTlS").a),o=function(e){function t(){e.apply(this,arguments)}return Object(r.__extends)(t,e),t}(n("wclm").a);n.d(t,"a",function(){return l});var l=new o(i)},GpNi:function(e,t,n){"use strict";t.a=function(e,t){return Object(r.a)(e,t)(this)};var r=n("5jKg")},H0Ur:function(e,t,n){"use strict";var r=n("6Xbx").__decorate;Object.defineProperty(t,"__esModule",{value:!0});var i=n("LMZF"),o=n("TO51"),l=function(){function e(){this.dragStartSource=new o.Subject,this.dragStopSource=new o.Subject,this.dragStart$=this.dragStartSource.asObservable(),this.dragStop$=this.dragStopSource.asObservable()}return e.prototype.startDrag=function(e){this.dragStartSource.next(e)},e.prototype.stopDrag=function(e){this.dragStopSource.next(e)},e}();l=r([i.Injectable()],l),t.TreeDragDropService=l},HCkn:function(e,t,n){var r=n("Ps07"),i=n("WGJ/"),o=n("gBtn"),l=n("+pQw"),a=n("TJLg"),s=o.keys,u=o.key,c=function(e,t){var n=s(e,t),o=a(e);if(null===o)return n;var l=c(o,t);return l.length?n.length?i(new r(n.concat(l))):l:n};o.exp({getMetadataKeys:function(e){return c(l(e),arguments.length<2?void 0:u(arguments[1]))}})},IJ3P:function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=r.has,l=r.key;r.exp({hasOwnMetadata:function(e,t){return o(e,i(t),arguments.length<3?void 0:l(arguments[2]))}})},Iclu:function(e,t,n){var r=n("ptrv"),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},JXkd:function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},Jsyr:function(e,t,n){"use strict";var r=n("6Xbx"),i=n("AP4T"),o=n("Ecq+"),l=n("1j/l"),a=n("qgI0"),s=n("lI6h"),u=function(e){function t(t,n){e.call(this),this.sources=t,this.resultSelector=n}return Object(r.__extends)(t,e),t.create=function(){for(var e=[],n=0;n<arguments.length;n++)e[n-0]=arguments[n];if(null===e||0===arguments.length)return new o.a;var r=null;return"function"==typeof e[e.length-1]&&(r=e.pop()),1===e.length&&Object(l.a)(e[0])&&(e=e[0]),0===e.length?new o.a:new t(e,r)},t.prototype._subscribe=function(e){return new c(e,this.sources,this.resultSelector)},t}(i.a),c=function(e){function t(t,n,r){e.call(this,t),this.sources=n,this.resultSelector=r,this.completed=0,this.haveValues=0;var i=n.length;this.total=i,this.values=new Array(i);for(var o=0;o<i;o++){var l=n[o],s=Object(a.a)(this,l,null,o);s&&(s.outerIndex=o,this.add(s))}}return Object(r.__extends)(t,e),t.prototype.notifyNext=function(e,t,n,r,i){this.values[n]=t,i._hasValue||(i._hasValue=!0,this.haveValues++)},t.prototype.notifyComplete=function(e){var t=this.destination,n=this.haveValues,r=this.resultSelector,i=this.values,o=i.length;if(e._hasValue){if(this.completed++,this.completed===o){if(n===o){var l=r?r.apply(this,i):i;t.next(l)}t.complete()}}else t.complete()},t}(s.a);n.d(t,"a",function(){return d});var d=u.create},KGrn:function(e,t){e.exports=!1},KM3d:function(e,t,n){var r=n("9wYb"),i=Math.max,o=Math.min;e.exports=function(e,t){return(e=r(e))<0?i(e+t,0):o(e,t)}},KRwF:function(e,t,n){"use strict";function r(e){var t=e.subscriber;t.closed||(t.next(e.value),t.complete())}function i(e){var t=e.subscriber;t.closed||t.error(e.err)}n.d(t,"a",function(){return a});var o=n("6Xbx"),l=n("xIGM"),a=function(e){function t(t,n){e.call(this),this.promise=t,this.scheduler=n}return Object(o.__extends)(t,e),t.create=function(e,n){return new t(e,n)},t.prototype._subscribe=function(e){var t=this,n=this.promise,o=this.scheduler;if(null==o)this._isScalar?e.closed||(e.next(this.value),e.complete()):n.then(function(n){t.value=n,t._isScalar=!0,e.closed||(e.next(n),e.complete())},function(t){e.closed||e.error(t)}).then(null,function(e){l.a.setTimeout(function(){throw e})});else if(this._isScalar){if(!e.closed)return o.schedule(r,0,{value:this.value,subscriber:e})}else n.then(function(n){t.value=n,t._isScalar=!0,e.closed||e.add(o.schedule(r,0,{value:n,subscriber:e}))},function(t){e.closed||e.add(o.schedule(i,0,{err:t,subscriber:e}))}).then(null,function(e){l.a.setTimeout(function(){throw e})})},t}(n("AP4T").a)},"KpI+":function(e,t,n){var r=n("lexG"),i=n("3r0D")("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},KpXt:function(e,t,n){"use strict";var r=n("ptrv"),i=n("tose"),o=n("V+0c"),l=n("3r0D")("species");e.exports=function(e){var t=r[e];o&&t&&!t[l]&&i.f(t,l,{configurable:!0,get:function(){return this}})}},LMZF:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){function r(e,t,n,r){function o(e){if(this instanceof o)return l.call(this,e),this;var t=new o(e),n=function(e){return(e.hasOwnProperty(Pr)?e[Pr]:Object.defineProperty(e,Pr,{value:[]})[Pr]).push(t),e};return r&&r(n),n}var l=i(t);return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o}function i(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];if(e){var r=e.apply(void 0,t);for(var i in r)this[i]=r[i]}}}function o(e,t,n){function r(){function e(e,t,n){for(var r=e.hasOwnProperty(Nr)?e[Nr]:Object.defineProperty(e,Nr,{value:[]})[Nr];r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(i),e}for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];if(this instanceof r)return o.apply(this,t),this;var i=new((l=r).bind.apply(l,[void 0].concat(t)));return e.annotation=i,e;var l}var o=i(t);return n&&(r.prototype=Object.create(n.prototype)),r.prototype.ngMetadataName=e,r.annotationCls=r,r}function l(e,t,n){function r(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(this instanceof r)return o.apply(this,e),this;var n=new((i=r).bind.apply(i,[void 0].concat(e)));return function(e,t){var r=e.constructor,i=r.hasOwnProperty(Ar)?r[Ar]:Object.defineProperty(r,Ar,{value:{}})[Ar];i[t]=i.hasOwnProperty(t)&&i[t]||[],i[t].unshift(n)};var i}var o=i(t);return n&&(r.prototype=Object.create(n.prototype)),r.prototype.ngMetadataName=e,r.annotationCls=r,r}function a(e){return null==e||e===Wr.Default}function s(){if(!fi){var e=pi.Symbol;if(e&&e.iterator)fi=e.iterator;else for(var t=Object.getOwnPropertyNames(Map.prototype),n=0;n<t.length;++n){var r=t[n];"entries"!==r&&"size"!==r&&Map.prototype[r]===Map.prototype.entries&&(fi=r)}}return fi}function u(e){Zone.current.scheduleMicroTask("scheduleMicrotask",e)}function c(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)}function d(e){if("string"==typeof e)return e;if(e instanceof Array)return"["+e.map(d).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return""+e.overriddenName;if(e.name)return""+e.name;var t=e.toString();if(null==t)return""+t;var n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function p(e){return e.__forward_ref__=p,e.toString=function(){return d(this())},e}function f(e){return"function"==typeof e&&e.hasOwnProperty("__forward_ref__")&&e.__forward_ref__===p?e():e}function h(e){return v("Cannot mix multi providers and regular providers",e)}function m(e,t){if(t)if((t=f(t))instanceof Array)for(var n=0;n<t.length;n++)m(e,t[n]);else{if("function"==typeof t)throw v("Function/Class not supported",t);if(!t||"object"!=typeof t||!t.provide)throw v("Unexpected provider",t);var r=f(t.provide),i=function(e){var t=function(e){var t=bi,n=e.deps;if(n&&n.length){t=[];for(var r=0;r<n.length;r++){var i=6;if((s=f(n[r]))instanceof Array)for(var o=0,l=s;o<l.length;o++){var a=l[o];a instanceof oi||a==oi?i|=1:a instanceof si||a==si?i&=-3:a instanceof ai||a==ai?i&=-5:s=a instanceof ii?a.token:f(a)}t.push({token:s,options:i})}}else if(e.useExisting){var s;t=[{token:s=f(e.useExisting),options:6}]}else if(!(n||Ei in e))throw v("'deps' required",e);return t}(e),n=vi,r=bi,i=!1,o=f(e.provide);if(Ei in e)r=e.useValue;else if(e.useFactory)n=e.useFactory;else if(e.useExisting);else if(e.useClass)i=!0,n=f(e.useClass);else{if("function"!=typeof o)throw v("StaticProvider does not have [useValue|useFactory|useExisting|useClass] or [provide] is not newable",e);i=!0,n=o}return{deps:t,fn:n,useNew:i,value:r}}(t);if(!0===t.multi){var o=e.get(r);if(o){if(o.fn!==wi)throw h(r)}else e.set(r,o={token:t.provide,deps:[],useNew:!1,fn:wi,value:bi});o.deps.push({token:r=t,options:6})}var l=e.get(r);if(l&&l.fn==wi)throw h(r);e.set(r,i)}}function g(e,t,n,r,i){try{return function(e,t,n,r,i){var o;if(t){if((o=t.value)==_i)throw Error(ki+"Circular dependency");if(o===bi){t.value=_i;var l=t.useNew,a=t.fn,s=t.deps,u=bi;if(s.length){u=[];for(var c=0;c<s.length;c++){var d=s[c],p=d.options,f=2&p?n.get(d.token):void 0;u.push(g(d.token,f,n,f||4&p?r:Oi,1&p?null:yi.THROW_IF_NOT_FOUND))}}t.value=o=l?new((h=a).bind.apply(h,[void 0].concat(u))):a.apply(void 0,u)}}else o=r.get(e,i);return o;var h}(e,t,n,r,i)}catch(n){throw n instanceof Error||(n=new Error(n)),(n[Si]=n[Si]||[]).unshift(e),t&&t.value==_i&&(t.value=bi),n}}function y(e,t){e=e&&"\n"===e.charAt(0)&&e.charAt(1)==ki?e.substr(2):e;var n=d(t);if(t instanceof Array)n=t.map(d).join(" -> ");else if("object"==typeof t){var r=[];for(var i in t)if(t.hasOwnProperty(i)){var o=t[i];r.push(i+":"+("string"==typeof o?JSON.stringify(o):d(o)))}n="{"+r.join(", ")+"}"}return"StaticInjectorError["+n+"]: "+e.replace(Ti,"\n ")}function v(e,t){return new Error(y(e,t))}function b(e){return e[Ii]}function _(e){return e[Ri]}function w(e){return e.length>1?" ("+function(e){for(var t=[],n=0;n<e.length;++n){if(t.indexOf(e[n])>-1)return t.push(e[n]),t;t.push(e[n])}return t}(e.slice().reverse()).map(function(e){return d(e.token)}).join(" -> ")+")":""}function x(e,t,n,r){var i=[t],o=n(i),l=r?function(e,t){var n=o+" caused by: "+(t instanceof Error?t.message:t),r=Error(n);return r[Ri]=t,r}(0,r):Error(o);return l.addKey=C,l.keys=i,l.injectors=[e],l.constructResolvingMessage=n,l[Ri]=r,l}function C(e,t){this.injectors.push(e),this.keys.push(t),this.message=this.constructResolvingMessage(this.keys)}function E(e,t){for(var n=[],r=0,i=t.length;r<i;r++){var o=t[r];n.push(o&&0!=o.length?o.map(d).join(" "):"?")}return Error("Cannot resolve all parameters for '"+d(e)+"'("+n.join(", ")+"). Make sure that all the parameters are decorated with Inject or have valid type annotations and that '"+d(e)+"' is decorated with Injectable.")}function S(e,t){return Error("Cannot mix multi providers and regular providers, got: "+e+" "+t)}function O(e){return"function"==typeof e}function T(e){return e?e.map(function(e){var t=e.type.annotationCls;return new(t.bind.apply(t,[void 0].concat(e.args?e.args:[])))}):[]}function k(e){var t=Object.getPrototypeOf(e.prototype);return(t?t.constructor:null)||Object}function D(e){return new Hi(Ni.get(e.provide),[function(e){var t,n;if(e.useClass){var r=f(e.useClass);t=Vi.factory(r),n=M(r)}else e.useExisting?(t=function(e){return e},n=[zi.fromKey(Ni.get(e.useExisting))]):e.useFactory?(t=e.useFactory,n=function(e,t){if(t){var n=t.map(function(e){return[e]});return t.map(function(t){return P(e,t,n)})}return M(e)}(e.useFactory,e.deps)):(t=function(){return e.useValue},n=Bi);return new Wi(t,n)}(e)],e.multi||!1)}function I(e){var t=function(e,t){for(var n=0;n<e.length;n++){var r=e[n],i=t.get(r.key.id);if(i){if(r.multiProvider!==i.multiProvider)throw S(i,r);if(r.multiProvider)for(var o=0;o<r.resolvedFactories.length;o++)i.resolvedFactories.push(r.resolvedFactories[o]);else t.set(r.key.id,r)}else{var l=void 0;l=r.multiProvider?new Hi(r.key,r.resolvedFactories.slice(),r.multiProvider):r,t.set(r.key.id,l)}}return t}(R(e,[]).map(D),new Map);return Array.from(t.values())}function R(e,t){return e.forEach(function(e){if(e instanceof Li)t.push({provide:e,useClass:e});else if(e&&"object"==typeof e&&void 0!==e.provide)t.push(e);else{if(!(e instanceof Array))throw function(e){return Error("Invalid provider - only instances of Provider and Type are allowed, got: "+e)}(e);R(e,t)}}),t}function M(e){var t=Vi.parameters(e);if(!t)return[];if(t.some(function(e){return null==e}))throw E(e,t);return t.map(function(n){return P(e,n,t)})}function P(e,t,n){var r=null,i=!1;if(!Array.isArray(t))return N(t instanceof ii?t.token:t,i,null);for(var o=null,l=0;l<t.length;++l){var a=t[l];a instanceof Li?r=a:a instanceof ii?r=a.token:a instanceof oi?i=!0:a instanceof ai||a instanceof si?o=a:a instanceof Mr&&(r=a)}if(null!=(r=f(r)))return N(r,i,o);throw E(e,n)}function N(e,t,n){return new zi(Ni.get(e),t,n)}function A(e){return!!e&&"function"==typeof e.then}function L(e){return!!e&&"function"==typeof e.subscribe}function F(){return""+j()+j()+j()}function j(){return String.fromCharCode(97+Math.floor(25*Math.random()))}function V(){throw new Error("Runtime compiler is not loaded")}function z(e){var t=Error("No component factory found for "+d(e)+". Did you add it to @NgModule.entryComponents?");return t[so]=e,t}function B(){var e=pi.wtf;return!(!e||!(wr=e.trace)||(xr=wr.events,0))}function H(e,t){return void 0===t&&(t=null),xr.createScope(e,t)}function W(e,t){return wr.leaveScope(e,t),t}function q(e,t){return wr.beginTimeRange(e,t)}function U(e){wr.endTimeRange(e)}function G(e,t){return null}function K(){}function $(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(function(){return e.onStable.emit(null)})}finally{e.isStable=!0}}}function Z(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Q(e){e._nesting--,$(e)}function Y(e){To=e}function X(){if(Do)throw new Error("Cannot enable prod mode after platform setup.");ko=!1}function J(){return Do=!0,ko}function ee(e){if(Cr&&!Cr.destroyed&&!Cr.injector.get(Io,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");Cr=e.get(Mo);var t=e.get(Yi,null);return t&&t.forEach(function(e){return e()}),Cr}function te(e,t,n){void 0===n&&(n=[]);var r=new Mr("Platform: "+t);return function(t){void 0===t&&(t=[]);var i=ie();return i&&!i.injector.get(Io,!1)||(e?e(n.concat(t).concat({provide:r,useValue:!0})):ee(yi.create(n.concat(t).concat({provide:r,useValue:!0})))),ne(r)}}function ne(e){var t=ie();if(!t)throw new Error("No platform exists!");if(!t.injector.get(e,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return t}function re(){Cr&&!Cr.destroyed&&Cr.destroy()}function ie(){return Cr&&!Cr.destroyed?Cr:null}function oe(e,t){return e=Array.isArray(t)?t.reduce(oe,e):Object(Tr.__assign)({},e,t)}function le(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}function ae(e,t){var n=Wo.get(e);if(n)throw new Error("Duplicate module registered for "+e+" - "+n.moduleType.name+" vs "+t.moduleType.name);Wo.set(e,t)}function se(e){var t=Wo.get(e);if(!t)throw new Error("No module with ID "+e+" loaded");return t}function ue(e){return e.reduce(function(e,t){var n=Array.isArray(t)?ue(t):t;return e.concat(n)},[])}function ce(e,t,n){if(!e)throw new Error("Cannot find '"+n+"' in '"+t+"'");return e}function de(e){return e.map(function(e){return e.nativeElement})}function pe(e,t,n){e.childNodes.forEach(function(e){e instanceof el&&(t(e)&&n.push(e),pe(e,t,n))})}function fe(e,t,n){e instanceof el&&e.childNodes.forEach(function(e){t(e)&&n.push(e),e instanceof el&&fe(e,t,n)})}function he(e){return tl.get(e)||null}function me(e){tl.set(e.nativeNode,e)}function ge(e,t){var n=ye(e),r=ye(t);return n&&r?function(t,n,r){for(var i=e[s()](),o=n[s()]();;){var l=i.next(),a=o.next();if(l.done&&a.done)return!0;if(l.done||a.done)return!1;if(!r(l.value,a.value))return!1}}(0,t,ge):!(n||!e||"object"!=typeof e&&"function"!=typeof e||r||!t||"object"!=typeof t&&"function"!=typeof t)||c(e,t)}function ye(e){return!!ve(e)&&(Array.isArray(e)||!(e instanceof Map)&&s()in e)}function ve(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function be(e,t,n){var r=e.previousIndex;if(null===r)return r;var i=0;return n&&r<n.length&&(i=n[r]),r+t+i}function _e(){return yl}function we(){return vl}function xe(e){return e||"en-US"}function Ce(e,t,n){var r=e.state,i=1792&r;return i===t?(e.state=-1793&r|n,e.initIndex=-1,!0):i===n}function Ee(e,t,n){return(1792&e.state)===t&&e.initIndex<=n&&(e.initIndex=n+1,!0)}function Se(e,t){return e.nodes[t]}function Oe(e,t){return e.nodes[t]}function Te(e,t){return e.nodes[t]}function ke(e,t){return e.nodes[t]}function De(e,t){return e.nodes[t]}function Ie(e,t,n,r){var i="ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '"+t+"'. Current value: '"+n+"'.";return r&&(i+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?"),function(e,t){var n=new Error(e);return Re(n,t),n}(i,e)}function Re(e,t){e[Ii]=t,e[Mi]=t.logError.bind(t)}function Me(e){return new Error("ViewDestroyedError: Attempt to use a destroyed view: "+e)}function Pe(e){var t=Il.get(e);return t||(t=d(e)+"_"+Il.size,Il.set(e,t)),t}function Ne(e,t,n,r){if(r instanceof nl){r=r.wrapped;var i=e.def.nodes[t].bindingIndex+n,o=e.oldValues[i];o instanceof nl&&(o=o.wrapped),e.oldValues[i]=new nl(o)}return r}function Ae(e){return{id:Rl,styles:e.styles,encapsulation:e.encapsulation,data:e.data}}function Le(e,t,n,r){return!(!(2&e.state)&&c(e.oldValues[t.bindingIndex+n],r))}function Fe(e,t,n,r){return!!Le(e,t,n,r)&&(e.oldValues[t.bindingIndex+n]=r,!0)}function je(e,t,n,r){var i=e.oldValues[t.bindingIndex+n];if(1&e.state||!ge(i,r))throw Ie(kl.createDebugContext(e,t.nodeIndex),i,r,0!=(1&e.state))}function Ve(e){for(var t=e;t;)2&t.def.flags&&(t.state|=8),t=t.viewContainerParent||t.parent}function ze(e,t){for(var n=e;n&&n!==t;)n.state|=64,n=n.viewContainerParent||n.parent}function Be(e,t,n,r){try{return Ve(33554432&e.def.nodes[t].flags?Oe(e,t).componentView:e),kl.handleEvent(e,t,n,r)}catch(t){e.root.errorHandler.handleError(t)}}function He(e){return e.parent?Oe(e.parent,e.parentNodeDef.nodeIndex):null}function We(e){return e.parent?e.parentNodeDef.parent:null}function qe(e,t){switch(201347067&t.flags){case 1:return Oe(e,t.nodeIndex).renderElement;case 2:return Se(e,t.nodeIndex).renderText}}function Ue(e,t){return e?e+":"+t:t}function Ge(e){return!!e.parent&&!!(32768&e.parentNodeDef.flags)}function Ke(e){return!(!e.parent||32768&e.parentNodeDef.flags)}function $e(e){return 1<<e%32}function Ze(e){var t={},n=0,r={};return e&&e.forEach(function(e){var i=e[0],o=e[1];"number"==typeof i?(t[i]=o,n|=$e(i)):r[i]=o}),{matchedQueries:t,references:r,matchedQueryIds:n}}function Qe(e){return e.map(function(e){var t,n;return Array.isArray(e)?(n=e[0],t=e[1]):(n=0,t=e),{flags:n,token:t,tokenKey:Pe(t)}})}function Ye(e,t,n){var r=n.renderParent;return r?0==(1&r.flags)||0==(33554432&r.flags)||r.element.componentRendererType&&r.element.componentRendererType.encapsulation===ti.Native?Oe(e,n.renderParent.nodeIndex).renderElement:void 0:t}function Xe(e){var t=Nl.get(e);return t||((t=e(function(){return Dl})).factory=e,Nl.set(e,t)),t}function Je(e,t,n,r,i){3===t&&(n=e.renderer.parentNode(qe(e,e.def.lastRenderRootNode))),et(e,t,0,e.def.nodes.length-1,n,r,i)}function et(e,t,n,r,i,o,l){for(var a=n;a<=r;a++){var s=e.def.nodes[a];11&s.flags&&nt(e,s,t,i,o,l),a+=s.childCount}}function tt(e,t,n,r,i,o){for(var l=e;l&&!Ge(l);)l=l.parent;for(var a=l.parent,s=We(l),u=s.nodeIndex+s.childCount,c=s.nodeIndex+1;c<=u;c++){var d=a.def.nodes[c];d.ngContentIndex===t&&nt(a,d,n,r,i,o),c+=d.childCount}if(!a.parent){var p=e.root.projectableNodes[t];if(p)for(c=0;c<p.length;c++)rt(e,p[c],n,r,i,o)}}function nt(e,t,n,r,i,o){if(8&t.flags)tt(e,t.ngContent.index,n,r,i,o);else{var l=qe(e,t);if(3===n&&33554432&t.flags&&48&t.bindingFlags?(16&t.bindingFlags&&rt(e,l,n,r,i,o),32&t.bindingFlags&&rt(Oe(e,t.nodeIndex).componentView,l,n,r,i,o)):rt(e,l,n,r,i,o),16777216&t.flags)for(var a=Oe(e,t.nodeIndex).viewContainer._embeddedViews,s=0;s<a.length;s++)Je(a[s],n,r,i,o);1&t.flags&&!t.element.name&&et(e,n,t.nodeIndex+1,t.nodeIndex+t.childCount,r,i,o)}}function rt(e,t,n,r,i,o){var l=e.renderer;switch(n){case 1:l.appendChild(r,t);break;case 2:l.insertBefore(r,t,i);break;case 3:l.removeChild(r,t);break;case 0:o.push(t)}}function it(e){if(":"===e[0]){var t=e.match(Al);return[t[1],t[2]]}return["",e]}function ot(e){for(var t=0,n=0;n<e.length;n++)t|=e[n].flags;return t}function lt(e,t){for(var n="",r=0;r<2*e;r+=2)n=n+t[r]+st(t[r+1]);return n+t[2*e]}function at(e,t,n,r,i,o,l,a,s,u,c,d,p,f,h,m,g,y,v,b){switch(e){case 1:return t+st(n)+r;case 2:return t+st(n)+r+st(i)+o;case 3:return t+st(n)+r+st(i)+o+st(l)+a;case 4:return t+st(n)+r+st(i)+o+st(l)+a+st(s)+u;case 5:return t+st(n)+r+st(i)+o+st(l)+a+st(s)+u+st(c)+d;case 6:return t+st(n)+r+st(i)+o+st(l)+a+st(s)+u+st(c)+d+st(p)+f;case 7:return t+st(n)+r+st(i)+o+st(l)+a+st(s)+u+st(c)+d+st(p)+f+st(h)+m;case 8:return t+st(n)+r+st(i)+o+st(l)+a+st(s)+u+st(c)+d+st(p)+f+st(h)+m+st(g)+y;case 9:return t+st(n)+r+st(i)+o+st(l)+a+st(s)+u+st(c)+d+st(p)+f+st(h)+m+st(g)+y+st(v)+b;default:throw new Error("Does not support more than 9 expressions")}}function st(e){return null!=e?e.toString():""}function ut(e,t,n,r,i,o){e|=1;var l=Ze(t);return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:e,checkIndex:-1,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:l.matchedQueries,matchedQueryIds:l.matchedQueryIds,references:l.references,ngContentIndex:n,childCount:r,bindings:[],bindingFlags:0,outputs:[],element:{ns:null,name:null,attrs:null,template:o?Xe(o):null,componentProvider:null,componentView:null,componentRendererType:null,publicProviders:null,allProviders:null,handleEvent:i||Dl},provider:null,text:null,query:null,ngContent:null}}function ct(e,t,n,r,i,o,l,a,s,u,c,d){void 0===l&&(l=[]),u||(u=Dl);var p=Ze(n),f=p.matchedQueries,h=p.references,m=p.matchedQueryIds,g=null,y=null;o&&(g=(I=it(o))[0],y=I[1]),a=a||[];for(var v=new Array(a.length),b=0;b<a.length;b++){var _=a[b],w=_[0],x=_[2],C=it(_[1]),E=C[1],S=void 0,O=void 0;switch(15&w){case 4:O=x;break;case 1:case 8:S=x}v[b]={flags:w,ns:C[0],name:E,nonMinifiedName:E,securityContext:S,suffix:O}}s=s||[];var T=new Array(s.length);for(b=0;b<s.length;b++){var k=s[b];T[b]={type:0,target:k[0],eventName:k[1],propName:null}}var D=(l=l||[]).map(function(e){var t=e[1],n=it(e[0]);return[n[0],n[1],t]});return d=function(e){if(e&&e.id===Rl){var t=null!=e.encapsulation&&e.encapsulation!==ti.None||e.styles.length||Object.keys(e.data).length;e.id=t?"c"+Pl++:Ml}return e&&e.id===Ml&&(e=null),e||null}(d),c&&(t|=33554432),t|=1,{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:e,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:f,matchedQueryIds:m,references:h,ngContentIndex:r,childCount:i,bindings:v,bindingFlags:ot(v),outputs:T,element:{ns:g,name:y,attrs:D,template:null,componentProvider:null,componentView:c||null,componentRendererType:d,publicProviders:null,allProviders:null,handleEvent:u||Dl},provider:null,text:null,query:null,ngContent:null};var I}function dt(e,t,n){var r,i=n.element,o=e.root.selectorOrNode,l=e.renderer;if(e.parent||!o){r=i.name?l.createElement(i.name,i.ns):l.createComment("");var a=Ye(e,t,n);a&&l.appendChild(a,r)}else r=l.selectRootElement(o);if(i.attrs)for(var s=0;s<i.attrs.length;s++){var u=i.attrs[s];l.setAttribute(r,u[1],u[2],u[0])}return r}function pt(e,t,n,r){for(var i=0;i<n.outputs.length;i++){var o=n.outputs[i],l=function(e,t,n){return function(r){return Be(e,t,n,r)}}(e,n.nodeIndex,Ue(o.target,o.eventName)),a=o.target,s=e;"component"===o.target&&(a=null,s=t);var u=s.renderer.listen(a||r,o.eventName,l);e.disposables[n.outputIndex+i]=u}}function ft(e,t,n,r){if(!Fe(e,t,n,r))return!1;var i=t.bindings[n],o=Oe(e,t.nodeIndex),l=o.renderElement,a=i.name;switch(15&i.flags){case 1:!function(e,t,n,r,o,l){var a=i.securityContext,s=a?e.root.sanitizer.sanitize(a,l):l;s=null!=s?s.toString():null;var u=e.renderer;null!=l?u.setAttribute(n,o,s,r):u.removeAttribute(n,o,r)}(e,0,l,i.ns,a,r);break;case 2:!function(t,n,i,o){var l=e.renderer;r?l.addClass(n,i):l.removeClass(n,i)}(0,l,a);break;case 4:!function(e,t,n,i,o){var l=e.root.sanitizer.sanitize(Sl.STYLE,r);if(null!=l){l=l.toString();var a=t.suffix;null!=a&&(l+=a)}else l=null;var s=e.renderer;null!=l?s.setStyle(n,i,l):s.removeStyle(n,i)}(e,i,l,a);break;case 8:!function(e,t,n,r,o){var l=i.securityContext,a=l?e.root.sanitizer.sanitize(l,o):o;e.renderer.setProperty(n,r,a)}(33554432&t.flags&&32&i.flags?o.componentView:e,0,l,a,r)}return!0}function ht(e,t,n,r){return n=f(n),{index:-1,deps:Qe(r),flags:e,token:t,value:n}}function mt(e){for(var t={},n=0;n<e.length;n++){var r=e[n];r.index=n,t[Pe(r.token)]=r}return{factory:null,providersByKey:t,providers:e}}function gt(e,t,n){if(void 0===n&&(n=yi.THROW_IF_NOT_FOUND),8&t.flags)return t.token;if(2&t.flags&&(n=null),1&t.flags)return e._parent.get(t.token,n);var r=t.tokenKey;switch(r){case Vl:case zl:return e}var i=e._def.providersByKey[r];if(i){var o=e._providers[i.index];return void 0===o&&(o=e._providers[i.index]=yt(e,i)),o===jl?void 0:o}return e._parent.get(t.token,n)}function yt(e,t){var n;switch(201347067&t.flags){case 512:n=function(e,t,n){var r=n.length;switch(r){case 0:return new t;case 1:return new t(gt(e,n[0]));case 2:return new t(gt(e,n[0]),gt(e,n[1]));case 3:return new t(gt(e,n[0]),gt(e,n[1]),gt(e,n[2]));default:for(var i=new Array(r),o=0;o<r;o++)i[o]=gt(e,n[o]);return new(t.bind.apply(t,[void 0].concat(i)))}}(e,t.value,t.deps);break;case 1024:n=function(e,t,n){var r=n.length;switch(r){case 0:return t();case 1:return t(gt(e,n[0]));case 2:return t(gt(e,n[0]),gt(e,n[1]));case 3:return t(gt(e,n[0]),gt(e,n[1]),gt(e,n[2]));default:for(var i=Array(r),o=0;o<r;o++)i[o]=gt(e,n[o]);return t.apply(void 0,i)}}(e,t.value,t.deps);break;case 2048:n=gt(e,t.deps[0]);break;case 256:n=t.value}return void 0===n?jl:n}function vt(e,t){var n=e.viewContainer._embeddedViews;if((null==t||t>=n.length)&&(t=n.length-1),t<0)return null;var r=n[t];return r.viewContainerParent=null,xt(n,t),kl.dirtyParentQueries(r),_t(r),r}function bt(e,t,n){var r=t?qe(t,t.def.lastRenderRootNode):e.renderElement;Je(n,2,n.renderer.parentNode(r),n.renderer.nextSibling(r),void 0)}function _t(e){Je(e,3,null,null,void 0)}function wt(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function xt(e,t){t>=e.length-1?e.pop():e.splice(t,1)}function Ct(e,t,n,r,i,o){return new Hl(e,t,n,r,i,o)}function Et(e){return e.viewDefFactory}function St(e,t,n){return new ql(e,t,n)}function Ot(e){return new Ul(e)}function Tt(e,t){return new Gl(e,t)}function kt(e,t){return new Kl(e,t)}function Dt(e,t){var n=e.def.nodes[t];if(1&n.flags){var r=Oe(e,n.nodeIndex);return n.element.template?r.template:r.renderElement}if(2&n.flags)return Se(e,n.nodeIndex).renderText;if(20240&n.flags)return Te(e,n.nodeIndex).instance;throw new Error("Illegal state: read nodeValue for node index "+t)}function It(e){return new $l(e.renderer)}function Rt(e,t,n,r){return new Zl(e,t,n,r)}function Mt(e,t,n,r,i,o,l,a){var s=[];if(l)for(var u in l){var c=l[u];s[c[0]]={flags:8,name:u,nonMinifiedName:c[1],ns:null,securityContext:null,suffix:null}}var d=[];if(a)for(var p in a)d.push({type:1,propName:p,target:null,eventName:a[p]});return t|=16384,At(e,t,n,r,i,i,o,s,d)}function Pt(e,t,n){return e|=16,At(-1,e,null,0,t,t,n)}function Nt(e,t,n,r,i){return At(-1,e,t,0,n,r,i)}function At(e,t,n,r,i,o,l,a,s){var u=Ze(n),c=u.matchedQueries,d=u.references,p=u.matchedQueryIds;s||(s=[]),a||(a=[]),o=f(o);var h=Qe(l);return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:e,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:c,matchedQueryIds:p,references:d,ngContentIndex:-1,childCount:r,bindings:a,bindingFlags:ot(a),outputs:s,element:null,provider:{token:i,value:o,deps:h},text:null,query:null,ngContent:null}}function Lt(e,t){return Vt(e,t)}function Ft(e,t){for(var n=e;n.parent&&!Ge(n);)n=n.parent;return zt(n.parent,We(n),!0,t.provider.value,t.provider.deps)}function jt(e,t){var n=zt(e,t.parent,(32768&t.flags)>0,t.provider.value,t.provider.deps);if(t.outputs.length)for(var r=0;r<t.outputs.length;r++){var i=t.outputs[r],o=n[i.propName].subscribe(function(e,t,n){return function(r){return Be(e,t,n,r)}}(e,t.parent.nodeIndex,i.eventName));e.disposables[t.outputIndex+r]=o.unsubscribe.bind(o)}return n}function Vt(e,t){var n=(8192&t.flags)>0,r=t.provider;switch(201347067&t.flags){case 512:return zt(e,t.parent,n,r.value,r.deps);case 1024:return function(e,t,n,r,i){var o=i.length;switch(o){case 0:return r();case 1:return r(Bt(e,t,n,i[0]));case 2:return r(Bt(e,t,n,i[0]),Bt(e,t,n,i[1]));case 3:return r(Bt(e,t,n,i[0]),Bt(e,t,n,i[1]),Bt(e,t,n,i[2]));default:for(var l=Array(o),a=0;a<o;a++)l[a]=Bt(e,t,n,i[a]);return r.apply(void 0,l)}}(e,t.parent,n,r.value,r.deps);case 2048:return Bt(e,t.parent,n,r.deps[0]);case 256:return r.value}}function zt(e,t,n,r,i){var o=i.length;switch(o){case 0:return new r;case 1:return new r(Bt(e,t,n,i[0]));case 2:return new r(Bt(e,t,n,i[0]),Bt(e,t,n,i[1]));case 3:return new r(Bt(e,t,n,i[0]),Bt(e,t,n,i[1]),Bt(e,t,n,i[2]));default:for(var l=new Array(o),a=0;a<o;a++)l[a]=Bt(e,t,n,i[a]);return new(r.bind.apply(r,[void 0].concat(l)))}}function Bt(e,t,n,r,i){if(void 0===i&&(i=yi.THROW_IF_NOT_FOUND),8&r.flags)return r.token;var o=e;2&r.flags&&(i=null);var l=r.tokenKey;for(l===ta&&(n=!(!t||!t.element.componentView)),t&&1&r.flags&&(n=!1,t=t.parent);e;){if(t)switch(l){case Ql:return It(Ht(e,t,n));case Yl:return Ht(e,t,n).renderer;case Xl:return new Bo(Oe(e,t.nodeIndex).renderElement);case Jl:return Oe(e,t.nodeIndex).viewContainer;case ea:if(t.element.template)return Oe(e,t.nodeIndex).template;break;case ta:return Ot(Ht(e,t,n));case na:return kt(e,t);default:var a=(n?t.element.allProviders:t.element.publicProviders)[l];if(a){var s=Te(e,a.nodeIndex);return s||(s={instance:Vt(e,a)},e.nodes[a.nodeIndex]=s),s.instance}}n=Ge(e),t=We(e),e=e.parent}var u=o.root.injector.get(r.token,ra);return u!==ra||i===ra?u:o.root.ngModule.injector.get(r.token,i)}function Ht(e,t,n){var r;if(n)r=Oe(e,t.nodeIndex).componentView;else for(r=e;r.parent&&!Ge(r);)r=r.parent;return r}function Wt(e,t,n,r,i,o){if(32768&n.flags){var l=Oe(e,n.parent.nodeIndex).componentView;2&l.def.flags&&(l.state|=8)}if(t.instance[n.bindings[r].name]=i,524288&n.flags){o=o||{};var a=e.oldValues[n.bindingIndex+r];a instanceof nl&&(a=a.wrapped),o[n.bindings[r].nonMinifiedName]=new il(a,i,0!=(2&e.state))}return e.oldValues[n.bindingIndex+r]=i,o}function qt(e,t){if(e.def.nodeFlags&t)for(var n=e.def.nodes,r=0,i=0;i<n.length;i++){var o=n[i],l=o.parent;for(!l&&o.flags&t&&Ut(e,i,o.flags&t,r++),0==(o.childFlags&t)&&(i+=o.childCount);l&&1&l.flags&&i===l.nodeIndex+l.childCount;)l.directChildFlags&t&&(r=function(e,t,n,r){for(var i=t.nodeIndex+1;i<=t.nodeIndex+t.childCount;i++){var o=e.def.nodes[i];o.flags&n&&Ut(e,i,o.flags&n,r++),i+=o.childCount}return r}(e,l,t,r)),l=l.parent}}function Ut(e,t,n,r){var i=Te(e,t);if(i){var o=i.instance;o&&(kl.setCurrentNode(e,t),1048576&n&&Ee(e,512,r)&&o.ngAfterContentInit(),2097152&n&&o.ngAfterContentChecked(),4194304&n&&Ee(e,768,r)&&o.ngAfterViewInit(),8388608&n&&o.ngAfterViewChecked(),131072&n&&o.ngOnDestroy())}}function Gt(e,t,n){var r=[];for(var i in n)r.push({propName:i,bindingType:n[i]});return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:-1,flags:e,childFlags:0,directChildFlags:0,childMatchedQueries:0,ngContentIndex:-1,matchedQueries:{},matchedQueryIds:0,references:{},childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:{id:t,filterId:$e(t),bindings:r},ngContent:null}}function Kt(){return new qo}function $t(e){for(var t=e.def.nodeMatchedQueries;e.parent&&Ke(e);){var n=e.parentNodeDef;e=e.parent;for(var r=n.nodeIndex+n.childCount,i=0;i<=r;i++)67108864&(o=e.def.nodes[i]).flags&&536870912&o.flags&&(o.query.filterId&t)===o.query.filterId&&De(e,i).setDirty(),!(1&o.flags&&i+o.childCount<n.nodeIndex)&&67108864&o.childFlags&&536870912&o.childFlags||(i+=o.childCount)}if(134217728&e.def.nodeFlags)for(i=0;i<e.def.nodes.length;i++){var o;134217728&(o=e.def.nodes[i]).flags&&536870912&o.flags&&De(e,i).setDirty(),i+=o.childCount}}function Zt(e,t){var n=De(e,t.nodeIndex);if(n.dirty){var r,i=void 0;if(67108864&t.flags){var o=t.parent.parent;i=Qt(e,o.nodeIndex,o.nodeIndex+o.childCount,t.query,[]),r=Te(e,t.parent.nodeIndex).instance}else 134217728&t.flags&&(i=Qt(e,0,e.def.nodes.length-1,t.query,[]),r=e.component);n.reset(i);for(var l=t.query.bindings,a=!1,s=0;s<l.length;s++){var u=l[s],c=void 0;switch(u.bindingType){case 0:c=n.first;break;case 1:c=n,a=!0}r[u.propName]=c}a&&n.notifyOnChanges()}}function Qt(e,t,n,r,i){for(var o=t;o<=n;o++){var l=e.def.nodes[o],a=l.matchedQueries[r.id];if(null!=a&&i.push(Yt(e,l,a)),1&l.flags&&l.element.template&&(l.element.template.nodeMatchedQueries&r.filterId)===r.filterId){var s=Oe(e,o);if((l.childMatchedQueries&r.filterId)===r.filterId&&(Qt(e,o+1,o+l.childCount,r,i),o+=l.childCount),16777216&l.flags)for(var u=s.viewContainer._embeddedViews,c=0;c<u.length;c++){var d=u[c],p=He(d);p&&p===s&&Qt(d,0,d.def.nodes.length-1,r,i)}var f=s.template._projectedViews;if(f)for(c=0;c<f.length;c++){var h=f[c];Qt(h,0,h.def.nodes.length-1,r,i)}}(l.childMatchedQueries&r.filterId)!==r.filterId&&(o+=l.childCount)}return i}function Yt(e,t,n){if(null!=n)switch(n){case 1:return Oe(e,t.nodeIndex).renderElement;case 0:return new Bo(Oe(e,t.nodeIndex).renderElement);case 2:return Oe(e,t.nodeIndex).template;case 3:return Oe(e,t.nodeIndex).viewContainer;case 4:return Te(e,t.nodeIndex).instance}}function Xt(e,t){return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:-1,flags:8,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:e,childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:null,ngContent:{index:t}}}function Jt(e,t,n){var r=Ye(e,t,n);r&&tt(e,n.ngContent.index,1,r,null,void 0)}function en(e,t){return rn(128,e,new Array(t+1))}function tn(e,t){return rn(32,e,new Array(t))}function nn(e,t){for(var n=Object.keys(t),r=n.length,i=new Array(r),o=0;o<r;o++){var l=n[o];i[t[l]]=l}return rn(64,e,i)}function rn(e,t,n){for(var r=new Array(n.length),i=0;i<n.length;i++){var o=n[i];r[i]={flags:8,name:o,ns:null,nonMinifiedName:o,securityContext:null,suffix:null}}return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:t,flags:e,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:-1,childCount:0,bindings:r,bindingFlags:ot(r),outputs:[],element:null,provider:null,text:null,query:null,ngContent:null}}function on(e,t,n){for(var r=new Array(n.length-1),i=1;i<n.length;i++)r[i-1]={flags:8,name:null,ns:null,nonMinifiedName:null,securityContext:null,suffix:n[i]};return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:e,flags:2,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:t,childCount:0,bindings:r,bindingFlags:8,outputs:[],element:null,provider:null,text:{prefix:n[0]},query:null,ngContent:null}}function ln(e,t,n){var r,i=e.renderer;r=i.createText(n.text.prefix);var o=Ye(e,t,n);return o&&i.appendChild(o,r),{renderText:r}}function an(e,t){return(null!=e?e.toString():"")+t.suffix}function sn(e,t,n,r){for(var i=0,o=0,l=0,a=0,s=0,u=null,c=null,d=!1,p=!1,f=null,h=0;h<t.length;h++){var m=t[h];if(m.nodeIndex=h,m.parent=u,m.bindingIndex=i,m.outputIndex=o,m.renderParent=c,l|=m.flags,s|=m.matchedQueryIds,m.element){var g=m.element;g.publicProviders=u?u.element.publicProviders:Object.create(null),g.allProviders=g.publicProviders,d=!1,p=!1,m.element.template&&(s|=m.element.template.nodeMatchedQueries)}if(function(e,t,n){var r=t.element&&t.element.template;if(r){if(!r.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(r.lastRenderRootNode&&16777216&r.lastRenderRootNode.flags)throw new Error("Illegal State: Last root node of a template can't have embedded views, at index "+t.nodeIndex+"!")}if(20224&t.flags&&0==(1&(e?e.flags:0)))throw new Error("Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index "+t.nodeIndex+"!");if(t.query){if(67108864&t.flags&&(!e||0==(16384&e.flags)))throw new Error("Illegal State: Content Query nodes need to be children of directives, at index "+t.nodeIndex+"!");if(134217728&t.flags&&e)throw new Error("Illegal State: View Query nodes have to be top level nodes, at index "+t.nodeIndex+"!")}if(t.childCount){var i=e?e.nodeIndex+e.childCount:n-1;if(t.nodeIndex<=i&&t.nodeIndex+t.childCount>i)throw new Error("Illegal State: childCount of node leads outside of parent, at index "+t.nodeIndex+"!")}}(u,m,t.length),i+=m.bindings.length,o+=m.outputs.length,!c&&3&m.flags&&(f=m),20224&m.flags){d||(d=!0,u.element.publicProviders=Object.create(u.element.publicProviders),u.element.allProviders=u.element.publicProviders);var y=0!=(32768&m.flags);0==(8192&m.flags)||y?u.element.publicProviders[Pe(m.provider.token)]=m:(p||(p=!0,u.element.allProviders=Object.create(u.element.publicProviders)),u.element.allProviders[Pe(m.provider.token)]=m),y&&(u.element.componentProvider=m)}if(u?(u.childFlags|=m.flags,u.directChildFlags|=m.flags,u.childMatchedQueries|=m.matchedQueryIds,m.element&&m.element.template&&(u.childMatchedQueries|=m.element.template.nodeMatchedQueries)):a|=m.flags,m.childCount>0)u=m,un(m)||(c=m);else for(;u&&h===u.nodeIndex+u.childCount;){var v=u.parent;v&&(v.childFlags|=u.childFlags,v.childMatchedQueries|=u.childMatchedQueries),c=(u=v)&&un(u)?u.renderParent:u}}return{factory:null,nodeFlags:l,rootNodeFlags:a,nodeMatchedQueries:s,flags:e,nodes:t,updateDirectives:n||Dl,updateRenderer:r||Dl,handleEvent:function(e,n,r,i){return t[n].element.handleEvent(e,r,i)},bindingCount:i,outputCount:o,lastRenderRootNode:f}}function un(e){return 0!=(1&e.flags)&&null===e.element.name}function cn(e,t,n,r){var i=fn(e.root,e.renderer,e,t,n);return hn(i,e.component,r),mn(i),i}function dn(e,t,n){var r=fn(e,e.renderer,null,null,t);return hn(r,n,n),mn(r),r}function pn(e,t,n,r){var i,o=t.element.componentRendererType;return i=o?e.root.rendererFactory.createRenderer(r,o):e.root.renderer,fn(e.root,i,e,t.element.componentProvider,n)}function fn(e,t,n,r,i){var o=new Array(i.nodes.length),l=i.outputCount?new Array(i.outputCount):null;return{def:i,parent:n,viewContainerParent:null,parentNodeDef:r,context:null,component:null,nodes:o,state:13,root:e,renderer:t,oldValues:new Array(i.bindingCount),disposables:l,initIndex:-1}}function hn(e,t,n){e.component=t,e.context=n}function mn(e){var t;Ge(e)&&(t=Oe(e.parent,e.parentNodeDef.parent.nodeIndex).renderElement);for(var n=e.def,r=e.nodes,i=0;i<n.nodes.length;i++){var o=n.nodes[i];kl.setCurrentNode(e,i);var l=void 0;switch(201347067&o.flags){case 1:var a=dt(e,t,o),s=void 0;if(33554432&o.flags){var u=Xe(o.element.componentView);s=kl.createComponentView(e,o,u,a)}pt(e,s,o,a),l={renderElement:a,componentView:s,viewContainer:null,template:o.element.template?Tt(e,o):void 0},16777216&o.flags&&(l.viewContainer=St(e,o,l));break;case 2:l=ln(e,t,o);break;case 512:case 1024:case 2048:case 256:(l=r[i])||4096&o.flags||(l={instance:Lt(e,o)});break;case 16:l={instance:Ft(e,o)};break;case 16384:(l=r[i])||(l={instance:jt(e,o)}),32768&o.flags&&hn(Oe(e,o.parent.nodeIndex).componentView,l.instance,l.instance);break;case 32:case 64:case 128:l={value:void 0};break;case 67108864:case 134217728:l=Kt();break;case 8:Jt(e,t,o),l=void 0}r[i]=l}Cn(e,ia.CreateViewNodes),Tn(e,201326592,268435456,0)}function gn(e){bn(e),kl.updateDirectives(e,1),En(e,ia.CheckNoChanges),kl.updateRenderer(e,1),Cn(e,ia.CheckNoChanges),e.state&=-97}function yn(e){1&e.state?(e.state&=-2,e.state|=2):e.state&=-3,Ce(e,0,256),bn(e),kl.updateDirectives(e,0),En(e,ia.CheckAndUpdate),Tn(e,67108864,536870912,0);var t=Ce(e,256,512);qt(e,2097152|(t?1048576:0)),kl.updateRenderer(e,0),Cn(e,ia.CheckAndUpdate),Tn(e,134217728,536870912,0),qt(e,8388608|((t=Ce(e,512,768))?4194304:0)),2&e.def.flags&&(e.state&=-9),e.state&=-97,Ce(e,768,1024)}function vn(e,t,n,r,i,o,l,a,s,u,c,d,p){return 0===n?function(e,t,n,r,i,o,l,a,s,u,c,d){switch(201347067&t.flags){case 1:return function(e,t,r,i,o,l,a,s,u,c,d,p){var f=t.bindings.length,h=!1;return f>0&&ft(e,t,0,n)&&(h=!0),f>1&&ft(e,t,1,i)&&(h=!0),f>2&&ft(e,t,2,o)&&(h=!0),f>3&&ft(e,t,3,l)&&(h=!0),f>4&&ft(e,t,4,a)&&(h=!0),f>5&&ft(e,t,5,s)&&(h=!0),f>6&&ft(e,t,6,u)&&(h=!0),f>7&&ft(e,t,7,c)&&(h=!0),f>8&&ft(e,t,8,d)&&(h=!0),f>9&&ft(e,t,9,p)&&(h=!0),h}(e,t,0,r,i,o,l,a,s,u,c,d);case 2:return function(e,t,n,r,i,o,l,a,s,u,c,d){var p=!1,f=t.bindings,h=f.length;if(h>0&&Fe(e,t,0,n)&&(p=!0),h>1&&Fe(e,t,1,r)&&(p=!0),h>2&&Fe(e,t,2,i)&&(p=!0),h>3&&Fe(e,t,3,o)&&(p=!0),h>4&&Fe(e,t,4,l)&&(p=!0),h>5&&Fe(e,t,5,a)&&(p=!0),h>6&&Fe(e,t,6,s)&&(p=!0),h>7&&Fe(e,t,7,u)&&(p=!0),h>8&&Fe(e,t,8,c)&&(p=!0),h>9&&Fe(e,t,9,d)&&(p=!0),p){var m=t.text.prefix;h>0&&(m+=an(n,f[0])),h>1&&(m+=an(r,f[1])),h>2&&(m+=an(i,f[2])),h>3&&(m+=an(o,f[3])),h>4&&(m+=an(l,f[4])),h>5&&(m+=an(a,f[5])),h>6&&(m+=an(s,f[6])),h>7&&(m+=an(u,f[7])),h>8&&(m+=an(c,f[8])),h>9&&(m+=an(d,f[9]));var g=Se(e,t.nodeIndex).renderText;e.renderer.setValue(g,m)}return p}(e,t,n,r,i,o,l,a,s,u,c,d);case 16384:return function(e,t,n,r,i,o,l,a,s,u,c,d){var p=Te(e,t.nodeIndex),f=p.instance,h=!1,m=void 0,g=t.bindings.length;return g>0&&Le(e,t,0,n)&&(h=!0,m=Wt(e,p,t,0,n,m)),g>1&&Le(e,t,1,r)&&(h=!0,m=Wt(e,p,t,1,r,m)),g>2&&Le(e,t,2,i)&&(h=!0,m=Wt(e,p,t,2,i,m)),g>3&&Le(e,t,3,o)&&(h=!0,m=Wt(e,p,t,3,o,m)),g>4&&Le(e,t,4,l)&&(h=!0,m=Wt(e,p,t,4,l,m)),g>5&&Le(e,t,5,a)&&(h=!0,m=Wt(e,p,t,5,a,m)),g>6&&Le(e,t,6,s)&&(h=!0,m=Wt(e,p,t,6,s,m)),g>7&&Le(e,t,7,u)&&(h=!0,m=Wt(e,p,t,7,u,m)),g>8&&Le(e,t,8,c)&&(h=!0,m=Wt(e,p,t,8,c,m)),g>9&&Le(e,t,9,d)&&(h=!0,m=Wt(e,p,t,9,d,m)),m&&f.ngOnChanges(m),65536&t.flags&&Ee(e,256,t.nodeIndex)&&f.ngOnInit(),262144&t.flags&&f.ngDoCheck(),h}(e,t,n,r,i,o,l,a,s,u,c,d);case 32:case 64:case 128:return function(e,t,n,r,i,o,l,a,s,u,c,d){var p=t.bindings,f=!1,h=p.length;if(h>0&&Fe(e,t,0,n)&&(f=!0),h>1&&Fe(e,t,1,r)&&(f=!0),h>2&&Fe(e,t,2,i)&&(f=!0),h>3&&Fe(e,t,3,o)&&(f=!0),h>4&&Fe(e,t,4,l)&&(f=!0),h>5&&Fe(e,t,5,a)&&(f=!0),h>6&&Fe(e,t,6,s)&&(f=!0),h>7&&Fe(e,t,7,u)&&(f=!0),h>8&&Fe(e,t,8,c)&&(f=!0),h>9&&Fe(e,t,9,d)&&(f=!0),f){var m=ke(e,t.nodeIndex),g=void 0;switch(201347067&t.flags){case 32:g=new Array(p.length),h>0&&(g[0]=n),h>1&&(g[1]=r),h>2&&(g[2]=i),h>3&&(g[3]=o),h>4&&(g[4]=l),h>5&&(g[5]=a),h>6&&(g[6]=s),h>7&&(g[7]=u),h>8&&(g[8]=c),h>9&&(g[9]=d);break;case 64:g={},h>0&&(g[p[0].name]=n),h>1&&(g[p[1].name]=r),h>2&&(g[p[2].name]=i),h>3&&(g[p[3].name]=o),h>4&&(g[p[4].name]=l),h>5&&(g[p[5].name]=a),h>6&&(g[p[6].name]=s),h>7&&(g[p[7].name]=u),h>8&&(g[p[8].name]=c),h>9&&(g[p[9].name]=d);break;case 128:var y=n;switch(h){case 1:g=y.transform(n);break;case 2:g=y.transform(r);break;case 3:g=y.transform(r,i);break;case 4:g=y.transform(r,i,o);break;case 5:g=y.transform(r,i,o,l);break;case 6:g=y.transform(r,i,o,l,a);break;case 7:g=y.transform(r,i,o,l,a,s);break;case 8:g=y.transform(r,i,o,l,a,s,u);break;case 9:g=y.transform(r,i,o,l,a,s,u,c);break;case 10:g=y.transform(r,i,o,l,a,s,u,c,d)}}m.value=g}return f}(e,t,n,r,i,o,l,a,s,u,c,d);default:throw"unreachable"}}(e,t,r,i,o,l,a,s,u,c,d,p):function(e,t,n){switch(201347067&t.flags){case 1:return function(e,t,n){for(var r=!1,i=0;i<n.length;i++)ft(e,t,i,n[i])&&(r=!0);return r}(e,t,n);case 2:return function(e,t,n){for(var r=t.bindings,i=!1,o=0;o<n.length;o++)Fe(e,t,o,n[o])&&(i=!0);if(i){var l="";for(o=0;o<n.length;o++)l+=an(n[o],r[o]);l=t.text.prefix+l;var a=Se(e,t.nodeIndex).renderText;e.renderer.setValue(a,l)}return i}(e,t,n);case 16384:return function(e,t,n){for(var r=Te(e,t.nodeIndex),i=r.instance,o=!1,l=void 0,a=0;a<n.length;a++)Le(e,t,a,n[a])&&(o=!0,l=Wt(e,r,t,a,n[a],l));return l&&i.ngOnChanges(l),65536&t.flags&&Ee(e,256,t.nodeIndex)&&i.ngOnInit(),262144&t.flags&&i.ngDoCheck(),o}(e,t,n);case 32:case 64:case 128:return function(e,t,n){for(var r=t.bindings,i=!1,o=0;o<n.length;o++)Fe(e,t,o,n[o])&&(i=!0);if(i){var l=ke(e,t.nodeIndex),a=void 0;switch(201347067&t.flags){case 32:a=n;break;case 64:for(a={},o=0;o<n.length;o++)a[r[o].name]=n[o];break;case 128:var s=n[0],u=n.slice(1);a=s.transform.apply(s,u)}l.value=a}return i}(e,t,n);default:throw"unreachable"}}(e,t,r)}function bn(e){var t=e.def;if(4&t.nodeFlags)for(var n=0;n<t.nodes.length;n++){var r=t.nodes[n];if(4&r.flags){var i=Oe(e,n).template._projectedViews;if(i)for(var o=0;o<i.length;o++){var l=i[o];l.state|=32,ze(l,e)}}else 0==(4&r.childFlags)&&(n+=r.childCount)}}function _n(e,t,n,r,i,o,l,a,s,u,c,d,p){return 0===n?function(e,t,n,i,o,l,a,s,u,c,d,p){var f=t.bindings.length;f>0&&je(e,t,0,r),f>1&&je(e,t,1,i),f>2&&je(e,t,2,o),f>3&&je(e,t,3,l),f>4&&je(e,t,4,a),f>5&&je(e,t,5,s),f>6&&je(e,t,6,u),f>7&&je(e,t,7,c),f>8&&je(e,t,8,d),f>9&&je(e,t,9,p)}(e,t,0,i,o,l,a,s,u,c,d,p):function(e,t,n){for(var r=0;r<n.length;r++)je(e,t,r,n[r])}(e,t,r),!1}function wn(e,t){if(De(e,t.nodeIndex).dirty)throw Ie(kl.createDebugContext(e,t.nodeIndex),"Query "+t.query.id+" not dirty","Query "+t.query.id+" dirty",0!=(1&e.state))}function xn(e){if(!(128&e.state)){if(En(e,ia.Destroy),Cn(e,ia.Destroy),qt(e,131072),e.disposables)for(var t=0;t<e.disposables.length;t++)e.disposables[t]();!function(e){if(16&e.state){var t=He(e);if(t){var n=t.template._projectedViews;n&&(xt(n,n.indexOf(e)),kl.dirtyParentQueries(e))}}}(e),e.renderer.destroyNode&&function(e){for(var t=e.def.nodes.length,n=0;n<t;n++){var r=e.def.nodes[n];1&r.flags?e.renderer.destroyNode(Oe(e,n).renderElement):2&r.flags?e.renderer.destroyNode(Se(e,n).renderText):(67108864&r.flags||134217728&r.flags)&&De(e,n).destroy()}}(e),Ge(e)&&e.renderer.destroy(),e.state|=128}}function Cn(e,t){var n=e.def;if(33554432&n.nodeFlags)for(var r=0;r<n.nodes.length;r++){var i=n.nodes[r];33554432&i.flags?Sn(Oe(e,r).componentView,t):0==(33554432&i.childFlags)&&(r+=i.childCount)}}function En(e,t){var n=e.def;if(16777216&n.nodeFlags)for(var r=0;r<n.nodes.length;r++){var i=n.nodes[r];if(16777216&i.flags)for(var o=Oe(e,r).viewContainer._embeddedViews,l=0;l<o.length;l++)Sn(o[l],t);else 0==(16777216&i.childFlags)&&(r+=i.childCount)}}function Sn(e,t){var n=e.state;switch(t){case ia.CheckNoChanges:0==(128&n)&&(12==(12&n)?gn(e):64&n&&On(e,ia.CheckNoChangesProjectedViews));break;case ia.CheckNoChangesProjectedViews:0==(128&n)&&(32&n?gn(e):64&n&&On(e,t));break;case ia.CheckAndUpdate:0==(128&n)&&(12==(12&n)?yn(e):64&n&&On(e,ia.CheckAndUpdateProjectedViews));break;case ia.CheckAndUpdateProjectedViews:0==(128&n)&&(32&n?yn(e):64&n&&On(e,t));break;case ia.Destroy:xn(e);break;case ia.CreateViewNodes:mn(e)}}function On(e,t){En(e,t),Cn(e,t)}function Tn(e,t,n,r){if(e.def.nodeFlags&t&&e.def.nodeFlags&n)for(var i=e.def.nodes.length,o=0;o<i;o++){var l=e.def.nodes[o];if(l.flags&t&&l.flags&n)switch(kl.setCurrentNode(e,l.nodeIndex),r){case 0:Zt(e,l);break;case 1:wn(e,l)}l.childFlags&t&&l.childFlags&n||(o+=l.childCount)}}function kn(){if(!oa){oa=!0;var e=J()?{setCurrentNode:qn,createRootView:In,createEmbeddedView:Mn,createComponentView:Pn,createNgModuleRef:Nn,overrideProvider:An,overrideComponentView:Ln,clearOverrides:Fn,checkAndUpdateView:Bn,checkNoChangesView:Hn,destroyView:Wn,createDebugContext:function(e,t){return new ca(e,t)},handleEvent:Un,updateDirectives:Gn,updateRenderer:Kn}:{setCurrentNode:function(){},createRootView:Dn,createEmbeddedView:cn,createComponentView:pn,createNgModuleRef:Rt,overrideProvider:Dl,overrideComponentView:Dl,clearOverrides:Dl,checkAndUpdateView:yn,checkNoChangesView:gn,destroyView:xn,createDebugContext:function(e,t){return new ca(e,t)},handleEvent:function(e,t,n,r){return e.def.handleEvent(e,t,n,r)},updateDirectives:function(e,t){return e.def.updateDirectives(0===t?Vn:zn,e)},updateRenderer:function(e,t){return e.def.updateRenderer(0===t?Vn:zn,e)}};kl.setCurrentNode=e.setCurrentNode,kl.createRootView=e.createRootView,kl.createEmbeddedView=e.createEmbeddedView,kl.createComponentView=e.createComponentView,kl.createNgModuleRef=e.createNgModuleRef,kl.overrideProvider=e.overrideProvider,kl.overrideComponentView=e.overrideComponentView,kl.clearOverrides=e.clearOverrides,kl.checkAndUpdateView=e.checkAndUpdateView,kl.checkNoChangesView=e.checkNoChangesView,kl.destroyView=e.destroyView,kl.resolveDep=Bt,kl.createDebugContext=e.createDebugContext,kl.handleEvent=e.handleEvent,kl.updateDirectives=e.updateDirectives,kl.updateRenderer=e.updateRenderer,kl.dirtyParentQueries=$t}}function Dn(e,t,n,r,i,o){return dn(Rn(e,i,i.injector.get(jo),t,n),r,o)}function In(e,t,n,r,i,o){var l=i.injector.get(jo),a=Rn(e,i,new da(l),t,n),s=jn(r);return Jn(sa.create,dn,null,[a,s,o])}function Rn(e,t,n,r,i){var o=t.injector.get(Ol),l=t.injector.get(Pi);return{ngModule:t,injector:e,projectableNodes:r,selectorOrNode:i,sanitizer:o,rendererFactory:n,renderer:n.createRenderer(null,null),errorHandler:l}}function Mn(e,t,n,r){var i=jn(n);return Jn(sa.create,cn,null,[e,t,i,r])}function Pn(e,t,n,r){return n=aa.get(t.element.componentProvider.provider.token)||jn(n),Jn(sa.create,pn,null,[e,t,n,r])}function Nn(e,t,n,r){return Rt(e,t,n,function(e){var t=function(t){var n=!1,r=!1;return 0===la.size?{hasOverrides:n,hasDeprecatedOverrides:r}:(e.providers.forEach(function(e){var t=la.get(e.token);3840&e.flags&&t&&(n=!0,r=r||t.deprecatedBehavior)}),{hasOverrides:n,hasDeprecatedOverrides:r})}(),n=t.hasDeprecatedOverrides;return t.hasOverrides?(e=e.factory(function(){return Dl}),function(e){for(var t=0;t<e.providers.length;t++){var r=e.providers[t];n&&(r.flags|=4096);var i=la.get(r.token);i&&(r.flags=-3841&r.flags|i.flags,r.deps=Qe(i.deps),r.value=i.value)}}(e),e):e}(r))}function An(e){la.set(e.token,e)}function Ln(e,t){var n=Xe(Xe(Et(t)).nodes[0].element.componentView);aa.set(e,n)}function Fn(){la.clear(),aa.clear()}function jn(e){if(0===la.size)return e;var t=function(e){for(var t=[],n=null,r=0;r<e.nodes.length;r++){var i=e.nodes[r];1&i.flags&&(n=i),n&&3840&i.flags&&la.has(i.provider.token)&&(t.push(n.nodeIndex),n=null)}return t}(e);if(0===t.length)return e;e=e.factory(function(){return Dl});for(var n=0;n<t.length;n++)!function(e,r){for(var i=t[n]+1;i<e.nodes.length;i++){var o=e.nodes[i];if(1&o.flags)return;if(3840&o.flags){var l=o.provider,a=la.get(l.token);a&&(o.flags=-3841&o.flags|a.flags,l.deps=Qe(a.deps),l.value=a.value)}}}(e);return e}function Vn(e,t,n,r,i,o,l,a,s,u,c,d,p){var f=e.def.nodes[t];return vn(e,f,n,r,i,o,l,a,s,u,c,d,p),224&f.flags?ke(e,t).value:void 0}function zn(e,t,n,r,i,o,l,a,s,u,c,d,p){var f=e.def.nodes[t];return _n(e,f,n,r,i,o,l,a,s,u,c,d,p),224&f.flags?ke(e,t).value:void 0}function Bn(e){return Jn(sa.detectChanges,yn,null,[e])}function Hn(e){return Jn(sa.checkNoChanges,gn,null,[e])}function Wn(e){return Jn(sa.destroy,xn,null,[e])}function qn(e,t){Sr=e,Or=t}function Un(e,t,n,r){return qn(e,t),Jn(sa.handleEvent,e.def.handleEvent,null,[e,t,n,r])}function Gn(e,t){if(128&e.state)throw Me(sa[Er]);return qn(e,Qn(e,0)),e.def.updateDirectives(function(e,n,r){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];var l=e.def.nodes[n];return 0===t?$n(e,l,r,i):Zn(e,l,r,i),16384&l.flags&&qn(e,Qn(e,n)),224&l.flags?ke(e,l.nodeIndex).value:void 0},e)}function Kn(e,t){if(128&e.state)throw Me(sa[Er]);return qn(e,Yn(e,0)),e.def.updateRenderer(function(e,n,r){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];var l=e.def.nodes[n];return 0===t?$n(e,l,r,i):Zn(e,l,r,i),3&l.flags&&qn(e,Yn(e,n)),224&l.flags?ke(e,l.nodeIndex).value:void 0},e)}function $n(e,t,n,r){if(vn.apply(void 0,[e,t,n].concat(r))){var i=1===n?r[0]:r;if(16384&t.flags){for(var o={},l=0;l<t.bindings.length;l++){var a=t.bindings[l],s=i[l];8&a.flags&&(o[function(e){return"ng-reflect-"+(e=e.replace(/[$@]/g,"_").replace(ua,function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return"-"+e[1].toLowerCase()}))}(a.nonMinifiedName)]=function(e){try{return null!=e?e.toString().slice(0,30):e}catch(e){return"[ERROR] Exception while trying to serialize the value"}}(s))}var u=t.parent,c=Oe(e,u.nodeIndex).renderElement;if(u.element.name)for(var d in o)null!=(s=o[d])?e.renderer.setAttribute(c,d,s):e.renderer.removeAttribute(c,d);else e.renderer.setValue(c,"bindings="+JSON.stringify(o,null,2))}}}function Zn(e,t,n,r){_n.apply(void 0,[e,t,n].concat(r))}function Qn(e,t){for(var n=t;n<e.def.nodes.length;n++){var r=e.def.nodes[n];if(16384&r.flags&&r.bindings&&r.bindings.length)return n}return null}function Yn(e,t){for(var n=t;n<e.def.nodes.length;n++){var r=e.def.nodes[n];if(3&r.flags&&r.bindings&&r.bindings.length)return n}return null}function Xn(e,t,n){for(var r in t.references)n[r]=Yt(e,t,t.references[r])}function Jn(e,t,n,r){var i=Er,o=Sr,l=Or;try{Er=e;var a=t.apply(n,r);return Sr=o,Or=l,Er=i,a}catch(e){if(b(e)||!Sr)throw e;throw function(e,t){return e instanceof Error||(e=new Error(e.toString())),Re(e,t),e}(e,er())}}function er(){return Sr?new ca(Sr,Or):null}function tr(e){return kn(),kl.overrideProvider(e)}function nr(e,t){return kn(),kl.overrideComponentView(e,t)}function rr(){return kn(),kl.clearOverrides()}function ir(e,t,n){return new fa(e,t,n)}function or(e,t){return{type:7,name:e,definitions:t,options:{}}}function lr(e,t){return void 0===t&&(t=null),{type:4,styles:t,timings:e}}function ar(e,t){return void 0===t&&(t=null),{type:3,steps:e,options:t}}function sr(e,t){return void 0===t&&(t=null),{type:2,steps:e,options:t}}function ur(e){return{type:6,styles:e,offset:null}}function cr(e,t,n){return{type:0,name:e,styles:t,options:n}}function dr(e){return{type:5,steps:e}}function pr(e,t,n){return void 0===n&&(n=null),{type:1,expr:e,animation:t,options:n}}function fr(e,t){return or(e,t)}function hr(e,t){return lr(e,t)}function mr(e){return ar(e)}function gr(e){return sr(e)}function yr(e){return ur(e)}function vr(e,t){return cr(e,t)}function br(e){return dr(e)}function _r(e,t){return pr(e,t)}n.d(t,"createPlatform",function(){return ee}),n.d(t,"assertPlatform",function(){return ne}),n.d(t,"destroyPlatform",function(){return re}),n.d(t,"getPlatform",function(){return ie}),n.d(t,"PlatformRef",function(){return Mo}),n.d(t,"ApplicationRef",function(){return Po}),n.d(t,"enableProdMode",function(){return X}),n.d(t,"isDevMode",function(){return J}),n.d(t,"createPlatformFactory",function(){return te}),n.d(t,"NgProbeToken",function(){return Ro}),n.d(t,"APP_ID",function(){return Zi}),n.d(t,"PACKAGE_ROOT_URL",function(){return eo}),n.d(t,"PLATFORM_INITIALIZER",function(){return Yi}),n.d(t,"PLATFORM_ID",function(){return Xi}),n.d(t,"APP_BOOTSTRAP_LISTENER",function(){return Ji}),n.d(t,"APP_INITIALIZER",function(){return Ki}),n.d(t,"ApplicationInitStatus",function(){return $i}),n.d(t,"DebugElement",function(){return el}),n.d(t,"DebugNode",function(){return Jo}),n.d(t,"asNativeElements",function(){return de}),n.d(t,"getDebugNode",function(){return he}),n.d(t,"Testability",function(){return So}),n.d(t,"TestabilityRegistry",function(){return Oo}),n.d(t,"setTestabilityGetter",function(){return Y}),n.d(t,"TRANSLATIONS",function(){return wl}),n.d(t,"TRANSLATIONS_FORMAT",function(){return xl}),n.d(t,"LOCALE_ID",function(){return _l}),n.d(t,"MissingTranslationStrategy",function(){return Cl}),n.d(t,"ApplicationModule",function(){return El}),n.d(t,"wtfCreateScope",function(){return yo}),n.d(t,"wtfLeave",function(){return vo}),n.d(t,"wtfStartTimeRange",function(){return bo}),n.d(t,"wtfEndTimeRange",function(){return _o}),n.d(t,"Type",function(){return Li}),n.d(t,"EventEmitter",function(){return wo}),n.d(t,"ErrorHandler",function(){return Pi}),n.d(t,"Sanitizer",function(){return Ol}),n.d(t,"SecurityContext",function(){return Sl}),n.d(t,"ANALYZE_FOR_ENTRY_COMPONENTS",function(){return Lr}),n.d(t,"Attribute",function(){return Fr}),n.d(t,"ContentChild",function(){return zr}),n.d(t,"ContentChildren",function(){return Vr}),n.d(t,"Query",function(){return jr}),n.d(t,"ViewChild",function(){return Hr}),n.d(t,"ViewChildren",function(){return Br}),n.d(t,"Component",function(){return Gr}),n.d(t,"Directive",function(){return Ur}),n.d(t,"HostBinding",function(){return Qr}),n.d(t,"HostListener",function(){return Yr}),n.d(t,"Input",function(){return $r}),n.d(t,"Output",function(){return Zr}),n.d(t,"Pipe",function(){return Kr}),n.d(t,"CUSTOM_ELEMENTS_SCHEMA",function(){return Xr}),n.d(t,"NO_ERRORS_SCHEMA",function(){return Jr}),n.d(t,"NgModule",function(){return ei}),n.d(t,"ViewEncapsulation",function(){return ti}),n.d(t,"Version",function(){return ni}),n.d(t,"VERSION",function(){return ri}),n.d(t,"forwardRef",function(){return p}),n.d(t,"resolveForwardRef",function(){return f}),n.d(t,"Injector",function(){return yi}),n.d(t,"ReflectiveInjector",function(){return Ui}),n.d(t,"ResolvedReflectiveFactory",function(){return Wi}),n.d(t,"ReflectiveKey",function(){return Ni}),n.d(t,"InjectionToken",function(){return Mr}),n.d(t,"Inject",function(){return ii}),n.d(t,"Optional",function(){return oi}),n.d(t,"Injectable",function(){return li}),n.d(t,"Self",function(){return ai}),n.d(t,"SkipSelf",function(){return si}),n.d(t,"Host",function(){return ui}),n.d(t,"NgZone",function(){return xo}),n.d(t,"RenderComponentType",function(){return No}),n.d(t,"Renderer",function(){return Lo}),n.d(t,"Renderer2",function(){return zo}),n.d(t,"RendererFactory2",function(){return jo}),n.d(t,"RendererStyleFlags2",function(){return Vo}),n.d(t,"RootRenderer",function(){return Fo}),n.d(t,"COMPILER_OPTIONS",function(){return io}),n.d(t,"Compiler",function(){return ro}),n.d(t,"CompilerFactory",function(){return oo}),n.d(t,"ModuleWithComponentFactories",function(){return no}),n.d(t,"ComponentFactory",function(){return ao}),n.d(t,"ComponentRef",function(){return lo}),n.d(t,"ComponentFactoryResolver",function(){return co}),n.d(t,"ElementRef",function(){return Bo}),n.d(t,"NgModuleFactory",function(){return mo}),n.d(t,"NgModuleRef",function(){return ho}),n.d(t,"NgModuleFactoryLoader",function(){return Ho}),n.d(t,"getModuleFactory",function(){return se}),n.d(t,"QueryList",function(){return qo}),n.d(t,"SystemJsNgModuleLoader",function(){return Ko}),n.d(t,"SystemJsNgModuleLoaderConfig",function(){return Uo}),n.d(t,"TemplateRef",function(){return $o}),n.d(t,"ViewContainerRef",function(){return Zo}),n.d(t,"EmbeddedViewRef",function(){return Xo}),n.d(t,"ViewRef",function(){return Yo}),n.d(t,"ChangeDetectionStrategy",function(){return Wr}),n.d(t,"ChangeDetectorRef",function(){return Qo}),n.d(t,"DefaultIterableDiffer",function(){return al}),n.d(t,"IterableDiffers",function(){return hl}),n.d(t,"KeyValueDiffers",function(){return ml}),n.d(t,"SimpleChange",function(){return il}),n.d(t,"WrappedValue",function(){return nl}),n.d(t,"platformCore",function(){return bl}),n.d(t,"\u0275ALLOW_MULTIPLE_PLATFORMS",function(){return Io}),n.d(t,"\u0275APP_ID_RANDOM_PROVIDER",function(){return Qi}),n.d(t,"\u0275ValueUnwrapper",function(){return rl}),n.d(t,"\u0275devModeEqual",function(){return ge}),n.d(t,"\u0275isListLikeIterable",function(){return ye}),n.d(t,"\u0275ChangeDetectorStatus",function(){return qr}),n.d(t,"\u0275isDefaultChangeDetectionStrategy",function(){return a}),n.d(t,"\u0275Console",function(){return to}),n.d(t,"\u0275ComponentFactory",function(){return ao}),n.d(t,"\u0275CodegenComponentFactoryResolver",function(){return po}),n.d(t,"\u0275ReflectionCapabilities",function(){return ji}),n.d(t,"\u0275RenderDebugInfo",function(){return Ao}),n.d(t,"\u0275global",function(){return pi}),n.d(t,"\u0275looseIdentical",function(){return c}),n.d(t,"\u0275stringify",function(){return d}),n.d(t,"\u0275makeDecorator",function(){return r}),n.d(t,"\u0275isObservable",function(){return L}),n.d(t,"\u0275isPromise",function(){return A}),n.d(t,"\u0275clearOverrides",function(){return rr}),n.d(t,"\u0275overrideComponentView",function(){return nr}),n.d(t,"\u0275overrideProvider",function(){return tr}),n.d(t,"\u0275NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR",function(){return ra}),n.d(t,"\u0275registerModuleFactory",function(){return ae}),n.d(t,"\u0275EMPTY_ARRAY",function(){return Ll}),n.d(t,"\u0275EMPTY_MAP",function(){return Fl}),n.d(t,"\u0275and",function(){return ut}),n.d(t,"\u0275ccf",function(){return Ct}),n.d(t,"\u0275cmf",function(){return ir}),n.d(t,"\u0275crt",function(){return Ae}),n.d(t,"\u0275did",function(){return Mt}),n.d(t,"\u0275eld",function(){return ct}),n.d(t,"\u0275elementEventFullName",function(){return Ue}),n.d(t,"\u0275getComponentViewDefinitionFactory",function(){return Et}),n.d(t,"\u0275inlineInterpolate",function(){return at}),n.d(t,"\u0275interpolate",function(){return lt}),n.d(t,"\u0275mod",function(){return mt}),n.d(t,"\u0275mpd",function(){return ht}),n.d(t,"\u0275ncd",function(){return Xt}),n.d(t,"\u0275nov",function(){return Dt}),n.d(t,"\u0275pid",function(){return Pt}),n.d(t,"\u0275prd",function(){return Nt}),n.d(t,"\u0275pad",function(){return tn}),n.d(t,"\u0275pod",function(){return nn}),n.d(t,"\u0275ppd",function(){return en}),n.d(t,"\u0275qud",function(){return Gt}),n.d(t,"\u0275ted",function(){return on}),n.d(t,"\u0275unv",function(){return Ne}),n.d(t,"\u0275vid",function(){return sn}),n.d(t,"AUTO_STYLE",function(){return ha}),n.d(t,"trigger",function(){return fr}),n.d(t,"animate",function(){return hr}),n.d(t,"group",function(){return mr}),n.d(t,"sequence",function(){return gr}),n.d(t,"style",function(){return yr}),n.d(t,"state",function(){return vr}),n.d(t,"keyframes",function(){return br}),n.d(t,"transition",function(){return _r}),n.d(t,"\u0275x",function(){return lr}),n.d(t,"\u0275y",function(){return ar}),n.d(t,"\u0275bc",function(){return dr}),n.d(t,"\u0275z",function(){return sr}),n.d(t,"\u0275bb",function(){return cr}),n.d(t,"\u0275ba",function(){return ur}),n.d(t,"\u0275bd",function(){return pr}),n.d(t,"\u0275w",function(){return or}),n.d(t,"\u0275k",function(){return _e}),n.d(t,"\u0275l",function(){return we}),n.d(t,"\u0275m",function(){return xe}),n.d(t,"\u0275f",function(){return F}),n.d(t,"\u0275g",function(){return yl}),n.d(t,"\u0275h",function(){return vl}),n.d(t,"\u0275i",function(){return ol}),n.d(t,"\u0275j",function(){return dl}),n.d(t,"\u0275b",function(){return Di}),n.d(t,"\u0275c",function(){return Gi}),n.d(t,"\u0275d",function(){return zi}),n.d(t,"\u0275e",function(){return I}),n.d(t,"\u0275n",function(){return go}),n.d(t,"\u0275p",function(){return H}),n.d(t,"\u0275o",function(){return B}),n.d(t,"\u0275s",function(){return U}),n.d(t,"\u0275q",function(){return W}),n.d(t,"\u0275r",function(){return q}),n.d(t,"\u0275a",function(){return o}),n.d(t,"\u0275t",function(){return At}),n.d(t,"\u0275u",function(){return Tl});var wr,xr,Cr,Er,Sr,Or,Tr=n("6Xbx"),kr=n("AP4T"),Dr=n("2kLc"),Ir=n("URbD"),Rr=n("TO51"),Mr=function(){function e(e){this._desc=e,this.ngMetadataName="InjectionToken"}return e.prototype.toString=function(){return"InjectionToken "+this._desc},e}(),Pr="__annotations__",Nr="__paramaters__",Ar="__prop__metadata__",Lr=new Mr("AnalyzeForEntryComponents"),Fr=o("Attribute",function(e){return{attributeName:e}}),jr=function(){},Vr=l("ContentChildren",function(e,t){return void 0===t&&(t={}),Object(Tr.__assign)({selector:e,first:!1,isViewQuery:!1,descendants:!1},t)},jr),zr=l("ContentChild",function(e,t){return void 0===t&&(t={}),Object(Tr.__assign)({selector:e,first:!0,isViewQuery:!1,descendants:!0},t)},jr),Br=l("ViewChildren",function(e,t){return void 0===t&&(t={}),Object(Tr.__assign)({selector:e,first:!1,isViewQuery:!0,descendants:!0},t)},jr),Hr=l("ViewChild",function(e,t){return Object(Tr.__assign)({selector:e,first:!0,isViewQuery:!0,descendants:!0},t)},jr),Wr=function(){var e={OnPush:0,Default:1};return e[e.OnPush]="OnPush",e[e.Default]="Default",e}(),qr=function(){var e={CheckOnce:0,Checked:1,CheckAlways:2,Detached:3,Errored:4,Destroyed:5};return e[e.CheckOnce]="CheckOnce",e[e.Checked]="Checked",e[e.CheckAlways]="CheckAlways",e[e.Detached]="Detached",e[e.Errored]="Errored",e[e.Destroyed]="Destroyed",e}(),Ur=r("Directive",function(e){return void 0===e&&(e={}),e}),Gr=r("Component",function(e){return void 0===e&&(e={}),Object(Tr.__assign)({changeDetection:Wr.Default},e)},Ur),Kr=r("Pipe",function(e){return Object(Tr.__assign)({pure:!0},e)}),$r=l("Input",function(e){return{bindingPropertyName:e}}),Zr=l("Output",function(e){return{bindingPropertyName:e}}),Qr=l("HostBinding",function(e){return{hostPropertyName:e}}),Yr=l("HostListener",function(e,t){return{eventName:e,args:t}}),Xr={name:"custom-elements"},Jr={name:"no-errors-schema"},ei=r("NgModule",function(e){return e}),ti=function(){var e={Emulated:0,Native:1,None:2};return e[e.Emulated]="Emulated",e[e.Native]="Native",e[e.None]="None",e}(),ni=function(e){this.full=e,this.major=e.split(".")[0],this.minor=e.split(".")[1],this.patch=e.split(".").slice(2).join(".")},ri=new ni("5.1.1"),ii=o("Inject",function(e){return{token:e}}),oi=o("Optional"),li=r("Injectable"),ai=o("Self"),si=o("SkipSelf"),ui=o("Host"),ci="undefined"!=typeof window&&window,di="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,pi=ci||void 0!==e&&e||di,fi=null,hi=new Object,mi=hi,gi=function(){function e(){}return e.prototype.get=function(e,t){if(void 0===t&&(t=hi),t===hi)throw new Error("NullInjectorError: No provider for "+d(e)+"!");return t},e}(),yi=function(){function e(){}return e.create=function(e,t){return new Di(e,t)},e.THROW_IF_NOT_FOUND=hi,e.NULL=new gi,e}(),vi=function(e){return e},bi=[],_i=vi,wi=function(){return Array.prototype.slice.call(arguments)},xi={},Ci=xi,Ei=function(e){for(var t in e)if(e[t]===xi)return t;throw Error("!prop")}({provide:String,useValue:Ci}),Si="ngTempTokenPath",Oi=yi.NULL,Ti=/\n/gm,ki="\u0275",Di=function(){function e(e,t){void 0===t&&(t=Oi),this.parent=t;var n=this._records=new Map;n.set(yi,{token:yi,fn:vi,deps:bi,value:this,useNew:!1}),m(n,e)}return e.prototype.get=function(e,t){var n=this._records.get(e);try{return g(e,n,this._records,this.parent,t)}catch(e){var r=e[Si];throw e.message=y("\n"+e.message,r),e.ngTokenPath=r,e[Si]=null,e}},e.prototype.toString=function(){var e=[];return this._records.forEach(function(t,n){return e.push(d(n))}),"StaticInjector["+e.join(", ")+"]"},e}(),Ii="ngDebugContext",Ri="ngOriginalError",Mi="ngErrorLogger",Pi=function(){function e(){this._console=console}return e.prototype.handleError=function(e){var t=this._findOriginalError(e),n=this._findContext(e),r=e[Mi]||function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e.error.apply(e,t)};r(this._console,"ERROR",e),t&&r(this._console,"ORIGINAL ERROR",t),n&&r(this._console,"ERROR CONTEXT",n)},e.prototype._findContext=function(e){return e?b(e)?b(e):this._findContext(_(e)):null},e.prototype._findOriginalError=function(e){for(var t=_(e);t&&_(t);)t=_(t);return t},e}(),Ni=function(){function e(e,t){if(this.token=e,this.id=t,!e)throw new Error("Token must be defined!");this.displayName=d(this.token)}return e.get=function(e){return Ai.get(f(e))},Object.defineProperty(e,"numberOfKeys",{get:function(){return Ai.numberOfKeys},enumerable:!0,configurable:!0}),e}(),Ai=new(function(){function e(){this._allKeys=new Map}return e.prototype.get=function(e){if(e instanceof Ni)return e;if(this._allKeys.has(e))return this._allKeys.get(e);var t=new Ni(e,Ni.numberOfKeys);return this._allKeys.set(e,t),t},Object.defineProperty(e.prototype,"numberOfKeys",{get:function(){return this._allKeys.size},enumerable:!0,configurable:!0}),e}()),Li=Function,Fi=/^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/,ji=function(){function e(e){this._reflect=e||pi.Reflect}return e.prototype.isReflectionEnabled=function(){return!0},e.prototype.factory=function(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return new(e.bind.apply(e,[void 0].concat(t)))}},e.prototype._zipTypesAndAnnotations=function(e,t){var n;n=void 0===e?new Array(t.length):new Array(e.length);for(var r=0;r<n.length;r++)n[r]=void 0===e?[]:e[r]!=Object?[e[r]]:[],t&&null!=t[r]&&(n[r]=n[r].concat(t[r]));return n},e.prototype._ownParameters=function(e,t){if(Fi.exec(e.toString()))return null;if(e.parameters&&e.parameters!==t.parameters)return e.parameters;var n=e.ctorParameters;if(n&&n!==t.ctorParameters){var r="function"==typeof n?n():n,i=r.map(function(e){return e&&e.type}),o=r.map(function(e){return e&&T(e.decorators)});return this._zipTypesAndAnnotations(i,o)}var l=e.hasOwnProperty(Nr)&&e[Nr],a=this._reflect&&this._reflect.getOwnMetadata&&this._reflect.getOwnMetadata("design:paramtypes",e);return a||l?this._zipTypesAndAnnotations(a,l):new Array(e.length).fill(void 0)},e.prototype.parameters=function(e){if(!O(e))return[];var t=k(e),n=this._ownParameters(e,t);return n||t===Object||(n=this.parameters(t)),n||[]},e.prototype._ownAnnotations=function(e,t){if(e.annotations&&e.annotations!==t.annotations){var n=e.annotations;return"function"==typeof n&&n.annotations&&(n=n.annotations),n}return e.decorators&&e.decorators!==t.decorators?T(e.decorators):e.hasOwnProperty(Pr)?e[Pr]:null},e.prototype.annotations=function(e){if(!O(e))return[];var t=k(e),n=this._ownAnnotations(e,t)||[];return(t!==Object?this.annotations(t):[]).concat(n)},e.prototype._ownPropMetadata=function(e,t){if(e.propMetadata&&e.propMetadata!==t.propMetadata){var n=e.propMetadata;return"function"==typeof n&&n.propMetadata&&(n=n.propMetadata),n}if(e.propDecorators&&e.propDecorators!==t.propDecorators){var r=e.propDecorators,i={};return Object.keys(r).forEach(function(e){i[e]=T(r[e])}),i}return e.hasOwnProperty(Ar)?e[Ar]:null},e.prototype.propMetadata=function(e){if(!O(e))return{};var t=k(e),n={};if(t!==Object){var r=this.propMetadata(t);Object.keys(r).forEach(function(e){n[e]=r[e]})}var i=this._ownPropMetadata(e,t);return i&&Object.keys(i).forEach(function(e){var t=[];n.hasOwnProperty(e)&&t.push.apply(t,n[e]),t.push.apply(t,i[e]),n[e]=t}),n},e.prototype.hasLifecycleHook=function(e,t){return e instanceof Li&&t in e.prototype},e.prototype.getter=function(e){return new Function("o","return o."+e+";")},e.prototype.setter=function(e){return new Function("o","v","return o."+e+" = v;")},e.prototype.method=function(e){var t="if (!o."+e+") throw new Error('\""+e+"\" is undefined');\n return o."+e+".apply(o, args);";return new Function("o","args",t)},e.prototype.importUri=function(e){return"object"==typeof e&&e.filePath?e.filePath:"./"+d(e)},e.prototype.resourceUri=function(e){return"./"+d(e)},e.prototype.resolveIdentifier=function(e,t,n,r){return r},e.prototype.resolveEnum=function(e,t){return e[t]},e}(),Vi=new(function(){function e(e){this.reflectionCapabilities=e}return e.prototype.updateCapabilities=function(e){this.reflectionCapabilities=e},e.prototype.factory=function(e){return this.reflectionCapabilities.factory(e)},e.prototype.parameters=function(e){return this.reflectionCapabilities.parameters(e)},e.prototype.annotations=function(e){return this.reflectionCapabilities.annotations(e)},e.prototype.propMetadata=function(e){return this.reflectionCapabilities.propMetadata(e)},e.prototype.hasLifecycleHook=function(e,t){return this.reflectionCapabilities.hasLifecycleHook(e,t)},e.prototype.getter=function(e){return this.reflectionCapabilities.getter(e)},e.prototype.setter=function(e){return this.reflectionCapabilities.setter(e)},e.prototype.method=function(e){return this.reflectionCapabilities.method(e)},e.prototype.importUri=function(e){return this.reflectionCapabilities.importUri(e)},e.prototype.resourceUri=function(e){return this.reflectionCapabilities.resourceUri(e)},e.prototype.resolveIdentifier=function(e,t,n,r){return this.reflectionCapabilities.resolveIdentifier(e,t,n,r)},e.prototype.resolveEnum=function(e,t){return this.reflectionCapabilities.resolveEnum(e,t)},e}())(new ji),zi=function(){function e(e,t,n){this.key=e,this.optional=t,this.visibility=n}return e.fromKey=function(t){return new e(t,!1,null)},e}(),Bi=[],Hi=function(){function e(e,t,n){this.key=e,this.resolvedFactories=t,this.multiProvider=n}return Object.defineProperty(e.prototype,"resolvedFactory",{get:function(){return this.resolvedFactories[0]},enumerable:!0,configurable:!0}),e}(),Wi=function(e,t){this.factory=e,this.dependencies=t},qi=new Object,Ui=function(){function e(){}return e.resolve=function(e){return I(e)},e.resolveAndCreate=function(t,n){var r=e.resolve(t);return e.fromResolvedProviders(r,n)},e.fromResolvedProviders=function(e,t){return new Gi(e,t)},e}(),Gi=function(){function e(e,t){this._constructionCounter=0,this._providers=e,this.parent=t||null;var n=e.length;this.keyIds=new Array(n),this.objs=new Array(n);for(var r=0;r<n;r++)this.keyIds[r]=e[r].key.id,this.objs[r]=qi}return e.prototype.get=function(e,t){return void 0===t&&(t=mi),this._getByKey(Ni.get(e),null,t)},e.prototype.resolveAndCreateChild=function(e){var t=Ui.resolve(e);return this.createChildFromResolved(t)},e.prototype.createChildFromResolved=function(t){var n=new e(t);return n.parent=this,n},e.prototype.resolveAndInstantiate=function(e){return this.instantiateResolved(Ui.resolve([e])[0])},e.prototype.instantiateResolved=function(e){return this._instantiateProvider(e)},e.prototype.getProviderAtIndex=function(e){if(e<0||e>=this._providers.length)throw function(e){return Error("Index "+e+" is out-of-bounds.")}(e);return this._providers[e]},e.prototype._new=function(e){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw function(t,n){return x(t,e.key,function(e){return"Cannot instantiate cyclic dependency!"+w(e)})}(this);return this._instantiateProvider(e)},e.prototype._getMaxNumberOfObjects=function(){return this.objs.length},e.prototype._instantiateProvider=function(e){if(e.multiProvider){for(var t=new Array(e.resolvedFactories.length),n=0;n<e.resolvedFactories.length;++n)t[n]=this._instantiate(e,e.resolvedFactories[n]);return t}return this._instantiate(e,e.resolvedFactories[0])},e.prototype._instantiate=function(e,t){var n,r=this,i=t.factory;try{n=t.dependencies.map(function(e){return r._getByReflectiveDependency(e)})}catch(t){throw t.addKey&&t.addKey(this,e.key),t}var o;try{o=i.apply(void 0,n)}catch(t){throw function(t,n,r,i){return x(t,e.key,function(e){var t=d(e[0].token);return n.message+": Error during instantiation of "+t+"!"+w(e)+"."},n)}(this,t)}return o},e.prototype._getByReflectiveDependency=function(e){return this._getByKey(e.key,e.visibility,e.optional?null:mi)},e.prototype._getByKey=function(t,n,r){return t===e.INJECTOR_KEY?this:n instanceof ai?this._getByKeySelf(t,r):this._getByKeyDefault(t,r,n)},e.prototype._getObjByKeyId=function(e){for(var t=0;t<this.keyIds.length;t++)if(this.keyIds[t]===e)return this.objs[t]===qi&&(this.objs[t]=this._new(this._providers[t])),this.objs[t];return qi},e.prototype._throwOrNull=function(e,t){if(t!==mi)return t;throw function(t,n){return x(t,e,function(e){return"No provider for "+d(e[0].token)+"!"+w(e)})}(this)},e.prototype._getByKeySelf=function(e,t){var n=this._getObjByKeyId(e.id);return n!==qi?n:this._throwOrNull(e,t)},e.prototype._getByKeyDefault=function(t,n,r){var i;for(i=r instanceof si?this.parent:this;i instanceof e;){var o=i,l=o._getObjByKeyId(t.id);if(l!==qi)return l;i=o.parent}return null!==i?i.get(t.token,n):this._throwOrNull(t,n)},Object.defineProperty(e.prototype,"displayName",{get:function(){return"ReflectiveInjector(providers: ["+function(e,t){for(var n=new Array(e._providers.length),r=0;r<e._providers.length;++r)n[r]=t(e.getProviderAtIndex(r));return n}(this,function(e){return' "'+e.key.displayName+'" '}).join(", ")+"])"},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this.displayName},e.INJECTOR_KEY=Ni.get(yi),e}(),Ki=new Mr("Application Initializer"),$i=function(){function e(e){var t=this;this.appInits=e,this.initialized=!1,this.done=!1,this.donePromise=new Promise(function(e,n){t.resolve=e,t.reject=n})}return e.prototype.runInitializers=function(){var e=this;if(!this.initialized){var t=[],n=function(){e.done=!0,e.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var i=this.appInits[r]();A(i)&&t.push(i)}Promise.all(t).then(function(){n()}).catch(function(t){e.reject(t)}),0===t.length&&n(),this.initialized=!0}},e}(),Zi=new Mr("AppId"),Qi={provide:Zi,useFactory:F,deps:[]},Yi=new Mr("Platform Initializer"),Xi=new Mr("Platform ID"),Ji=new Mr("appBootstrapListener"),eo=new Mr("Application Packages Root URL"),to=function(){function e(){}return e.prototype.log=function(e){console.log(e)},e.prototype.warn=function(e){console.warn(e)},e.ctorParameters=function(){return[]},e}(),no=function(e,t){this.ngModuleFactory=e,this.componentFactories=t},ro=function(){function e(){}return e.prototype.compileModuleSync=function(e){throw V()},e.prototype.compileModuleAsync=function(e){throw V()},e.prototype.compileModuleAndAllComponentsSync=function(e){throw V()},e.prototype.compileModuleAndAllComponentsAsync=function(e){throw V()},e.prototype.clearCache=function(){},e.prototype.clearCacheFor=function(e){},e}(),io=new Mr("compilerOptions"),oo=function(){},lo=function(){},ao=function(){},so="ngComponent",uo=function(){function e(){}return e.prototype.resolveComponentFactory=function(e){throw z(e)},e}(),co=function(){function e(){}return e.NULL=new uo,e}(),po=function(){function e(e,t,n){this._parent=t,this._ngModule=n,this._factories=new Map;for(var r=0;r<e.length;r++){var i=e[r];this._factories.set(i.componentType,i)}}return e.prototype.resolveComponentFactory=function(e){var t=this._factories.get(e);if(!t&&this._parent&&(t=this._parent.resolveComponentFactory(e)),!t)throw z(e);return new fo(t,this._ngModule)},e}(),fo=function(e){function t(t,n){var r=e.call(this)||this;return r.factory=t,r.ngModule=n,r}return Object(Tr.__extends)(t,e),Object.defineProperty(t.prototype,"selector",{get:function(){return this.factory.selector},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentType",{get:function(){return this.factory.componentType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngContentSelectors",{get:function(){return this.factory.ngContentSelectors},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inputs",{get:function(){return this.factory.inputs},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"outputs",{get:function(){return this.factory.outputs},enumerable:!0,configurable:!0}),t.prototype.create=function(e,t,n,r){return this.factory.create(e,t,n,r||this.ngModule)},t}(ao),ho=function(){},mo=function(){},go=B(),yo=go?H:function(e,t){return G},vo=go?W:function(e,t){return t},bo=go?q:function(e,t){return null},_o=go?U:function(e){return null},wo=function(e){function t(t){void 0===t&&(t=!1);var n=e.call(this)||this;return n.__isAsync=t,n}return Object(Tr.__extends)(t,e),t.prototype.emit=function(t){e.prototype.next.call(this,t)},t.prototype.subscribe=function(t,n,r){var i,o=function(e){return null},l=function(){return null};return t&&"object"==typeof t?(i=this.__isAsync?function(e){setTimeout(function(){return t.next(e)})}:function(e){t.next(e)},t.error&&(o=this.__isAsync?function(e){setTimeout(function(){return t.error(e)})}:function(e){t.error(e)}),t.complete&&(l=this.__isAsync?function(){setTimeout(function(){return t.complete()})}:function(){t.complete()})):(i=this.__isAsync?function(e){setTimeout(function(){return t(e)})}:function(e){t(e)},n&&(o=this.__isAsync?function(e){setTimeout(function(){return n(e)})}:function(e){n(e)}),r&&(l=this.__isAsync?function(){setTimeout(function(){return r()})}:function(){r()})),e.prototype.subscribe.call(this,i,o,l)},t}(Rr.Subject),xo=function(){function e(e){var t=e.enableLongStackTrace,n=void 0!==t&&t;if(this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new wo(!1),this.onMicrotaskEmpty=new wo(!1),this.onStable=new wo(!1),this.onError=new wo(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),function(e){e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:function(t,n,r,i,o,l){try{return Z(e),t.invokeTask(r,i,o,l)}finally{Q(e)}},onInvoke:function(t,n,r,i,o,l,a){try{return Z(e),t.invoke(r,i,o,l,a)}finally{Q(e)}},onHasTask:function(t,n,r,i){t.hasTask(r,i),n===r&&("microTask"==i.change?(e.hasPendingMicrotasks=i.microTask,$(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:function(t,n,r,i){return t.handleError(r,i),e.runOutsideAngular(function(){return e.onError.emit(i)}),!1}})}(this)}return e.isInAngularZone=function(){return!0===Zone.current.get("isAngularZone")},e.assertInAngularZone=function(){if(!e.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")},e.assertNotInAngularZone=function(){if(e.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")},e.prototype.run=function(e,t,n){return this._inner.run(e,t,n)},e.prototype.runTask=function(e,t,n,r){var i=this._inner,o=i.scheduleEventTask("NgZoneEvent: "+r,e,Co,K,K);try{return i.runTask(o,t,n)}finally{i.cancelTask(o)}},e.prototype.runGuarded=function(e,t,n){return this._inner.runGuarded(e,t,n)},e.prototype.runOutsideAngular=function(e){return this._outer.run(e)},e}(),Co={},Eo=function(){function e(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new wo,this.onMicrotaskEmpty=new wo,this.onStable=new wo,this.onError=new wo}return e.prototype.run=function(e){return e()},e.prototype.runGuarded=function(e){return e()},e.prototype.runOutsideAngular=function(e){return e()},e.prototype.runTask=function(e){return e()},e}(),So=function(){function e(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this._watchAngularEvents()}return e.prototype._watchAngularEvents=function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular(function(){e._ngZone.onStable.subscribe({next:function(){xo.assertNotInAngularZone(),u(function(){e._isZoneStable=!0,e._runCallbacksIfReady()})}})})},e.prototype.increasePendingRequestCount=function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount},e.prototype.decreasePendingRequestCount=function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount},e.prototype.isStable=function(){return this._isZoneStable&&0==this._pendingCount&&!this._ngZone.hasPendingMacrotasks},e.prototype._runCallbacksIfReady=function(){var e=this;this.isStable()?u(function(){for(;0!==e._callbacks.length;)e._callbacks.pop()(e._didWork);e._didWork=!1}):this._didWork=!0},e.prototype.whenStable=function(e){this._callbacks.push(e),this._runCallbacksIfReady()},e.prototype.getPendingRequestCount=function(){return this._pendingCount},e.prototype.findProviders=function(e,t,n){return[]},e}(),Oo=function(){function e(){this._applications=new Map,To.addToWindow(this)}return e.prototype.registerApplication=function(e,t){this._applications.set(e,t)},e.prototype.unregisterApplication=function(e){this._applications.delete(e)},e.prototype.unregisterAllApplications=function(){this._applications.clear()},e.prototype.getTestability=function(e){return this._applications.get(e)||null},e.prototype.getAllTestabilities=function(){return Array.from(this._applications.values())},e.prototype.getAllRootElements=function(){return Array.from(this._applications.keys())},e.prototype.findTestabilityInTree=function(e,t){return void 0===t&&(t=!0),To.findTestabilityInTree(this,e,t)},e.ctorParameters=function(){return[]},e}(),To=new(function(){function e(){}return e.prototype.addToWindow=function(e){},e.prototype.findTestabilityInTree=function(e,t,n){return null},e}()),ko=!0,Do=!1,Io=new Mr("AllowMultipleToken"),Ro=function(e,t){this.name=e,this.token=t},Mo=function(){function e(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return e.prototype.bootstrapModuleFactory=function(e,t){var n=this,r=function(e){return"noop"===e?new Eo:("zone.js"===e?void 0:e)||new xo({enableLongStackTrace:J()})}(t?t.ngZone:void 0);return r.run(function(){var t=yi.create([{provide:xo,useValue:r}],n.injector),i=e.create(t),o=i.injector.get(Pi,null);if(!o)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return i.onDestroy(function(){return le(n._modules,i)}),r.runOutsideAngular(function(){return r.onError.subscribe({next:function(e){o.handleError(e)}})}),function(e,t,r){try{var o=function(){var e=i.injector.get($i);return e.runInitializers(),e.donePromise.then(function(){return n._moduleDoBootstrap(i),i})}();return A(o)?o.catch(function(n){throw t.runOutsideAngular(function(){return e.handleError(n)}),n}):o}catch(n){throw t.runOutsideAngular(function(){return e.handleError(n)}),n}}(o,r)})},e.prototype.bootstrapModule=function(e,t){var n=this;void 0===t&&(t=[]);var r=this.injector.get(oo),i=oe({},t);return r.createCompiler([i]).compileModuleAsync(e).then(function(e){return n.bootstrapModuleFactory(e,i)})},e.prototype._moduleDoBootstrap=function(e){var t=e.injector.get(Po);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(function(e){return t.bootstrap(e)});else{if(!e.instance.ngDoBootstrap)throw new Error("The module "+d(e.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');e.instance.ngDoBootstrap(t)}this._modules.push(e)},e.prototype.onDestroy=function(e){this._destroyListeners.push(e)},Object.defineProperty(e.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(function(e){return e.destroy()}),this._destroyListeners.forEach(function(e){return e()}),this._destroyed=!0},Object.defineProperty(e.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),e}(),Po=function(){function e(e,t,n,r,i,o){var l=this;this._zone=e,this._console=t,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=i,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=J(),this._zone.onMicrotaskEmpty.subscribe({next:function(){l._zone.run(function(){l.tick()})}});var a=new kr.a(function(e){l._stable=l._zone.isStable&&!l._zone.hasPendingMacrotasks&&!l._zone.hasPendingMicrotasks,l._zone.runOutsideAngular(function(){e.next(l._stable),e.complete()})}),s=new kr.a(function(e){var t;l._zone.runOutsideAngular(function(){t=l._zone.onStable.subscribe(function(){xo.assertNotInAngularZone(),u(function(){l._stable||l._zone.hasPendingMacrotasks||l._zone.hasPendingMicrotasks||(l._stable=!0,e.next(!0))})})});var n=l._zone.onUnstable.subscribe(function(){xo.assertInAngularZone(),l._stable&&(l._stable=!1,l._zone.runOutsideAngular(function(){e.next(!1)}))});return function(){t.unsubscribe(),n.unsubscribe()}});this.isStable=Object(Dr.a)(a,Ir.a.call(s))}return e.prototype.bootstrap=function(e,t){var n=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");var r;r=e instanceof ao?e:this._componentFactoryResolver.resolveComponentFactory(e),this.componentTypes.push(r.componentType);var i=r instanceof fo?null:this._injector.get(ho),o=r.create(yi.NULL,[],t||r.selector,i);o.onDestroy(function(){n._unloadComponent(o)});var l=o.injector.get(So,null);return l&&o.injector.get(Oo).registerApplication(o.location.nativeElement,l),this._loadComponent(o),J()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),o},e.prototype.tick=function(){var t=this;if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");var n=e._tickScope();try{this._runningTick=!0,this._views.forEach(function(e){return e.detectChanges()}),this._enforceNoNewChanges&&this._views.forEach(function(e){return e.checkNoChanges()})}catch(e){this._zone.runOutsideAngular(function(){return t._exceptionHandler.handleError(e)})}finally{this._runningTick=!1,vo(n)}},e.prototype.attachView=function(e){var t=e;this._views.push(t),t.attachToAppRef(this)},e.prototype.detachView=function(e){var t=e;le(this._views,t),t.detachFromAppRef()},e.prototype._loadComponent=function(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(Ji,[]).concat(this._bootstrapListeners).forEach(function(t){return t(e)})},e.prototype._unloadComponent=function(e){this.detachView(e.hostView),le(this.components,e)},e.prototype.ngOnDestroy=function(){this._views.slice().forEach(function(e){return e.destroy()})},Object.defineProperty(e.prototype,"viewCount",{get:function(){return this._views.length},enumerable:!0,configurable:!0}),e._tickScope=yo("ApplicationRef#tick()"),e}(),No=function(e,t,n,r,i,o){this.id=e,this.templateUrl=t,this.slotCount=n,this.encapsulation=r,this.styles=i,this.animations=o},Ao=function(){},Lo=function(){},Fo=function(){},jo=function(){},Vo=function(){var e={Important:1,DashCase:2};return e[e.Important]="Important",e[e.DashCase]="DashCase",e}(),zo=function(){},Bo=function(e){this.nativeElement=e},Ho=function(){},Wo=new Map,qo=function(){function e(){this.dirty=!0,this._results=[],this.changes=new wo}return Object.defineProperty(e.prototype,"length",{get:function(){return this._results.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"first",{get:function(){return this._results[0]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){return this._results[this.length-1]},enumerable:!0,configurable:!0}),e.prototype.map=function(e){return this._results.map(e)},e.prototype.filter=function(e){return this._results.filter(e)},e.prototype.find=function(e){return this._results.find(e)},e.prototype.reduce=function(e,t){return this._results.reduce(e,t)},e.prototype.forEach=function(e){this._results.forEach(e)},e.prototype.some=function(e){return this._results.some(e)},e.prototype.toArray=function(){return this._results.slice()},e.prototype[s()]=function(){return this._results[s()]()},e.prototype.toString=function(){return this._results.toString()},e.prototype.reset=function(e){this._results=ue(e),this.dirty=!1},e.prototype.notifyOnChanges=function(){this.changes.emit(this)},e.prototype.setDirty=function(){this.dirty=!0},e.prototype.destroy=function(){this.changes.complete(),this.changes.unsubscribe()},e}(),Uo=function(){},Go={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},Ko=function(){function e(e,t){this._compiler=e,this._config=t||Go}return e.prototype.load=function(e){return this._compiler instanceof ro?this.loadFactory(e):this.loadAndCompile(e)},e.prototype.loadAndCompile=function(e){var t=this,r=e.split("#"),i=r[0],o=r[1];return void 0===o&&(o="default"),n("YuZA")(i).then(function(e){return e[o]}).then(function(e){return ce(e,i,o)}).then(function(e){return t._compiler.compileModuleAsync(e)})},e.prototype.loadFactory=function(e){var t=e.split("#"),r=t[0],i=t[1],o="NgFactory";return void 0===i&&(i="default",o=""),n("YuZA")(this._config.factoryPathPrefix+r+this._config.factoryPathSuffix).then(function(e){return e[i+o]}).then(function(e){return ce(e,r,i)})},e}(),$o=function(){},Zo=function(){},Qo=function(){},Yo=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Tr.__extends)(t,e),t}(Qo),Xo=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(Tr.__extends)(t,e),t}(Yo),Jo=function(){function e(e,t,n){this._debugContext=n,this.nativeNode=e,t&&t instanceof el?t.addChild(this):this.parent=null,this.listeners=[]}return Object.defineProperty(e.prototype,"injector",{get:function(){return this._debugContext.injector},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentInstance",{get:function(){return this._debugContext.component},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._debugContext.context},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"references",{get:function(){return this._debugContext.references},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"providerTokens",{get:function(){return this._debugContext.providerTokens},enumerable:!0,configurable:!0}),e}(),el=function(e){function t(t,n,r){var i=e.call(this,t,n,r)||this;return i.properties={},i.attributes={},i.classes={},i.styles={},i.childNodes=[],i.nativeElement=t,i}return Object(Tr.__extends)(t,e),t.prototype.addChild=function(e){e&&(this.childNodes.push(e),e.parent=this)},t.prototype.removeChild=function(e){var t=this.childNodes.indexOf(e);-1!==t&&(e.parent=null,this.childNodes.splice(t,1))},t.prototype.insertChildrenAfter=function(e,t){var n=this,r=this.childNodes.indexOf(e);-1!==r&&((i=this.childNodes).splice.apply(i,[r+1,0].concat(t)),t.forEach(function(e){e.parent&&e.parent.removeChild(e),e.parent=n}));var i},t.prototype.insertBefore=function(e,t){var n=this.childNodes.indexOf(e);-1===n?this.addChild(t):(t.parent&&t.parent.removeChild(t),t.parent=this,this.childNodes.splice(n,0,t))},t.prototype.query=function(e){return this.queryAll(e)[0]||null},t.prototype.queryAll=function(e){var t=[];return pe(this,e,t),t},t.prototype.queryAllNodes=function(e){var t=[];return fe(this,e,t),t},Object.defineProperty(t.prototype,"children",{get:function(){return this.childNodes.filter(function(e){return e instanceof t})},enumerable:!0,configurable:!0}),t.prototype.triggerEventHandler=function(e,t){this.listeners.forEach(function(n){n.name==e&&n.callback(t)})},t}(Jo),tl=new Map,nl=function(){function e(e){this.wrapped=e}return e.wrap=function(t){return new e(t)},e}(),rl=function(){function e(){this.hasWrappedValue=!1}return e.prototype.unwrap=function(e){return e instanceof nl?(this.hasWrappedValue=!0,e.wrapped):e},e.prototype.reset=function(){this.hasWrappedValue=!1},e}(),il=function(){function e(e,t,n){this.previousValue=e,this.currentValue=t,this.firstChange=n}return e.prototype.isFirstChange=function(){return this.firstChange},e}(),ol=function(){function e(){}return e.prototype.supports=function(e){return ye(e)},e.prototype.create=function(e){return new al(e)},e}(),ll=function(e,t){return t},al=function(){function e(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||ll}return e.prototype.forEachItem=function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)},e.prototype.forEachOperation=function(e){for(var t=this._itHead,n=this._removalsHead,r=0,i=null;t||n;){var o=!n||t&&t.currentIndex<be(n,r,i)?t:n,l=be(o,r,i),a=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(t=t._next,null==o.previousIndex)r++;else{i||(i=[]);var s=l-r,u=a-r;if(s!=u){for(var c=0;c<s;c++){var d=c<i.length?i[c]:i[c]=0,p=d+c;u<=p&&p<s&&(i[c]=d+1)}i[o.previousIndex]=u-s}}l!==a&&e(o,l,a)}},e.prototype.forEachPreviousItem=function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)},e.prototype.forEachAddedItem=function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)},e.prototype.forEachMovedItem=function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)},e.prototype.forEachRemovedItem=function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)},e.prototype.forEachIdentityChange=function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)},e.prototype.diff=function(e){if(null==e&&(e=[]),!ye(e))throw new Error("Error trying to diff '"+d(e)+"'. Only arrays and iterables are allowed");return this.check(e)?this:null},e.prototype.onDestroy=function(){},e.prototype.check=function(e){var t=this;this._reset();var n,r,i,o=this._itHead,l=!1;if(Array.isArray(e)){this.length=e.length;for(var a=0;a<this.length;a++)i=this._trackByFn(a,r=e[a]),null!==o&&c(o.trackById,i)?(l&&(o=this._verifyReinsertion(o,r,i,a)),c(o.item,r)||this._addIdentityChange(o,r)):(o=this._mismatch(o,r,i,a),l=!0),o=o._next}else n=0,function(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(e[n]);else for(var r=e[s()](),i=void 0;!(i=r.next()).done;)t(i.value)}(e,function(e){i=t._trackByFn(n,e),null!==o&&c(o.trackById,i)?(l&&(o=t._verifyReinsertion(o,e,i,n)),c(o.item,e)||t._addIdentityChange(o,e)):(o=t._mismatch(o,e,i,n),l=!0),o=o._next,n++}),this.length=n;return this._truncate(o),this.collection=e,this.isDirty},Object.defineProperty(e.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead},enumerable:!0,configurable:!0}),e.prototype._reset=function(){if(this.isDirty){var e=void 0,t=void 0;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}},e.prototype._mismatch=function(e,t,n,r){var i;return null===e?i=this._itTail:(i=e._prev,this._remove(e)),null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(c(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,i,r)):null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(c(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,i,r)):e=this._addAfter(new sl(t,n),i,r),e},e.prototype._verifyReinsertion=function(e,t,n,r){var i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==i?e=this._reinsertAfter(i,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e},e.prototype._truncate=function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)},e.prototype._reinsertAfter=function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var r=e._prevRemoved,i=e._nextRemoved;return null===r?this._removalsHead=i:r._nextRemoved=i,null===i?this._removalsTail=r:i._prevRemoved=r,this._insertAfter(e,t,n),this._addToMoves(e,n),e},e.prototype._moveAfter=function(e,t,n){return this._unlink(e),this._insertAfter(e,t,n),this._addToMoves(e,n),e},e.prototype._addAfter=function(e,t,n){return this._insertAfter(e,t,n),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e},e.prototype._insertAfter=function(e,t,n){var r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new cl),this._linkedRecords.put(e),e.currentIndex=n,e},e.prototype._remove=function(e){return this._addToRemovals(this._unlink(e))},e.prototype._unlink=function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e},e.prototype._addToMoves=function(e,t){return e.previousIndex===t?e:(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e,e)},e.prototype._addToRemovals=function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new cl),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e},e.prototype._addIdentityChange=function(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e},e}(),sl=function(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null},ul=function(){function e(){this._head=null,this._tail=null}return e.prototype.add=function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)},e.prototype.get=function(e,t){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===t||t<=n.currentIndex)&&c(n.trackById,e))return n;return null},e.prototype.remove=function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head},e}(),cl=function(){function e(){this.map=new Map}return e.prototype.put=function(e){var t=e.trackById,n=this.map.get(t);n||(n=new ul,this.map.set(t,n)),n.add(e)},e.prototype.get=function(e,t){var n=this.map.get(e);return n?n.get(e,t):null},e.prototype.remove=function(e){var t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e},Object.defineProperty(e.prototype,"isEmpty",{get:function(){return 0===this.map.size},enumerable:!0,configurable:!0}),e.prototype.clear=function(){this.map.clear()},e}(),dl=function(){function e(){}return e.prototype.supports=function(e){return e instanceof Map||ve(e)},e.prototype.create=function(){return new pl},e}(),pl=function(){function e(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return Object.defineProperty(e.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead},enumerable:!0,configurable:!0}),e.prototype.forEachItem=function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)},e.prototype.forEachPreviousItem=function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)},e.prototype.forEachChangedItem=function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)},e.prototype.forEachAddedItem=function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)},e.prototype.forEachRemovedItem=function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)},e.prototype.diff=function(e){if(e){if(!(e instanceof Map||ve(e)))throw new Error("Error trying to diff '"+d(e)+"'. Only maps and objects are allowed")}else e=new Map;return this.check(e)?this:null},e.prototype.onDestroy=function(){},e.prototype.check=function(e){var t=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(e,function(e,r){if(n&&n.key===r)t._maybeAddToChanges(n,e),t._appendAfter=n,n=n._next;else{var i=t._getOrCreateRecordForKey(r,e);n=t._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty},e.prototype._insertBeforeOrAppend=function(e,t){if(e){var n=e._prev;return t._next=e,t._prev=n,e._prev=t,n&&(n._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null},e.prototype._getOrCreateRecordForKey=function(e,t){if(this._records.has(e)){var n=this._records.get(e);this._maybeAddToChanges(n,t);var r=n._prev,i=n._next;return r&&(r._next=i),i&&(i._prev=r),n._next=null,n._prev=null,n}var o=new fl(e);return this._records.set(e,o),o.currentValue=t,this._addToAdditions(o),o},e.prototype._reset=function(){if(this.isDirty){var e=void 0;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}},e.prototype._maybeAddToChanges=function(e,t){c(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))},e.prototype._addToAdditions=function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)},e.prototype._addToChanges=function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)},e.prototype._forEach=function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(function(n){return t(e[n],n)})},e}(),fl=function(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null},hl=function(){function e(e){this.factories=e}return e.create=function(t,n){if(null!=n){var r=n.factories.slice();return t=t.concat(r),new e(t)}return new e(t)},e.extend=function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error("Cannot extend IterableDiffers without a parent injector");return e.create(t,n)},deps:[[e,new si,new oi]]}},e.prototype.find=function(e){var t=this.factories.find(function(t){return t.supports(e)});if(null!=t)return t;throw new Error("Cannot find a differ supporting object '"+e+"' of type '"+(e.name||typeof e)+"'")},e}(),ml=function(){function e(e){this.factories=e}return e.create=function(t,n){if(n){var r=n.factories.slice();t=t.concat(r)}return new e(t)},e.extend=function(t){return{provide:e,useFactory:function(n){if(!n)throw new Error("Cannot extend KeyValueDiffers without a parent injector");return e.create(t,n)},deps:[[e,new si,new oi]]}},e.prototype.find=function(e){var t=this.factories.find(function(t){return t.supports(e)});if(t)return t;throw new Error("Cannot find a differ supporting object '"+e+"'")},e}(),gl=[new dl],yl=new hl([new ol]),vl=new ml(gl),bl=te(null,"core",[{provide:Xi,useValue:"unknown"},{provide:Mo,deps:[yi]},{provide:Oo,deps:[]},{provide:to,deps:[]}]),_l=new Mr("LocaleId"),wl=new Mr("Translations"),xl=new Mr("TranslationsFormat"),Cl=function(){var e={Error:0,Warning:1,Ignore:2};return e[e.Error]="Error",e[e.Warning]="Warning",e[e.Ignore]="Ignore",e}(),El=function(e){},Sl=function(){var e={NONE:0,HTML:1,STYLE:2,SCRIPT:3,URL:4,RESOURCE_URL:5};return e[e.NONE]="NONE",e[e.HTML]="HTML",e[e.STYLE]="STYLE",e[e.SCRIPT]="SCRIPT",e[e.URL]="URL",e[e.RESOURCE_URL]="RESOURCE_URL",e}(),Ol=function(){},Tl=function(){},kl={setCurrentNode:void 0,createRootView:void 0,createEmbeddedView:void 0,createComponentView:void 0,createNgModuleRef:void 0,overrideProvider:void 0,overrideComponentView:void 0,clearOverrides:void 0,checkAndUpdateView:void 0,checkNoChangesView:void 0,destroyView:void 0,resolveDep:void 0,createDebugContext:void 0,handleEvent:void 0,updateDirectives:void 0,updateRenderer:void 0,dirtyParentQueries:void 0},Dl=function(){},Il=new Map,Rl="$$undefined",Ml="$$empty",Pl=0,Nl=new WeakMap,Al=/^:([^:]+):(.+)$/,Ll=[],Fl={},jl=new Object,Vl=Pe(yi),zl=Pe(ho),Bl=new Object,Hl=function(e){function t(t,n,r,i,o,l){var a=e.call(this)||this;return a.selector=t,a.componentType=n,a._inputs=i,a._outputs=o,a.ngContentSelectors=l,a.viewDefFactory=r,a}return Object(Tr.__extends)(t,e),Object.defineProperty(t.prototype,"inputs",{get:function(){var e=[],t=this._inputs;for(var n in t)e.push({propName:n,templateName:t[n]});return e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"outputs",{get:function(){var e=[];for(var t in this._outputs)e.push({propName:t,templateName:this._outputs[t]});return e},enumerable:!0,configurable:!0}),t.prototype.create=function(e,t,n,r){if(!r)throw new Error("ngModule should be provided");var i=Xe(this.viewDefFactory),o=i.nodes[0].element.componentProvider.nodeIndex,l=kl.createRootView(e,t||[],n,i,r,Bl),a=Te(l,o).instance;return n&&l.renderer.setAttribute(Oe(l,0).renderElement,"ng-version",ri.full),new Wl(l,new Ul(l),a)},t}(ao),Wl=function(e){function t(t,n,r){var i=e.call(this)||this;return i._view=t,i._viewRef=n,i._component=r,i._elDef=i._view.def.nodes[0],i.hostView=n,i.changeDetectorRef=n,i.instance=r,i}return Object(Tr.__extends)(t,e),Object.defineProperty(t.prototype,"location",{get:function(){return new Bo(Oe(this._view,this._elDef.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return new Kl(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentType",{get:function(){return this._component.constructor},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){this._viewRef.destroy()},t.prototype.onDestroy=function(e){this._viewRef.onDestroy(e)},t}(lo),ql=function(){function e(e,t,n){this._view=e,this._elDef=t,this._data=n,this._embeddedViews=[]}return Object.defineProperty(e.prototype,"element",{get:function(){return new Bo(this._data.renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return new Kl(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parentInjector",{get:function(){for(var e=this._view,t=this._elDef.parent;!t&&e;)t=We(e),e=e.parent;return e?new Kl(e,t):new Kl(this._view,null)},enumerable:!0,configurable:!0}),e.prototype.clear=function(){for(var e=this._embeddedViews.length-1;e>=0;e--){var t=vt(this._data,e);kl.destroyView(t)}},e.prototype.get=function(e){var t=this._embeddedViews[e];if(t){var n=new Ul(t);return n.attachToViewContainerRef(this),n}return null},Object.defineProperty(e.prototype,"length",{get:function(){return this._embeddedViews.length},enumerable:!0,configurable:!0}),e.prototype.createEmbeddedView=function(e,t,n){var r=e.createEmbeddedView(t||{});return this.insert(r,n),r},e.prototype.createComponent=function(e,t,n,r,i){var o=n||this.parentInjector;i||e instanceof fo||(i=o.get(ho));var l=e.create(o,r,void 0,i);return this.insert(l.hostView,t),l},e.prototype.insert=function(e,t){if(e.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");var n=e;return function(e,t,n,r){var i=t.viewContainer._embeddedViews;null!==n&&void 0!==n||(n=i.length),r.viewContainerParent=e,wt(i,n,r),function(e,t){var n=He(t);if(n&&n!==e&&!(16&t.state)){t.state|=16;var r=n.template._projectedViews;r||(r=n.template._projectedViews=[]),r.push(t),function(e,n){if(!(4&n.flags)){t.parent.def.nodeFlags|=4,n.flags|=4;for(var r=n.parent;r;)r.childFlags|=4,r=r.parent}}(0,t.parentNodeDef)}}(t,r),kl.dirtyParentQueries(r),bt(t,n>0?i[n-1]:null,r)}(this._view,this._data,t,n._view),n.attachToViewContainerRef(this),e},e.prototype.move=function(e,t){if(e.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");var n=this._embeddedViews.indexOf(e._view);return function(e,t,r){var i=e.viewContainer._embeddedViews,o=i[n];xt(i,n),null==r&&(r=i.length),wt(i,r,o),kl.dirtyParentQueries(o),_t(o),bt(e,r>0?i[r-1]:null,o)}(this._data,0,t),e},e.prototype.indexOf=function(e){return this._embeddedViews.indexOf(e._view)},e.prototype.remove=function(e){var t=vt(this._data,e);t&&kl.destroyView(t)},e.prototype.detach=function(e){var t=vt(this._data,e);return t?new Ul(t):null},e}(),Ul=function(){function e(e){this._view=e,this._viewContainerRef=null,this._appRef=null}return Object.defineProperty(e.prototype,"rootNodes",{get:function(){return function(e){var t=[];return Je(e,0,void 0,void 0,t),t}(this._view)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"destroyed",{get:function(){return 0!=(128&this._view.state)},enumerable:!0,configurable:!0}),e.prototype.markForCheck=function(){Ve(this._view)},e.prototype.detach=function(){this._view.state&=-5},e.prototype.detectChanges=function(){var e=this._view.root.rendererFactory;e.begin&&e.begin();try{kl.checkAndUpdateView(this._view)}finally{e.end&&e.end()}},e.prototype.checkNoChanges=function(){kl.checkNoChangesView(this._view)},e.prototype.reattach=function(){this._view.state|=4},e.prototype.onDestroy=function(e){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(e)},e.prototype.destroy=function(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),kl.destroyView(this._view)},e.prototype.detachFromAppRef=function(){this._appRef=null,_t(this._view),kl.dirtyParentQueries(this._view)},e.prototype.attachToAppRef=function(e){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=e},e.prototype.attachToViewContainerRef=function(e){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=e},e}(),Gl=function(e){function t(t,n){var r=e.call(this)||this;return r._parentView=t,r._def=n,r}return Object(Tr.__extends)(t,e),t.prototype.createEmbeddedView=function(e){return new Ul(kl.createEmbeddedView(this._parentView,this._def,this._def.element.template,e))},Object.defineProperty(t.prototype,"elementRef",{get:function(){return new Bo(Oe(this._parentView,this._def.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),t}($o),Kl=function(){function e(e,t){this.view=e,this.elDef=t}return e.prototype.get=function(e,t){return void 0===t&&(t=yi.THROW_IF_NOT_FOUND),kl.resolveDep(this.view,this.elDef,!!this.elDef&&0!=(33554432&this.elDef.flags),{flags:0,token:e,tokenKey:Pe(e)},t)},e}(),$l=function(){function e(e){this.delegate=e}return e.prototype.selectRootElement=function(e){return this.delegate.selectRootElement(e)},e.prototype.createElement=function(e,t){var n=it(t),r=this.delegate.createElement(n[1],n[0]);return e&&this.delegate.appendChild(e,r),r},e.prototype.createViewRoot=function(e){return e},e.prototype.createTemplateAnchor=function(e){var t=this.delegate.createComment("");return e&&this.delegate.appendChild(e,t),t},e.prototype.createText=function(e,t){var n=this.delegate.createText(t);return e&&this.delegate.appendChild(e,n),n},e.prototype.projectNodes=function(e,t){for(var n=0;n<t.length;n++)this.delegate.appendChild(e,t[n])},e.prototype.attachViewAfter=function(e,t){for(var n=this.delegate.parentNode(e),r=this.delegate.nextSibling(e),i=0;i<t.length;i++)this.delegate.insertBefore(n,t[i],r)},e.prototype.detachView=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=this.delegate.parentNode(n);this.delegate.removeChild(r,n)}},e.prototype.destroyView=function(e,t){for(var n=0;n<t.length;n++)this.delegate.destroyNode(t[n])},e.prototype.listen=function(e,t,n){return this.delegate.listen(e,t,n)},e.prototype.listenGlobal=function(e,t,n){return this.delegate.listen(e,t,n)},e.prototype.setElementProperty=function(e,t,n){this.delegate.setProperty(e,t,n)},e.prototype.setElementAttribute=function(e,t,n){var r=it(t),i=r[0],o=r[1];null!=n?this.delegate.setAttribute(e,o,n,i):this.delegate.removeAttribute(e,o,i)},e.prototype.setBindingDebugInfo=function(e,t,n){},e.prototype.setElementClass=function(e,t,n){n?this.delegate.addClass(e,t):this.delegate.removeClass(e,t)},e.prototype.setElementStyle=function(e,t,n){null!=n?this.delegate.setStyle(e,t,n):this.delegate.removeStyle(e,t)},e.prototype.invokeElementMethod=function(e,t,n){e[t].apply(e,n)},e.prototype.setText=function(e,t){this.delegate.setValue(e,t)},e.prototype.animate=function(){throw new Error("Renderer.animate is no longer supported!")},e}(),Zl=function(){function e(e,t,n,r){this._moduleType=e,this._parent=t,this._bootstrapComponents=n,this._def=r,this._destroyListeners=[],this._destroyed=!1,function(e){for(var t=e._def,n=e._providers=new Array(t.providers.length),r=0;r<t.providers.length;r++){var i=t.providers[r];4096&i.flags||(n[r]=yt(e,i))}}(this)}return e.prototype.get=function(e,t){return void 0===t&&(t=yi.THROW_IF_NOT_FOUND),gt(this,{token:e,tokenKey:Pe(e),flags:0},t)},Object.defineProperty(e.prototype,"instance",{get:function(){return this.get(this._moduleType)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentFactoryResolver",{get:function(){return this.get(co)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return this},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){if(this._destroyed)throw new Error("The ng module "+d(this.instance.constructor)+" has already been destroyed.");this._destroyed=!0,function(e,t){for(var n=e._def,r=0;r<n.providers.length;r++)if(131072&n.providers[r].flags){var i=e._providers[r];i&&i!==jl&&i.ngOnDestroy()}}(this),this._destroyListeners.forEach(function(e){return e()})},e.prototype.onDestroy=function(e){this._destroyListeners.push(e)},e}(),Ql=Pe(Lo),Yl=Pe(zo),Xl=Pe(Bo),Jl=Pe(Zo),ea=Pe($o),ta=Pe(Qo),na=Pe(yi),ra={},ia=function(){var e={CreateViewNodes:0,CheckNoChanges:1,CheckNoChangesProjectedViews:2,CheckAndUpdate:3,CheckAndUpdateProjectedViews:4,Destroy:5};return e[e.CreateViewNodes]="CreateViewNodes",e[e.CheckNoChanges]="CheckNoChanges",e[e.CheckNoChangesProjectedViews]="CheckNoChangesProjectedViews",e[e.CheckAndUpdate]="CheckAndUpdate",e[e.CheckAndUpdateProjectedViews]="CheckAndUpdateProjectedViews",e[e.Destroy]="Destroy",e}(),oa=!1,la=new Map,aa=new Map,sa=function(){var e={create:0,detectChanges:1,checkNoChanges:2,destroy:3,handleEvent:4};return e[e.create]="create",e[e.detectChanges]="detectChanges",e[e.checkNoChanges]="checkNoChanges",e[e.destroy]="destroy",e[e.handleEvent]="handleEvent",e}(),ua=/([A-Z])/g,ca=function(){function e(e,t){this.view=e,this.nodeIndex=t,null==t&&(this.nodeIndex=t=0),this.nodeDef=e.def.nodes[t];for(var n=this.nodeDef,r=e;n&&0==(1&n.flags);)n=n.parent;if(!n)for(;!n&&r;)n=We(r),r=r.parent;this.elDef=n,this.elView=r}return Object.defineProperty(e.prototype,"elOrCompView",{get:function(){return Oe(this.elView,this.elDef.nodeIndex).componentView||this.view},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return kt(this.elView,this.elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"component",{get:function(){return this.elOrCompView.component},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"context",{get:function(){return this.elOrCompView.context},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"providerTokens",{get:function(){var e=[];if(this.elDef)for(var t=this.elDef.nodeIndex+1;t<=this.elDef.nodeIndex+this.elDef.childCount;t++){var n=this.elView.def.nodes[t];20224&n.flags&&e.push(n.provider.token),t+=n.childCount}return e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"references",{get:function(){var e={};if(this.elDef){Xn(this.elView,this.elDef,e);for(var t=this.elDef.nodeIndex+1;t<=this.elDef.nodeIndex+this.elDef.childCount;t++){var n=this.elView.def.nodes[t];20224&n.flags&&Xn(this.elView,n,e),t+=n.childCount}}return e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentRenderElement",{get:function(){var e=function(e){for(;e&&!Ge(e);)e=e.parent;return e.parent?Oe(e.parent,We(e).nodeIndex):null}(this.elOrCompView);return e?e.renderElement:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderNode",{get:function(){return 2&this.nodeDef.flags?qe(this.view,this.nodeDef):qe(this.elView,this.elDef)},enumerable:!0,configurable:!0}),e.prototype.logError=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r,i;2&this.nodeDef.flags?(r=this.view.def,i=this.nodeDef.nodeIndex):(r=this.elView.def,i=this.elDef.nodeIndex);var o=function(e,t){for(var n=-1,r=0;r<=t;r++)3&e.nodes[r].flags&&n++;return n}(r,i),l=-1;r.factory(function(){return++l===o?(n=e.error).bind.apply(n,[e].concat(t)):Dl;var n}),l<o&&(e.error("Illegal state: the ViewDefinitionFactory did not call the logger!"),e.error.apply(e,t))},e}(),da=function(){function e(e){this.delegate=e}return e.prototype.createRenderer=function(e,t){return new pa(this.delegate.createRenderer(e,t))},e.prototype.begin=function(){this.delegate.begin&&this.delegate.begin()},e.prototype.end=function(){this.delegate.end&&this.delegate.end()},e.prototype.whenRenderingDone=function(){return this.delegate.whenRenderingDone?this.delegate.whenRenderingDone():Promise.resolve(null)},e}(),pa=function(){function e(e){this.delegate=e}return Object.defineProperty(e.prototype,"data",{get:function(){return this.delegate.data},enumerable:!0,configurable:!0}),e.prototype.destroyNode=function(e){!function(e){tl.delete(e.nativeNode)}(he(e)),this.delegate.destroyNode&&this.delegate.destroyNode(e)},e.prototype.destroy=function(){this.delegate.destroy()},e.prototype.createElement=function(e,t){var n=this.delegate.createElement(e,t),r=er();if(r){var i=new el(n,null,r);i.name=e,me(i)}return n},e.prototype.createComment=function(e){var t=this.delegate.createComment(e),n=er();return n&&me(new Jo(t,null,n)),t},e.prototype.createText=function(e){var t=this.delegate.createText(e),n=er();return n&&me(new Jo(t,null,n)),t},e.prototype.appendChild=function(e,t){var n=he(e),r=he(t);n&&r&&n instanceof el&&n.addChild(r),this.delegate.appendChild(e,t)},e.prototype.insertBefore=function(e,t,n){var r=he(e),i=he(t),o=he(n);r&&i&&r instanceof el&&r.insertBefore(o,i),this.delegate.insertBefore(e,t,n)},e.prototype.removeChild=function(e,t){var n=he(e),r=he(t);n&&r&&n instanceof el&&n.removeChild(r),this.delegate.removeChild(e,t)},e.prototype.selectRootElement=function(e){var t=this.delegate.selectRootElement(e),n=er();return n&&me(new el(t,null,n)),t},e.prototype.setAttribute=function(e,t,n,r){var i=he(e);i&&i instanceof el&&(i.attributes[r?r+":"+t:t]=n),this.delegate.setAttribute(e,t,n,r)},e.prototype.removeAttribute=function(e,t,n){var r=he(e);r&&r instanceof el&&(r.attributes[n?n+":"+t:t]=null),this.delegate.removeAttribute(e,t,n)},e.prototype.addClass=function(e,t){var n=he(e);n&&n instanceof el&&(n.classes[t]=!0),this.delegate.addClass(e,t)},e.prototype.removeClass=function(e,t){var n=he(e);n&&n instanceof el&&(n.classes[t]=!1),this.delegate.removeClass(e,t)},e.prototype.setStyle=function(e,t,n,r){var i=he(e);i&&i instanceof el&&(i.styles[t]=n),this.delegate.setStyle(e,t,n,r)},e.prototype.removeStyle=function(e,t,n){var r=he(e);r&&r instanceof el&&(r.styles[t]=null),this.delegate.removeStyle(e,t,n)},e.prototype.setProperty=function(e,t,n){var r=he(e);r&&r instanceof el&&(r.properties[t]=n),this.delegate.setProperty(e,t,n)},e.prototype.listen=function(e,t,n){if("string"!=typeof e){var r=he(e);r&&r.listeners.push(new function(e,t){this.name=e,this.callback=t}(t,n))}return this.delegate.listen(e,t,n)},e.prototype.parentNode=function(e){return this.delegate.parentNode(e)},e.prototype.nextSibling=function(e){return this.delegate.nextSibling(e)},e.prototype.setValue=function(e,t){return this.delegate.setValue(e,t)},e}(),fa=function(e){function t(t,n,r){var i=e.call(this)||this;return i.moduleType=t,i._bootstrapComponents=n,i._ngModuleDefFactory=r,i}return Object(Tr.__extends)(t,e),t.prototype.create=function(e){kn();var t=Xe(this._ngModuleDefFactory);return kl.createNgModuleRef(this.moduleType,e||yi.NULL,this._bootstrapComponents,t)},t}(mo),ha="*"}.call(t,n("fRUx"))},LaOa:function(e,t,n){"use strict";t.a=function(e,t){return function(n){return n.lift(new o(e,t))}};var r=n("6Xbx"),i=n("E9/g"),o=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new l(e,this.predicate,this.thisArg))},e}(),l=function(e){function t(t,n,r){e.call(this,t),this.predicate=n,this.thisArg=r,this.count=0}return Object(r.__extends)(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(i.a)},Lcie:function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},MwgA:function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},NGRF:function(e,t,n){"use strict";t.a=function(e){return null!=e&&"object"==typeof e}},NePw:function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r={e:{}}},Oryw:function(e,t,n){"use strict";n.d(t,"a",function(){return s});var r=n("6Xbx"),i=n("AP4T"),o=n("8Ut3"),l=n("Ecq+"),a=n("3iOE"),s=function(e){function t(t,n){e.call(this),this.array=t,this.scheduler=n,n||1!==t.length||(this._isScalar=!0,this.value=t[0])}return Object(r.__extends)(t,e),t.create=function(e,n){return new t(e,n)},t.of=function(){for(var e=[],n=0;n<arguments.length;n++)e[n-0]=arguments[n];var r=e[e.length-1];Object(a.a)(r)?e.pop():r=null;var i=e.length;return i>1?new t(e,r):1===i?new o.a(e[0],r):new l.a(r)},t.dispatch=function(e){var t=e.array,n=e.index,r=e.subscriber;n>=e.count?r.complete():(r.next(t[n]),r.closed||(e.index=n+1,this.schedule(e)))},t.prototype._subscribe=function(e){var n=this.array,r=n.length,i=this.scheduler;if(i)return i.schedule(t.dispatch,0,{array:n,index:0,count:r,subscriber:e});for(var o=0;o<r&&!e.closed;o++)e.next(n[o]);e.complete()},t}(i.a)},P0cP:function(e,t,n){"use strict";var r=n("6Xbx").__decorate;Object.defineProperty(t,"__esModule",{value:!0});var i=n("LMZF"),o=function(){function e(){}return e.prototype.equals=function(e,t,n){return n?this.resolveFieldData(e,n)===this.resolveFieldData(t,n):this.equalsByValue(e,t)},e.prototype.equalsByValue=function(e,t){if(null==e&&null==t)return!0;if(null==e||null==t)return!1;if(e==t)return delete e._$visited,!0;if("object"==typeof e&&"object"==typeof t){e._$visited=!0;for(var n in e)if("_$visited"!==n){if(e.hasOwnProperty(n)!==t.hasOwnProperty(n))return!1;switch(typeof e[n]){case"object":if(e[n]&&e[n]._$visited||!this.equals(e[n],t[n]))return!1;break;case"function":if(void 0===t[n]||"compare"!=n&&e[n].toString()!=t[n].toString())return!1;break;default:if(e[n]!=t[n])return!1}}for(var n in t)if(void 0===e[n])return!1;return delete e._$visited,!0}return!1},e.prototype.resolveFieldData=function(e,t){if(e&&t){if(-1==t.indexOf("."))return e[t];for(var n=t.split("."),r=e,i=0,o=n.length;i<o;++i){if(null==r)return null;r=r[n[i]]}return r}return null},e.prototype.filter=function(e,t,n){var r=[];if(e)for(var i=0,o=e;i<o.length;i++)for(var l=o[i],a=0,s=t;a<s.length;a++){var u=s[a];if(String(this.resolveFieldData(l,u)).toLowerCase().indexOf(n.toLowerCase())>-1){r.push(l);break}}return r},e.prototype.reorderArray=function(e,t,n){var r;if(e&&t!==n){if(n>=e.length)for(r=n-e.length;1+r--;)e.push(void 0);e.splice(n,0,e.splice(t,1)[0])}},e.prototype.generateSelectItems=function(e,t){var n;if(e&&e.length){n=[];for(var r=0,i=e;r<i.length;r++){var o=i[r];n.push({label:this.resolveFieldData(o,t),value:o})}}return n},e}();o=r([i.Injectable()],o),t.ObjectUtils=o},P6IN:function(e,t,n){var r=n("tose").f,i=n("rMsi"),o=n("3r0D")("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},PAZ8:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("AP4T"),i=function(){function e(e,t,n){this.kind=e,this.value=t,this.error=n,this.hasValue="N"===e}return e.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},e.prototype.do=function(e,t,n){switch(this.kind){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return n&&n()}},e.prototype.accept=function(e,t,n){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,n)},e.prototype.toObservable=function(){switch(this.kind){case"N":return r.a.of(this.value);case"E":return r.a.throw(this.error);case"C":return r.a.empty()}throw new Error("unexpected notification kind value")},e.createNext=function(t){return void 0!==t?new e("N",t):e.undefinedValueNotification},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e.undefinedValueNotification=new e("N",void 0),e}()},"PR+T":function(e,t,n){"use strict";t.a=function(){}},Ps07:function(e,t,n){"use strict";var r=n("3LDD"),i=n("Y5fy");e.exports=n("cpZ/")("Set",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(i(this,"Set"),e=0===e?0:e,e)}},r)},QZhw:function(e,t,n){"use strict";var r,i=n("BCYq")(0),o=n("lfBE"),l=n("xI8H"),a=n("rIdM"),s=n("XRS9"),u=n("JXkd"),c=n("umMR"),d=n("Y5fy"),p=l.getWeak,f=Object.isExtensible,h=s.ufstore,m={},g=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(e){if(u(e)){var t=p(e);return!0===t?h(d(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return s.def(d(this,"WeakMap"),e,t)}},v=e.exports=n("cpZ/")("WeakMap",g,y,s,!0,!0);c(function(){return 7!=(new v).set((Object.freeze||Object)(m),7).get(m)})&&(a((r=s.getConstructor(g,"WeakMap")).prototype,y),l.NEED=!0,i(["delete","has","get","set"],function(e){var t=v.prototype,n=t[e];o(t,e,function(t,i){if(u(t)&&!f(t)){this._f||(this._f=new r);var o=this._f[e](t,i);return"set"==e?this:o}return n.call(this,t,i)})}))},QhpF:function(e,t,n){"use strict";var r=n("6Xbx").__decorate,i=n("6Xbx").__metadata,o=n("6Xbx").__param;Object.defineProperty(t,"__esModule",{value:!0});var l=n("LMZF"),a=n("LMZF"),s=n("Un6q"),u=n("/zAi"),c=n("/zAi"),d=(n("H0Ur"),function(){function e(e){this.viewContainer=e}return e.prototype.ngOnInit=function(){this.view=this.viewContainer.createEmbeddedView(this.template,{$implicit:this.node})},e.prototype.ngOnDestroy=function(){this.view.destroy()},e}());r([l.Input(),i("design:type",Object)],d.prototype,"node",void 0),r([l.Input(),i("design:type",l.TemplateRef)],d.prototype,"template",void 0),d=r([l.Component({selector:"p-treeNodeTemplateLoader",template:""})],d),t.TreeNodeTemplateLoader=d;var p=m=function(){function e(e){this.tree=e}return e.prototype.ngOnInit=function(){this.node.parent=this.parentNode},e.prototype.getIcon=function(){var e;return e=this.node.icon?this.node.icon:this.node.expanded&&this.node.children&&this.node.children.length?this.node.expandedIcon:this.node.collapsedIcon,m.ICON_CLASS+" "+e},e.prototype.isLeaf=function(){return 0!=this.node.leaf&&!(this.node.children&&this.node.children.length)},e.prototype.toggle=function(e){this.node.expanded?this.tree.onNodeCollapse.emit({originalEvent:e,node:this.node}):this.tree.onNodeExpand.emit({originalEvent:e,node:this.node}),this.node.expanded=!this.node.expanded},e.prototype.onNodeClick=function(e){this.tree.onNodeClick(e,this.node)},e.prototype.onNodeTouchEnd=function(){this.tree.onNodeTouchEnd()},e.prototype.onNodeRightClick=function(e){this.tree.onNodeRightClick(e,this.node)},e.prototype.isSelected=function(){return this.tree.isSelected(this.node)},e.prototype.onDropPoint=function(e,t){e.preventDefault();var n=this.tree.dragNode,r=this.tree.dragNodeIndex,i=this.tree.dragNodeTree!==this.tree||1===t||r!==this.index-1;if(this.tree.allowDrop(n,this.node,this.tree.dragNodeScope)&&i){var o=this.node.parent?this.node.parent.children:this.tree.value;this.tree.dragNodeSubNodes.splice(r,1);var l=this.index;t<0?o.splice(l=this.tree.dragNodeSubNodes===o?this.tree.dragNodeIndex>this.index?this.index:this.index-1:this.index,0,n):(l=o.length,o.push(n)),this.tree.dragDropService.stopDrag({node:n,subNodes:this.node.parent?this.node.parent.children:this.tree.value,index:r}),this.tree.onNodeDrop.emit({originalEvent:e,dragNode:n,dropNode:this.node,dropIndex:l})}this.draghoverPrev=!1,this.draghoverNext=!1},e.prototype.onDropPointDragOver=function(e){e.dataTransfer.dropEffect="move",e.preventDefault()},e.prototype.onDropPointDragEnter=function(e,t){this.tree.allowDrop(this.tree.dragNode,this.node,this.tree.dragNodeScope)&&(t<0?this.draghoverPrev=!0:this.draghoverNext=!0)},e.prototype.onDropPointDragLeave=function(e){this.draghoverPrev=!1,this.draghoverNext=!1},e.prototype.onDragStart=function(e){this.tree.draggableNodes&&!1!==this.node.draggable?(e.dataTransfer.setData("text","data"),this.tree.dragDropService.startDrag({tree:this,node:this.node,subNodes:this.node.parent?this.node.parent.children:this.tree.value,index:this.index,scope:this.tree.draggableScope})):e.preventDefault()},e.prototype.onDragStop=function(e){this.tree.dragDropService.stopDrag({node:this.node,subNodes:this.node.parent?this.node.parent.children:this.tree.value,index:this.index})},e.prototype.onDropNodeDragOver=function(e){e.dataTransfer.dropEffect="move",this.tree.droppableNodes&&(e.preventDefault(),e.stopPropagation())},e.prototype.onDropNode=function(e){if(this.tree.droppableNodes&&!1!==this.node.droppable){e.preventDefault(),e.stopPropagation();var t=this.tree.dragNode;this.tree.allowDrop(t,this.node,this.tree.dragNodeScope)&&(this.tree.dragNodeSubNodes.splice(this.tree.dragNodeIndex,1),this.node.children?this.node.children.push(t):this.node.children=[t],this.tree.dragDropService.stopDrag({node:t,subNodes:this.node.parent?this.node.parent.children:this.tree.value,index:this.tree.dragNodeIndex}),this.tree.onNodeDrop.emit({originalEvent:e,dragNode:t,dropNode:this.node,index:this.index}))}this.draghoverNode=!1},e.prototype.onDropNodeDragEnter=function(e){this.tree.droppableNodes&&!1!==this.node.droppable&&this.tree.allowDrop(this.tree.dragNode,this.node,this.tree.dragNodeScope)&&(this.draghoverNode=!0)},e.prototype.onDropNodeDragLeave=function(e){if(this.tree.droppableNodes){var t=e.currentTarget.getBoundingClientRect();(e.x>t.left+t.width||e.x<t.left||e.y>=Math.floor(t.top+t.height)||e.y<t.top)&&(this.draghoverNode=!1)}},e}();p.ICON_CLASS="ui-treenode-icon fa fa-fw",r([l.Input(),i("design:type",Object)],p.prototype,"node",void 0),r([l.Input(),i("design:type",Object)],p.prototype,"parentNode",void 0),r([l.Input(),i("design:type",Boolean)],p.prototype,"root",void 0),r([l.Input(),i("design:type",Number)],p.prototype,"index",void 0),r([l.Input(),i("design:type",Boolean)],p.prototype,"firstChild",void 0),r([l.Input(),i("design:type",Boolean)],p.prototype,"lastChild",void 0),p=m=r([l.Component({selector:"p-treeNode",template:'\n <ng-template [ngIf]="node">\n <li *ngIf="tree.droppableNodes" class="ui-treenode-droppoint" [ngClass]="{\'ui-treenode-droppoint-active ui-state-highlight\':draghoverPrev}"\n (drop)="onDropPoint($event,-1)" (dragover)="onDropPointDragOver($event)" (dragenter)="onDropPointDragEnter($event,-1)" (dragleave)="onDropPointDragLeave($event)"></li>\n <li *ngIf="!tree.horizontal" [ngClass]="[\'ui-treenode\',node.styleClass||\'\', isLeaf() ? \'ui-treenode-leaf\': \'\']">\n <div class="ui-treenode-content" (click)="onNodeClick($event)" (contextmenu)="onNodeRightClick($event)" (touchend)="onNodeTouchEnd()"\n (drop)="onDropNode($event)" (dragover)="onDropNodeDragOver($event)" (dragenter)="onDropNodeDragEnter($event)" (dragleave)="onDropNodeDragLeave($event)"\n [ngClass]="{\'ui-treenode-selectable\':tree.selectionMode && node.selectable !== false,\'ui-treenode-dragover\':draghoverNode, \'ui-treenode-content-selected\':isSelected()}" [draggable]="tree.draggableNodes" (dragstart)="onDragStart($event)" (dragend)="onDragStop($event)">\n <span class="ui-tree-toggler fa fa-fw" [ngClass]="{\'fa-caret-right\':!node.expanded,\'fa-caret-down\':node.expanded}"\n (click)="toggle($event)"></span\n ><div class="ui-chkbox" *ngIf="tree.selectionMode == \'checkbox\'"><div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default">\n <span class="ui-chkbox-icon ui-clickable fa" \n [ngClass]="{\'fa-check\':isSelected(),\'fa-minus\':node.partialSelected}"></span></div></div\n ><span [class]="getIcon()" *ngIf="node.icon||node.expandedIcon||node.collapsedIcon"></span\n ><span class="ui-treenode-label ui-corner-all" \n [ngClass]="{\'ui-state-highlight\':isSelected()}">\n <span *ngIf="!tree.getTemplateForNode(node)">{{node.label}}</span>\n <span *ngIf="tree.getTemplateForNode(node)">\n <p-treeNodeTemplateLoader [node]="node" [template]="tree.getTemplateForNode(node)"></p-treeNodeTemplateLoader>\n </span>\n </span>\n </div>\n <ul class="ui-treenode-children" style="display: none;" *ngIf="node.children && node.expanded" [style.display]="node.expanded ? \'block\' : \'none\'">\n <p-treeNode *ngFor="let childNode of node.children;let firstChild=first;let lastChild=last; let index=index" [node]="childNode" [parentNode]="node"\n [firstChild]="firstChild" [lastChild]="lastChild" [index]="index"></p-treeNode>\n </ul>\n </li>\n <li *ngIf="tree.droppableNodes&&lastChild" class="ui-treenode-droppoint" [ngClass]="{\'ui-treenode-droppoint-active ui-state-highlight\':draghoverNext}"\n (drop)="onDropPoint($event,1)" (dragover)="onDropPointDragOver($event)" (dragenter)="onDropPointDragEnter($event,1)" (dragleave)="onDropPointDragLeave($event)"></li>\n <table *ngIf="tree.horizontal" [class]="node.styleClass">\n <tbody>\n <tr>\n <td class="ui-treenode-connector" *ngIf="!root">\n <table class="ui-treenode-connector-table">\n <tbody>\n <tr>\n <td [ngClass]="{\'ui-treenode-connector-line\':!firstChild}"></td>\n </tr>\n <tr>\n <td [ngClass]="{\'ui-treenode-connector-line\':!lastChild}"></td>\n </tr>\n </tbody>\n </table>\n </td>\n <td class="ui-treenode" [ngClass]="{\'ui-treenode-collapsed\':!node.expanded}">\n <div class="ui-treenode-content ui-state-default ui-corner-all" \n [ngClass]="{\'ui-treenode-selectable\':tree.selectionMode,\'ui-state-highlight\':isSelected()}" (click)="onNodeClick($event)" (contextmenu)="onNodeRightClick($event)"\n (touchend)="onNodeTouchEnd()">\n <span class="ui-tree-toggler fa fa-fw" [ngClass]="{\'fa-plus\':!node.expanded,\'fa-minus\':node.expanded}" *ngIf="!isLeaf()"\n (click)="toggle($event)"></span\n ><span [class]="getIcon()" *ngIf="node.icon||node.expandedIcon||node.collapsedIcon"></span\n ><span class="ui-treenode-label ui-corner-all">\n <span *ngIf="!tree.getTemplateForNode(node)">{{node.label}}</span>\n <span *ngIf="tree.getTemplateForNode(node)">\n <p-treeNodeTemplateLoader [node]="node" [template]="tree.getTemplateForNode(node)"></p-treeNodeTemplateLoader>\n </span>\n </span>\n </div>\n </td>\n <td class="ui-treenode-children-container" *ngIf="node.children && node.expanded" [style.display]="node.expanded ? \'table-cell\' : \'none\'">\n <div class="ui-treenode-children">\n <p-treeNode *ngFor="let childNode of node.children;let firstChild=first;let lastChild=last;" [node]="childNode" \n [firstChild]="firstChild" [lastChild]="lastChild"></p-treeNode>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </ng-template>\n '}),o(0,l.Inject(l.forwardRef(function(){return f})))],p),t.UITreeNode=p;var f=function(){function e(e){this.dragDropService=e,this.selectionChange=new l.EventEmitter,this.onNodeSelect=new l.EventEmitter,this.onNodeUnselect=new l.EventEmitter,this.onNodeExpand=new l.EventEmitter,this.onNodeCollapse=new l.EventEmitter,this.onNodeContextMenuSelect=new l.EventEmitter,this.onNodeDrop=new l.EventEmitter,this.layout="vertical",this.metaKeySelection=!0,this.propagateSelectionUp=!0,this.propagateSelectionDown=!0,this.loadingIcon="fa-circle-o-notch"}return e.prototype.ngOnInit=function(){var e=this;this.droppableNodes&&(this.dragStartSubscription=this.dragDropService.dragStart$.subscribe(function(t){e.dragNodeTree=t.tree,e.dragNode=t.node,e.dragNodeSubNodes=t.subNodes,e.dragNodeIndex=t.index,e.dragNodeScope=t.scope}),this.dragStopSubscription=this.dragDropService.dragStop$.subscribe(function(t){e.dragNodeTree=null,e.dragNode=null,e.dragNodeSubNodes=null,e.dragNodeIndex=null,e.dragNodeScope=null,e.dragHover=!1}))},Object.defineProperty(e.prototype,"horizontal",{get:function(){return"horizontal"==this.layout},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){var e=this;this.templates.length&&(this.templateMap={}),this.templates.forEach(function(t){e.templateMap[t.name]=t.template})},e.prototype.onNodeClick=function(e,t){var n=e.target;if(!n.className||0!==n.className.indexOf("ui-tree-toggler")){if(this.selectionMode){if(!1===t.selectable)return;var r=this.findIndexInSelection(t),i=r>=0;if(this.isCheckboxSelectionMode())i?(this.propagateSelectionDown?this.propagateDown(t,!1):this.selection=this.selection.filter(function(e,t){return t!=r}),this.propagateSelectionUp&&t.parent&&this.propagateUp(t.parent,!1),this.selectionChange.emit(this.selection),this.onNodeUnselect.emit({originalEvent:e,node:t})):(this.propagateSelectionDown?this.propagateDown(t,!0):this.selection=(this.selection||[]).concat([t]),this.propagateSelectionUp&&t.parent&&this.propagateUp(t.parent,!0),this.selectionChange.emit(this.selection),this.onNodeSelect.emit({originalEvent:e,node:t}));else if(!this.nodeTouched&&this.metaKeySelection){var o=e.metaKey||e.ctrlKey;i&&o?(this.isSingleSelectionMode()?this.selectionChange.emit(null):(this.selection=this.selection.filter(function(e,t){return t!=r}),this.selectionChange.emit(this.selection)),this.onNodeUnselect.emit({originalEvent:e,node:t})):(this.isSingleSelectionMode()?this.selectionChange.emit(t):this.isMultipleSelectionMode()&&(this.selection=o?this.selection||[]:[],this.selection=this.selection.concat([t]),this.selectionChange.emit(this.selection)),this.onNodeSelect.emit({originalEvent:e,node:t}))}else this.isSingleSelectionMode()?i?(this.selection=null,this.onNodeUnselect.emit({originalEvent:e,node:t})):(this.selection=t,this.onNodeSelect.emit({originalEvent:e,node:t})):i?(this.selection=this.selection.filter(function(e,t){return t!=r}),this.onNodeUnselect.emit({originalEvent:e,node:t})):(this.selection=(this.selection||[]).concat([t]),this.onNodeSelect.emit({originalEvent:e,node:t})),this.selectionChange.emit(this.selection)}this.nodeTouched=!1}},e.prototype.onNodeTouchEnd=function(){this.nodeTouched=!0},e.prototype.onNodeRightClick=function(e,t){if(this.contextMenu){var n=e.target;if(n.className&&0===n.className.indexOf("ui-tree-toggler"))return;this.findIndexInSelection(t)>=0||(this.isSingleSelectionMode()?this.selectionChange.emit(t):this.selectionChange.emit([t])),this.contextMenu.show(e),this.onNodeContextMenuSelect.emit({originalEvent:e,node:t})}},e.prototype.findIndexInSelection=function(e){var t=-1;if(this.selectionMode&&this.selection)if(this.isSingleSelectionMode())t=this.selection==e?0:-1;else for(var n=0;n<this.selection.length;n++)if(this.selection[n]==e){t=n;break}return t},e.prototype.propagateUp=function(e,t){if(e.children&&e.children.length){for(var n=0,r=!1,i=0,o=e.children;i<o.length;i++){var l=o[i];this.isSelected(l)?n++:l.partialSelected&&(r=!0)}if(t&&n==e.children.length)this.selection=(this.selection||[]).concat([e]),e.partialSelected=!1;else{if(!t){var a=this.findIndexInSelection(e);a>=0&&(this.selection=this.selection.filter(function(e,t){return t!=a}))}e.partialSelected=!!(r||n>0&&n!=e.children.length)}}var s=e.parent;s&&this.propagateUp(s,t)},e.prototype.propagateDown=function(e,t){var n=this.findIndexInSelection(e);if(t&&-1==n?this.selection=(this.selection||[]).concat([e]):!t&&n>-1&&(this.selection=this.selection.filter(function(e,t){return t!=n})),e.partialSelected=!1,e.children&&e.children.length)for(var r=0,i=e.children;r<i.length;r++)this.propagateDown(i[r],t)},e.prototype.isSelected=function(e){return-1!=this.findIndexInSelection(e)},e.prototype.isSingleSelectionMode=function(){return this.selectionMode&&"single"==this.selectionMode},e.prototype.isMultipleSelectionMode=function(){return this.selectionMode&&"multiple"==this.selectionMode},e.prototype.isCheckboxSelectionMode=function(){return this.selectionMode&&"checkbox"==this.selectionMode},e.prototype.getTemplateForNode=function(e){return this.templateMap?e.type?this.templateMap[e.type]:this.templateMap.default:null},e.prototype.onDragOver=function(e){!this.droppableNodes||this.value&&0!==this.value.length||(e.dataTransfer.dropEffect="move",e.preventDefault())},e.prototype.onDrop=function(e){if(this.droppableNodes&&(!this.value||0===this.value.length)){e.preventDefault();var t=this.dragNode;this.allowDrop(t,null,this.dragNodeScope)&&(this.dragNodeSubNodes.splice(this.dragNodeIndex,1),this.value=this.value||[],this.value.push(t),this.dragDropService.stopDrag({node:t}))}},e.prototype.onDragEnter=function(e){this.droppableNodes&&this.allowDrop(this.dragNode,null,this.dragNodeScope)&&(this.dragHover=!0)},e.prototype.onDragLeave=function(e){if(this.droppableNodes){var t=e.currentTarget.getBoundingClientRect();(e.x>t.left+t.width||e.x<t.left||e.y>t.top+t.height||e.y<t.top)&&(this.dragHover=!1)}},e.prototype.allowDrop=function(e,t,n){if(this.isValidDragScope(n)){var r=!0;if(t)if(e===t)r=!1;else for(var i=t.parent;null!=i;){if(i===e){r=!1;break}i=i.parent}return r}return!1},e.prototype.isValidDragScope=function(e){var t=this.droppableScope;if(t){if("string"==typeof t){if("string"==typeof e)return t===e;if(e instanceof Array)return-1!=e.indexOf(t)}else if(t instanceof Array){if("string"==typeof e)return-1!=t.indexOf(e);if(e instanceof Array)for(var n=0,r=t;n<r.length;n++)for(var i=r[n],o=0,l=e;o<l.length;o++)if(i===l[o])return!0}return!1}return!0},e.prototype.ngOnDestroy=function(){this.dragStartSubscription&&this.dragStartSubscription.unsubscribe(),this.dragStopSubscription&&this.dragStopSubscription.unsubscribe()},e}();r([l.Input(),i("design:type",Array)],f.prototype,"value",void 0),r([l.Input(),i("design:type",String)],f.prototype,"selectionMode",void 0),r([l.Input(),i("design:type",Object)],f.prototype,"selection",void 0),r([l.Output(),i("design:type",l.EventEmitter)],f.prototype,"selectionChange",void 0),r([l.Output(),i("design:type",l.EventEmitter)],f.prototype,"onNodeSelect",void 0),r([l.Output(),i("design:type",l.EventEmitter)],f.prototype,"onNodeUnselect",void 0),r([l.Output(),i("design:type",l.EventEmitter)],f.prototype,"onNodeExpand",void 0),r([l.Output(),i("design:type",l.EventEmitter)],f.prototype,"onNodeCollapse",void 0),r([l.Output(),i("design:type",l.EventEmitter)],f.prototype,"onNodeContextMenuSelect",void 0),r([l.Output(),i("design:type",l.EventEmitter)],f.prototype,"onNodeDrop",void 0),r([l.Input(),i("design:type",Object)],f.prototype,"style",void 0),r([l.Input(),i("design:type",String)],f.prototype,"styleClass",void 0),r([l.Input(),i("design:type",Object)],f.prototype,"contextMenu",void 0),r([l.Input(),i("design:type",String)],f.prototype,"layout",void 0),r([l.Input(),i("design:type",Object)],f.prototype,"draggableScope",void 0),r([l.Input(),i("design:type",Object)],f.prototype,"droppableScope",void 0),r([l.Input(),i("design:type",Boolean)],f.prototype,"draggableNodes",void 0),r([l.Input(),i("design:type",Boolean)],f.prototype,"droppableNodes",void 0),r([l.Input(),i("design:type",Boolean)],f.prototype,"metaKeySelection",void 0),r([l.Input(),i("design:type",Boolean)],f.prototype,"propagateSelectionUp",void 0),r([l.Input(),i("design:type",Boolean)],f.prototype,"propagateSelectionDown",void 0),r([l.Input(),i("design:type",Boolean)],f.prototype,"loading",void 0),r([l.Input(),i("design:type",String)],f.prototype,"loadingIcon",void 0),r([l.ContentChildren(c.PrimeTemplate),i("design:type",l.QueryList)],f.prototype,"templates",void 0),f=r([l.Component({selector:"p-tree",template:'\n <div [ngClass]="{\'ui-tree ui-widget ui-widget-content ui-corner-all\':true,\'ui-tree-selectable\':selectionMode,\'ui-treenode-dragover\':dragHover,\'ui-tree-loading\': loading}" [ngStyle]="style" [class]="styleClass" *ngIf="!horizontal"\n (drop)="onDrop($event)" (dragover)="onDragOver($event)" (dragenter)="onDragEnter($event)" (dragleave)="onDragLeave($event)">\n <div class="ui-tree-loading-mask ui-widget-overlay" *ngIf="loading"></div>\n <div class="ui-tree-loading-content" *ngIf="loading">\n <i [class]="\'fa fa-spin fa-2x \' + loadingIcon"></i>\n </div>\n <ul class="ui-tree-container">\n <p-treeNode *ngFor="let node of value;let firstChild=first;let lastChild=last; let index=index" [node]="node" \n [firstChild]="firstChild" [lastChild]="lastChild" [index]="index"></p-treeNode>\n </ul>\n </div>\n <div [ngClass]="{\'ui-tree ui-tree-horizontal ui-widget ui-widget-content ui-corner-all\':true,\'ui-tree-selectable\':selectionMode}" [ngStyle]="style" [class]="styleClass" *ngIf="horizontal">\n <div class="ui-tree-loading ui-widget-overlay" *ngIf="loading"></div>\n <div class="ui-tree-loading-content" *ngIf="loading">\n <i [class]="\'fa fa-spin fa-2x \' + loadingIcon"></i>\n </div>\n <table *ngIf="value&&value[0]">\n <p-treeNode [node]="value[0]" [root]="true"></p-treeNode>\n </table>\n </div>\n '}),o(0,a.Optional())],f),t.Tree=f;var h=function(){};h=r([l.NgModule({imports:[s.CommonModule],exports:[f,u.SharedModule],declarations:[f,p,d]})],h),t.TreeModule=h;var m},R5c1:function(e,t,n){var r=n("rMsi"),i=n("+GRi"),o=n("vyV2")(!1),l=n("yIWP")("IE_PROTO");e.exports=function(e,t){var n,a=i(e),s=0,u=[];for(n in a)n!=l&&r(a,n)&&u.push(n);for(;t.length>s;)r(a,n=t[s++])&&(~o(u,n)||u.push(n));return u}},RT4T:function(e,t,n){var r=n("Wy9r");e.exports=function(e){return Object(r(e))}},Rs3a:function(e,t,n){"use strict";var r=n("6Xbx").__decorate,i=n("6Xbx").__metadata;Object.defineProperty(t,"__esModule",{value:!0});var o=n("LMZF"),l=n("Un6q"),a=n("0nO6"),s=n("wRXj"),u=function(){function e(){this.pageLinkSize=5,this.onPageChange=new o.EventEmitter,this.alwaysShow=!0,this._totalRecords=0,this._first=0,this._rows=0}return Object.defineProperty(e.prototype,"totalRecords",{get:function(){return this._totalRecords},set:function(e){this._totalRecords=e,this.updatePageLinks()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"first",{get:function(){return this._first},set:function(e){this._first=e,this.updatePageLinks()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rows",{get:function(){return this._rows},set:function(e){this._rows=e,this.updatePageLinks()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rowsPerPageOptions",{get:function(){return this._rowsPerPageOptions},set:function(e){if(this._rowsPerPageOptions=e,this._rowsPerPageOptions){this.rowsPerPageItems=[];for(var t=0,n=this._rowsPerPageOptions;t<n.length;t++){var r=n[t];this.rowsPerPageItems.push({label:String(r),value:r})}}},enumerable:!0,configurable:!0}),e.prototype.isFirstPage=function(){return 0===this.getPage()},e.prototype.isLastPage=function(){return this.getPage()===this.getPageCount()-1},e.prototype.getPageCount=function(){return Math.ceil(this.totalRecords/this.rows)||1},e.prototype.calculatePageLinkBoundaries=function(){var e=this.getPageCount(),t=Math.min(this.pageLinkSize,e),n=Math.max(0,Math.ceil(this.getPage()-t/2)),r=Math.min(e-1,n+t-1),i=this.pageLinkSize-(r-n+1);return n=Math.max(0,n-i),[n,r]},e.prototype.updatePageLinks=function(){this.pageLinks=[];for(var e=this.calculatePageLinkBoundaries(),t=e[1],n=e[0];n<=t;n++)this.pageLinks.push(n+1)},e.prototype.changePage=function(e){var t=this.getPageCount();if(e>=0&&e<t){this.first=this.rows*e;var n={page:e,first:this.first,rows:this.rows,pageCount:t};this.updatePageLinks(),this.onPageChange.emit(n)}},e.prototype.getPage=function(){return Math.floor(this.first/this.rows)},e.prototype.changePageToFirst=function(e){this.isFirstPage()||this.changePage(0),e.preventDefault()},e.prototype.changePageToPrev=function(e){this.changePage(this.getPage()-1),e.preventDefault()},e.prototype.changePageToNext=function(e){this.changePage(this.getPage()+1),e.preventDefault()},e.prototype.changePageToLast=function(e){this.isLastPage()||this.changePage(this.getPageCount()-1),e.preventDefault()},e.prototype.onPageLinkClick=function(e,t){this.changePage(t),e.preventDefault()},e.prototype.onRppChange=function(e){this.changePage(this.getPage())},e}();r([o.Input(),i("design:type",Number)],u.prototype,"pageLinkSize",void 0),r([o.Output(),i("design:type",o.EventEmitter)],u.prototype,"onPageChange",void 0),r([o.Input(),i("design:type",Object)],u.prototype,"style",void 0),r([o.Input(),i("design:type",String)],u.prototype,"styleClass",void 0),r([o.Input(),i("design:type",Boolean)],u.prototype,"alwaysShow",void 0),r([o.Input(),i("design:type",Number),i("design:paramtypes",[Number])],u.prototype,"totalRecords",null),r([o.Input(),i("design:type",Number),i("design:paramtypes",[Number])],u.prototype,"first",null),r([o.Input(),i("design:type",Number),i("design:paramtypes",[Number])],u.prototype,"rows",null),r([o.Input(),i("design:type",Array),i("design:paramtypes",[Array])],u.prototype,"rowsPerPageOptions",null),u=r([o.Component({selector:"p-paginator",template:'\n <div [class]="styleClass" [ngStyle]="style" [ngClass]="\'ui-paginator ui-widget ui-widget-header ui-unselectable-text\'"\n *ngIf="alwaysShow ? true : (pageLinks && pageLinks.length > 1)">\n <a href="#" class="ui-paginator-first ui-paginator-element ui-state-default ui-corner-all"\n (click)="changePageToFirst($event)" [ngClass]="{\'ui-state-disabled\':isFirstPage()}" [tabindex]="isFirstPage() ? -1 : null">\n <span class="fa fa-step-backward"></span>\n </a>\n <a href="#" class="ui-paginator-prev ui-paginator-element ui-state-default ui-corner-all"\n (click)="changePageToPrev($event)" [ngClass]="{\'ui-state-disabled\':isFirstPage()}" [tabindex]="isFirstPage() ? -1 : null">\n <span class="fa fa-backward"></span>\n </a>\n <span class="ui-paginator-pages">\n <a href="#" *ngFor="let pageLink of pageLinks" class="ui-paginator-page ui-paginator-element ui-state-default ui-corner-all"\n (click)="onPageLinkClick($event, pageLink - 1)" [ngClass]="{\'ui-state-active\': (pageLink-1 == getPage())}">{{pageLink}}</a>\n </span>\n <a href="#" class="ui-paginator-next ui-paginator-element ui-state-default ui-corner-all"\n (click)="changePageToNext($event)" [ngClass]="{\'ui-state-disabled\':isLastPage()}" [tabindex]="isLastPage() ? -1 : null">\n <span class="fa fa-forward"></span>\n </a>\n <a href="#" class="ui-paginator-last ui-paginator-element ui-state-default ui-corner-all"\n (click)="changePageToLast($event)" [ngClass]="{\'ui-state-disabled\':isLastPage()}" [tabindex]="isLastPage() ? -1 : null">\n <span class="fa fa-step-forward"></span>\n </a>\n <p-dropdown [options]="rowsPerPageItems" [(ngModel)]="rows" *ngIf="rowsPerPageOptions" \n (onChange)="onRppChange($event)" [lazy]="false" [autoWidth]="false"></p-dropdown>\n </div>\n '})],u),t.Paginator=u;var c=function(){};c=r([o.NgModule({imports:[l.CommonModule,s.DropdownModule,a.FormsModule],exports:[u,s.DropdownModule,a.FormsModule],declarations:[u]})],c),t.PaginatorModule=c},RyBE:function(e,t,n){"use strict";function r(){return x}function i(){return!!window.history.pushState}function o(e,t){"undefined"!=typeof COMPILED&&COMPILED||((_["\u0275global"].ng=_["\u0275global"].ng||{})[e]=t)}function l(e){return Object(_.getDebugNode)(e)}function a(e){return o(j,l),o(V,Object(w.__assign)({},F,(e||[]).reduce(function(e,t){return e[t.name]=t.token,e},{}))),function(){return l}}function s(e,t,n){for(var r=0;r<t.length;r++){var i=t[r];Array.isArray(i)?s(e,i,n):(i=i.replace(G,e),n.push(i))}return n}function u(e){return function(t){!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}function c(e,t){if(e.charCodeAt(0)===Y)throw new Error("Found the synthetic "+t+" "+e+'. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.')}function d(e){return(e=String(e)).match(ye)||e.match(ve)?e:(Object(_.isDevMode)()&&r().log("WARNING: sanitizing unsafe URL value "+e+" (see http://g.co/ng/security#xss)"),"unsafe:"+e)}function p(e){for(var t={},n=0,r=e.split(",");n<r.length;n++)t[r[n]]=!0;return t}function f(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n={},r=0,i=e;r<i.length;r++){var o=i[r];for(var l in o)o.hasOwnProperty(l)&&(n[l]=!0)}return n}function h(e,t){if(t&&_e.contains(e,t))throw new Error("Failed to sanitize html because the element is clobbered: "+_e.getOuterHTML(e));return t}function m(e){return e.replace(/&/g,"&").replace(Ie,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(Re,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"<").replace(/>/g,">")}function g(e){_e.attributeMap(e).forEach(function(t,n){"xmlns:ns1"!==n&&0!==n.indexOf("ns1:")||_e.removeAttribute(e,n)});for(var t=0,n=_e.childNodesAsList(e);t<n.length;t++){var r=n[t];_e.isElementNode(r)&&g(r)}}function y(){return new _.ErrorHandler}n.d(t,"a",function(){return qe}),n.d(t,"j",function(){return We}),n.d(t,"h",function(){return M}),n.d(t,"i",function(){return L}),n.d(t,"b",function(){return I}),n.d(t,"d",function(){return z}),n.d(t,"e",function(){return B}),n.d(t,"f",function(){return de}),n.d(t,"g",function(){return pe}),n.d(t,"c",function(){return Ne}),n.d(t,"s",function(){return r}),n.d(t,"l",function(){return Z}),n.d(t,"k",function(){return ue}),n.d(t,"n",function(){return fe}),n.d(t,"o",function(){return ge}),n.d(t,"m",function(){return q}),n.d(t,"p",function(){return W}),n.d(t,"q",function(){return y}),n.d(t,"t",function(){return a}),n.d(t,"r",function(){return Ae});var v,b=n("Un6q"),_=n("LMZF"),w=n("6Xbx"),x=null,C={class:"className",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},E={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},S={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"};_["\u0275global"].Node&&(v=_["\u0275global"].Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))});var O,T,k=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(w.__extends)(t,e),t.prototype.parse=function(e){throw new Error("parse not implemented")},t.makeCurrent=function(){!function(e){x||(x=e)}(new t)},t.prototype.hasProperty=function(e,t){return t in e},t.prototype.setProperty=function(e,t,n){e[t]=n},t.prototype.getProperty=function(e,t){return e[t]},t.prototype.invoke=function(e,t,n){(r=e)[t].apply(r,n);var r},t.prototype.logError=function(e){window.console&&(console.error?console.error(e):console.log(e))},t.prototype.log=function(e){window.console&&window.console.log&&window.console.log(e)},t.prototype.logGroup=function(e){window.console&&window.console.group&&window.console.group(e)},t.prototype.logGroupEnd=function(){window.console&&window.console.groupEnd&&window.console.groupEnd()},Object.defineProperty(t.prototype,"attrToPropMap",{get:function(){return C},enumerable:!0,configurable:!0}),t.prototype.contains=function(e,t){return v.call(e,t)},t.prototype.querySelector=function(e,t){return e.querySelector(t)},t.prototype.querySelectorAll=function(e,t){return e.querySelectorAll(t)},t.prototype.on=function(e,t,n){e.addEventListener(t,n,!1)},t.prototype.onAndCancel=function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}},t.prototype.dispatchEvent=function(e,t){e.dispatchEvent(t)},t.prototype.createMouseEvent=function(e){var t=this.getDefaultDocument().createEvent("MouseEvent");return t.initEvent(e,!0,!0),t},t.prototype.createEvent=function(e){var t=this.getDefaultDocument().createEvent("Event");return t.initEvent(e,!0,!0),t},t.prototype.preventDefault=function(e){e.preventDefault(),e.returnValue=!1},t.prototype.isPrevented=function(e){return e.defaultPrevented||null!=e.returnValue&&!e.returnValue},t.prototype.getInnerHTML=function(e){return e.innerHTML},t.prototype.getTemplateContent=function(e){return"content"in e&&this.isTemplateElement(e)?e.content:null},t.prototype.getOuterHTML=function(e){return e.outerHTML},t.prototype.nodeName=function(e){return e.nodeName},t.prototype.nodeValue=function(e){return e.nodeValue},t.prototype.type=function(e){return e.type},t.prototype.content=function(e){return this.hasProperty(e,"content")?e.content:e},t.prototype.firstChild=function(e){return e.firstChild},t.prototype.nextSibling=function(e){return e.nextSibling},t.prototype.parentElement=function(e){return e.parentNode},t.prototype.childNodes=function(e){return e.childNodes},t.prototype.childNodesAsList=function(e){for(var t=e.childNodes,n=new Array(t.length),r=0;r<t.length;r++)n[r]=t[r];return n},t.prototype.clearNodes=function(e){for(;e.firstChild;)e.removeChild(e.firstChild)},t.prototype.appendChild=function(e,t){e.appendChild(t)},t.prototype.removeChild=function(e,t){e.removeChild(t)},t.prototype.replaceChild=function(e,t,n){e.replaceChild(t,n)},t.prototype.remove=function(e){return e.parentNode&&e.parentNode.removeChild(e),e},t.prototype.insertBefore=function(e,t,n){e.insertBefore(n,t)},t.prototype.insertAllBefore=function(e,t,n){n.forEach(function(n){return e.insertBefore(n,t)})},t.prototype.insertAfter=function(e,t,n){e.insertBefore(n,t.nextSibling)},t.prototype.setInnerHTML=function(e,t){e.innerHTML=t},t.prototype.getText=function(e){return e.textContent},t.prototype.setText=function(e,t){e.textContent=t},t.prototype.getValue=function(e){return e.value},t.prototype.setValue=function(e,t){e.value=t},t.prototype.getChecked=function(e){return e.checked},t.prototype.setChecked=function(e,t){e.checked=t},t.prototype.createComment=function(e){return this.getDefaultDocument().createComment(e)},t.prototype.createTemplate=function(e){var t=this.getDefaultDocument().createElement("template");return t.innerHTML=e,t},t.prototype.createElement=function(e,t){return(t=t||this.getDefaultDocument()).createElement(e)},t.prototype.createElementNS=function(e,t,n){return(n=n||this.getDefaultDocument()).createElementNS(e,t)},t.prototype.createTextNode=function(e,t){return(t=t||this.getDefaultDocument()).createTextNode(e)},t.prototype.createScriptTag=function(e,t,n){var r=(n=n||this.getDefaultDocument()).createElement("SCRIPT");return r.setAttribute(e,t),r},t.prototype.createStyleElement=function(e,t){var n=(t=t||this.getDefaultDocument()).createElement("style");return this.appendChild(n,this.createTextNode(e,t)),n},t.prototype.createShadowRoot=function(e){return e.createShadowRoot()},t.prototype.getShadowRoot=function(e){return e.shadowRoot},t.prototype.getHost=function(e){return e.host},t.prototype.clone=function(e){return e.cloneNode(!0)},t.prototype.getElementsByClassName=function(e,t){return e.getElementsByClassName(t)},t.prototype.getElementsByTagName=function(e,t){return e.getElementsByTagName(t)},t.prototype.classList=function(e){return Array.prototype.slice.call(e.classList,0)},t.prototype.addClass=function(e,t){e.classList.add(t)},t.prototype.removeClass=function(e,t){e.classList.remove(t)},t.prototype.hasClass=function(e,t){return e.classList.contains(t)},t.prototype.setStyle=function(e,t,n){e.style[t]=n},t.prototype.removeStyle=function(e,t){e.style[t]=""},t.prototype.getStyle=function(e,t){return e.style[t]},t.prototype.hasStyle=function(e,t,n){var r=this.getStyle(e,t)||"";return n?r==n:r.length>0},t.prototype.tagName=function(e){return e.tagName},t.prototype.attributeMap=function(e){for(var t=new Map,n=e.attributes,r=0;r<n.length;r++){var i=n.item(r);t.set(i.name,i.value)}return t},t.prototype.hasAttribute=function(e,t){return e.hasAttribute(t)},t.prototype.hasAttributeNS=function(e,t,n){return e.hasAttributeNS(t,n)},t.prototype.getAttribute=function(e,t){return e.getAttribute(t)},t.prototype.getAttributeNS=function(e,t,n){return e.getAttributeNS(t,n)},t.prototype.setAttribute=function(e,t,n){e.setAttribute(t,n)},t.prototype.setAttributeNS=function(e,t,n,r){e.setAttributeNS(t,n,r)},t.prototype.removeAttribute=function(e,t){e.removeAttribute(t)},t.prototype.removeAttributeNS=function(e,t,n){e.removeAttributeNS(t,n)},t.prototype.templateAwareRoot=function(e){return this.isTemplateElement(e)?this.content(e):e},t.prototype.createHtmlDocument=function(){return document.implementation.createHTMLDocument("fakeTitle")},t.prototype.getDefaultDocument=function(){return document},t.prototype.getBoundingClientRect=function(e){try{return e.getBoundingClientRect()}catch(e){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}},t.prototype.getTitle=function(e){return e.title},t.prototype.setTitle=function(e,t){e.title=t||""},t.prototype.elementMatches=function(e,t){return!!this.isElementNode(e)&&(e.matches&&e.matches(t)||e.msMatchesSelector&&e.msMatchesSelector(t)||e.webkitMatchesSelector&&e.webkitMatchesSelector(t))},t.prototype.isTemplateElement=function(e){return this.isElementNode(e)&&"TEMPLATE"===e.nodeName},t.prototype.isTextNode=function(e){return e.nodeType===Node.TEXT_NODE},t.prototype.isCommentNode=function(e){return e.nodeType===Node.COMMENT_NODE},t.prototype.isElementNode=function(e){return e.nodeType===Node.ELEMENT_NODE},t.prototype.hasShadowRoot=function(e){return null!=e.shadowRoot&&e instanceof HTMLElement},t.prototype.isShadowRoot=function(e){return e instanceof DocumentFragment},t.prototype.importIntoDoc=function(e){return document.importNode(this.templateAwareRoot(e),!0)},t.prototype.adoptNode=function(e){return document.adoptNode(e)},t.prototype.getHref=function(e){return e.getAttribute("href")},t.prototype.getEventKey=function(e){var t=e.key;if(null==t){if(null==(t=e.keyIdentifier))return"Unidentified";t.startsWith("U+")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),3===e.location&&S.hasOwnProperty(t)&&(t=S[t]))}return E[t]||t},t.prototype.getGlobalEventTarget=function(e,t){return"window"===t?window:"document"===t?e:"body"===t?e.body:null},t.prototype.getHistory=function(){return window.history},t.prototype.getLocation=function(){return window.location},t.prototype.getBaseHref=function(e){var t=D||(D=document.querySelector("base"))?D.getAttribute("href"):null;return null==t?null:function(e){return O||(O=document.createElement("a")),O.setAttribute("href",e),"/"===O.pathname.charAt(0)?O.pathname:"/"+O.pathname}(t)},t.prototype.resetBaseElement=function(){D=null},t.prototype.getUserAgent=function(){return window.navigator.userAgent},t.prototype.setData=function(e,t,n){this.setAttribute(e,"data-"+t,n)},t.prototype.getData=function(e,t){return this.getAttribute(e,"data-"+t)},t.prototype.getComputedStyle=function(e){return getComputedStyle(e)},t.prototype.supportsWebAnimation=function(){return"function"==typeof Element.prototype.animate},t.prototype.performanceNow=function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()},t.prototype.supportsCookies=function(){return!0},t.prototype.getCookie=function(e){return Object(b["\u0275parseCookieValue"])(document.cookie,e)},t.prototype.setCookie=function(e,t){document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(t)},t}(function(e){function t(){var t=e.call(this)||this;t._animationPrefix=null,t._transitionEnd=null;try{var n=t.createElement("div",document);if(null!=t.getStyle(n,"animationName"))t._animationPrefix="";else for(var r=["Webkit","Moz","O","ms"],i=0;i<r.length;i++)if(null!=t.getStyle(n,r[i]+"AnimationName")){t._animationPrefix="-"+r[i].toLowerCase()+"-";break}var o={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};Object.keys(o).forEach(function(e){null!=t.getStyle(n,e)&&(t._transitionEnd=o[e])})}catch(e){t._animationPrefix=null,t._transitionEnd=null}return t}return Object(w.__extends)(t,e),t.prototype.getDistributedNodes=function(e){return e.getDistributedNodes()},t.prototype.resolveAndSetHref=function(e,t,n){e.href=null==n?t:t+"/../"+n},t.prototype.supportsDOMEvents=function(){return!0},t.prototype.supportsNativeShadowDOM=function(){return"function"==typeof document.body.createShadowRoot},t.prototype.getAnimationPrefix=function(){return this._animationPrefix?this._animationPrefix:""},t.prototype.getTransitionEnd=function(){return this._transitionEnd?this._transitionEnd:""},t.prototype.supportsAnimation=function(){return null!=this._animationPrefix&&null!=this._transitionEnd},t}(function(){function e(){this.resourceLoaderType=null}return Object.defineProperty(e.prototype,"attrToPropMap",{get:function(){return this._attrToPropMap},set:function(e){this._attrToPropMap=e},enumerable:!0,configurable:!0}),e}())),D=null,I=b.DOCUMENT,R=function(e){function t(t){var n=e.call(this)||this;return n._doc=t,n._init(),n}return Object(w.__extends)(t,e),t.prototype._init=function(){this.location=r().getLocation(),this._history=r().getHistory()},t.prototype.getBaseHrefFromDOM=function(){return r().getBaseHref(this._doc)},t.prototype.onPopState=function(e){r().getGlobalEventTarget(this._doc,"window").addEventListener("popstate",e,!1)},t.prototype.onHashChange=function(e){r().getGlobalEventTarget(this._doc,"window").addEventListener("hashchange",e,!1)},Object.defineProperty(t.prototype,"pathname",{get:function(){return this.location.pathname},set:function(e){this.location.pathname=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"search",{get:function(){return this.location.search},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hash",{get:function(){return this.location.hash},enumerable:!0,configurable:!0}),t.prototype.pushState=function(e,t,n){i()?this._history.pushState(e,t,n):this.location.hash=n},t.prototype.replaceState=function(e,t,n){i()?this._history.replaceState(e,t,n):this.location.hash=n},t.prototype.forward=function(){this._history.forward()},t.prototype.back=function(){this._history.back()},t.ctorParameters=function(){return[{type:void 0,decorators:[{type:_.Inject,args:[I]}]}]},t}(b.PlatformLocation),M=function(){function e(e){this._doc=e,this._dom=r()}return e.prototype.addTag=function(e,t){return void 0===t&&(t=!1),e?this._getOrCreateElement(e,t):null},e.prototype.addTags=function(e,t){var n=this;return void 0===t&&(t=!1),e?e.reduce(function(e,r){return r&&e.push(n._getOrCreateElement(r,t)),e},[]):[]},e.prototype.getTag=function(e){return e?this._dom.querySelector(this._doc,"meta["+e+"]")||null:null},e.prototype.getTags=function(e){if(!e)return[];var t=this._dom.querySelectorAll(this._doc,"meta["+e+"]");return t?[].slice.call(t):[]},e.prototype.updateTag=function(e,t){if(!e)return null;t=t||this._parseSelector(e);var n=this.getTag(t);return n?this._setMetaElementAttributes(e,n):this._getOrCreateElement(e,!0)},e.prototype.removeTag=function(e){this.removeTagElement(this.getTag(e))},e.prototype.removeTagElement=function(e){e&&this._dom.remove(e)},e.prototype._getOrCreateElement=function(e,t){if(void 0===t&&(t=!1),!t){var n=this._parseSelector(e),r=this.getTag(n);if(r&&this._containsAttributes(e,r))return r}var i=this._dom.createElement("meta");this._setMetaElementAttributes(e,i);var o=this._dom.getElementsByTagName(this._doc,"head")[0];return this._dom.appendChild(o,i),i},e.prototype._setMetaElementAttributes=function(e,t){var n=this;return Object.keys(e).forEach(function(r){return n._dom.setAttribute(t,r,e[r])}),t},e.prototype._parseSelector=function(e){var t=e.name?"name":"property";return t+'="'+e[t]+'"'},e.prototype._containsAttributes=function(e,t){var n=this;return Object.keys(e).every(function(r){return n._dom.getAttribute(t,r)===e[r]})},e}(),P=new _.InjectionToken("TRANSITION_ID"),N=[{provide:_.APP_INITIALIZER,useFactory:function(e,t,n){return function(){n.get(_.ApplicationInitStatus).donePromise.then(function(){var n=r();Array.prototype.slice.apply(n.querySelectorAll(t,"style[ng-transition]")).filter(function(t){return n.getAttribute(t,"ng-transition")===e}).forEach(function(e){return n.remove(e)})})}},deps:[P,I,_.Injector],multi:!0}],A=function(){function e(){}return e.init=function(){Object(_.setTestabilityGetter)(new e)},e.prototype.addToWindow=function(e){_["\u0275global"].getAngularTestability=function(t,n){void 0===n&&(n=!0);var r=e.findTestabilityInTree(t,n);if(null==r)throw new Error("Could not find testability for element.");return r},_["\u0275global"].getAllAngularTestabilities=function(){return e.getAllTestabilities()},_["\u0275global"].getAllAngularRootElements=function(){return e.getAllRootElements()},_["\u0275global"].frameworkStabilizers||(_["\u0275global"].frameworkStabilizers=[]),_["\u0275global"].frameworkStabilizers.push(function(e){var t=_["\u0275global"].getAllAngularTestabilities(),n=t.length,r=!1,i=function(t){r=r||t,0==--n&&e(r)};t.forEach(function(e){e.whenStable(i)})})},e.prototype.findTestabilityInTree=function(e,t,n){if(null==t)return null;var i=e.getTestability(t);return null!=i?i:n?r().isShadowRoot(t)?this.findTestabilityInTree(e,r().getHost(t),!0):this.findTestabilityInTree(e,r().parentElement(t),!0):null},e}(),L=function(){function e(e){this._doc=e}return e.prototype.getTitle=function(){return r().getTitle(this._doc)},e.prototype.setTitle=function(e){r().setTitle(this._doc,e)},e}(),F={ApplicationRef:_.ApplicationRef,NgZone:_.NgZone},j="probe",V="coreTokens",z=new _.InjectionToken("EventManagerPlugins"),B=function(){function e(e,t){var n=this;this._zone=t,this._eventNameToPlugin=new Map,e.forEach(function(e){return e.manager=n}),this._plugins=e.slice().reverse()}return e.prototype.addEventListener=function(e,t,n){return this._findPluginFor(t).addEventListener(e,t,n)},e.prototype.addGlobalEventListener=function(e,t,n){return this._findPluginFor(t).addGlobalEventListener(e,t,n)},e.prototype.getZone=function(){return this._zone},e.prototype._findPluginFor=function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,r=0;r<n.length;r++){var i=n[r];if(i.supports(e))return this._eventNameToPlugin.set(e,i),i}throw new Error("No event manager plugin found for event "+e)},e}(),H=function(){function e(e){this._doc=e}return e.prototype.addGlobalEventListener=function(e,t,n){var i=r().getGlobalEventTarget(this._doc,e);if(!i)throw new Error("Unsupported event target "+i+" for event "+t);return this.addEventListener(i,t,n)},e}(),W=function(){function e(){this._stylesSet=new Set}return e.prototype.addStyles=function(e){var t=this,n=new Set;e.forEach(function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))}),this.onStylesAdded(n)},e.prototype.onStylesAdded=function(e){},e.prototype.getAllStyles=function(){return Array.from(this._stylesSet)},e}(),q=function(e){function t(t){var n=e.call(this)||this;return n._doc=t,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(t.head),n}return Object(w.__extends)(t,e),t.prototype._addStylesToHost=function(e,t){var n=this;e.forEach(function(e){var r=n._doc.createElement("style");r.textContent=e,n._styleNodes.add(t.appendChild(r))})},t.prototype.addHost=function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)},t.prototype.removeHost=function(e){this._hostNodes.delete(e)},t.prototype.onStylesAdded=function(e){var t=this;this._hostNodes.forEach(function(n){return t._addStylesToHost(e,n)})},t.prototype.ngOnDestroy=function(){this._styleNodes.forEach(function(e){return r().remove(e)})},t}(W),U={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},G=/%COMP%/g,K="_nghost-%COMP%",$="_ngcontent-%COMP%",Z=function(){function e(e,t){this.eventManager=e,this.sharedStylesHost=t,this.rendererByCompId=new Map,this.defaultRenderer=new Q(e)}return e.prototype.createRenderer=function(e,t){if(!e||!t)return this.defaultRenderer;switch(t.encapsulation){case _.ViewEncapsulation.Emulated:var n=this.rendererByCompId.get(t.id);return n||(n=new X(this.eventManager,this.sharedStylesHost,t),this.rendererByCompId.set(t.id,n)),n.applyToHost(e),n;case _.ViewEncapsulation.Native:return new J(this.eventManager,this.sharedStylesHost,e,t);default:if(!this.rendererByCompId.has(t.id)){var r=s(t.id,t.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(t.id,this.defaultRenderer)}return this.defaultRenderer}},e.prototype.begin=function(){},e.prototype.end=function(){},e}(),Q=function(){function e(e){this.eventManager=e,this.data=Object.create(null)}return e.prototype.destroy=function(){},e.prototype.createElement=function(e,t){return t?document.createElementNS(U[t],e):document.createElement(e)},e.prototype.createComment=function(e){return document.createComment(e)},e.prototype.createText=function(e){return document.createTextNode(e)},e.prototype.appendChild=function(e,t){e.appendChild(t)},e.prototype.insertBefore=function(e,t,n){e&&e.insertBefore(t,n)},e.prototype.removeChild=function(e,t){e&&e.removeChild(t)},e.prototype.selectRootElement=function(e){var t="string"==typeof e?document.querySelector(e):e;if(!t)throw new Error('The selector "'+e+'" did not match any elements');return t.textContent="",t},e.prototype.parentNode=function(e){return e.parentNode},e.prototype.nextSibling=function(e){return e.nextSibling},e.prototype.setAttribute=function(e,t,n,r){if(r){t=r+":"+t;var i=U[r];i?e.setAttributeNS(i,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)},e.prototype.removeAttribute=function(e,t,n){if(n){var r=U[n];r?e.removeAttributeNS(r,t):e.removeAttribute(n+":"+t)}else e.removeAttribute(t)},e.prototype.addClass=function(e,t){e.classList.add(t)},e.prototype.removeClass=function(e,t){e.classList.remove(t)},e.prototype.setStyle=function(e,t,n,r){r&_.RendererStyleFlags2.DashCase?e.style.setProperty(t,n,r&_.RendererStyleFlags2.Important?"important":""):e.style[t]=n},e.prototype.removeStyle=function(e,t,n){n&_.RendererStyleFlags2.DashCase?e.style.removeProperty(t):e.style[t]=""},e.prototype.setProperty=function(e,t,n){c(t,"property"),e[t]=n},e.prototype.setValue=function(e,t){e.nodeValue=t},e.prototype.listen=function(e,t,n){return c(t,"listener"),"string"==typeof e?this.eventManager.addGlobalEventListener(e,t,u(n)):this.eventManager.addEventListener(e,t,u(n))},e}(),Y="@".charCodeAt(0),X=function(e){function t(t,n,r){var i=e.call(this,t)||this;i.component=r;var o=s(r.id,r.styles,[]);return n.addStyles(o),i.contentAttr=$.replace(G,r.id),i.hostAttr=K.replace(G,r.id),i}return Object(w.__extends)(t,e),t.prototype.applyToHost=function(t){e.prototype.setAttribute.call(this,t,this.hostAttr,"")},t.prototype.createElement=function(t,n){var r=e.prototype.createElement.call(this,t,n);return e.prototype.setAttribute.call(this,r,this.contentAttr,""),r},t}(Q),J=function(e){function t(t,n,r,i){var o=e.call(this,t)||this;o.sharedStylesHost=n,o.hostEl=r,o.component=i,o.shadowRoot=r.createShadowRoot(),o.sharedStylesHost.addHost(o.shadowRoot);for(var l=s(i.id,i.styles,[]),a=0;a<l.length;a++){var u=document.createElement("style");u.textContent=l[a],o.shadowRoot.appendChild(u)}return o}return Object(w.__extends)(t,e),t.prototype.nodeOrShadowRoot=function(e){return e===this.hostEl?this.shadowRoot:e},t.prototype.destroy=function(){this.sharedStylesHost.removeHost(this.shadowRoot)},t.prototype.appendChild=function(t,n){return e.prototype.appendChild.call(this,this.nodeOrShadowRoot(t),n)},t.prototype.insertBefore=function(t,n,r){return e.prototype.insertBefore.call(this,this.nodeOrShadowRoot(t),n,r)},t.prototype.removeChild=function(t,n){return e.prototype.removeChild.call(this,this.nodeOrShadowRoot(t),n)},t.prototype.parentNode=function(t){return this.nodeOrShadowRoot(e.prototype.parentNode.call(this,this.nodeOrShadowRoot(t)))},t}(Q),ee="undefined"!=typeof Zone&&Zone.__symbol__||function(e){return"__zone_symbol__"+e},te=ee("addEventListener"),ne=ee("removeEventListener"),re={},ie="removeEventListener",oe="__zone_symbol__propagationStopped",le="__zone_symbol__stopImmediatePropagation";"undefined"!=typeof Zone&&Zone[ee("BLACK_LISTED_EVENTS")]&&(T={});var ae=function(e){return!!T&&T.hasOwnProperty(e)},se=function(e){var t=re[e.type];if(t){var n=this[t];if(n){var r=[e];if(1===n.length)return(l=n[0]).zone!==Zone.current?l.zone.run(l.handler,this,r):l.handler.apply(this,r);for(var i=n.slice(),o=0;o<i.length&&!0!==e[oe];o++){var l;(l=i[o]).zone!==Zone.current?l.zone.run(l.handler,this,r):l.handler.apply(this,r)}}}},ue=function(e){function t(t,n){var r=e.call(this,t)||this;return r.ngZone=n,r.patchEvent(),r}return Object(w.__extends)(t,e),t.prototype.patchEvent=function(){if(Event&&Event.prototype&&!Event.prototype[le]){var e=Event.prototype[le]=Event.prototype.stopImmediatePropagation;Event.prototype.stopImmediatePropagation=function(){this&&(this[oe]=!0),e&&e.apply(this,arguments)}}},t.prototype.supports=function(e){return!0},t.prototype.addEventListener=function(e,t,n){var r=this,i=n;if(!e[te]||_.NgZone.isInAngularZone()&&!ae(t))e.addEventListener(t,i,!1);else{var o=re[t];o||(o=re[t]=ee("ANGULAR"+t+"FALSE"));var l=e[o],a=l&&l.length>0;l||(l=e[o]=[]);var s=ae(t)?Zone.root:Zone.current;if(0===l.length)l.push({zone:s,handler:i});else{for(var u=!1,c=0;c<l.length;c++)if(l[c].handler===i){u=!0;break}u||l.push({zone:s,handler:i})}a||e[te](t,se,!1)}return function(){return r.removeEventListener(e,t,i)}},t.prototype.removeEventListener=function(e,t,n){var r=e[ne];if(!r)return e[ie].apply(e,[t,n,!1]);var i=re[t],o=i&&e[i];if(!o)return e[ie].apply(e,[t,n,!1]);for(var l=!1,a=0;a<o.length;a++)if(o[a].handler===n){l=!0,o.splice(a,1);break}l?0===o.length&&r.apply(e,[t,se,!1]):e[ie].apply(e,[t,n,!1])},t}(H),ce={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0},de=new _.InjectionToken("HammerGestureConfig"),pe=function(){function e(){this.events=[],this.overrides={}}return e.prototype.buildHammer=function(e){var t=new Hammer(e);t.get("pinch").set({enable:!0}),t.get("rotate").set({enable:!0});for(var n in this.overrides)t.get(n).set(this.overrides[n]);return t},e}(),fe=function(e){function t(t,n){var r=e.call(this,t)||this;return r._config=n,r}return Object(w.__extends)(t,e),t.prototype.supports=function(e){if(!ce.hasOwnProperty(e.toLowerCase())&&!this.isCustomEvent(e))return!1;if(!window.Hammer)throw new Error("Hammer.js is not loaded, can not bind "+e+" event");return!0},t.prototype.addEventListener=function(e,t,n){var r=this,i=this.manager.getZone();return t=t.toLowerCase(),i.runOutsideAngular(function(){var o=r._config.buildHammer(e),l=function(e){i.runGuarded(function(){n(e)})};return o.on(t,l),function(){return o.off(t,l)}})},t.prototype.isCustomEvent=function(e){return this._config.events.indexOf(e)>-1},t}(H),he=["alt","control","meta","shift"],me={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},ge=function(e){function t(t){return e.call(this,t)||this}return Object(w.__extends)(t,e),t.prototype.supports=function(e){return null!=t.parseEventName(e)},t.prototype.addEventListener=function(e,n,i){var o=t.parseEventName(n),l=t.eventCallback(o.fullKey,i,this.manager.getZone());return this.manager.getZone().runOutsideAngular(function(){return r().onAndCancel(e,o.domEventName,l)})},t.parseEventName=function(e){var n=e.toLowerCase().split("."),r=n.shift();if(0===n.length||"keydown"!==r&&"keyup"!==r)return null;var i=t._normalizeKey(n.pop()),o="";if(he.forEach(function(e){var t=n.indexOf(e);t>-1&&(n.splice(t,1),o+=e+".")}),o+=i,0!=n.length||0===i.length)return null;var l={};return l.domEventName=r,l.fullKey=o,l},t.getEventFullKey=function(e){var t="",n=r().getEventKey(e);return" "===(n=n.toLowerCase())?n="space":"."===n&&(n="dot"),he.forEach(function(r){r!=n&&(0,me[r])(e)&&(t+=r+".")}),t+=n},t.eventCallback=function(e,n,r){return function(i){t.getEventFullKey(i)===e&&r.runGuarded(function(){return n(i)})}},t._normalizeKey=function(e){switch(e){case"esc":return"escape";default:return e}},t}(H),ye=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,ve=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,be=null,_e=null,we=p("area,br,col,hr,img,wbr"),xe=p("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Ce=p("rp,rt"),Ee=f(Ce,xe),Se=f(we,f(xe,p("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),f(Ce,p("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),Ee),Oe=p("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Te=p("srcset"),ke=f(Oe,Te,p("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width")),De=function(){function e(){this.sanitizedSomething=!1,this.buf=[]}return e.prototype.sanitizeChildren=function(e){for(var t=e.firstChild;t;)if(_e.isElementNode(t)?this.startElement(t):_e.isTextNode(t)?this.chars(_e.nodeValue(t)):this.sanitizedSomething=!0,_e.firstChild(t))t=_e.firstChild(t);else for(;t;){_e.isElementNode(t)&&this.endElement(t);var n=h(t,_e.nextSibling(t));if(n){t=n;break}t=h(t,_e.parentElement(t))}return this.buf.join("")},e.prototype.startElement=function(e){var t=this,n=_e.nodeName(e).toLowerCase();Se.hasOwnProperty(n)?(this.buf.push("<"),this.buf.push(n),_e.attributeMap(e).forEach(function(e,n){var r=n.toLowerCase();ke.hasOwnProperty(r)?(Oe[r]&&(e=d(e)),Te[r]&&(e=function(e){return(e=String(e)).split(",").map(function(e){return d(e.trim())}).join(", ")}(e)),t.buf.push(" "),t.buf.push(n),t.buf.push('="'),t.buf.push(m(e)),t.buf.push('"')):t.sanitizedSomething=!0}),this.buf.push(">")):this.sanitizedSomething=!0},e.prototype.endElement=function(e){var t=_e.nodeName(e).toLowerCase();Se.hasOwnProperty(t)&&!we.hasOwnProperty(t)&&(this.buf.push("</"),this.buf.push(t),this.buf.push(">"))},e.prototype.chars=function(e){this.buf.push(m(e))},e}(),Ie=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Re=/([^\#-~ |!])/g,Me=new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:calc|attr))\\([-0-9.%, #a-zA-Z]+\\))$","g"),Pe=/^url\(([^)]+)\)$/,Ne=function(){},Ae=function(e){function t(t){var n=e.call(this)||this;return n._doc=t,n}return Object(w.__extends)(t,e),t.prototype.sanitize=function(e,t){if(null==t)return null;switch(e){case _.SecurityContext.NONE:return t;case _.SecurityContext.HTML:return t instanceof Fe?t.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(t,"HTML"),function(e,t){try{var n=function(){if(be)return be;var e=(_e=r()).createElement("template");if("content"in e)return e;var t=_e.createHtmlDocument();if(null==(be=_e.querySelector(t,"body"))){var n=_e.createElement("html",t);be=_e.createElement("body",t),_e.appendChild(n,be),_e.appendChild(t,n)}return be}(),i=t?String(t):"",o=5,l=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,_e.setInnerHTML(n,i=l),e.documentMode&&g(n),l=_e.getInnerHTML(n)}while(i!==l);for(var a=new De,s=a.sanitizeChildren(_e.getTemplateContent(n)||n),u=_e.getTemplateContent(n)||n,c=0,d=_e.childNodesAsList(u);c<d.length;c++)_e.removeChild(u,d[c]);return Object(_.isDevMode)()&&a.sanitizedSomething&&_e.log("WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss)."),s}catch(e){throw be=null,e}}(this._doc,String(t)));case _.SecurityContext.STYLE:return t instanceof je?t.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(t,"Style"),function(e){if(!(e=String(e).trim()))return"";var t=e.match(Pe);return t&&d(t[1])===t[1]||e.match(Me)&&function(e){for(var t=!0,n=!0,r=0;r<e.length;r++){var i=e.charAt(r);"'"===i&&n?t=!t:'"'===i&&t&&(n=!n)}return t&&n}(e)?e:(Object(_.isDevMode)()&&r().log("WARNING: sanitizing unsafe style value "+e+" (see http://g.co/ng/security#xss)."),"unsafe")}(t));case _.SecurityContext.SCRIPT:if(t instanceof Ve)return t.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(t,"Script"),new Error("unsafe value used in a script context");case _.SecurityContext.URL:return t instanceof Be||t instanceof ze?t.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(t,"URL"),d(String(t)));case _.SecurityContext.RESOURCE_URL:if(t instanceof Be)return t.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(t,"ResourceURL"),new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext "+e+" (see http://g.co/ng/security#xss)")}},t.prototype.checkNotSafeValue=function(e,t){if(e instanceof Le)throw new Error("Required a safe "+t+", got a "+e.getTypeName()+" (see http://g.co/ng/security#xss)")},t.prototype.bypassSecurityTrustHtml=function(e){return new Fe(e)},t.prototype.bypassSecurityTrustStyle=function(e){return new je(e)},t.prototype.bypassSecurityTrustScript=function(e){return new Ve(e)},t.prototype.bypassSecurityTrustUrl=function(e){return new ze(e)},t.prototype.bypassSecurityTrustResourceUrl=function(e){return new Be(e)},t}(Ne),Le=function(){function e(e){this.changingThisBreaksApplicationSecurity=e}return e.prototype.toString=function(){return"SafeValue must use [property]=binding: "+this.changingThisBreaksApplicationSecurity+" (see http://g.co/ng/security#xss)"},e}(),Fe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(w.__extends)(t,e),t.prototype.getTypeName=function(){return"HTML"},t}(Le),je=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(w.__extends)(t,e),t.prototype.getTypeName=function(){return"Style"},t}(Le),Ve=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(w.__extends)(t,e),t.prototype.getTypeName=function(){return"Script"},t}(Le),ze=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(w.__extends)(t,e),t.prototype.getTypeName=function(){return"URL"},t}(Le),Be=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(w.__extends)(t,e),t.prototype.getTypeName=function(){return"ResourceURL"},t}(Le),He=[{provide:_.PLATFORM_ID,useValue:b["\u0275PLATFORM_BROWSER_ID"]},{provide:_.PLATFORM_INITIALIZER,useValue:function(){k.makeCurrent(),A.init()},multi:!0},{provide:b.PlatformLocation,useClass:R,deps:[I]},{provide:I,useFactory:function(){return document},deps:[]}],We=Object(_.createPlatformFactory)(_.platformCore,"browser",He),qe=function(){function e(e){if(e)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}return e.withServerTransition=function(t){return{ngModule:e,providers:[{provide:_.APP_ID,useValue:t.appId},{provide:P,useExisting:_.APP_ID},N]}},e}();"undefined"!=typeof window&&window},TJLg:function(e,t,n){var r=n("rMsi"),i=n("RT4T"),o=n("yIWP")("IE_PROTO"),l=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},TO51:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n.d(t,"SubjectSubscriber",function(){return c}),n.d(t,"Subject",function(){return d}),n.d(t,"AnonymousSubject",function(){return p});var r=n("6Xbx"),i=n("AP4T"),o=n("E9/g"),l=n("qLnt"),a=n("Upor"),s=n("jaVc"),u=n("V7AE"),c=function(e){function t(t){e.call(this,t),this.destination=t}return Object(r.__extends)(t,e),t}(o.a),d=function(e){function t(){e.call(this),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}return Object(r.__extends)(t,e),t.prototype[u.a]=function(){return new c(this)},t.prototype.lift=function(e){var t=new p(this,this);return t.operator=e,t},t.prototype.next=function(e){if(this.closed)throw new a.a;if(!this.isStopped)for(var t=this.observers,n=t.length,r=t.slice(),i=0;i<n;i++)r[i].next(e)},t.prototype.error=function(e){if(this.closed)throw new a.a;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,r=t.slice(),i=0;i<n;i++)r[i].error(e);this.observers.length=0},t.prototype.complete=function(){if(this.closed)throw new a.a;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),r=0;r<t;r++)n[r].complete();this.observers.length=0},t.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},t.prototype._trySubscribe=function(t){if(this.closed)throw new a.a;return e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){if(this.closed)throw new a.a;return this.hasError?(e.error(this.thrownError),l.a.EMPTY):this.isStopped?(e.complete(),l.a.EMPTY):(this.observers.push(e),new s.a(this,e))},t.prototype.asObservable=function(){var e=new i.a;return e.source=this,e},t.create=function(e,t){return new p(e,t)},t}(i.a),p=function(e){function t(t,n){e.call(this),this.destination=t,this.source=n}return Object(r.__extends)(t,e),t.prototype.next=function(e){var t=this.destination;t&&t.next&&t.next(e)},t.prototype.error=function(e){var t=this.destination;t&&t.error&&this.destination.error(e)},t.prototype.complete=function(){var e=this.destination;e&&e.complete&&this.destination.complete()},t.prototype._subscribe=function(e){return this.source?this.source.subscribe(e):l.a.EMPTY},t}(d)},"TU+8":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("+iEx"),i=(n.n(r),n("eFQL"));n.n(i)},ThPn:function(e,t,n){"use strict";var r=n("6Xbx"),i=n("lI6h"),o=n("qgI0"),l=function(){function e(e,t){this.observables=e,this.project=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.observables,this.project))},e}(),a=function(e){function t(t,n,r){e.call(this,t),this.observables=n,this.project=r,this.toRespond=[];var i=n.length;this.values=new Array(i);for(var l=0;l<i;l++)this.toRespond.push(l);for(l=0;l<i;l++){var a=n[l];this.add(Object(o.a)(this,a,a,l))}}return Object(r.__extends)(t,e),t.prototype.notifyNext=function(e,t,n,r,i){this.values[n]=t;var o=this.toRespond;if(o.length>0){var l=o.indexOf(n);-1!==l&&o.splice(l,1)}},t.prototype.notifyComplete=function(){},t.prototype._next=function(e){if(0===this.toRespond.length){var t=[e].concat(this.values);this.project?this._tryProject(t):this.destination.next(t)}},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.a);t.a=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){var n;return"function"==typeof e[e.length-1]&&(n=e.pop()),t.lift(new l(e,n))}}.apply(void 0,e)(this)}},UKZQ:function(e,t,n){var r=n("a7b8");e.exports=function(e,t){return new(r(e))(t)}},ULWX:function(e,t,n){var r=n("+pQw");e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&r(o.call(e)),t}}},URbD:function(e,t,n){"use strict";t.a=function(){return Object(r.a)()(this)};var r=n("eIqN")},UlVq:function(e,t,n){var r=n("3r0D")("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o=[7],l=o[r]();l.next=function(){return{done:n=!0}},o[r]=function(){return l},e(o)}catch(e){}return n}},Ula3:function(e,t,n){var r=n("JXkd"),i=n("5oDA").set;e.exports=function(e,t,n){var o,l=t.constructor;return l!==n&&"function"==typeof l&&(o=l.prototype)!==n.prototype&&r(o)&&i&&i(e,o),e}},Un6q:function(e,t,n){"use strict";function r(e){return e.replace(/\/index.html$/,"")}function i(e,t,n){"string"!=typeof t&&(n=t,t=e[0]),t=t.toLowerCase().replace(/_/g,"-"),me[t]=e,n&&(me[t][18]=n)}function o(e){return S(e)[0]}function l(e,t,n){var r=S(e);return C(C([r[1],r[2]],t),n)}function a(e,t,n){var r=S(e);return C(C([r[3],r[4]],t),n)}function s(e,t,n){var r=S(e);return C(C([r[5],r[6]],t),n)}function u(e,t){return C(S(e)[7],t)}function c(e){return S(e)[8]}function d(e){return S(e)[9]}function p(e,t){return S(e)[10][t]}function f(e,t){return S(e)[11][t]}function h(e,t){return C(S(e)[12],t)}function m(e,t){var n=S(e),r=n[13][t];if(void 0===r){if(t===we.CurrencyDecimal)return n[13][we.Decimal];if(t===we.CurrencyGroup)return n[13][we.Group]}return r}function g(e,t){return S(e)[14][t]}function y(e){return S(e)[15]||null}function v(e){return S(e)[16]||null}function b(e){return S(e)[17]}function _(e){if(!e[18])throw new Error('Missing extra locale data for the locale "'+e[0]+'". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.')}function w(e){var t=S(e);return _(t),(t[18][2]||[]).map(function(e){return"string"==typeof e?E(e):[E(e[0]),E(e[1])]})}function x(e,t,n){var r=S(e);return _(r),C(C([r[18][0],r[18][1]],t)||[],n)||[]}function C(e,t){for(var n=t;n>-1;n--)if(void 0!==e[n])return e[n];throw new Error("Locale data API: locale data undefined")}function E(e){var t=e.split(":");return{hours:+t[0],minutes:+t[1]}}function S(e){var t=e.toLowerCase().replace(/_/g,"-"),n=me[t];if(n)return n;var r=t.split("-")[0];if(n=me[r])return n;if("en"===r)return he;throw new Error('Missing locale data for the locale "'+e+'".')}function O(e,t,n,r){var i="="+e;if(t.indexOf(i)>-1)return i;if(i=n.getPluralCategory(e,r),t.indexOf(i)>-1)return i;if(t.indexOf("other")>-1)return"other";throw new Error('No plural message found for value "'+e+'"')}function T(e,t){"string"==typeof t&&(t=parseInt(t,10));var n=t,r=n.toString().replace(/^[^.]*\.?/,""),i=Math.floor(Math.abs(n)),o=r.length,l=parseInt(r,10),a=parseInt(n.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0;switch(e.split("-")[0].toLowerCase()){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===n?ye.One:ye.Other;case"ak":case"ln":case"mg":case"pa":case"ti":return n===Math.floor(n)&&n>=0&&n<=1?ye.One:ye.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===i||1===n?ye.One:ye.Other;case"ar":return 0===n?ye.Zero:1===n?ye.One:2===n?ye.Two:n%100===Math.floor(n%100)&&n%100>=3&&n%100<=10?ye.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=99?ye.Many:ye.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===i&&0===o?ye.One:ye.Other;case"be":return n%10==1&&n%100!=11?ye.One:n%10===Math.floor(n%10)&&n%10>=2&&n%10<=4&&!(n%100>=12&&n%100<=14)?ye.Few:n%10==0||n%10===Math.floor(n%10)&&n%10>=5&&n%10<=9||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=14?ye.Many:ye.Other;case"br":return n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?ye.One:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?ye.Two:n%10===Math.floor(n%10)&&(n%10>=3&&n%10<=4||n%10==9)&&!(n%100>=10&&n%100<=19||n%100>=70&&n%100<=79||n%100>=90&&n%100<=99)?ye.Few:0!==n&&n%1e6==0?ye.Many:ye.Other;case"bs":case"hr":case"sr":return 0===o&&i%10==1&&i%100!=11||l%10==1&&l%100!=11?ye.One:0===o&&i%10===Math.floor(i%10)&&i%10>=2&&i%10<=4&&!(i%100>=12&&i%100<=14)||l%10===Math.floor(l%10)&&l%10>=2&&l%10<=4&&!(l%100>=12&&l%100<=14)?ye.Few:ye.Other;case"cs":case"sk":return 1===i&&0===o?ye.One:i===Math.floor(i)&&i>=2&&i<=4&&0===o?ye.Few:0!==o?ye.Many:ye.Other;case"cy":return 0===n?ye.Zero:1===n?ye.One:2===n?ye.Two:3===n?ye.Few:6===n?ye.Many:ye.Other;case"da":return 1===n||0!==a&&(0===i||1===i)?ye.One:ye.Other;case"dsb":case"hsb":return 0===o&&i%100==1||l%100==1?ye.One:0===o&&i%100==2||l%100==2?ye.Two:0===o&&i%100===Math.floor(i%100)&&i%100>=3&&i%100<=4||l%100===Math.floor(l%100)&&l%100>=3&&l%100<=4?ye.Few:ye.Other;case"ff":case"fr":case"hy":case"kab":return 0===i||1===i?ye.One:ye.Other;case"fil":return 0===o&&(1===i||2===i||3===i)||0===o&&i%10!=4&&i%10!=6&&i%10!=9||0!==o&&l%10!=4&&l%10!=6&&l%10!=9?ye.One:ye.Other;case"ga":return 1===n?ye.One:2===n?ye.Two:n===Math.floor(n)&&n>=3&&n<=6?ye.Few:n===Math.floor(n)&&n>=7&&n<=10?ye.Many:ye.Other;case"gd":return 1===n||11===n?ye.One:2===n||12===n?ye.Two:n===Math.floor(n)&&(n>=3&&n<=10||n>=13&&n<=19)?ye.Few:ye.Other;case"gv":return 0===o&&i%10==1?ye.One:0===o&&i%10==2?ye.Two:0!==o||i%100!=0&&i%100!=20&&i%100!=40&&i%100!=60&&i%100!=80?0!==o?ye.Many:ye.Other:ye.Few;case"he":return 1===i&&0===o?ye.One:2===i&&0===o?ye.Two:0!==o||n>=0&&n<=10||n%10!=0?ye.Other:ye.Many;case"is":return 0===a&&i%10==1&&i%100!=11||0!==a?ye.One:ye.Other;case"ksh":return 0===n?ye.Zero:1===n?ye.One:ye.Other;case"kw":case"naq":case"se":case"smn":return 1===n?ye.One:2===n?ye.Two:ye.Other;case"lag":return 0===n?ye.Zero:0!==i&&1!==i||0===n?ye.Other:ye.One;case"lt":return n%10!=1||n%100>=11&&n%100<=19?n%10===Math.floor(n%10)&&n%10>=2&&n%10<=9&&!(n%100>=11&&n%100<=19)?ye.Few:0!==l?ye.Many:ye.Other:ye.One;case"lv":case"prg":return n%10==0||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19||2===o&&l%100===Math.floor(l%100)&&l%100>=11&&l%100<=19?ye.Zero:n%10==1&&n%100!=11||2===o&&l%10==1&&l%100!=11||2!==o&&l%10==1?ye.One:ye.Other;case"mk":return 0===o&&i%10==1||l%10==1?ye.One:ye.Other;case"mt":return 1===n?ye.One:0===n||n%100===Math.floor(n%100)&&n%100>=2&&n%100<=10?ye.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19?ye.Many:ye.Other;case"pl":return 1===i&&0===o?ye.One:0===o&&i%10===Math.floor(i%10)&&i%10>=2&&i%10<=4&&!(i%100>=12&&i%100<=14)?ye.Few:0===o&&1!==i&&i%10===Math.floor(i%10)&&i%10>=0&&i%10<=1||0===o&&i%10===Math.floor(i%10)&&i%10>=5&&i%10<=9||0===o&&i%100===Math.floor(i%100)&&i%100>=12&&i%100<=14?ye.Many:ye.Other;case"pt":return n===Math.floor(n)&&n>=0&&n<=2&&2!==n?ye.One:ye.Other;case"ro":return 1===i&&0===o?ye.One:0!==o||0===n||1!==n&&n%100===Math.floor(n%100)&&n%100>=1&&n%100<=19?ye.Few:ye.Other;case"ru":case"uk":return 0===o&&i%10==1&&i%100!=11?ye.One:0===o&&i%10===Math.floor(i%10)&&i%10>=2&&i%10<=4&&!(i%100>=12&&i%100<=14)?ye.Few:0===o&&i%10==0||0===o&&i%10===Math.floor(i%10)&&i%10>=5&&i%10<=9||0===o&&i%100===Math.floor(i%100)&&i%100>=11&&i%100<=14?ye.Many:ye.Other;case"shi":return 0===i||1===n?ye.One:n===Math.floor(n)&&n>=2&&n<=10?ye.Few:ye.Other;case"si":return 0===n||1===n||0===i&&1===l?ye.One:ye.Other;case"sl":return 0===o&&i%100==1?ye.One:0===o&&i%100==2?ye.Two:0===o&&i%100===Math.floor(i%100)&&i%100>=3&&i%100<=4||0!==o?ye.Few:ye.Other;case"tzm":return n===Math.floor(n)&&n>=0&&n<=1||n===Math.floor(n)&&n>=11&&n<=99?ye.One:ye.Other;default:return ye.Other}}function k(e,t){t=encodeURIComponent(t);for(var n=0,r=e.split(";");n<r.length;n++){var i=r[n],o=i.indexOf("="),l=-1==o?[i,""]:[i.slice(0,o),i.slice(o+1)],a=l[1];if(l[0].trim()===t)return decodeURIComponent(a)}return null}function D(e,t){var n=o(e);if(He[n]=He[n]||{},He[n][t])return He[n][t];var r="";switch(t){case"shortDate":r=p(e,_e.Short);break;case"mediumDate":r=p(e,_e.Medium);break;case"longDate":r=p(e,_e.Long);break;case"fullDate":r=p(e,_e.Full);break;case"shortTime":r=f(e,_e.Short);break;case"mediumTime":r=f(e,_e.Medium);break;case"longTime":r=f(e,_e.Long);break;case"fullTime":r=f(e,_e.Full);break;case"short":var i=D(e,"shortTime"),l=D(e,"shortDate");r=I(h(e,_e.Short),[i,l]);break;case"medium":var a=D(e,"mediumTime"),s=D(e,"mediumDate");r=I(h(e,_e.Medium),[a,s]);break;case"long":var u=D(e,"longTime"),c=D(e,"longDate");r=I(h(e,_e.Long),[u,c]);break;case"full":var d=D(e,"fullTime"),m=D(e,"fullDate");r=I(h(e,_e.Full),[d,m])}return r&&(He[n][t]=r),r}function I(e,t){return t&&(e=e.replace(/\{([^}]+)}/g,function(e,n){return null!=t&&n in t?t[n]:e})),e}function R(e,t,n,r,i){void 0===n&&(n="-");var o="";(e<0||i&&e<=0)&&(i?e=1-e:(e=-e,o=n));for(var l=""+e;l.length<t;)l="0"+l;return r&&(l=l.substr(l.length-t)),o+l}function M(e,t,n,r,i){return void 0===n&&(n=0),void 0===r&&(r=!1),void 0===i&&(i=!1),function(o,l){var a=function(e,t,n){switch(e){case Ue.FullYear:return t.getFullYear();case Ue.Month:return t.getMonth();case Ue.Date:return t.getDate();case Ue.Hours:return t.getHours();case Ue.Minutes:return t.getMinutes();case Ue.Seconds:return t.getSeconds();case Ue.Milliseconds:var r=1===n?100:2===n?10:1;return Math.round(t.getMilliseconds()/r);case Ue.Day:return t.getDay();default:throw new Error('Unknown DateType value "'+e+'".')}}(e,o,t);return(n>0||a>-n)&&(a+=n),e===Ue.Hours&&0===a&&-12===n&&(a=12),R(a,t,m(l,we.MinusSign),r,i)}}function P(e,t,n,r){return void 0===n&&(n=ve.Format),void 0===r&&(r=!1),function(i,o){return function(t,n,r,i,o,c){switch(e){case Ge.Months:return s(n,o,i)[t.getMonth()];case Ge.Days:return a(n,o,i)[t.getDay()];case Ge.DayPeriods:var d=t.getHours(),p=t.getMinutes();if(c){var f,h=w(n),m=x(n,o,i);if(h.forEach(function(e,t){if(Array.isArray(e)){var n=e[0],r=e[1],i=r.hours;d>=n.hours&&p>=n.minutes&&(d<i||d===i&&p<r.minutes)&&(f=m[t])}else e.hours===d&&e.minutes===p&&(f=m[t])}),f)return f}return l(n,o,i)[d<12?0:1];case Ge.Eras:return u(n,i)[t.getFullYear()<=0?0:1]}}(i,o,0,t,n,r)}}function N(e){return function(t,n,r){var i=-1*r,o=m(n,we.MinusSign),l=i>0?Math.floor(i/60):Math.ceil(i/60);switch(e){case qe.Short:return(i>=0?"+":"")+R(l,2,o)+R(Math.abs(i%60),2,o);case qe.ShortGMT:return"GMT"+(i>=0?"+":"")+R(l,1,o);case qe.Long:return"GMT"+(i>=0?"+":"")+R(l,2,o)+":"+R(Math.abs(i%60),2,o);case qe.Extended:return 0===r?"Z":(i>=0?"+":"")+R(l,2,o)+":"+R(Math.abs(i%60),2,o);default:throw new Error('Unknown zone width "'+e+'"')}}}function A(e,t){return void 0===t&&(t=!1),function(n,r){var i;if(t){var o=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,l=n.getDate();i=1+Math.floor((l+o)/7)}else{var a=function(e){var t=new Date(e,Ke,1).getDay();return new Date(e,0,1+(t<=$e?$e:$e+7)-t)}(n.getFullYear()),s=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+($e-e.getDay()))}(n).getTime()-a.getTime();i=1+Math.round(s/6048e5)}return R(i,e,m(r,we.MinusSign))}}function L(e,t){e=e.replace(/:/g,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function F(e,t){return Error("InvalidPipeArgument: '"+t+"' for pipe '"+Object(ie["\u0275stringify"])(e)+"'")}function j(e){var t=new Date(0),n=0,r=0,i=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=+(e[9]+e[10]),r=+(e[9]+e[11])),(e[8]?t.setUTCFullYear:t.setFullYear).call(t,+e[1],+e[2]-1,+e[3]);var o=+(e[4]||"0")-n,l=+(e[5]||"0")-r,a=+(e[6]||"0"),s=Math.round(1e3*parseFloat("0."+(e[7]||0)));return i.call(t,o,l,a,s),t}function V(e){return e instanceof Date&&!isNaN(e.valueOf())}function z(e){return function(t,n){var r=e(t,n);return 1==r.length?"0"+r:r}}function B(e){return function(t,n){return e(t,n).split(" ")[0]}}function H(e,t,n){return new Intl.DateTimeFormat(t,n).format(e).replace(/[\u200e\u200f]/g,"")}function W(e){var t={hour:"2-digit",hour12:!1,timeZoneName:e};return function(e,n){var r=H(e,n,t);return r?r.substring(3):""}}function q(e,t){return e.hour12=t,e}function U(e,t){return function(){var n={};return n[e]=2===t?"2-digit":"numeric",n}()}function G(e,t){var n={};return n[e]=t<4?t>1?"short":"narrow":"long",n}function K(e){return e.reduce(function(e,t){return Object(oe.__assign)({},e,t)},{})}function $(e){return function(t,n){return H(t,n,e)}}function Z(e){return e instanceof Date&&!isNaN(e.valueOf())}function Q(e,t,n,r,i){void 0===i&&(i=null);var o,l={str:null},a=g(t,n);if("string"!=typeof e||isNaN(+e-parseFloat(e))){if("number"!=typeof e)return l.error=e+" is not a number",l;o=e}else o=+e;n===ge.Percent&&(o*=100);var s=Math.abs(o)+"",u=function(e,t){void 0===t&&(t="-");var n={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},r=e.split(ut),i=r[0],o=r[1],l=-1!==i.indexOf(at)?i.split(at):[i.substring(0,i.lastIndexOf(st)+1),i.substring(i.lastIndexOf(st)+1)],a=l[0],s=l[1]||"";n.posPre=a.substr(0,a.indexOf(dt));for(var u=0;u<s.length;u++){var c=s.charAt(u);c===st?n.minFrac=n.maxFrac=u+1:c===dt?n.maxFrac=u+1:n.posSuf+=c}var d=a.split(ct);if(n.gSize=d[1]?d[1].length:0,n.lgSize=d[2]||d[1]?(d[2]||d[1]).length:0,o){var p=i.length-n.posPre.length-n.posSuf.length,f=o.indexOf(dt);n.negPre=o.substr(0,f).replace(/'/g,""),n.negSuf=o.substr(f+p).replace(/'/g,"")}else n.negPre=t+n.posPre,n.negSuf=n.posSuf;return n}(a,m(t,we.MinusSign)),c="",d=!1;if(isFinite(o)){var p=function(e){var t,n,r,i,o,l=0;for((n=e.indexOf(at))>-1&&(e=e.replace(at,"")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charAt(r)===st;r++);if(r===(o=e.length))t=[0],n=1;else{for(o--;e.charAt(o)===st;)o--;for(n-=r,t=[],i=0;r<=o;r++,i++)t[i]=+e.charAt(r)}return n>lt&&(t=t.splice(0,lt-1),l=n-1,n=1),{digits:t,exponent:l,integerLen:n}}(s),f=u.minInt,h=u.minFrac,y=u.maxFrac;if(r){var v=r.match(ot);if(null===v)return l.error=r+" is not a valid digit info",l;var b=v[1],_=v[3],w=v[5];null!=b&&(f=Y(b)),null!=_&&(h=Y(_)),null!=w?y=Y(w):null!=_&&h>y&&(y=h)}!function(e,t,n){if(t>n)throw new Error("The minimum number of digits after fraction ("+t+") is higher than the maximum ("+n+").");var r=e.digits,i=r.length-e.integerLen,o=Math.min(Math.max(t,i),n),l=o+e.integerLen,a=r[l];if(l>0){r.splice(Math.max(e.integerLen,l));for(var s=l;s<r.length;s++)r[s]=0}else{i=Math.max(0,i),e.integerLen=1,r.length=Math.max(1,l=o+1),r[0]=0;for(var u=1;u<l;u++)r[u]=0}if(a>=5)if(l-1<0){for(var c=0;c>l;c--)r.unshift(0),e.integerLen++;r.unshift(1),e.integerLen++}else r[l-1]++;for(;i<Math.max(0,o);i++)r.push(0);var d=r.reduceRight(function(e,t,n,r){return t+=e,r[n]=t%10,Math.floor(t/10)},0);d&&(r.unshift(d),e.integerLen++)}(p,h,y);var x=p.digits,C=p.integerLen,E=p.exponent,S=[];for(d=x.every(function(e){return!e});C<f;C++)x.unshift(0);for(;C<0;C++)x.unshift(0);C>0?S=x.splice(C,x.length):(S=x,x=[0]);var O=[];for(x.length>=u.lgSize&&O.unshift(x.splice(-u.lgSize,x.length).join(""));x.length>u.gSize;)O.unshift(x.splice(-u.gSize,x.length).join(""));x.length&&O.unshift(x.join("")),c=O.join(m(t,i?we.CurrencyGroup:we.Group)),S.length&&(c+=m(t,i?we.CurrencyDecimal:we.Decimal)+S.join("")),E&&(c+=m(t,we.Exponential)+"+"+E)}else c=m(t,we.Infinity);return c=o<0&&!d?u.negPre+c+u.negSuf:u.posPre+c+u.posSuf,n===ge.Currency&&null!==i?(l.str=c.replace(pt,i).replace(pt,""),l):n===ge.Percent?(l.str=c.replace(new RegExp(ft,"g"),m(t,we.PercentSign)),l):(l.str=c,l)}function Y(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t}function X(e,t,n,r,i,o,l){if(void 0===o&&(o=null),void 0===l&&(l=!1),null==n)return null;if("number"!=typeof(n="string"!=typeof n||isNaN(+n-parseFloat(n))?n:+n))throw F(e,n);var a,s,u;if(r!==ge.Currency&&(a=1,s=0,u=3),i){var c=i.match(ot);if(null===c)throw new Error(i+" is not a valid digit info for number pipes");null!=c[1]&&(a=Y(c[1])),null!=c[3]&&(s=Y(c[3])),null!=c[5]&&(u=Y(c[5]))}return Xe.format(n,t,r,{minimumIntegerDigits:a,minimumFractionDigits:s,maximumFractionDigits:u,currency:o,currencyAsSymbol:l})}function J(e){return null==e||""===e||e!=e}function ee(e){return e===Ft}function te(e){return e===jt}function ne(e){return e===Vt}function re(e){return e===zt}Object.defineProperty(t,"__esModule",{value:!0}),n.d(t,"NgLocaleLocalization",function(){return Se}),n.d(t,"NgLocalization",function(){return Ee}),n.d(t,"registerLocaleData",function(){return i}),n.d(t,"Plural",function(){return ye}),n.d(t,"NumberFormatStyle",function(){return ge}),n.d(t,"FormStyle",function(){return ve}),n.d(t,"TranslationWidth",function(){return be}),n.d(t,"FormatWidth",function(){return _e}),n.d(t,"NumberSymbol",function(){return we}),n.d(t,"WeekDay",function(){return xe}),n.d(t,"getLocaleDayPeriods",function(){return l}),n.d(t,"getLocaleDayNames",function(){return a}),n.d(t,"getLocaleMonthNames",function(){return s}),n.d(t,"getLocaleId",function(){return o}),n.d(t,"getLocaleEraNames",function(){return u}),n.d(t,"getLocaleWeekEndRange",function(){return d}),n.d(t,"getLocaleFirstDayOfWeek",function(){return c}),n.d(t,"getLocaleDateFormat",function(){return p}),n.d(t,"getLocaleDateTimeFormat",function(){return h}),n.d(t,"getLocaleExtraDayPeriodRules",function(){return w}),n.d(t,"getLocaleExtraDayPeriods",function(){return x}),n.d(t,"getLocalePluralCase",function(){return b}),n.d(t,"getLocaleTimeFormat",function(){return f}),n.d(t,"getLocaleNumberSymbol",function(){return m}),n.d(t,"getLocaleNumberFormat",function(){return g}),n.d(t,"getLocaleCurrencyName",function(){return v}),n.d(t,"getLocaleCurrencySymbol",function(){return y}),n.d(t,"CURRENCIES",function(){return fe}),n.d(t,"\u0275parseCookieValue",function(){return k}),n.d(t,"CommonModule",function(){return Nt}),n.d(t,"DeprecatedI18NPipesModule",function(){return At}),n.d(t,"NgClass",function(){return Oe}),n.d(t,"NgForOf",function(){return De}),n.d(t,"NgForOfContext",function(){return ke}),n.d(t,"NgIf",function(){return Re}),n.d(t,"NgIfContext",function(){return Me}),n.d(t,"NgPlural",function(){return Fe}),n.d(t,"NgPluralCase",function(){return je}),n.d(t,"NgStyle",function(){return Ve}),n.d(t,"NgSwitch",function(){return Ne}),n.d(t,"NgSwitchCase",function(){return Ae}),n.d(t,"NgSwitchDefault",function(){return Le}),n.d(t,"NgTemplateOutlet",function(){return ze}),n.d(t,"NgComponentOutlet",function(){return Te}),n.d(t,"DOCUMENT",function(){return Lt}),n.d(t,"AsyncPipe",function(){return wt}),n.d(t,"DatePipe",function(){return Ye}),n.d(t,"I18nPluralPipe",function(){return Ot}),n.d(t,"I18nSelectPipe",function(){return Tt}),n.d(t,"JsonPipe",function(){return kt}),n.d(t,"LowerCasePipe",function(){return xt}),n.d(t,"CurrencyPipe",function(){return Rt}),n.d(t,"DecimalPipe",function(){return Dt}),n.d(t,"PercentPipe",function(){return It}),n.d(t,"SlicePipe",function(){return Mt}),n.d(t,"UpperCasePipe",function(){return Et}),n.d(t,"TitleCasePipe",function(){return Ct}),n.d(t,"DeprecatedDatePipe",function(){return it}),n.d(t,"DeprecatedCurrencyPipe",function(){return gt}),n.d(t,"DeprecatedDecimalPipe",function(){return ht}),n.d(t,"DeprecatedPercentPipe",function(){return mt}),n.d(t,"\u0275PLATFORM_BROWSER_ID",function(){return Ft}),n.d(t,"\u0275PLATFORM_SERVER_ID",function(){return jt}),n.d(t,"\u0275PLATFORM_WORKER_APP_ID",function(){return Vt}),n.d(t,"\u0275PLATFORM_WORKER_UI_ID",function(){return zt}),n.d(t,"isPlatformBrowser",function(){return ee}),n.d(t,"isPlatformServer",function(){return te}),n.d(t,"isPlatformWorkerApp",function(){return ne}),n.d(t,"isPlatformWorkerUi",function(){return re}),n.d(t,"VERSION",function(){return Bt}),n.d(t,"PlatformLocation",function(){return le}),n.d(t,"LOCATION_INITIALIZED",function(){return ae}),n.d(t,"LocationStrategy",function(){return se}),n.d(t,"APP_BASE_HREF",function(){return ue}),n.d(t,"HashLocationStrategy",function(){return de}),n.d(t,"PathLocationStrategy",function(){return pe}),n.d(t,"Location",function(){return ce}),n.d(t,"\u0275e",function(){return Be}),n.d(t,"\u0275d",function(){return S}),n.d(t,"\u0275a",function(){return Ce}),n.d(t,"\u0275b",function(){return T}),n.d(t,"\u0275g",function(){return yt}),n.d(t,"\u0275f",function(){return Pt});var ie=n("LMZF"),oe=n("6Xbx"),le=function(){},ae=new ie.InjectionToken("Location Initialized"),se=function(){},ue=new ie.InjectionToken("appBaseHref"),ce=function(){function e(t){var n=this;this._subject=new ie.EventEmitter,this._platformStrategy=t;var i=this._platformStrategy.getBaseHref();this._baseHref=e.stripTrailingSlash(r(i)),this._platformStrategy.onPopState(function(e){n._subject.emit({url:n.path(!0),pop:!0,type:e.type})})}return e.prototype.path=function(e){return void 0===e&&(e=!1),this.normalize(this._platformStrategy.path(e))},e.prototype.isCurrentPathEqualTo=function(t,n){return void 0===n&&(n=""),this.path()==this.normalize(t+e.normalizeQueryParams(n))},e.prototype.normalize=function(t){return e.stripTrailingSlash(function(e,t){return e&&t.startsWith(e)?t.substring(e.length):t}(this._baseHref,r(t)))},e.prototype.prepareExternalUrl=function(e){return e&&"/"!==e[0]&&(e="/"+e),this._platformStrategy.prepareExternalUrl(e)},e.prototype.go=function(e,t){void 0===t&&(t=""),this._platformStrategy.pushState(null,"",e,t)},e.prototype.replaceState=function(e,t){void 0===t&&(t=""),this._platformStrategy.replaceState(null,"",e,t)},e.prototype.forward=function(){this._platformStrategy.forward()},e.prototype.back=function(){this._platformStrategy.back()},e.prototype.subscribe=function(e,t,n){return this._subject.subscribe({next:e,error:t,complete:n})},e.normalizeQueryParams=function(e){return e&&"?"!==e[0]?"?"+e:e},e.joinWithSlash=function(e,t){if(0==e.length)return t;if(0==t.length)return e;var n=0;return e.endsWith("/")&&n++,t.startsWith("/")&&n++,2==n?e+t.substring(1):1==n?e+t:e+"/"+t},e.stripTrailingSlash=function(e){var t=e.match(/#|\?|$/),n=t&&t.index||e.length;return e.slice(0,n-("/"===e[n-1]?1:0))+e.slice(n)},e}(),de=function(e){function t(t,n){var r=e.call(this)||this;return r._platformLocation=t,r._baseHref="",null!=n&&(r._baseHref=n),r}return Object(oe.__extends)(t,e),t.prototype.onPopState=function(e){this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e)},t.prototype.getBaseHref=function(){return this._baseHref},t.prototype.path=function(e){void 0===e&&(e=!1);var t=this._platformLocation.hash;return null==t&&(t="#"),t.length>0?t.substring(1):t},t.prototype.prepareExternalUrl=function(e){var t=ce.joinWithSlash(this._baseHref,e);return t.length>0?"#"+t:t},t.prototype.pushState=function(e,t,n,r){var i=this.prepareExternalUrl(n+ce.normalizeQueryParams(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.pushState(e,t,i)},t.prototype.replaceState=function(e,t,n,r){var i=this.prepareExternalUrl(n+ce.normalizeQueryParams(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.replaceState(e,t,i)},t.prototype.forward=function(){this._platformLocation.forward()},t.prototype.back=function(){this._platformLocation.back()},t}(se),pe=function(e){function t(t,n){var r=e.call(this)||this;if(r._platformLocation=t,null==n&&(n=r._platformLocation.getBaseHrefFromDOM()),null==n)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");return r._baseHref=n,r}return Object(oe.__extends)(t,e),t.prototype.onPopState=function(e){this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e)},t.prototype.getBaseHref=function(){return this._baseHref},t.prototype.prepareExternalUrl=function(e){return ce.joinWithSlash(this._baseHref,e)},t.prototype.path=function(e){void 0===e&&(e=!1);var t=this._platformLocation.pathname+ce.normalizeQueryParams(this._platformLocation.search),n=this._platformLocation.hash;return n&&e?""+t+n:t},t.prototype.pushState=function(e,t,n,r){var i=this.prepareExternalUrl(n+ce.normalizeQueryParams(r));this._platformLocation.pushState(e,t,i)},t.prototype.replaceState=function(e,t,n,r){var i=this.prepareExternalUrl(n+ce.normalizeQueryParams(r));this._platformLocation.replaceState(e,t,i)},t.prototype.forward=function(){this._platformLocation.forward()},t.prototype.back=function(){this._platformLocation.back()},t}(se),fe={AOA:[,"Kz"],ARS:[,"$"],AUD:["A$","$"],BAM:[,"KM"],BBD:[,"$"],BDT:[,"\u09f3"],BMD:[,"$"],BND:[,"$"],BOB:[,"Bs"],BRL:["R$"],BSD:[,"$"],BWP:[,"P"],BYN:[,"\u0440."],BZD:[,"$"],CAD:["CA$","$"],CLP:[,"$"],CNY:["CN\xa5","\xa5"],COP:[,"$"],CRC:[,"\u20a1"],CUC:[,"$"],CUP:[,"$"],CZK:[,"K\u010d"],DKK:[,"kr"],DOP:[,"$"],EGP:[,"E\xa3"],ESP:[,"\u20a7"],EUR:["\u20ac"],FJD:[,"$"],FKP:[,"\xa3"],GBP:["\xa3"],GEL:[,"\u20be"],GIP:[,"\xa3"],GNF:[,"FG"],GTQ:[,"Q"],GYD:[,"$"],HKD:["HK$","$"],HNL:[,"L"],HRK:[,"kn"],HUF:[,"Ft"],IDR:[,"Rp"],ILS:["\u20aa"],INR:["\u20b9"],ISK:[,"kr"],JMD:[,"$"],JPY:["\xa5"],KHR:[,"\u17db"],KMF:[,"CF"],KPW:[,"\u20a9"],KRW:["\u20a9"],KYD:[,"$"],KZT:[,"\u20b8"],LAK:[,"\u20ad"],LBP:[,"L\xa3"],LKR:[,"Rs"],LRD:[,"$"],LTL:[,"Lt"],LVL:[,"Ls"],MGA:[,"Ar"],MMK:[,"K"],MNT:[,"\u20ae"],MUR:[,"Rs"],MXN:["MX$","$"],MYR:[,"RM"],NAD:[,"$"],NGN:[,"\u20a6"],NIO:[,"C$"],NOK:[,"kr"],NPR:[,"Rs"],NZD:["NZ$","$"],PHP:[,"\u20b1"],PKR:[,"Rs"],PLN:[,"z\u0142"],PYG:[,"\u20b2"],RON:[,"lei"],RUB:[,"\u20bd"],RUR:[,"\u0440."],RWF:[,"RF"],SBD:[,"$"],SEK:[,"kr"],SGD:[,"$"],SHP:[,"\xa3"],SRD:[,"$"],SSP:[,"\xa3"],STD:[,"Db"],SYP:[,"\xa3"],THB:[,"\u0e3f"],TOP:[,"T$"],TRY:[,"\u20ba"],TTD:[,"$"],TWD:["NT$","$"],UAH:[,"\u20b4"],USD:["$"],UYU:[,"$"],VEF:[,"Bs"],VND:["\u20ab"],XAF:["FCFA"],XCD:["EC$","$"],XOF:["CFA"],XPF:["CFPF"],ZAR:[,"R"],ZMW:[,"ZK"]},he=["en",[["a","p"],["AM","PM"]],[["AM","PM"],,],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",,"{1} 'at' {0}"],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"$","US Dollar",function(e){var t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\.?/,"").length;return 1===t&&0===n?1:5}],me={},ge=function(){var e={Decimal:0,Percent:1,Currency:2,Scientific:3};return e[e.Decimal]="Decimal",e[e.Percent]="Percent",e[e.Currency]="Currency",e[e.Scientific]="Scientific",e}(),ye=function(){var e={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return e[e.Zero]="Zero",e[e.One]="One",e[e.Two]="Two",e[e.Few]="Few",e[e.Many]="Many",e[e.Other]="Other",e}(),ve=function(){var e={Format:0,Standalone:1};return e[e.Format]="Format",e[e.Standalone]="Standalone",e}(),be=function(){var e={Narrow:0,Abbreviated:1,Wide:2,Short:3};return e[e.Narrow]="Narrow",e[e.Abbreviated]="Abbreviated",e[e.Wide]="Wide",e[e.Short]="Short",e}(),_e=function(){var e={Short:0,Medium:1,Long:2,Full:3};return e[e.Short]="Short",e[e.Medium]="Medium",e[e.Long]="Long",e[e.Full]="Full",e}(),we=function(){var e={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};return e[e.Decimal]="Decimal",e[e.Group]="Group",e[e.List]="List",e[e.PercentSign]="PercentSign",e[e.PlusSign]="PlusSign",e[e.MinusSign]="MinusSign",e[e.Exponential]="Exponential",e[e.SuperscriptingExponent]="SuperscriptingExponent",e[e.PerMille]="PerMille",e[e.Infinity]="Infinity",e[e.NaN]="NaN",e[e.TimeSeparator]="TimeSeparator",e[e.CurrencyDecimal]="CurrencyDecimal",e[e.CurrencyGroup]="CurrencyGroup",e}(),xe=function(){var e={Sunday:0,Monday:1,Tuesday:2,Wednesday:3,Thursday:4,Friday:5,Saturday:6};return e[e.Sunday]="Sunday",e[e.Monday]="Monday",e[e.Tuesday]="Tuesday",e[e.Wednesday]="Wednesday",e[e.Thursday]="Thursday",e[e.Friday]="Friday",e[e.Saturday]="Saturday",e}(),Ce=new ie.InjectionToken("UseV4Plurals"),Ee=function(){},Se=function(e){function t(t,n){var r=e.call(this)||this;return r.locale=t,r.deprecatedPluralFn=n,r}return Object(oe.__extends)(t,e),t.prototype.getPluralCategory=function(e,t){switch(this.deprecatedPluralFn?this.deprecatedPluralFn(t||this.locale,e):b(t||this.locale)(e)){case ye.Zero:return"zero";case ye.One:return"one";case ye.Two:return"two";case ye.Few:return"few";case ye.Many:return"many";default:return"other"}},t}(Ee),Oe=function(){function e(e,t,n,r){this._iterableDiffers=e,this._keyValueDiffers=t,this._ngEl=n,this._renderer=r,this._initialClasses=[]}return Object.defineProperty(e.prototype,"klass",{set:function(e){this._applyInitialClasses(!0),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyInitialClasses(!1),this._applyClasses(this._rawClass,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngClass",{set:function(e){this._cleanupClasses(this._rawClass),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(Object(ie["\u0275isListLikeIterable"])(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())},enumerable:!0,configurable:!0}),e.prototype.ngDoCheck=function(){if(this._iterableDiffer){var e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){var t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}},e.prototype._cleanupClasses=function(e){this._applyClasses(e,!0),this._applyInitialClasses(!1)},e.prototype._applyKeyValueChanges=function(e){var t=this;e.forEachAddedItem(function(e){return t._toggleClass(e.key,e.currentValue)}),e.forEachChangedItem(function(e){return t._toggleClass(e.key,e.currentValue)}),e.forEachRemovedItem(function(e){e.previousValue&&t._toggleClass(e.key,!1)})},e.prototype._applyIterableChanges=function(e){var t=this;e.forEachAddedItem(function(e){if("string"!=typeof e.item)throw new Error("NgClass can only toggle CSS classes expressed as strings, got "+Object(ie["\u0275stringify"])(e.item));t._toggleClass(e.item,!0)}),e.forEachRemovedItem(function(e){return t._toggleClass(e.item,!1)})},e.prototype._applyInitialClasses=function(e){var t=this;this._initialClasses.forEach(function(n){return t._toggleClass(n,!e)})},e.prototype._applyClasses=function(e,t){var n=this;e&&(Array.isArray(e)||e instanceof Set?e.forEach(function(e){return n._toggleClass(e,!t)}):Object.keys(e).forEach(function(r){null!=e[r]&&n._toggleClass(r,!t)}))},e.prototype._toggleClass=function(e,t){var n=this;(e=e.trim())&&e.split(/\s+/g).forEach(function(e){t?n._renderer.addClass(n._ngEl.nativeElement,e):n._renderer.removeClass(n._ngEl.nativeElement,e)})},e}(),Te=function(){function e(e){this._viewContainerRef=e,this._componentRef=null,this._moduleRef=null}return e.prototype.ngOnChanges=function(e){if(this._viewContainerRef.clear(),this._componentRef=null,this.ngComponentOutlet){var t=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;if(e.ngComponentOutletNgModuleFactory)if(this._moduleRef&&this._moduleRef.destroy(),this.ngComponentOutletNgModuleFactory){var n=t.get(ie.NgModuleRef);this._moduleRef=this.ngComponentOutletNgModuleFactory.create(n.injector)}else this._moduleRef=null;var r=(this._moduleRef?this._moduleRef.componentFactoryResolver:t.get(ie.ComponentFactoryResolver)).resolveComponentFactory(this.ngComponentOutlet);this._componentRef=this._viewContainerRef.createComponent(r,this._viewContainerRef.length,t,this.ngComponentOutletContent)}},e.prototype.ngOnDestroy=function(){this._moduleRef&&this._moduleRef.destroy()},e}(),ke=function(){function e(e,t,n,r){this.$implicit=e,this.ngForOf=t,this.index=n,this.count=r}return Object.defineProperty(e.prototype,"first",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){return this.index===this.count-1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"even",{get:function(){return this.index%2==0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"odd",{get:function(){return!this.even},enumerable:!0,configurable:!0}),e}(),De=function(){function e(e,t,n){this._viewContainer=e,this._template=t,this._differs=n,this._differ=null}return Object.defineProperty(e.prototype,"ngForTrackBy",{get:function(){return this._trackByFn},set:function(e){Object(ie.isDevMode)()&&null!=e&&"function"!=typeof e&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(e)+". See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information."),this._trackByFn=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngForTemplate",{set:function(e){e&&(this._template=e)},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(e){if("ngForOf"in e){var t=e.ngForOf.currentValue;if(!this._differ&&t)try{this._differ=this._differs.find(t).create(this.ngForTrackBy)}catch(e){throw new Error("Cannot find a differ supporting object '"+t+"' of type '"+(t.name||typeof t)+"'. NgFor only supports binding to Iterables such as Arrays.")}}},e.prototype.ngDoCheck=function(){if(this._differ){var e=this._differ.diff(this.ngForOf);e&&this._applyChanges(e)}},e.prototype._applyChanges=function(e){var t=this,n=[];e.forEachOperation(function(e,r,i){if(null==e.previousIndex){var o=t._viewContainer.createEmbeddedView(t._template,new ke(null,t.ngForOf,-1,-1),i),l=new Ie(e,o);n.push(l)}else null==i?t._viewContainer.remove(r):(o=t._viewContainer.get(r),t._viewContainer.move(o,i),l=new Ie(e,o),n.push(l))});for(var r=0;r<n.length;r++)this._perViewChange(n[r].view,n[r].record);r=0;for(var i=this._viewContainer.length;r<i;r++){var o=this._viewContainer.get(r);o.context.index=r,o.context.count=i}e.forEachIdentityChange(function(e){t._viewContainer.get(e.currentIndex).context.$implicit=e.item})},e.prototype._perViewChange=function(e,t){e.context.$implicit=t.item},e}(),Ie=function(e,t){this.record=e,this.view=t},Re=function(){function e(e,t){this._viewContainer=e,this._context=new Me,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=t}return Object.defineProperty(e.prototype,"ngIf",{set:function(e){this._context.$implicit=this._context.ngIf=e,this._updateView()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngIfThen",{set:function(e){this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ngIfElse",{set:function(e){this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()},enumerable:!0,configurable:!0}),e.prototype._updateView=function(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))},e}(),Me=function(){this.$implicit=null,this.ngIf=null},Pe=function(){function e(e,t){this._viewContainerRef=e,this._templateRef=t,this._created=!1}return e.prototype.create=function(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)},e.prototype.destroy=function(){this._created=!1,this._viewContainerRef.clear()},e.prototype.enforceState=function(e){e&&!this._created?this.create():!e&&this._created&&this.destroy()},e}(),Ne=function(){function e(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}return Object.defineProperty(e.prototype,"ngSwitch",{set:function(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)},enumerable:!0,configurable:!0}),e.prototype._addCase=function(){return this._caseCount++},e.prototype._addDefault=function(e){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(e)},e.prototype._matchCase=function(e){var t=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||t,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),t},e.prototype._updateDefaultCases=function(e){if(this._defaultViews&&e!==this._defaultUsed){this._defaultUsed=e;for(var t=0;t<this._defaultViews.length;t++)this._defaultViews[t].enforceState(e)}},e}(),Ae=function(){function e(e,t,n){this.ngSwitch=n,n._addCase(),this._view=new Pe(e,t)}return e.prototype.ngDoCheck=function(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))},e}(),Le=function(){return function(e,t,n){n._addDefault(new Pe(e,t))}}(),Fe=function(){function e(e){this._localization=e,this._caseViews={}}return Object.defineProperty(e.prototype,"ngPlural",{set:function(e){this._switchValue=e,this._updateView()},enumerable:!0,configurable:!0}),e.prototype.addCase=function(e,t){this._caseViews[e]=t},e.prototype._updateView=function(){this._clearViews();var e=Object.keys(this._caseViews),t=O(this._switchValue,e,this._localization);this._activateView(this._caseViews[t])},e.prototype._clearViews=function(){this._activeView&&this._activeView.destroy()},e.prototype._activateView=function(e){e&&(this._activeView=e,this._activeView.create())},e}(),je=function(){return function(e,t,n,r){this.value=e;var i=!isNaN(Number(e));r.addCase(i?"="+e:e,new Pe(n,t))}}(),Ve=function(){function e(e,t,n){this._differs=e,this._ngEl=t,this._renderer=n}return Object.defineProperty(e.prototype,"ngStyle",{set:function(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())},enumerable:!0,configurable:!0}),e.prototype.ngDoCheck=function(){if(this._differ){var e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}},e.prototype._applyChanges=function(e){var t=this;e.forEachRemovedItem(function(e){return t._setStyle(e.key,null)}),e.forEachAddedItem(function(e){return t._setStyle(e.key,e.currentValue)}),e.forEachChangedItem(function(e){return t._setStyle(e.key,e.currentValue)})},e.prototype._setStyle=function(e,t){var n=e.split("."),r=n[1];this._renderer.setStyle(this._ngEl.nativeElement,n[0],t=null!=t&&r?""+t+r:t)},e}(),ze=function(){function e(e){this._viewContainerRef=e}return e.prototype.ngOnChanges=function(e){this._shouldRecreateView(e)?(this._viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._viewRef)),this.ngTemplateOutlet&&(this._viewRef=this._viewContainerRef.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext))):this._viewRef&&this.ngTemplateOutletContext&&this._updateExistingContext(this.ngTemplateOutletContext)},e.prototype._shouldRecreateView=function(e){var t=e.ngTemplateOutletContext;return!!e.ngTemplateOutlet||t&&this._hasContextShapeChanged(t)},e.prototype._hasContextShapeChanged=function(e){var t=Object.keys(e.previousValue||{}),n=Object.keys(e.currentValue||{});if(t.length===n.length){for(var r=0,i=n;r<i.length;r++)if(-1===t.indexOf(i[r]))return!0;return!1}return!0},e.prototype._updateExistingContext=function(e){for(var t=0,n=Object.keys(e);t<n.length;t++){var r=n[t];this._viewRef.context[r]=this.ngTemplateOutletContext[r]}},e}(),Be=[Oe,Te,De,Re,ze,Ve,Ne,Ae,Le,Fe,je],He={},We=/((?:[^GyMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/,qe=function(){var e={Short:0,ShortGMT:1,Long:2,Extended:3};return e[e.Short]="Short",e[e.ShortGMT]="ShortGMT",e[e.Long]="Long",e[e.Extended]="Extended",e}(),Ue=function(){var e={FullYear:0,Month:1,Date:2,Hours:3,Minutes:4,Seconds:5,Milliseconds:6,Day:7};return e[e.FullYear]="FullYear",e[e.Month]="Month",e[e.Date]="Date",e[e.Hours]="Hours",e[e.Minutes]="Minutes",e[e.Seconds]="Seconds",e[e.Milliseconds]="Milliseconds",e[e.Day]="Day",e}(),Ge=function(){var e={DayPeriods:0,Days:1,Months:2,Eras:3};return e[e.DayPeriods]="DayPeriods",e[e.Days]="Days",e[e.Months]="Months",e[e.Eras]="Eras",e}(),Ke=0,$e=4,Ze={},Qe=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ye=function(){function e(e){this.locale=e}return e.prototype.transform=function(t,n,r,i){if(void 0===n&&(n="mediumDate"),null==t||""===t||t!=t)return null;"string"==typeof t&&(t=t.trim());var o;if(V(t))o=t;else if(isNaN(t-parseFloat(t)))if("string"==typeof t&&/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)){var l=t.split("-").map(function(e){return+e}),a=l[0],s=l[1],u=l[2];o=new Date(a,s-1,u)}else o=new Date(t);else o=new Date(parseFloat(t));if(!V(o)){var c=void 0;if("string"!=typeof t||!(c=t.match(Qe)))throw F(e,t);o=j(c)}return function(e,t,n,r){t=D(n,t)||t;for(var i,o=[];t;){if(!(i=We.exec(t))){o.push(t);break}var l=(o=o.concat(i.slice(1))).pop();if(!l)break;t=l}var a=e.getTimezoneOffset();r&&(a=L(r,a),e=function(e,t,n){var r=e.getTimezoneOffset();return function(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}(e,-1*(L(t,r)-r))}(e,r));var s="";return o.forEach(function(t){var r=function(e){if(Ze[e])return Ze[e];var t;switch(e){case"G":case"GG":case"GGG":t=P(Ge.Eras,be.Abbreviated);break;case"GGGG":t=P(Ge.Eras,be.Wide);break;case"GGGGG":t=P(Ge.Eras,be.Narrow);break;case"y":t=M(Ue.FullYear,1,0,!1,!0);break;case"yy":t=M(Ue.FullYear,2,0,!0,!0);break;case"yyy":t=M(Ue.FullYear,3,0,!1,!0);break;case"yyyy":t=M(Ue.FullYear,4,0,!1,!0);break;case"M":case"L":t=M(Ue.Month,1,1);break;case"MM":case"LL":t=M(Ue.Month,2,1);break;case"MMM":t=P(Ge.Months,be.Abbreviated);break;case"MMMM":t=P(Ge.Months,be.Wide);break;case"MMMMM":t=P(Ge.Months,be.Narrow);break;case"LLL":t=P(Ge.Months,be.Abbreviated,ve.Standalone);break;case"LLLL":t=P(Ge.Months,be.Wide,ve.Standalone);break;case"LLLLL":t=P(Ge.Months,be.Narrow,ve.Standalone);break;case"w":t=A(1);break;case"ww":t=A(2);break;case"W":t=A(1,!0);break;case"d":t=M(Ue.Date,1);break;case"dd":t=M(Ue.Date,2);break;case"E":case"EE":case"EEE":t=P(Ge.Days,be.Abbreviated);break;case"EEEE":t=P(Ge.Days,be.Wide);break;case"EEEEE":t=P(Ge.Days,be.Narrow);break;case"EEEEEE":t=P(Ge.Days,be.Short);break;case"a":case"aa":case"aaa":t=P(Ge.DayPeriods,be.Abbreviated);break;case"aaaa":t=P(Ge.DayPeriods,be.Wide);break;case"aaaaa":t=P(Ge.DayPeriods,be.Narrow);break;case"b":case"bb":case"bbb":t=P(Ge.DayPeriods,be.Abbreviated,ve.Standalone,!0);break;case"bbbb":t=P(Ge.DayPeriods,be.Wide,ve.Standalone,!0);break;case"bbbbb":t=P(Ge.DayPeriods,be.Narrow,ve.Standalone,!0);break;case"B":case"BB":case"BBB":t=P(Ge.DayPeriods,be.Abbreviated,ve.Format,!0);break;case"BBBB":t=P(Ge.DayPeriods,be.Wide,ve.Format,!0);break;case"BBBBB":t=P(Ge.DayPeriods,be.Narrow,ve.Format,!0);break;case"h":t=M(Ue.Hours,1,-12);break;case"hh":t=M(Ue.Hours,2,-12);break;case"H":t=M(Ue.Hours,1);break;case"HH":t=M(Ue.Hours,2);break;case"m":t=M(Ue.Minutes,1);break;case"mm":t=M(Ue.Minutes,2);break;case"s":t=M(Ue.Seconds,1);break;case"ss":t=M(Ue.Seconds,2);break;case"S":t=M(Ue.Milliseconds,1);break;case"SS":t=M(Ue.Milliseconds,2);break;case"SSS":t=M(Ue.Milliseconds,3);break;case"Z":case"ZZ":case"ZZZ":t=N(qe.Short);break;case"ZZZZZ":t=N(qe.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=N(qe.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=N(qe.Long);break;default:return null}return Ze[e]=t,t}(t);s+=r?r(e,n,a):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),s}(o,n,i||this.locale,r)},e}(),Xe=function(){function e(){}return e.format=function(e,t,n,r){void 0===r&&(r={});var i=r.currency,o=r.currencyAsSymbol,l=void 0!==o&&o,a={minimumIntegerDigits:r.minimumIntegerDigits,minimumFractionDigits:r.minimumFractionDigits,maximumFractionDigits:r.maximumFractionDigits,style:ge[n].toLowerCase()};return n==ge.Currency&&(a.currency="string"==typeof i?i:void 0,a.currencyDisplay=l?"symbol":"code"),new Intl.NumberFormat(t,a).format(e)},e}(),Je=/((?:[^yMLdHhmsazZEwGjJ']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|J+|j+|m+|s+|a|z|Z|G+|w+))(.*)/,et={yMMMdjms:$(K([U("year",1),G("month",3),U("day",1),U("hour",1),U("minute",1),U("second",1)])),yMdjm:$(K([U("year",1),U("month",1),U("day",1),U("hour",1),U("minute",1)])),yMMMMEEEEd:$(K([U("year",1),G("month",4),G("weekday",4),U("day",1)])),yMMMMd:$(K([U("year",1),G("month",4),U("day",1)])),yMMMd:$(K([U("year",1),G("month",3),U("day",1)])),yMd:$(K([U("year",1),U("month",1),U("day",1)])),jms:$(K([U("hour",1),U("second",1),U("minute",1)])),jm:$(K([U("hour",1),U("minute",1)]))},tt={yyyy:$(U("year",4)),yy:$(U("year",2)),y:$(U("year",1)),MMMM:$(G("month",4)),MMM:$(G("month",3)),MM:$(U("month",2)),M:$(U("month",1)),LLLL:$(G("month",4)),L:$(G("month",1)),dd:$(U("day",2)),d:$(U("day",1)),HH:z(B($(q(U("hour",2),!1)))),H:B($(q(U("hour",1),!1))),hh:z(B($(q(U("hour",2),!0)))),h:B($(q(U("hour",1),!0))),jj:$(U("hour",2)),j:$(U("hour",1)),mm:z($(U("minute",2))),m:$(U("minute",1)),ss:z($(U("second",2))),s:$(U("second",1)),sss:$(U("second",3)),EEEE:$(G("weekday",4)),EEE:$(G("weekday",3)),EE:$(G("weekday",2)),E:$(G("weekday",1)),a:function(e){return function(t,n){return e(t,n).split(" ")[1]}}($(q(U("hour",1),!0))),Z:W("short"),z:W("long"),ww:$({}),w:$({}),G:$(G("era",1)),GG:$(G("era",2)),GGG:$(G("era",3)),GGGG:$(G("era",4))},nt=new Map,rt=function(){function e(){}return e.format=function(e,t,n){return function(e,t,n){var r=et[e];if(r)return r(t,n);var i=e,o=nt.get(i);if(!o){o=[];var l=void 0;Je.exec(e);for(var a=e;a;)(l=Je.exec(a))?a=(o=o.concat(l.slice(1))).pop():(o.push(a),a=null);nt.set(i,o)}return o.reduce(function(e,r){var i=tt[r];return e+(i?i(t,n):"''"===r?"'":r.replace(/(^'|'$)/g,"").replace(/''/g,"'"))},"")}(n,e,t)},e}(),it=function(){function e(e){this._locale=e}return e.prototype.transform=function(t,n){if(void 0===n&&(n="mediumDate"),null==t||""===t||t!=t)return null;var r;if("string"==typeof t&&(t=t.trim()),Z(t))r=t;else if(isNaN(t-parseFloat(t)))if("string"==typeof t&&/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)){var i=t.split("-").map(function(e){return parseInt(e,10)}),o=i[0],l=i[1],a=i[2];r=new Date(o,l-1,a)}else r=new Date(t);else r=new Date(parseFloat(t));if(!Z(r)){var s=void 0;if("string"!=typeof t||!(s=t.match(Qe)))throw F(e,t);r=j(s)}return rt.format(r,this._locale,e._ALIASES[n]||n)},e._ALIASES={medium:"yMMMdjms",short:"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},e}(),ot=/^(\d+)?\.((\d+)(-(\d+))?)?$/,lt=22,at=".",st="0",ut=";",ct=",",dt="#",pt="\xa4",ft="%",ht=function(){function e(e){this._locale=e}return e.prototype.transform=function(t,n){return X(e,this._locale,t,ge.Decimal,n)},e}(),mt=function(){function e(e){this._locale=e}return e.prototype.transform=function(t,n){return X(e,this._locale,t,ge.Percent,n)},e}(),gt=function(){function e(e){this._locale=e}return e.prototype.transform=function(t,n,r,i){return void 0===n&&(n="USD"),void 0===r&&(r=!1),X(e,this._locale,t,ge.Currency,i,n,r)},e}(),yt=[ht,mt,gt,it],vt=function(){function e(){}return e.prototype.createSubscription=function(e,t){return e.subscribe({next:t,error:function(e){throw e}})},e.prototype.dispose=function(e){e.unsubscribe()},e.prototype.onDestroy=function(e){e.unsubscribe()},e}(),bt=new(function(){function e(){}return e.prototype.createSubscription=function(e,t){return e.then(t,function(e){throw e})},e.prototype.dispose=function(e){},e.prototype.onDestroy=function(e){},e}()),_t=new vt,wt=function(){function e(e){this._ref=e,this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null,this._strategy=null}return e.prototype.ngOnDestroy=function(){this._subscription&&this._dispose()},e.prototype.transform=function(e){return this._obj?e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue===this._latestReturnedValue?this._latestReturnedValue:(this._latestReturnedValue=this._latestValue,ie.WrappedValue.wrap(this._latestValue)):(e&&this._subscribe(e),this._latestReturnedValue=this._latestValue,this._latestValue)},e.prototype._subscribe=function(e){var t=this;this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,function(n){return t._updateLatestValue(e,n)})},e.prototype._selectStrategy=function(t){if(Object(ie["\u0275isPromise"])(t))return bt;if(Object(ie["\u0275isObservable"])(t))return _t;throw F(e,t)},e.prototype._dispose=function(){this._strategy.dispose(this._subscription),this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null},e.prototype._updateLatestValue=function(e,t){e===this._obj&&(this._latestValue=t,this._ref.markForCheck())},e}(),xt=function(){function e(){}return e.prototype.transform=function(t){if(!t)return t;if("string"!=typeof t)throw F(e,t);return t.toLowerCase()},e}(),Ct=function(){function e(){}return e.prototype.transform=function(t){if(!t)return t;if("string"!=typeof t)throw F(e,t);return t.split(/\b/g).map(function(e){return function(e){return e?e[0].toUpperCase()+e.substr(1).toLowerCase():e}(e)}).join("")},e}(),Et=function(){function e(){}return e.prototype.transform=function(t){if(!t)return t;if("string"!=typeof t)throw F(e,t);return t.toUpperCase()},e}(),St=/#/g,Ot=function(){function e(e){this._localization=e}return e.prototype.transform=function(t,n,r){if(null==t)return"";if("object"!=typeof n||null===n)throw F(e,n);return n[O(t,Object.keys(n),this._localization,r)].replace(St,t.toString())},e}(),Tt=function(){function e(){}return e.prototype.transform=function(t,n){if(null==t)return"";if("object"!=typeof n||"string"!=typeof t)throw F(e,n);return n.hasOwnProperty(t)?n[t]:n.hasOwnProperty("other")?n.other:""},e}(),kt=function(){function e(){}return e.prototype.transform=function(e){return JSON.stringify(e,null,2)},e}(),Dt=function(){function e(e){this._locale=e}return e.prototype.transform=function(t,n,r){if(J(t))return null;var i=Q(t,r=r||this._locale,ge.Decimal,n),o=i.str,l=i.error;if(l)throw F(e,l);return o},e}(),It=function(){function e(e){this._locale=e}return e.prototype.transform=function(t,n,r){if(J(t))return null;var i=Q(t,r=r||this._locale,ge.Percent,n),o=i.str,l=i.error;if(l)throw F(e,l);return o},e}(),Rt=function(){function e(e){this._locale=e}return e.prototype.transform=function(t,n,r,i,o){if(void 0===r&&(r="symbol"),J(t))return null;o=o||this._locale,"boolean"==typeof r&&(console&&console.warn&&console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are "code", "symbol" or "symbol-narrow".'),r=r?"symbol":"code");var l=n||"USD";"code"!==r&&(l=function(e,t){var n=fe[l]||{},i=n[0]||l;return"wide"==("symbol"===r?"wide":"narrow")?i:n[1]||i}());var a=Q(t,o,ge.Currency,i,l),s=a.str,u=a.error;if(u)throw F(e,u);return s},e}(),Mt=function(){function e(){}return e.prototype.transform=function(t,n,r){if(null==t)return t;if(!this.supports(t))throw F(e,t);return t.slice(n,r)},e.prototype.supports=function(e){return"string"==typeof e||Array.isArray(e)},e}(),Pt=[wt,Et,xt,kt,Mt,Dt,It,Ct,Rt,Ye,Ot,Tt],Nt=function(){},At=function(){},Lt=new ie.InjectionToken("DocumentToken"),Ft="browser",jt="server",Vt="browserWorkerApp",zt="browserWorkerUi",Bt=new ie.Version("5.1.1")},Upor:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("6Xbx"),i=function(e){function t(){var t=e.call(this,"object unsubscribed");this.name=t.name="ObjectUnsubscribedError",this.stack=t.stack,this.message=t.message}return Object(r.__extends)(t,e),t}(Error)},"V+0c":function(e,t,n){e.exports=!n("umMR")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},V7AE:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("xIGM").a.Symbol,i="function"==typeof r&&"function"==typeof r.for?r.for("rxSubscriber"):"@@rxSubscriber"},VceJ:function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},"WGJ/":function(e,t,n){var r=n("p/bR");e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},Wo2w:function(e,t,n){var r=n("VceJ");e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},WsSm:function(e,t,n){"use strict";var r=n("KGrn"),i=n("CDXM"),o=n("lfBE"),l=n("gxdV"),a=n("rMsi"),s=n("lexG"),u=n("9ScN"),c=n("P6IN"),d=n("TJLg"),p=n("3r0D")("iterator"),f=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,m,g,y,v){u(n,t,m);var b,_,w,x=function(e){if(!f&&e in O)return O[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},C=t+" Iterator",E="values"==g,S=!1,O=e.prototype,T=O[p]||O["@@iterator"]||g&&O[g],k=!f&&T||x(g),D=g?E?x("entries"):k:void 0,I="Array"==t?O.entries||T:T;if(I&&(w=d(I.call(new e)))!==Object.prototype&&w.next&&(c(w,C,!0),r||a(w,p)||l(w,p,h)),E&&T&&"values"!==T.name&&(S=!0,k=function(){return T.call(this)}),r&&!v||!f&&!S&&O[p]||l(O,p,k),s[t]=k,s[C]=h,g)if(b={values:E?k:x("values"),keys:y?k:x("keys"),entries:D},v)for(_ in b)_ in O||o(O,_,b[_]);else i(i.P+i.F*(f||S),t,b);return b}},Wy9r:function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"X0O/":function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=n("TJLg"),l=r.has,a=r.get,s=r.key,u=function(e,t,n){if(l(e,t,n))return a(e,t,n);var r=o(t);return null!==r?u(e,r,n):void 0};r.exp({getMetadata:function(e,t){return u(e,i(t),arguments.length<3?void 0:s(arguments[2]))}})},X3fp:function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(e){var t=e.Symbol;if("function"==typeof t)return t.iterator||(t.iterator=t("iterator polyfill")),t.iterator;var n=e.Set;if(n&&"function"==typeof(new n)["@@iterator"])return"@@iterator";var r=e.Map;if(r)for(var i=Object.getOwnPropertyNames(r.prototype),o=0;o<i.length;++o){var l=i[o];if("entries"!==l&&"size"!==l&&r.prototype[l]===r.prototype.entries)return l}return"@@iterator"}(n("xIGM").a)},XRS9:function(e,t,n){"use strict";var r=n("pBmS"),i=n("xI8H").getWeak,o=n("+pQw"),l=n("JXkd"),a=n("Lcie"),s=n("p/bR"),u=n("BCYq"),c=n("rMsi"),d=n("Y5fy"),p=u(5),f=u(6),h=0,m=function(e){return e._l||(e._l=new g)},g=function(){this.a=[]},y=function(e,t){return p(e.a,function(e){return e[0]===t})};g.prototype={get:function(e){var t=y(this,e);if(t)return t[1]},has:function(e){return!!y(this,e)},set:function(e,t){var n=y(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=f(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,o){var u=e(function(e,r){a(e,u,t,"_i"),e._t=t,e._i=h++,e._l=void 0,void 0!=r&&s(r,n,e[o],e)});return r(u.prototype,{delete:function(e){if(!l(e))return!1;var n=i(e);return!0===n?m(d(this,t)).delete(e):n&&c(n,this._i)&&delete n[this._i]},has:function(e){if(!l(e))return!1;var n=i(e);return!0===n?m(d(this,t)).has(e):n&&c(n,this._i)}}),u},def:function(e,t,n){var r=i(o(t),!0);return!0===r?m(e).set(t,n):r[e._i]=n,e},ufstore:m}},Y5fy:function(e,t,n){var r=n("JXkd");e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},YRqN:function(e,t,n){"use strict";t.b=function(e,t){return void 0===t&&(t=0),function(n){return n.lift(new l(e,t))}},n.d(t,"a",function(){return a});var r=n("6Xbx"),i=n("E9/g"),o=n("PAZ8"),l=function(){function e(e,t){void 0===t&&(t=0),this.scheduler=e,this.delay=t}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.scheduler,this.delay))},e}(),a=function(e){function t(t,n,r){void 0===r&&(r=0),e.call(this,t),this.scheduler=n,this.delay=r}return Object(r.__extends)(t,e),t.dispatch=function(e){e.notification.observe(e.destination),this.unsubscribe()},t.prototype.scheduleMessage=function(e){this.add(this.scheduler.schedule(t.dispatch,this.delay,new s(e,this.destination)))},t.prototype._next=function(e){this.scheduleMessage(o.a.createNext(e))},t.prototype._error=function(e){this.scheduleMessage(o.a.createError(e))},t.prototype._complete=function(){this.scheduleMessage(o.a.createComplete())},t}(i.a),s=function(e,t){this.notification=e,this.destination=t}},YuZA:function(e,t){function n(e){return Promise.resolve().then(function(){throw new Error("Cannot find module '"+e+"'.")})}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id="YuZA"},ZI9W:function(e,t,n){"use strict";var r=n("3LDD"),i=n("Y5fy");e.exports=n("cpZ/")("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(i(this,"Map"),0===e?0:e,t)}},r,!0)},"a/Sk":function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},a7b8:function(e,t,n){var r=n("JXkd"),i=n("rKhO"),o=n("3r0D")("species");e.exports=function(e){var t;return i(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&null===(t=t[o])&&(t=void 0)),void 0===t?Array:t}},b4gG:function(e,t){var n=e.exports={version:"2.5.3"};"number"==typeof __e&&(__e=n)},bbdN:function(e,t,n){var r,i=i||function(e){"use strict";if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=function(){return e.URL||e.webkitURL||e},n=e.document.createElementNS("http://www.w3.org/1999/xhtml","a"),r="download"in n,i=/constructor/i.test(e.HTMLElement)||e.safari,o=/CriOS\/[\d]+/.test(navigator.userAgent),l=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},a=function(e){setTimeout(function(){"string"==typeof e?t().revokeObjectURL(e):e.remove()},4e4)},s=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},u=function(u,c,d){d||(u=s(u));var p,f=this,h="application/octet-stream"===u.type,m=function(){!function(e,t,n){for(var r=(t=[].concat(t)).length;r--;){var i=e["on"+t[r]];if("function"==typeof i)try{i.call(e,e)}catch(e){l(e)}}}(f,"writestart progress write writeend".split(" "))};if(f.readyState=f.INIT,r)return p=t().createObjectURL(u),void setTimeout(function(){n.href=p,n.download=c,function(e){var t=new MouseEvent("click");e.dispatchEvent(t)}(n),m(),a(p),f.readyState=f.DONE});!function(){if((o||h&&i)&&e.FileReader){var n=new FileReader;return n.onloadend=function(){var t=o?n.result:n.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,f.readyState=f.DONE,m()},n.readAsDataURL(u),void(f.readyState=f.INIT)}p||(p=t().createObjectURL(u)),h?e.location.href=p:e.open(p,"_blank")||(e.location.href=p),f.readyState=f.DONE,m(),a(p)}()},c=u.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return t=t||e.name||"download",n||(e=s(e)),navigator.msSaveOrOpenBlob(e,t)}:(c.abort=function(){},c.readyState=c.INIT=0,c.WRITING=1,c.DONE=2,c.error=c.onwritestart=c.onprogress=c.onwrite=c.onabort=c.onerror=c.onwriteend=null,function(e,t,n){return new u(e,t||e.name||"download",n)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);void 0!==e&&e.exports?e.exports.saveAs=i:null!==n("MwgA")&&null!==n("f8Ud")&&(void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r))},bywS:function(e,t,n){"use strict";function r(e){return e}var i=n("wP3s");t.a=function(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),Object(i.a)(r,null,e)}},c09d:function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},cDNt:function(e,t,n){"use strict";function r(){if(null==ol)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){return ol=!0}}))}finally{ol=ol||!1}return ol}function i(){if(ll)return ll;if("object"!=typeof document||!document)return ll=new Set(fl);var e=document.createElement("input");return ll=new Set(fl.filter(function(t){return e.setAttribute("type",t),e.type===t}))}function o(e,t){return void 0===t&&(t=Tl),function(e){return function(t){return t.lift(new Il(e))}}(function(){return Nl(e,t)})}function l(e,t,n){return e||new Fl(t,n)}function a(e,t,n){return e||new jl(t,n)}function s(){throw Error("Host already has a portal attached")}function u(e){return function(t){return 0===e?new Jl.a:t.lift(new ea(e))}}function c(e){return null!=e&&""+e!="false"}function d(e,t){return void 0===t&&(t=0),isNaN(parseFloat(e))||isNaN(Number(e))?t:Number(e)}function p(e){return Array.isArray(e)?e:[e]}function f(){return Error("Scroll strategy has already been attached.")}function h(e,t){return t.some(function(t){return e.bottom<t.top||e.top>t.bottom||e.right<t.left||e.left>t.right})}function m(e,t){return t.some(function(t){return e.top<t.top||e.bottom>t.bottom||e.left<t.left||e.right>t.right})}function g(e){return"string"==typeof e?e:e+"px"}function y(e,t){return e||new pa(t)}function v(e,t){return e||new fa(t)}function b(e){return function(){return e.scrollStrategies.reposition()}}function _(e,t){return void 0===t&&(t=Tl),function(n){return n.lift(new ba(e,t))}}function w(e){e.debouncedNext()}function x(e,t,n){return function(r){return r.lift(new xa(e,t,n))}}function C(e){if(!e.hasAttribute("tabindex")||void 0===e.tabIndex)return!1;var t=e.getAttribute("tabindex");return"-32768"!=t&&!(!t||isNaN(parseInt(t,10)))}function E(e){if(!C(e))return null;var t=parseInt(e.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}function S(e,t){return(e.getAttribute(t)||"").match(/\S+/g)||[]}function O(e,t){return e||new Pa(t)}function T(e,t,n){return e||new Aa(t,n)}function k(e,t,n){return e||new La(t,n)}function D(e){return function(e){function t(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=e.apply(this,t)||this;return r._disabled=!1,r}return Object(bl.__extends)(t,e),Object.defineProperty(t.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=c(e)},enumerable:!0,configurable:!0}),t}(e)}function I(e,t){return function(e){function n(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var i=e.apply(this,n)||this;return i.color=t,i}return Object(bl.__extends)(n,e),Object.defineProperty(n.prototype,"color",{get:function(){return this._color},set:function(e){var n=e||t;n!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove("mat-"+this._color),n&&this._elementRef.nativeElement.classList.add("mat-"+n),this._color=n)},enumerable:!0,configurable:!0}),n}(e)}function R(e){return function(e){function t(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=e.apply(this,t)||this;return r._disableRipple=!1,r}return Object(bl.__extends)(t,e),Object.defineProperty(t.prototype,"disableRipple",{get:function(){return this._disableRipple},set:function(e){this._disableRipple=c(e)},enumerable:!0,configurable:!0}),t}(e)}function M(e,t){for(var n=Array(e),r=0;r<e;r++)n[r]=t(r);return n}function P(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return function(t){var n=e[e.length-1];Object(Pl.a)(n)?e.pop():n=null;var r=e.length;return function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return 1===e.length||2===e.length&&Object(Pl.a)(e[1])?Ds(e[0]):Object(Is.a)(1)(vl.apply(void 0,e))}(1===r?new gs.a(e[0],n):r>1?new yl.a(e,n):new Jl.a(n),t)}}function N(){throw Error("Attempting to attach dialog content after content is already attached")}function A(e){return function(){return e.scrollStrategies.block()}}function L(e){return al["\u0275vid"](0,[(e()(),al["\u0275and"](0,null,null,0))],null,null)}function F(e){return al["\u0275vid"](0,[al["\u0275qud"](402653184,1,{_portalOutlet:0}),(e()(),al["\u0275and"](16777216,null,null,1,null,L)),al["\u0275did"](2,212992,[[1,4]],0,$l,[al.ComponentFactoryResolver,al.ViewContainerRef],{portal:[0,"portal"]},null)],function(e,t){e(t,2,0,"")},null)}function j(e){return function(t){var n=new Ys(e),r=t.lift(n);return n.caught=r}}function V(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}function z(e){return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer}function B(e){return"undefined"!=typeof Blob&&e instanceof Blob}function H(e){return"undefined"!=typeof FormData&&e instanceof FormData}function W(e,t){return{body:t,headers:e.headers,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials}}function q(e,t){return void 0===t&&(t=[]),t?t.reduceRight(function(e,t){return new yu(e,t)},e):e}function U(e){return Error('Unable to find icon with the name "'+e+'"')}function G(e){return Error("The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was \""+e+'".')}function K(e,t,n){return e||new Nu(t,n)}function $(e){return e.cloneNode(!0)}function Z(e,t){return e+":"+t}function Q(e){return Error("A hint was already declared for 'align=\""+e+"\"'.")}function Y(e){return Error("MatDatepicker: No provider found for "+e+". You must import one of the following modules at your application root: MatNativeDateModule, MatMomentDateModule, or provide a custom implementation.")}function X(e){return function(){return e.scrollStrategies.reposition()}}function J(e){return al["\u0275vid"](2,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[["class","mat-button-wrapper"]],null,null,null,null,null)),al["\u0275ncd"](null,0),(e()(),al["\u0275eld"](2,0,null,null,1,"div",[["class","mat-button-ripple mat-ripple"],["matRipple",""]],[[2,"mat-button-ripple-round",null],[2,"mat-ripple-unbounded",null]],null,null,null,null)),al["\u0275did"](3,671744,null,0,ss,[al.ElementRef,al.NgZone,pl,[2,as]],{trigger:[0,"trigger"],centered:[1,"centered"],disabled:[2,"disabled"]},null),(e()(),al["\u0275eld"](4,0,null,null,0,"div",[["class","mat-button-focus-overlay"]],null,null,null,null,null))],function(e,t){var n=t.component;e(t,3,0,n._getHostElement(),n._isIconButton,n._isRippleDisabled())},function(e,t){var n=t.component;e(t,2,0,n._isRoundButton||n._isIconButton,al["\u0275nov"](t,3).unbounded)})}function ee(e){return al["\u0275vid"](2,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[["class","mat-button-wrapper"]],null,null,null,null,null)),al["\u0275ncd"](null,0),(e()(),al["\u0275eld"](2,0,null,null,1,"div",[["class","mat-button-ripple mat-ripple"],["matRipple",""]],[[2,"mat-button-ripple-round",null],[2,"mat-ripple-unbounded",null]],null,null,null,null)),al["\u0275did"](3,671744,null,0,ss,[al.ElementRef,al.NgZone,pl,[2,as]],{trigger:[0,"trigger"],centered:[1,"centered"],disabled:[2,"disabled"]},null),(e()(),al["\u0275eld"](4,0,null,null,0,"div",[["class","mat-button-focus-overlay"]],null,null,null,null,null))],function(e,t){var n=t.component;e(t,3,0,n._getHostElement(),n._isIconButton,n._isRippleDisabled())},function(e,t){var n=t.component;e(t,2,0,n._isRoundButton||n._isIconButton,al["\u0275nov"](t,3).unbounded)})}function te(e){return al["\u0275vid"](2,[al["\u0275ncd"](null,0)],null,null)}function ne(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"mat-month-view",[],null,[[null,"selectedChange"],[null,"_userSelection"]],function(e,t,n){var r=!0,i=e.component;return"selectedChange"===t&&(r=!1!==i._dateSelected(n)&&r),"_userSelection"===t&&(r=!1!==i._userSelected()&&r),r},pe,uc)),al["\u0275did"](1,1097728,[[1,4]],0,Qu,[[2,Wa],[2,qa],al.ChangeDetectorRef],{activeDate:[0,"activeDate"],selected:[1,"selected"],dateFilter:[2,"dateFilter"]},{selectedChange:"selectedChange",_userSelection:"_userSelection"})],function(e,t){var n=t.component;e(t,1,0,n._activeDate,n.selected,n._dateFilterForViews)},null)}function re(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"mat-year-view",[],null,[[null,"selectedChange"]],function(e,t,n){var r=!0;return"selectedChange"===t&&(r=!1!==e.component._monthSelected(n)&&r),r},fe,cc)),al["\u0275did"](1,1097728,[[2,4]],0,Yu,[[2,Wa],[2,qa],al.ChangeDetectorRef],{activeDate:[0,"activeDate"],selected:[1,"selected"],dateFilter:[2,"dateFilter"]},{selectedChange:"selectedChange"})],function(e,t){var n=t.component;e(t,1,0,n._activeDate,n.selected,n._dateFilterForViews)},null)}function ie(e){return al["\u0275vid"](2,[al["\u0275qud"](671088640,1,{monthView:0}),al["\u0275qud"](671088640,2,{yearView:0}),(e()(),al["\u0275eld"](2,0,null,null,13,"div",[["class","mat-calendar-header"]],null,null,null,null,null)),(e()(),al["\u0275eld"](3,0,null,null,12,"div",[["class","mat-calendar-controls"]],null,null,null,null,null)),(e()(),al["\u0275eld"](4,0,null,null,4,"button",[["class","mat-calendar-period-button mat-button"],["mat-button",""]],[[1,"aria-label",0],[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component._currentPeriodClicked()&&r),r},J,nc)),al["\u0275did"](5,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](6,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](7,0,["",""])),(e()(),al["\u0275eld"](8,0,null,0,0,"div",[["class","mat-calendar-arrow"]],[[2,"mat-calendar-invert",null]],null,null,null,null)),(e()(),al["\u0275eld"](9,0,null,null,0,"div",[["class","mat-calendar-spacer"]],null,null,null,null,null)),(e()(),al["\u0275eld"](10,0,null,null,2,"button",[["class","mat-calendar-previous-button mat-icon-button"],["mat-icon-button",""]],[[1,"aria-label",0],[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component._previousClicked()&&r),r},J,nc)),al["\u0275did"](11,180224,null,0,$s,[al.ElementRef,pl,La],{disabled:[0,"disabled"]},null),al["\u0275did"](12,16384,null,0,Ks,[],null,null),(e()(),al["\u0275eld"](13,0,null,null,2,"button",[["class","mat-calendar-next-button mat-icon-button"],["mat-icon-button",""]],[[1,"aria-label",0],[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component._nextClicked()&&r),r},J,nc)),al["\u0275did"](14,180224,null,0,$s,[al.ElementRef,pl,La],{disabled:[0,"disabled"]},null),al["\u0275did"](15,16384,null,0,Ks,[],null,null),(e()(),al["\u0275eld"](16,0,null,null,6,"div",[["cdkMonitorSubtreeFocus",""],["class","mat-calendar-content"]],null,[[null,"keydown"]],function(e,t,n){var r=!0;return"keydown"===t&&(r=!1!==e.component._handleCalendarBodyKeydown(n)&&r),r},null,null)),al["\u0275did"](17,16384,null,0,cl.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),al["\u0275did"](18,147456,null,0,Fa,[al.ElementRef,La],null,null),(e()(),al["\u0275and"](16777216,null,null,1,null,ne)),al["\u0275did"](20,278528,null,0,cl.NgSwitchCase,[al.ViewContainerRef,al.TemplateRef,cl.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,re)),al["\u0275did"](22,16384,null,0,cl.NgSwitchDefault,[al.ViewContainerRef,al.TemplateRef,cl.NgSwitch],null,null)],function(e,t){var n=t.component;e(t,11,0,!n._previousEnabled()),e(t,14,0,!n._nextEnabled()),e(t,17,0,n._monthView),e(t,20,0,!0)},function(e,t){var n=t.component;e(t,4,0,n._periodButtonLabel,al["\u0275nov"](t,5).disabled||null),e(t,7,0,n._periodButtonText),e(t,8,0,!n._monthView),e(t,10,0,n._prevButtonLabel,al["\u0275nov"](t,11).disabled||null),e(t,13,0,n._nextButtonLabel,al["\u0275nov"](t,14).disabled||null)})}function oe(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"tr",[["aria-hidden","true"]],null,null,null,null,null)),(e()(),al["\u0275eld"](1,0,null,null,1,"td",[["class","mat-calendar-body-label"]],[[1,"colspan",0],[4,"paddingTop","%"],[4,"paddingBottom","%"]],null,null,null,null)),(e()(),al["\u0275ted"](2,null,["",""]))],null,function(e,t){var n=t.component;e(t,1,0,n.numCols,50*n.cellAspectRatio/n.numCols,50*n.cellAspectRatio/n.numCols),e(t,2,0,n.label)})}function le(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"td",[["aria-hidden","true"],["class","mat-calendar-body-label"]],[[1,"colspan",0],[4,"paddingTop","%"],[4,"paddingBottom","%"]],null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){var n=t.component;e(t,0,0,n._firstRowOffset,50*n.cellAspectRatio/n.numCols,50*n.cellAspectRatio/n.numCols),e(t,1,0,n._firstRowOffset>=n.labelMinRequiredCells?n.label:"")})}function ae(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"td",[["class","mat-calendar-body-cell"],["role","gridcell"]],[[8,"tabIndex",0],[2,"mat-calendar-body-disabled",null],[2,"mat-calendar-body-active",null],[1,"aria-label",0],[1,"aria-disabled",0],[4,"width","%"],[4,"paddingTop","%"],[4,"paddingBottom","%"]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component._cellClicked(e.context.$implicit)&&r),r},null,null)),(e()(),al["\u0275eld"](1,0,null,null,1,"div",[["class","mat-calendar-body-cell-content"]],[[2,"mat-calendar-body-selected",null],[2,"mat-calendar-body-today",null]],null,null,null,null)),(e()(),al["\u0275ted"](2,null,["",""]))],null,function(e,t){var n=t.component;e(t,0,0,n._isActiveCell(t.parent.context.index,t.context.index)?0:-1,!t.context.$implicit.enabled,n._isActiveCell(t.parent.context.index,t.context.index),t.context.$implicit.ariaLabel,!t.context.$implicit.enabled||null,100/n.numCols,50*n.cellAspectRatio/n.numCols,50*n.cellAspectRatio/n.numCols),e(t,1,0,n.selectedValue===t.context.$implicit.value,n.todayValue===t.context.$implicit.value),e(t,2,0,t.context.$implicit.displayValue)})}function se(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"tr",[["role","row"]],null,null,null,null,null)),(e()(),al["\u0275and"](16777216,null,null,1,null,le)),al["\u0275did"](2,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,ae)),al["\u0275did"](4,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(e,t){e(t,2,0,0===t.context.index&&t.component._firstRowOffset),e(t,4,0,t.context.$implicit)},null)}function ue(e){return al["\u0275vid"](2,[(e()(),al["\u0275and"](16777216,null,null,1,null,oe)),al["\u0275did"](1,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,se)),al["\u0275did"](3,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(e,t){var n=t.component;e(t,1,0,n._firstRowOffset<n.labelMinRequiredCells),e(t,3,0,n.rows)},null)}function ce(e){return al["\u0275vid"](2,[al["\u0275qud"](402653184,1,{_calendar:0}),(e()(),al["\u0275eld"](1,0,null,null,3,"mat-calendar",[["cdkTrapFocus",""],["class","mat-calendar"]],[[8,"id",0]],[[null,"selectedChange"],[null,"_userSelection"]],function(e,t,n){var r=!0,i=e.component;return"selectedChange"===t&&(r=!1!==i.datepicker._select(n)&&r),"_userSelection"===t&&(r=!1!==i.datepicker.close()&&r),r},ie,oc)),al["\u0275did"](2,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275did"](3,1196032,null,0,Ta,[al.ElementRef,Oa,cl.DOCUMENT],{enabled:[0,"enabled"]},null),al["\u0275did"](4,1753088,[[1,4]],0,Xu,[al.ElementRef,Ku,al.NgZone,[2,Wa],[2,qa],al.ChangeDetectorRef],{startAt:[0,"startAt"],startView:[1,"startView"],selected:[2,"selected"],minDate:[3,"minDate"],maxDate:[4,"maxDate"],dateFilter:[5,"dateFilter"]},{selectedChange:"selectedChange",_userSelection:"_userSelection"})],function(e,t){var n=t.component;e(t,2,0,n.datepicker.panelClass),e(t,3,0,""),e(t,4,0,n.datepicker.startAt,n.datepicker.startView,n.datepicker._selected,n.datepicker._minDate,n.datepicker._maxDate,n.datepicker._dateFilter)},function(e,t){e(t,1,0,t.component.datepicker.id)})}function de(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"th",[],[[1,"aria-label",0]],null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,0,0,t.context.$implicit.long),e(t,1,0,t.context.$implicit.narrow)})}function pe(e){return al["\u0275vid"](2,[(e()(),al["\u0275eld"](0,0,null,null,8,"table",[["class","mat-calendar-table"]],null,null,null,null,null)),(e()(),al["\u0275eld"](1,0,null,null,5,"thead",[["class","mat-calendar-table-header"]],null,null,null,null,null)),(e()(),al["\u0275eld"](2,0,null,null,2,"tr",[],null,null,null,null,null)),(e()(),al["\u0275and"](16777216,null,null,1,null,de)),al["\u0275did"](4,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275eld"](5,0,null,null,1,"tr",[],null,null,null,null,null)),(e()(),al["\u0275eld"](6,0,null,null,0,"th",[["aria-hidden","true"],["class","mat-calendar-table-header-divider"],["colspan","7"]],null,null,null,null,null)),(e()(),al["\u0275eld"](7,0,null,null,1,"tbody",[["class","mat-calendar-body"],["mat-calendar-body",""],["role","grid"]],null,[[null,"selectedValueChange"]],function(e,t,n){var r=!0;return"selectedValueChange"===t&&(r=!1!==e.component._dateSelected(n)&&r),r},ue,lc)),al["\u0275did"](8,49152,null,0,Zu,[],{label:[0,"label"],rows:[1,"rows"],todayValue:[2,"todayValue"],selectedValue:[3,"selectedValue"],labelMinRequiredCells:[4,"labelMinRequiredCells"],activeCell:[5,"activeCell"]},{selectedValueChange:"selectedValueChange"})],function(e,t){var n=t.component;e(t,4,0,n._weekdays),e(t,8,0,n._monthLabel,n._weeks,n._todayDate,n._selectedDate,3,n._dateAdapter.getDate(n.activeDate)-1)},null)}function fe(e){return al["\u0275vid"](2,[(e()(),al["\u0275eld"](0,0,null,null,5,"table",[["class","mat-calendar-table"]],null,null,null,null,null)),(e()(),al["\u0275eld"](1,0,null,null,2,"thead",[["class","mat-calendar-table-header"]],null,null,null,null,null)),(e()(),al["\u0275eld"](2,0,null,null,1,"tr",[],null,null,null,null,null)),(e()(),al["\u0275eld"](3,0,null,null,0,"th",[["class","mat-calendar-table-header-divider"],["colspan","4"]],null,null,null,null,null)),(e()(),al["\u0275eld"](4,0,null,null,1,"tbody",[["allowDisabledSelection","true"],["class","mat-calendar-body"],["mat-calendar-body",""],["role","grid"]],null,[[null,"selectedValueChange"]],function(e,t,n){var r=!0;return"selectedValueChange"===t&&(r=!1!==e.component._monthSelected(n)&&r),r},ue,lc)),al["\u0275did"](5,49152,null,0,Zu,[],{label:[0,"label"],rows:[1,"rows"],todayValue:[2,"todayValue"],selectedValue:[3,"selectedValue"],labelMinRequiredCells:[4,"labelMinRequiredCells"],numCols:[5,"numCols"],allowDisabledSelection:[6,"allowDisabledSelection"],activeCell:[7,"activeCell"],cellAspectRatio:[8,"cellAspectRatio"]},{selectedValueChange:"selectedValueChange"})],function(e,t){var n=t.component;e(t,5,0,n._yearLabel,n._months,n._todayMonth,n._selectedMonth,2,4,"true",n._dateAdapter.getMonth(n.activeDate),4/7)},null)}function he(e){return function(){return e.scrollStrategies.reposition({scrollThrottle:dc})}}function me(e){return al["\u0275vid"](2,[(e()(),al["\u0275eld"](0,0,null,null,2,"div",[["class","mat-tooltip"]],[[4,"transform-origin",null],[24,"@state",0]],[[null,"@state.start"],[null,"@state.done"]],function(e,t,n){var r=!0,i=e.component;return"@state.start"===t&&(r=!1!==i._animationStart()&&r),"@state.done"===t&&(r=!1!==i._animationDone(n)&&r),r},null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(e()(),al["\u0275ted"](2,null,["",""]))],function(e,t){e(t,1,0,"mat-tooltip",t.component.tooltipClass)},function(e,t){var n=t.component;e(t,0,0,n._transformOrigin,n._visibility),e(t,2,0,n.message)})}function ge(e){return{matches:"all"===e||""===e,media:e,addListener:function(){},removeListener:function(){}}}function ye(e){return Object(bl.__assign)({},new Tc,e)}function ve(e){return al["\u0275vid"](0,[(e()(),al["\u0275and"](0,null,null,0))],null,null)}function be(e){return al["\u0275vid"](2,[al["\u0275qud"](402653184,1,{_portalOutlet:0}),(e()(),al["\u0275and"](16777216,null,null,1,null,ve)),al["\u0275did"](2,212992,[[1,4]],0,$l,[al.ComponentFactoryResolver,al.ViewContainerRef],{portal:[0,"portal"]},null)],function(e,t){e(t,2,0,"")},null)}function _e(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"button",[["class","mat-simple-snackbar-action"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.action()&&r),r},null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,1,0,t.component.data.action)})}function we(e){return al["\u0275vid"](2,[(e()(),al["\u0275ted"](0,null,[""," "])),(e()(),al["\u0275and"](16777216,null,null,1,null,_e)),al["\u0275did"](2,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(e,t){e(t,2,0,t.component.hasAction)},function(e,t){e(t,0,0,t.component.data.message)})}function xe(e){return e||new Vc}function Ce(e){return Error('Could not find column with id "'+e+'".')}function Ee(e){return al["\u0275vid"](2,[al["\u0275qud"](402653184,1,{_rowPlaceholder:0}),al["\u0275qud"](402653184,2,{_headerRowPlaceholder:0}),(e()(),al["\u0275eld"](2,16777216,null,null,1,null,null,null,null,null,null,null)),al["\u0275did"](3,16384,[[2,4]],0,Zc,[al.ViewContainerRef],null,null),(e()(),al["\u0275eld"](4,16777216,null,null,1,null,null,null,null,null,null,null)),al["\u0275did"](5,16384,[[1,4]],0,$c,[al.ViewContainerRef],null,null)],null,null)}function Se(e){return al["\u0275vid"](2,[(e()(),al["\u0275eld"](0,16777216,null,null,1,null,null,null,null,null,null,null)),al["\u0275did"](1,16384,null,0,qc,[al.ViewContainerRef],null,null)],null,null)}function Oe(e){return al["\u0275vid"](2,[(e()(),al["\u0275eld"](0,16777216,null,null,1,null,null,null,null,null,null,null)),al["\u0275did"](1,16384,null,0,qc,[al.ViewContainerRef],null,null)],null,null)}function Te(e){return al["\u0275vid"](2,[al["\u0275ncd"](null,0),al["\u0275ncd"](null,1)],null,null)}function ke(e){return al["\u0275vid"](2,[al["\u0275ncd"](null,0),al["\u0275ncd"](null,1)],null,null)}function De(e){return al["\u0275vid"](0,[al["\u0275qud"](402653184,1,{hostMetadata:0}),(e()(),al["\u0275eld"](1,0,[[1,0],["hostMetadata",1]],null,0,"textarea",[["class","textarea-metadata"]],null,null,null,null,null))],null,null)}function Ie(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,45,"mat-card",[["class","input-card mat-card"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onClick()&&r),r},Te,gd)),al["\u0275did"](2,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](4,0,null,0,12,"mat-toolbar",[["class","input-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](5,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,1,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](8,0,null,0,2,"mat-icon",[["class","toolbar-icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](9,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](12,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["INPUT: SQL++"])),(e()(),al["\u0275ted"](-1,0,["\t\n "])),(e()(),al["\u0275eld"](15,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](18,0,null,0,13,"mat-card-content",[["class","content-area mat-card-content"]],null,null,null,null,null)),al["\u0275did"](19,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](21,0,null,null,9,"div",[["class","codemirror-container"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](23,0,null,null,6,"codemirror-metadata",[["class","code"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"]],function(e,t,n){var r=!0;return"ngModelChange"===t&&(r=!1!==(e.component.queryMetadataString=n)&&r),r},De,xd)),al["\u0275did"](24,4374528,null,0,wd,[],{config:[0,"config"]},null),al["\u0275prd"](1024,null,Fu.NG_VALUE_ACCESSOR,function(e){return[e]},[wd]),al["\u0275did"](26,671744,null,0,Fu.NgModel,[[8,null],[8,null],[8,null],[2,Fu.NG_VALUE_ACCESSOR]],{model:[0,"model"]},{update:"ngModelChange"}),al["\u0275prd"](2048,null,Fu.NgControl,null,[Fu.NgModel]),al["\u0275did"](28,16384,null,0,Fu.NgControlStatus,[Fu.NgControl],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,[" \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](33,0,null,0,12,"mat-card-actions",[["class","actions mat-card-actions"]],[[2,"mat-card-actions-align-end",null]],null,null,null,null)),al["\u0275did"](34,16384,null,0,fd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](36,0,null,null,3,"button",[["class","query-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.executeQuery()&&r),r},J,nc)),al["\u0275did"](37,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](38,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["RUN"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](41,0,null,null,1,"span",[["class","error-message"]],null,null,null,null,null)),(e()(),al["\u0275ted"](42,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](44,0,null,null,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n"]))],function(e,t){var n=t.component;e(t,5,0,"primary"),e(t,9,0),e(t,24,0,n.codemirrorMetadataConfig),e(t,26,0,n.queryMetadataString)},function(e,t){var n=t.component;e(t,4,0,al["\u0275nov"](t,5)._toolbarRows.length,!al["\u0275nov"](t,5)._toolbarRows.length),e(t,23,0,al["\u0275nov"](t,28).ngClassUntouched,al["\u0275nov"](t,28).ngClassTouched,al["\u0275nov"](t,28).ngClassPristine,al["\u0275nov"](t,28).ngClassDirty,al["\u0275nov"](t,28).ngClassValid,al["\u0275nov"](t,28).ngClassInvalid,al["\u0275nov"](t,28).ngClassPending),e(t,33,0,"end"===al["\u0275nov"](t,34).align),e(t,36,0,al["\u0275nov"](t,37).disabled||null),e(t,42,0,n.errorMessage)})}function Re(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"div",[["class","mat-input-prefix mat-form-field-prefix"]],null,null,null,null,null)),al["\u0275ncd"](null,0)],null,null)}function Me(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,null,null,null,null,null,null,null)),al["\u0275ncd"](null,2),(e()(),al["\u0275ted"](2,null,["",""]))],null,function(e,t){e(t,2,0,t.component._control.placeholder)})}function Pe(e){return al["\u0275vid"](0,[al["\u0275ncd"](null,3),(e()(),al["\u0275and"](0,null,null,0))],null,null)}function Ne(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[["aria-hidden","true"],["class","mat-placeholder-required mat-form-field-required-marker"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\xa0*"]))],null,null)}function Ae(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,[[4,0],["label",1]],null,7,"label",[["class","mat-form-field-label mat-input-placeholder mat-form-field-placeholder"]],[[1,"for",0],[1,"aria-owns",0],[2,"mat-empty",null],[2,"mat-form-field-empty",null],[2,"mat-accent",null],[2,"mat-warn",null]],null,null,null,null)),al["\u0275did"](1,16384,null,0,cl.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,Me)),al["\u0275did"](3,278528,null,0,cl.NgSwitchCase,[al.ViewContainerRef,al.TemplateRef,cl.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,Pe)),al["\u0275did"](5,278528,null,0,cl.NgSwitchCase,[al.ViewContainerRef,al.TemplateRef,cl.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,Ne)),al["\u0275did"](7,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(e,t){var n=t.component;e(t,1,0,n._hasLabel()),e(t,3,0,!1),e(t,5,0,!0),e(t,7,0,!n.hideRequiredMarker&&n._control.required)},function(e,t){var n=t.component;e(t,0,0,n._control.id,n._control.id,n._control.empty&&!n._shouldAlwaysFloat,n._control.empty&&!n._shouldAlwaysFloat,"accent"==n.color,"warn"==n.color)})}function Le(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"div",[["class","mat-input-suffix mat-form-field-suffix"]],null,null,null,null,null)),al["\u0275ncd"](null,4)],null,null)}function Fe(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"div",[],[[24,"@transitionMessages",0]],null,null,null,null)),al["\u0275ncd"](null,5)],null,function(e,t){e(t,0,0,t.component._subscriptAnimationState)})}function je(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"div",[["class","mat-hint"]],[[8,"id",0]],null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){var n=t.component;e(t,0,0,n._hintLabelId),e(t,1,0,n.hintLabel)})}function Ve(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,5,"div",[["class","mat-input-hint-wrapper mat-form-field-hint-wrapper"]],[[24,"@transitionMessages",0]],null,null,null,null)),(e()(),al["\u0275and"](16777216,null,null,1,null,je)),al["\u0275did"](2,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),al["\u0275ncd"](null,6),(e()(),al["\u0275eld"](4,0,null,null,0,"div",[["class","mat-input-hint-spacer mat-form-field-hint-spacer"]],null,null,null,null,null)),al["\u0275ncd"](null,7)],function(e,t){e(t,2,0,t.component.hintLabel)},function(e,t){e(t,0,0,t.component._subscriptAnimationState)})}function ze(e){return al["\u0275vid"](2,[al["\u0275qud"](402653184,1,{underlineRef:0}),al["\u0275qud"](402653184,2,{_connectionContainerRef:0}),al["\u0275qud"](402653184,3,{_inputContainerRef:0}),al["\u0275qud"](671088640,4,{_label:0}),(e()(),al["\u0275eld"](4,0,null,null,18,"div",[["class","mat-input-wrapper mat-form-field-wrapper"]],null,null,null,null,null)),(e()(),al["\u0275eld"](5,0,[[2,0],["connectionContainer",1]],null,9,"div",[["class","mat-input-flex mat-form-field-flex"]],null,[[null,"click"]],function(e,t,n){var r=!0,i=e.component;return"click"===t&&(r=!1!==(i._control.onContainerClick&&i._control.onContainerClick(n))&&r),r},null,null)),(e()(),al["\u0275and"](16777216,null,null,1,null,Re)),al["\u0275did"](7,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275eld"](8,0,[[3,0],["inputContainer",1]],null,4,"div",[["class","mat-input-infix mat-form-field-infix"]],null,null,null,null,null)),al["\u0275ncd"](null,1),(e()(),al["\u0275eld"](10,0,null,null,2,"span",[["class","mat-form-field-label-wrapper mat-input-placeholder-wrapper mat-form-field-placeholder-wrapper"]],null,null,null,null,null)),(e()(),al["\u0275and"](16777216,null,null,1,null,Ae)),al["\u0275did"](12,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,Le)),al["\u0275did"](14,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275eld"](15,0,[[1,0],["underline",1]],null,1,"div",[["class","mat-input-underline mat-form-field-underline"]],null,null,null,null,null)),(e()(),al["\u0275eld"](16,0,null,null,0,"span",[["class","mat-input-ripple mat-form-field-ripple"]],[[2,"mat-accent",null],[2,"mat-warn",null]],null,null,null,null)),(e()(),al["\u0275eld"](17,0,null,null,5,"div",[["class","mat-input-subscript-wrapper mat-form-field-subscript-wrapper"]],null,null,null,null,null)),al["\u0275did"](18,16384,null,0,cl.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,Fe)),al["\u0275did"](20,278528,null,0,cl.NgSwitchCase,[al.ViewContainerRef,al.TemplateRef,cl.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,Ve)),al["\u0275did"](22,278528,null,0,cl.NgSwitchCase,[al.ViewContainerRef,al.TemplateRef,cl.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null)],function(e,t){var n=t.component;e(t,7,0,n._prefixChildren.length),e(t,12,0,n._hasFloatingLabel()),e(t,14,0,n._suffixChildren.length),e(t,18,0,n._getDisplayedMessages()),e(t,20,0,"error"),e(t,22,0,"hint")},function(e,t){var n=t.component;e(t,16,0,"accent"==n.color,"warn"==n.color)})}function Be(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-name-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Dataverse Name"]))],null,null)}function He(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataverse-name-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,["",""]))],null,function(e,t){e(t,2,0,t.context.$implicit.DataverseName)})}function We(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-dataformat-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Data Format"]))],null,null)}function qe(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataverse-dataformat-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,["",""]))],null,function(e,t){e(t,2,0,t.context.$implicit.DataFormat)})}function Ue(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-pendingop-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Pending Ops"]))],null,null)}function Ge(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataverse-pendingop-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,["",""]))],null,function(e,t){e(t,2,0,t.context.$implicit.PendingOp)})}function Ke(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-timestamp-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Timestamp"]))],null,null)}function $e(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataverse-timestamp-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,["",""]))],null,function(e,t){e(t,2,0,t.context.$implicit.Timestamp)})}function Ze(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"mat-header-row",[["class","mat-header-row"],["role","row"]],null,null,null,Se,cd)),al["\u0275did"](1,49152,null,0,ld,[],null,null)],null,null)}function Qe(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"mat-row",[["class","mat-row"],["role","row"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.highlight(e.context.$implicit)&&r),r},Oe,dd)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](2,{highlight:0}),al["\u0275did"](3,49152,null,0,ad,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,1,0,e(t,2,0,t.component.selectedRowIndex==t.context.$implicit.id))},null)}function Ye(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,79,"mat-table",[["class","dataverses-table mat-table"]],null,null,null,Ee,ud)),al["\u0275did"](1,3391488,[["table",4]],3,Xc,[al.IterableDiffers,al.ChangeDetectorRef,al.ElementRef,[8,null]],{dataSource:[0,"dataSource"]},null),al["\u0275qud"](603979776,3,{_columnDefs:1}),al["\u0275qud"](335544320,4,{_headerDef:0}),al["\u0275qud"](603979776,5,{_rowDefs:1}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](7,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](8,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,6,{cell:0}),al["\u0275qud"](335544320,7,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Be)),al["\u0275did"](14,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[7,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,He)),al["\u0275did"](18,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[6,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](23,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](24,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,8,{cell:0}),al["\u0275qud"](335544320,9,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,We)),al["\u0275did"](30,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[9,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,qe)),al["\u0275did"](34,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[8,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](39,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](40,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,10,{cell:0}),al["\u0275qud"](335544320,11,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Ue)),al["\u0275did"](46,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[11,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Ge)),al["\u0275did"](50,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[10,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](55,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](56,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,12,{cell:0}),al["\u0275qud"](335544320,13,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Ke)),al["\u0275did"](62,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[13,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,$e)),al["\u0275did"](66,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[12,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275and"](0,null,null,3,null,Ze)),al["\u0275did"](71,540672,null,0,id,[al.TemplateRef,al.IterableDiffers],{columns:[0,"columns"]},null),al["\u0275pad"](72,3),al["\u0275prd"](2048,[[4,4]],Hc,null,[id]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,3,null,Qe)),al["\u0275did"](76,540672,null,0,od,[al.TemplateRef,al.IterableDiffers],{columns:[0,"columns"]},null),al["\u0275pad"](77,3),al["\u0275prd"](2048,[[5,4]],Wc,null,[od]),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,1,0,t.component.dataSource),e(t,8,0,"DataverseName"),e(t,24,0,"DataFormat"),e(t,40,0,"PendingOp"),e(t,56,0,"Timestamp"),e(t,71,0,e(t,72,0,"DataverseName","DataFormat","Timestamp")),e(t,76,0,e(t,77,0,"DataverseName","DataFormat","Timestamp"))},null)}function Xe(e){return al["\u0275vid"](0,[al["\u0275qud"](402653184,1,{inputQuery:0}),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](2,0,null,null,86,"div",[["class","container"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onClick()&&r),r},null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,0,null,null,54,"div",[["class","master"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](6,0,null,null,48,"mat-card",[["class","dataverses-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](7,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](9,0,null,0,12,"mat-toolbar",[["class","dataverses-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](10,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,2,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](13,0,null,0,2,"mat-icon",[["class","icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](14,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](17,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["DATAVERSES - METADATA"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](20,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](23,0,null,0,6,"mat-card-content",[["class","dataverses-content mat-card-content"]],null,null,null,null,null)),al["\u0275did"](24,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,2,null,Ye)),al["\u0275did"](27,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),al["\u0275pid"](131072,cl.AsyncPipe,[al.ChangeDetectorRef]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](31,0,null,0,22,"mat-card-actions",[["class","actions mat-card-actions"]],[[2,"mat-card-actions-align-end",null]],null,null,null,null)),al["\u0275did"](32,16384,null,0,fd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](34,0,null,null,3,"button",[["class","refresh-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.openCreateDataverseDialog()&&r),r},J,nc)),al["\u0275did"](35,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](36,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["CREATE"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](39,0,null,null,3,"button",[["class","refresh-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.openDropDataverseDialog()&&r),r},J,nc)),al["\u0275did"](40,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](41,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](44,0,null,null,1,"span",[["class","error-message"]],null,null,null,null,null)),(e()(),al["\u0275ted"](45,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](47,0,null,null,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](49,0,null,null,3,"button",[["class","refresh-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.getDataverse()&&r),r},J,nc)),al["\u0275did"](50,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](51,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["REFRESH"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](56,0,null,null,1,"awc-query-metadata",[["class","query"]],null,null,null,Ie,Xp)),al["\u0275did"](57,49152,[[1,4],["querymetadata",4]],0,Qp,[Yp.m,al.ChangeDetectorRef],null,null),(e()(),al["\u0275ted"](-1,null,[" \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](60,0,null,null,27,"div",[["class","detail"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](62,0,null,null,24,"mat-card",[["class","dataverses-details-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](63,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](65,0,null,0,12,"mat-toolbar",[["class","dataverses-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](66,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,14,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](69,0,null,0,2,"mat-icon",[["class","icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](70,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](73,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["DATAVERSE - METADATA - DETAILS"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](76,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](79,0,null,0,6,"mat-card-content",[["class","dataverses-content output mat-card-content"]],null,null,null,null,null)),al["\u0275did"](80,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](82,0,null,null,2,"span",[],null,null,null,null,null)),(e()(),al["\u0275eld"](83,0,null,null,1,"pre",[],null,null,null,null,null)),(e()(),al["\u0275ted"](84,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,10,0,"primary"),e(t,14,0),e(t,27,0,al["\u0275unv"](t,27,0,al["\u0275nov"](t,28).transform(n.loaded$))),e(t,66,0,"primary"),e(t,70,0)},function(e,t){var n=t.component;e(t,9,0,al["\u0275nov"](t,10)._toolbarRows.length,!al["\u0275nov"](t,10)._toolbarRows.length),e(t,31,0,"end"===al["\u0275nov"](t,32).align),e(t,34,0,al["\u0275nov"](t,35).disabled||null),e(t,39,0,al["\u0275nov"](t,40).disabled||null),e(t,45,0,n.errorMessage),e(t,49,0,al["\u0275nov"](t,50).disabled||null),e(t,65,0,al["\u0275nov"](t,66)._toolbarRows.length,!al["\u0275nov"](t,66)._toolbarRows.length),e(t,84,0,n.output)})}function Je(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,32,"div",[["class","dataverse-dialog"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,2,"p",[["class","mat-dialog-title"],["mat-dialog-title",""]],[[8,"id",0]],null,null,null,null)),al["\u0275did"](4,81920,null,0,zs,[[2,Ms]],null,null),(e()(),al["\u0275ted"](-1,null,["CREATE DATAVERSE"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](7,0,null,null,5,"mat-dialog-content",[["class","mat-dialog-content"]],null,null,null,null,null)),al["\u0275did"](8,16384,null,0,Bs,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](10,0,null,null,1,"p",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["GIVE A NAME TO THE NEW DATAVERSE"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](14,0,null,null,18,"mat-form-field",[["class","mat-input-container mat-form-field"]],[[2,"mat-input-invalid",null],[2,"mat-form-field-invalid",null],[2,"mat-form-field-can-float",null],[2,"mat-form-field-should-float",null],[2,"mat-form-field-hide-placeholder",null],[2,"mat-form-field-disabled",null],[2,"mat-focused",null],[2,"mat-primary",null],[2,"mat-accent",null],[2,"mat-warn",null],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,ze,lf)),al["\u0275did"](15,7389184,null,7,zu,[al.ElementRef,al.ChangeDetectorRef,[2,ps]],null,null),al["\u0275qud"](335544320,1,{_control:0}),al["\u0275qud"](335544320,2,{_placeholderChild:0}),al["\u0275qud"](335544320,3,{_labelChild:0}),al["\u0275qud"](603979776,4,{_errorChildren:1}),al["\u0275qud"](603979776,5,{_hintChildren:1}),al["\u0275qud"](603979776,6,{_prefixChildren:1}),al["\u0275qud"](603979776,7,{_suffixChildren:1}),(e()(),al["\u0275ted"](-1,1,["\n "])),(e()(),al["\u0275eld"](24,0,null,1,7,"input",[["class","mat-input-element mat-form-field-autofill-control"],["matInput",""],["tabindex","0"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"mat-input-server",null],[1,"id",0],[8,"placeholder",0],[8,"disabled",0],[8,"required",0],[8,"readOnly",0],[1,"aria-describedby",0],[1,"aria-invalid",0],[1,"aria-required",0]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"focus"]],function(e,t,n){var r=!0,i=e.component;return"input"===t&&(r=!1!==al["\u0275nov"](e,25)._handleInput(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,25).onTouched()&&r),"compositionstart"===t&&(r=!1!==al["\u0275nov"](e,25)._compositionStart()&&r),"compositionend"===t&&(r=!1!==al["\u0275nov"](e,25)._compositionEnd(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,30)._focusChanged(!1)&&r),"focus"===t&&(r=!1!==al["\u0275nov"](e,30)._focusChanged(!0)&&r),"input"===t&&(r=!1!==al["\u0275nov"](e,30)._onInput()&&r),"ngModelChange"===t&&(r=!1!==(i.data.dataverseName=n)&&r),r},null,null)),al["\u0275did"](25,16384,null,0,Fu.DefaultValueAccessor,[al.Renderer2,al.ElementRef,[2,Fu.COMPOSITION_BUFFER_MODE]],null,null),al["\u0275prd"](1024,null,Fu.NG_VALUE_ACCESSOR,function(e){return[e]},[Fu.DefaultValueAccessor]),al["\u0275did"](27,671744,null,0,Fu.NgModel,[[8,null],[8,null],[8,null],[2,Fu.NG_VALUE_ACCESSOR]],{model:[0,"model"]},{update:"ngModelChange"}),al["\u0275prd"](2048,null,Fu.NgControl,null,[Fu.NgModel]),al["\u0275did"](29,16384,null,0,Fu.NgControlStatus,[Fu.NgControl],null,null),al["\u0275did"](30,933888,null,0,Uu,[al.ElementRef,pl,[2,Fu.NgControl],[2,Fu.NgForm],[2,Fu.FormGroupDirective],es,[8,null]],null,null),al["\u0275prd"](2048,[[1,4]],ju,null,[Uu]),(e()(),al["\u0275ted"](-1,1,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](35,0,null,null,13,"div",[["class","mat-dialog-actions"],["mat-dialog-actions",""]],null,null,null,null,null)),al["\u0275did"](36,16384,null,0,Hs,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](38,0,null,null,4,"button",[["class","mat-button"],["mat-button",""],["tabindex","1"],["type","button"]],[[8,"disabled",0],[1,"aria-label",0]],[[null,"click"]],function(e,t,n){var r=!0,i=e.component;return"click"===t&&(r=!1!==al["\u0275nov"](e,41).dialogRef.close(al["\u0275nov"](e,41).dialogResult)&&r),"click"===t&&(r=!1!==i.onClick()&&r),r},J,nc)),al["\u0275did"](39,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](40,16384,null,0,Gs,[],null,null),al["\u0275did"](41,540672,null,0,Vs,[Ns],{dialogResult:[0,"dialogResult"]},null),(e()(),al["\u0275ted"](-1,0,["CREATE"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](44,0,null,null,3,"button",[["class","mat-button"],["mat-button",""],["tabindex","2"]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onNoClick()&&r),r},J,nc)),al["\u0275did"](45,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](46,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["CANCEL"])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n\n"]))],function(e,t){var n=t.component;e(t,4,0),e(t,27,0,n.data.dataverseName),e(t,30,0),e(t,41,0,n.data.dataverseName)},function(e,t){e(t,3,0,al["\u0275nov"](t,4).id),e(t,14,1,[al["\u0275nov"](t,15)._control.errorState,al["\u0275nov"](t,15)._control.errorState,al["\u0275nov"](t,15)._canLabelFloat,al["\u0275nov"](t,15)._shouldLabelFloat(),al["\u0275nov"](t,15)._hideControlPlaceholder(),al["\u0275nov"](t,15)._control.disabled,al["\u0275nov"](t,15)._control.focused,"primary"==al["\u0275nov"](t,15).color,"accent"==al["\u0275nov"](t,15).color,"warn"==al["\u0275nov"](t,15).color,al["\u0275nov"](t,15)._shouldForward("untouched"),al["\u0275nov"](t,15)._shouldForward("touched"),al["\u0275nov"](t,15)._shouldForward("pristine"),al["\u0275nov"](t,15)._shouldForward("dirty"),al["\u0275nov"](t,15)._shouldForward("valid"),al["\u0275nov"](t,15)._shouldForward("invalid"),al["\u0275nov"](t,15)._shouldForward("pending")]),e(t,24,1,[al["\u0275nov"](t,29).ngClassUntouched,al["\u0275nov"](t,29).ngClassTouched,al["\u0275nov"](t,29).ngClassPristine,al["\u0275nov"](t,29).ngClassDirty,al["\u0275nov"](t,29).ngClassValid,al["\u0275nov"](t,29).ngClassInvalid,al["\u0275nov"](t,29).ngClassPending,al["\u0275nov"](t,30)._isServer,al["\u0275nov"](t,30).id,al["\u0275nov"](t,30).placeholder,al["\u0275nov"](t,30).disabled,al["\u0275nov"](t,30).required,al["\u0275nov"](t,30).readonly,al["\u0275nov"](t,30)._ariaDescribedby||null,al["\u0275nov"](t,30).errorState,al["\u0275nov"](t,30).required.toString()]),e(t,38,0,al["\u0275nov"](t,39).disabled||null,al["\u0275nov"](t,41).ariaLabel),e(t,44,0,al["\u0275nov"](t,45).disabled||null)})}function et(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,46,"div",[["class","dataverse-dialog"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,2,"p",[["class","mat-dialog-title"],["mat-dialog-title",""]],[[8,"id",0]],null,null,null,null)),al["\u0275did"](4,81920,null,0,zs,[[2,Ms]],null,null),(e()(),al["\u0275ted"](-1,null,["DROP DATAVERSE"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](7,0,null,null,5,"mat-dialog-content",[["class","mat-dialog-content"]],null,null,null,null,null)),al["\u0275did"](8,16384,null,0,Bs,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](10,0,null,null,1,"p",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["PLEASE GIVE THE NAME OF THE DATAVERSE TO DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](14,0,null,null,18,"mat-form-field",[["class","mat-input-container mat-form-field"]],[[2,"mat-input-invalid",null],[2,"mat-form-field-invalid",null],[2,"mat-form-field-can-float",null],[2,"mat-form-field-should-float",null],[2,"mat-form-field-hide-placeholder",null],[2,"mat-form-field-disabled",null],[2,"mat-focused",null],[2,"mat-primary",null],[2,"mat-accent",null],[2,"mat-warn",null],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,ze,lf)),al["\u0275did"](15,7389184,null,7,zu,[al.ElementRef,al.ChangeDetectorRef,[2,ps]],null,null),al["\u0275qud"](335544320,1,{_control:0}),al["\u0275qud"](335544320,2,{_placeholderChild:0}),al["\u0275qud"](335544320,3,{_labelChild:0}),al["\u0275qud"](603979776,4,{_errorChildren:1}),al["\u0275qud"](603979776,5,{_hintChildren:1}),al["\u0275qud"](603979776,6,{_prefixChildren:1}),al["\u0275qud"](603979776,7,{_suffixChildren:1}),(e()(),al["\u0275ted"](-1,1,["\n "])),(e()(),al["\u0275eld"](24,0,null,1,7,"input",[["class","mat-input-element mat-form-field-autofill-control"],["matInput",""],["tabindex","0"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"mat-input-server",null],[1,"id",0],[8,"placeholder",0],[8,"disabled",0],[8,"required",0],[8,"readOnly",0],[1,"aria-describedby",0],[1,"aria-invalid",0],[1,"aria-required",0]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"focus"]],function(e,t,n){var r=!0,i=e.component;return"input"===t&&(r=!1!==al["\u0275nov"](e,25)._handleInput(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,25).onTouched()&&r),"compositionstart"===t&&(r=!1!==al["\u0275nov"](e,25)._compositionStart()&&r),"compositionend"===t&&(r=!1!==al["\u0275nov"](e,25)._compositionEnd(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,30)._focusChanged(!1)&&r),"focus"===t&&(r=!1!==al["\u0275nov"](e,30)._focusChanged(!0)&&r),"input"===t&&(r=!1!==al["\u0275nov"](e,30)._onInput()&&r),"ngModelChange"===t&&(r=!1!==(i.data.dataverseName=n)&&r),r},null,null)),al["\u0275did"](25,16384,null,0,Fu.DefaultValueAccessor,[al.Renderer2,al.ElementRef,[2,Fu.COMPOSITION_BUFFER_MODE]],null,null),al["\u0275prd"](1024,null,Fu.NG_VALUE_ACCESSOR,function(e){return[e]},[Fu.DefaultValueAccessor]),al["\u0275did"](27,671744,null,0,Fu.NgModel,[[8,null],[8,null],[8,null],[2,Fu.NG_VALUE_ACCESSOR]],{model:[0,"model"]},{update:"ngModelChange"}),al["\u0275prd"](2048,null,Fu.NgControl,null,[Fu.NgModel]),al["\u0275did"](29,16384,null,0,Fu.NgControlStatus,[Fu.NgControl],null,null),al["\u0275did"](30,933888,null,0,Uu,[al.ElementRef,pl,[2,Fu.NgControl],[2,Fu.NgForm],[2,Fu.FormGroupDirective],es,[8,null]],null,null),al["\u0275prd"](2048,[[1,4]],ju,null,[Uu]),(e()(),al["\u0275ted"](-1,1,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](34,0,null,null,12,"mat-dialog-actions",[["class","mat-dialog-actions"]],null,null,null,null,null)),al["\u0275did"](35,16384,null,0,Hs,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](37,0,null,null,3,"button",[["class","mat-button"],["mat-button",""],["tabindex","1"]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onClick()&&r),r},J,nc)),al["\u0275did"](38,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](39,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](42,0,null,null,3,"button",[["class","mat-button"],["mat-button",""],["tabindex","2"]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onNoClick()&&r),r},J,nc)),al["\u0275did"](43,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](44,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["CANCEL"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,4,0),e(t,27,0,n.data.dataverseName),e(t,30,0)},function(e,t){e(t,3,0,al["\u0275nov"](t,4).id),e(t,14,1,[al["\u0275nov"](t,15)._control.errorState,al["\u0275nov"](t,15)._control.errorState,al["\u0275nov"](t,15)._canLabelFloat,al["\u0275nov"](t,15)._shouldLabelFloat(),al["\u0275nov"](t,15)._hideControlPlaceholder(),al["\u0275nov"](t,15)._control.disabled,al["\u0275nov"](t,15)._control.focused,"primary"==al["\u0275nov"](t,15).color,"accent"==al["\u0275nov"](t,15).color,"warn"==al["\u0275nov"](t,15).color,al["\u0275nov"](t,15)._shouldForward("untouched"),al["\u0275nov"](t,15)._shouldForward("touched"),al["\u0275nov"](t,15)._shouldForward("pristine"),al["\u0275nov"](t,15)._shouldForward("dirty"),al["\u0275nov"](t,15)._shouldForward("valid"),al["\u0275nov"](t,15)._shouldForward("invalid"),al["\u0275nov"](t,15)._shouldForward("pending")]),e(t,24,1,[al["\u0275nov"](t,29).ngClassUntouched,al["\u0275nov"](t,29).ngClassTouched,al["\u0275nov"](t,29).ngClassPristine,al["\u0275nov"](t,29).ngClassDirty,al["\u0275nov"](t,29).ngClassValid,al["\u0275nov"](t,29).ngClassInvalid,al["\u0275nov"](t,29).ngClassPending,al["\u0275nov"](t,30)._isServer,al["\u0275nov"](t,30).id,al["\u0275nov"](t,30).placeholder,al["\u0275nov"](t,30).disabled,al["\u0275nov"](t,30).required,al["\u0275nov"](t,30).readonly,al["\u0275nov"](t,30)._ariaDescribedby||null,al["\u0275nov"](t,30).errorState,al["\u0275nov"](t,30).required.toString()]),e(t,37,0,al["\u0275nov"](t,38).disabled||null),e(t,42,0,al["\u0275nov"](t,43).disabled||null)})}function tt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-compactionpolicy-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Compaction Policy"]))],null,null)}function nt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataset-compactionpolicy-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.CompactionPolicy)})}function rt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-datasetid-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Dataset Id"]))],null,null)}function it(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataset-datasetid-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.DatasetId)})}function ot(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-datasetname-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Dataset Name"]))],null,null)}function lt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataset-datasetname-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.DatasetName)})}function at(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-datasettype-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Dataset Type"]))],null,null)}function st(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataset-datasettype-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.DatasetType)})}function ut(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-datatypedataversename-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Datatype Dataverse Name"]))],null,null)}function ct(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataset-datatypedataversename-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.DatatypeDataverseName)})}function dt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-datatypename-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Datatype Name"]))],null,null)}function pt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataset-datatypename-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.DatatypeName)})}function ft(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-dataversename-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Dataverse Name"]))],null,null)}function ht(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataset-dataversename-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.DataverseName)})}function mt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-groupname-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Group Name"]))],null,null)}function gt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataset-groupname-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.GroupName)})}function yt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-pendingop-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Pending Op"]))],null,null)}function vt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataset-pendingop-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.PendingOp)})}function bt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-timestamp-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Timestamp"]))],null,null)}function _t(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","dataset-timestamp-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.Timestamp)})}function wt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"mat-header-row",[["class","mat-header-row"],["role","row"]],null,null,null,Se,cd)),al["\u0275did"](1,49152,null,0,ld,[],null,null)],null,null)}function xt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"mat-row",[["class","mat-row"],["role","row"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.highlight(e.context.$implicit)&&r),r},Oe,dd)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](2,{highlight:0}),al["\u0275did"](3,49152,null,0,ad,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,1,0,e(t,2,0,t.component.selectedRowIndex==t.context.$implicit.id))},null)}function Ct(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,216,"mat-card",[["class","datasets-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](1,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](3,0,null,0,12,"mat-toolbar",[["class","datasets-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](4,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,2,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](7,0,null,0,2,"mat-icon",[["class","icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](8,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](11,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["DATASETS - METADATA"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](14,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](17,0,null,0,179,"mat-card-content",[["class","datasets-content mat-card-content"]],null,null,null,null,null)),al["\u0275did"](18,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](20,0,null,null,175,"mat-table",[["class","datasets-table mat-table"]],null,null,null,Ee,ud)),al["\u0275did"](21,3391488,[["table",4]],3,Xc,[al.IterableDiffers,al.ChangeDetectorRef,al.ElementRef,[8,null]],{dataSource:[0,"dataSource"]},null),al["\u0275qud"](603979776,3,{_columnDefs:1}),al["\u0275qud"](335544320,4,{_headerDef:0}),al["\u0275qud"](603979776,5,{_rowDefs:1}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](27,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](28,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,6,{cell:0}),al["\u0275qud"](335544320,7,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,tt)),al["\u0275did"](34,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[7,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,nt)),al["\u0275did"](38,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[6,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](43,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](44,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,8,{cell:0}),al["\u0275qud"](335544320,9,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,rt)),al["\u0275did"](50,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[9,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,it)),al["\u0275did"](54,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[8,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](59,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](60,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,10,{cell:0}),al["\u0275qud"](335544320,11,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,ot)),al["\u0275did"](66,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[11,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,lt)),al["\u0275did"](70,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[10,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](75,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](76,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,12,{cell:0}),al["\u0275qud"](335544320,13,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,at)),al["\u0275did"](82,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[13,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,st)),al["\u0275did"](86,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[12,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](91,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](92,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,14,{cell:0}),al["\u0275qud"](335544320,15,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,ut)),al["\u0275did"](98,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[15,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,ct)),al["\u0275did"](102,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[14,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](107,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](108,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,16,{cell:0}),al["\u0275qud"](335544320,17,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,dt)),al["\u0275did"](114,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[17,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,pt)),al["\u0275did"](118,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[16,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](123,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](124,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,18,{cell:0}),al["\u0275qud"](335544320,19,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,ft)),al["\u0275did"](130,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[19,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,ht)),al["\u0275did"](134,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[18,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](139,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](140,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,20,{cell:0}),al["\u0275qud"](335544320,21,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,mt)),al["\u0275did"](146,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[21,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,gt)),al["\u0275did"](150,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[20,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](155,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](156,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,22,{cell:0}),al["\u0275qud"](335544320,23,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,yt)),al["\u0275did"](162,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[23,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,vt)),al["\u0275did"](166,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[22,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](171,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](172,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,24,{cell:0}),al["\u0275qud"](335544320,25,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,bt)),al["\u0275did"](178,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[25,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,_t)),al["\u0275did"](182,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[24,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275and"](0,null,null,3,null,wt)),al["\u0275did"](187,540672,null,0,id,[al.TemplateRef,al.IterableDiffers],{columns:[0,"columns"]},null),al["\u0275pad"](188,4),al["\u0275prd"](2048,[[4,4]],Hc,null,[id]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,3,null,xt)),al["\u0275did"](192,540672,null,0,od,[al.TemplateRef,al.IterableDiffers],{columns:[0,"columns"]},null),al["\u0275pad"](193,4),al["\u0275prd"](2048,[[5,4]],Wc,null,[od]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](198,0,null,0,17,"mat-card-actions",[["class","actions mat-card-actions"]],[[2,"mat-card-actions-align-end",null]],null,null,null,null)),al["\u0275did"](199,16384,null,0,fd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](201,0,null,null,3,"button",[["class","refresh-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.openDropDatasetDialog()&&r),r},J,nc)),al["\u0275did"](202,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](203,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](206,0,null,null,1,"span",[["class","error-message"]],null,null,null,null,null)),(e()(),al["\u0275ted"](207,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](209,0,null,null,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](211,0,null,null,3,"button",[["class","refresh-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.getDatasets()&&r),r},J,nc)),al["\u0275did"](212,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](213,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["REFRESH"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "]))],function(e,t){var n=t.component;e(t,4,0,"primary"),e(t,8,0),e(t,21,0,n.dataSource),e(t,28,0,"CompactionPolicy"),e(t,44,0,"DatasetId"),e(t,60,0,"DatasetName"),e(t,76,0,"DatasetType"),e(t,92,0,"DatatypeDataverseName"),e(t,108,0,"DatatypeName"),e(t,124,0,"DataverseName"),e(t,140,0,"GroupName"),e(t,156,0,"PendingOp"),e(t,172,0,"Timestamp"),e(t,187,0,e(t,188,0,"DatasetName","DataverseName","DatatypeName","Timestamp")),e(t,192,0,e(t,193,0,"DatasetName","DataverseName","DatatypeName","Timestamp"))},function(e,t){var n=t.component;e(t,3,0,al["\u0275nov"](t,4)._toolbarRows.length,!al["\u0275nov"](t,4)._toolbarRows.length),e(t,198,0,"end"===al["\u0275nov"](t,199).align),e(t,201,0,al["\u0275nov"](t,202).disabled||null),e(t,207,0,n.errorMessage),e(t,211,0,al["\u0275nov"](t,212).disabled||null)})}function Et(e){return al["\u0275vid"](0,[al["\u0275qud"](402653184,1,{inputQuery:0}),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](2,0,null,null,40,"div",[["class","container"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onClick()&&r),r},null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,0,null,null,8,"div",[["class","master"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,2,null,Ct)),al["\u0275did"](7,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),al["\u0275pid"](131072,cl.AsyncPipe,[al.ChangeDetectorRef]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](10,0,null,null,1,"awc-query-metadata",[["class","query"]],null,null,null,Ie,Xp)),al["\u0275did"](11,49152,[[1,4],["querymetadata",4]],0,Qp,[Yp.m,al.ChangeDetectorRef],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](14,0,null,null,27,"div",[["class","detail"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](16,0,null,null,24,"mat-card",[["class","datasets-details-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](17,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](19,0,null,0,12,"mat-toolbar",[["class","datasets-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](20,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,26,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](23,0,null,0,2,"mat-icon",[["class","icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](24,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](27,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["DATASET - METADATA - DETAILS"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](30,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](33,0,null,0,6,"mat-card-content",[["class","datasets-content output mat-card-content"]],null,null,null,null,null)),al["\u0275did"](34,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](36,0,null,null,2,"span",[],null,null,null,null,null)),(e()(),al["\u0275eld"](37,0,null,null,1,"pre",[],null,null,null,null,null)),(e()(),al["\u0275ted"](38,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,7,0,al["\u0275unv"](t,7,0,al["\u0275nov"](t,8).transform(n.loaded$))),e(t,20,0,"primary"),e(t,24,0)},function(e,t){var n=t.component;e(t,19,0,al["\u0275nov"](t,20)._toolbarRows.length,!al["\u0275nov"](t,20)._toolbarRows.length),e(t,38,0,n.output)})}function St(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],null,null)}function Ot(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,46,"div",[["class","dataset-dialog"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,2,"p",[["class","mat-dialog-title"],["mat-dialog-title",""]],[[8,"id",0]],null,null,null,null)),al["\u0275did"](4,81920,null,0,zs,[[2,Ms]],null,null),(e()(),al["\u0275ted"](-1,null,["DROP DATASET"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](7,0,null,null,5,"mat-dialog-content",[["class","mat-dialog-content"]],null,null,null,null,null)),al["\u0275did"](8,16384,null,0,Bs,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](10,0,null,null,1,"p",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["PLEASE GIVE THE NAME OF THE DATASET TO DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](14,0,null,null,18,"mat-form-field",[["class","mat-input-container mat-form-field"]],[[2,"mat-input-invalid",null],[2,"mat-form-field-invalid",null],[2,"mat-form-field-can-float",null],[2,"mat-form-field-should-float",null],[2,"mat-form-field-hide-placeholder",null],[2,"mat-form-field-disabled",null],[2,"mat-focused",null],[2,"mat-primary",null],[2,"mat-accent",null],[2,"mat-warn",null],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,ze,lf)),al["\u0275did"](15,7389184,null,7,zu,[al.ElementRef,al.ChangeDetectorRef,[2,ps]],null,null),al["\u0275qud"](335544320,1,{_control:0}),al["\u0275qud"](335544320,2,{_placeholderChild:0}),al["\u0275qud"](335544320,3,{_labelChild:0}),al["\u0275qud"](603979776,4,{_errorChildren:1}),al["\u0275qud"](603979776,5,{_hintChildren:1}),al["\u0275qud"](603979776,6,{_prefixChildren:1}),al["\u0275qud"](603979776,7,{_suffixChildren:1}),(e()(),al["\u0275ted"](-1,1,["\n "])),(e()(),al["\u0275eld"](24,0,null,1,7,"input",[["class","mat-input-element mat-form-field-autofill-control"],["matInput",""],["tabindex","0"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"mat-input-server",null],[1,"id",0],[8,"placeholder",0],[8,"disabled",0],[8,"required",0],[8,"readOnly",0],[1,"aria-describedby",0],[1,"aria-invalid",0],[1,"aria-required",0]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"focus"]],function(e,t,n){var r=!0,i=e.component;return"input"===t&&(r=!1!==al["\u0275nov"](e,25)._handleInput(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,25).onTouched()&&r),"compositionstart"===t&&(r=!1!==al["\u0275nov"](e,25)._compositionStart()&&r),"compositionend"===t&&(r=!1!==al["\u0275nov"](e,25)._compositionEnd(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,30)._focusChanged(!1)&&r),"focus"===t&&(r=!1!==al["\u0275nov"](e,30)._focusChanged(!0)&&r),"input"===t&&(r=!1!==al["\u0275nov"](e,30)._onInput()&&r),"ngModelChange"===t&&(r=!1!==(i.data.datasetName=n)&&r),r},null,null)),al["\u0275did"](25,16384,null,0,Fu.DefaultValueAccessor,[al.Renderer2,al.ElementRef,[2,Fu.COMPOSITION_BUFFER_MODE]],null,null),al["\u0275prd"](1024,null,Fu.NG_VALUE_ACCESSOR,function(e){return[e]},[Fu.DefaultValueAccessor]),al["\u0275did"](27,671744,null,0,Fu.NgModel,[[8,null],[8,null],[8,null],[2,Fu.NG_VALUE_ACCESSOR]],{model:[0,"model"]},{update:"ngModelChange"}),al["\u0275prd"](2048,null,Fu.NgControl,null,[Fu.NgModel]),al["\u0275did"](29,16384,null,0,Fu.NgControlStatus,[Fu.NgControl],null,null),al["\u0275did"](30,933888,null,0,Uu,[al.ElementRef,pl,[2,Fu.NgControl],[2,Fu.NgForm],[2,Fu.FormGroupDirective],es,[8,null]],null,null),al["\u0275prd"](2048,[[1,4]],ju,null,[Uu]),(e()(),al["\u0275ted"](-1,1,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](34,0,null,null,12,"mat-dialog-actions",[["class","mat-dialog-actions"]],null,null,null,null,null)),al["\u0275did"](35,16384,null,0,Hs,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](37,0,null,null,3,"button",[["class","mat-button"],["mat-button",""],["tabindex","1"]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onClick()&&r),r},J,nc)),al["\u0275did"](38,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](39,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](42,0,null,null,3,"button",[["class","mat-button"],["mat-button",""],["tabindex","2"]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onNoClick()&&r),r},J,nc)),al["\u0275did"](43,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](44,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["CANCEL"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,4,0),e(t,27,0,n.data.datasetName),e(t,30,0)},function(e,t){e(t,3,0,al["\u0275nov"](t,4).id),e(t,14,1,[al["\u0275nov"](t,15)._control.errorState,al["\u0275nov"](t,15)._control.errorState,al["\u0275nov"](t,15)._canLabelFloat,al["\u0275nov"](t,15)._shouldLabelFloat(),al["\u0275nov"](t,15)._hideControlPlaceholder(),al["\u0275nov"](t,15)._control.disabled,al["\u0275nov"](t,15)._control.focused,"primary"==al["\u0275nov"](t,15).color,"accent"==al["\u0275nov"](t,15).color,"warn"==al["\u0275nov"](t,15).color,al["\u0275nov"](t,15)._shouldForward("untouched"),al["\u0275nov"](t,15)._shouldForward("touched"),al["\u0275nov"](t,15)._shouldForward("pristine"),al["\u0275nov"](t,15)._shouldForward("dirty"),al["\u0275nov"](t,15)._shouldForward("valid"),al["\u0275nov"](t,15)._shouldForward("invalid"),al["\u0275nov"](t,15)._shouldForward("pending")]),e(t,24,1,[al["\u0275nov"](t,29).ngClassUntouched,al["\u0275nov"](t,29).ngClassTouched,al["\u0275nov"](t,29).ngClassPristine,al["\u0275nov"](t,29).ngClassDirty,al["\u0275nov"](t,29).ngClassValid,al["\u0275nov"](t,29).ngClassInvalid,al["\u0275nov"](t,29).ngClassPending,al["\u0275nov"](t,30)._isServer,al["\u0275nov"](t,30).id,al["\u0275nov"](t,30).placeholder,al["\u0275nov"](t,30).disabled,al["\u0275nov"](t,30).required,al["\u0275nov"](t,30).readonly,al["\u0275nov"](t,30)._ariaDescribedby||null,al["\u0275nov"](t,30).errorState,al["\u0275nov"](t,30).required.toString()]),e(t,37,0,al["\u0275nov"](t,38).disabled||null),e(t,42,0,al["\u0275nov"](t,43).disabled||null)})}function Tt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-datatypename-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Datatype Name"]))],null,null)}function kt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","datatypes-datatypename-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[""," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.DatatypeName)})}function Dt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-dataversename-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Dataverse Name "]))],null,null)}function It(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","datatypes-dataversename-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[""," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.DataverseName)})}function Rt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-timestamp-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,["Timestamp"]))],null,null)}function Mt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","datatypes-timestamp-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,["",""]))],null,function(e,t){e(t,2,0,t.context.$implicit.Timestamp)})}function Pt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"mat-header-row",[["class","mat-header-row"],["role","row"]],null,null,null,Se,cd)),al["\u0275did"](1,49152,null,0,ld,[],null,null)],null,null)}function Nt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"mat-row",[["class","mat-row"],["role","row"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.highlight(e.context.$implicit)&&r),r},Oe,dd)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](2,{highlight:0}),al["\u0275did"](3,49152,null,0,ad,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,1,0,e(t,2,0,t.component.selectedRowIndex==t.context.$implicit.id))},null)}function At(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,104,"mat-card",[["class","datatypes-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](1,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](3,0,null,0,12,"mat-toolbar",[["class","datatypes-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](4,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,4,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](7,0,null,0,2,"mat-icon",[["class","icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](8,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](11,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["DATATYPES - METADATA"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](14,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](17,0,null,0,67,"mat-card-content",[["class","datatypes-content mat-card-content"]],null,null,null,null,null)),al["\u0275did"](18,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](20,0,null,null,63,"mat-table",[["class","datatypes-table mat-table"],["role","treegrid"]],null,null,null,Ee,ud)),al["\u0275did"](21,3391488,[["table",4]],3,Xc,[al.IterableDiffers,al.ChangeDetectorRef,al.ElementRef,[8,"treegrid"]],{dataSource:[0,"dataSource"]},null),al["\u0275qud"](603979776,5,{_columnDefs:1}),al["\u0275qud"](335544320,6,{_headerDef:0}),al["\u0275qud"](603979776,7,{_rowDefs:1}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](27,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](28,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,8,{cell:0}),al["\u0275qud"](335544320,9,{headerCell:0}),al["\u0275prd"](2048,[[5,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Tt)),al["\u0275did"](34,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[9,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,kt)),al["\u0275did"](38,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[8,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](43,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](44,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,10,{cell:0}),al["\u0275qud"](335544320,11,{headerCell:0}),al["\u0275prd"](2048,[[5,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Dt)),al["\u0275did"](50,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[11,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,It)),al["\u0275did"](54,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[10,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](59,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](60,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,12,{cell:0}),al["\u0275qud"](335544320,13,{headerCell:0}),al["\u0275prd"](2048,[[5,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Rt)),al["\u0275did"](66,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[13,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Mt)),al["\u0275did"](70,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[12,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275and"](0,null,null,3,null,Pt)),al["\u0275did"](75,540672,null,0,id,[al.TemplateRef,al.IterableDiffers],{columns:[0,"columns"]},null),al["\u0275pad"](76,3),al["\u0275prd"](2048,[[6,4]],Hc,null,[id]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,3,null,Nt)),al["\u0275did"](80,540672,null,0,od,[al.TemplateRef,al.IterableDiffers],{columns:[0,"columns"]},null),al["\u0275pad"](81,3),al["\u0275prd"](2048,[[7,4]],Wc,null,[od]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](86,0,null,0,17,"mat-card-actions",[["class","actions mat-card-actions"]],[[2,"mat-card-actions-align-end",null]],null,null,null,null)),al["\u0275did"](87,16384,null,0,fd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](89,0,null,null,3,"button",[["class","refresh-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.openDropDatatypeDialog()&&r),r},J,nc)),al["\u0275did"](90,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](91,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](94,0,null,null,1,"span",[["class","error-message"]],null,null,null,null,null)),(e()(),al["\u0275ted"](95,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](97,0,null,null,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](99,0,null,null,3,"button",[["class","refresh-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.getDatatypes()&&r),r},J,nc)),al["\u0275did"](100,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](101,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["REFRESH"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "]))],function(e,t){var n=t.component;e(t,4,0,"primary"),e(t,8,0),e(t,21,0,n.dataSource),e(t,28,0,"DatatypeName"),e(t,44,0,"DataverseName"),e(t,60,0,"Timestamp"),e(t,75,0,e(t,76,0,"DatatypeName","DataverseName","Timestamp")),e(t,80,0,e(t,81,0,"DatatypeName","DataverseName","Timestamp"))},function(e,t){var n=t.component;e(t,3,0,al["\u0275nov"](t,4)._toolbarRows.length,!al["\u0275nov"](t,4)._toolbarRows.length),e(t,86,0,"end"===al["\u0275nov"](t,87).align),e(t,89,0,al["\u0275nov"](t,90).disabled||null),e(t,95,0,n.errorMessage),e(t,99,0,al["\u0275nov"](t,100).disabled||null)})}function Lt(e){return al["\u0275vid"](0,[al["\u0275qud"](402653184,1,{paginator:0}),al["\u0275qud"](402653184,2,{filter:0}),al["\u0275qud"](402653184,3,{inputQuery:0}),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](4,0,null,null,40,"div",[["class","container"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onClick()&&r),r},null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](6,0,null,null,8,"div",[["class","master"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,2,null,At)),al["\u0275did"](9,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),al["\u0275pid"](131072,cl.AsyncPipe,[al.ChangeDetectorRef]),(e()(),al["\u0275ted"](-1,null,[" \n "])),(e()(),al["\u0275eld"](12,0,null,null,1,"awc-query-metadata",[["class","query"]],null,null,null,Ie,Xp)),al["\u0275did"](13,49152,[[3,4],["querymetadata",4]],0,Qp,[Yp.m,al.ChangeDetectorRef],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](16,0,null,null,27,"div",[["class","detail"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](18,0,null,null,24,"mat-card",[["class","datatypes-details-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](19,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](21,0,null,0,12,"mat-toolbar",[["class","datatypes-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](22,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,14,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](25,0,null,0,2,"mat-icon",[["class","icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](26,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](29,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["DATATYPE - METADATA - DETAILS"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](32,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](35,0,null,0,6,"mat-card-content",[["class","datatypes-content output mat-card-content"]],null,null,null,null,null)),al["\u0275did"](36,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](38,0,null,null,2,"span",[],null,null,null,null,null)),(e()(),al["\u0275eld"](39,0,null,null,1,"pre",[],null,null,null,null,null)),(e()(),al["\u0275ted"](40,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,9,0,al["\u0275unv"](t,9,0,al["\u0275nov"](t,10).transform(n.loaded$))),e(t,22,0,"primary"),e(t,26,0)},function(e,t){var n=t.component;e(t,21,0,al["\u0275nov"](t,22)._toolbarRows.length,!al["\u0275nov"](t,22)._toolbarRows.length),e(t,40,0,n.output)})}function Ft(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"]))],null,null)}function jt(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,46,"div",[["class","datatype-dialog"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,2,"p",[["class","mat-dialog-title"],["mat-dialog-title",""]],[[8,"id",0]],null,null,null,null)),al["\u0275did"](4,81920,null,0,zs,[[2,Ms]],null,null),(e()(),al["\u0275ted"](-1,null,["DROP DATATYPE"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](7,0,null,null,5,"mat-dialog-content",[["class","mat-dialog-content"]],null,null,null,null,null)),al["\u0275did"](8,16384,null,0,Bs,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](10,0,null,null,1,"p",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["PLEASE GIVE THE NAME OF THE DATATYPE TO DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](14,0,null,null,18,"mat-form-field",[["class","mat-input-container mat-form-field"]],[[2,"mat-input-invalid",null],[2,"mat-form-field-invalid",null],[2,"mat-form-field-can-float",null],[2,"mat-form-field-should-float",null],[2,"mat-form-field-hide-placeholder",null],[2,"mat-form-field-disabled",null],[2,"mat-focused",null],[2,"mat-primary",null],[2,"mat-accent",null],[2,"mat-warn",null],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,ze,lf)),al["\u0275did"](15,7389184,null,7,zu,[al.ElementRef,al.ChangeDetectorRef,[2,ps]],null,null),al["\u0275qud"](335544320,1,{_control:0}),al["\u0275qud"](335544320,2,{_placeholderChild:0}),al["\u0275qud"](335544320,3,{_labelChild:0}),al["\u0275qud"](603979776,4,{_errorChildren:1}),al["\u0275qud"](603979776,5,{_hintChildren:1}),al["\u0275qud"](603979776,6,{_prefixChildren:1}),al["\u0275qud"](603979776,7,{_suffixChildren:1}),(e()(),al["\u0275ted"](-1,1,["\n "])),(e()(),al["\u0275eld"](24,0,null,1,7,"input",[["class","mat-input-element mat-form-field-autofill-control"],["matInput",""],["tabindex","0"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"mat-input-server",null],[1,"id",0],[8,"placeholder",0],[8,"disabled",0],[8,"required",0],[8,"readOnly",0],[1,"aria-describedby",0],[1,"aria-invalid",0],[1,"aria-required",0]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"focus"]],function(e,t,n){var r=!0,i=e.component;return"input"===t&&(r=!1!==al["\u0275nov"](e,25)._handleInput(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,25).onTouched()&&r),"compositionstart"===t&&(r=!1!==al["\u0275nov"](e,25)._compositionStart()&&r),"compositionend"===t&&(r=!1!==al["\u0275nov"](e,25)._compositionEnd(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,30)._focusChanged(!1)&&r),"focus"===t&&(r=!1!==al["\u0275nov"](e,30)._focusChanged(!0)&&r),"input"===t&&(r=!1!==al["\u0275nov"](e,30)._onInput()&&r),"ngModelChange"===t&&(r=!1!==(i.data.datatypeName=n)&&r),r},null,null)),al["\u0275did"](25,16384,null,0,Fu.DefaultValueAccessor,[al.Renderer2,al.ElementRef,[2,Fu.COMPOSITION_BUFFER_MODE]],null,null),al["\u0275prd"](1024,null,Fu.NG_VALUE_ACCESSOR,function(e){return[e]},[Fu.DefaultValueAccessor]),al["\u0275did"](27,671744,null,0,Fu.NgModel,[[8,null],[8,null],[8,null],[2,Fu.NG_VALUE_ACCESSOR]],{model:[0,"model"]},{update:"ngModelChange"}),al["\u0275prd"](2048,null,Fu.NgControl,null,[Fu.NgModel]),al["\u0275did"](29,16384,null,0,Fu.NgControlStatus,[Fu.NgControl],null,null),al["\u0275did"](30,933888,null,0,Uu,[al.ElementRef,pl,[2,Fu.NgControl],[2,Fu.NgForm],[2,Fu.FormGroupDirective],es,[8,null]],null,null),al["\u0275prd"](2048,[[1,4]],ju,null,[Uu]),(e()(),al["\u0275ted"](-1,1,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](34,0,null,null,12,"mat-dialog-actions",[["class","mat-dialog-actions"]],null,null,null,null,null)),al["\u0275did"](35,16384,null,0,Hs,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](37,0,null,null,3,"button",[["class","mat-button"],["mat-button",""],["tabindex","1"]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onClick()&&r),r},J,nc)),al["\u0275did"](38,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](39,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](42,0,null,null,3,"button",[["class","mat-button"],["mat-button",""],["tabindex","2"]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onNoClick()&&r),r},J,nc)),al["\u0275did"](43,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](44,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["CANCEL"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,4,0),e(t,27,0,n.data.datatypeName),e(t,30,0)},function(e,t){e(t,3,0,al["\u0275nov"](t,4).id),e(t,14,1,[al["\u0275nov"](t,15)._control.errorState,al["\u0275nov"](t,15)._control.errorState,al["\u0275nov"](t,15)._canLabelFloat,al["\u0275nov"](t,15)._shouldLabelFloat(),al["\u0275nov"](t,15)._hideControlPlaceholder(),al["\u0275nov"](t,15)._control.disabled,al["\u0275nov"](t,15)._control.focused,"primary"==al["\u0275nov"](t,15).color,"accent"==al["\u0275nov"](t,15).color,"warn"==al["\u0275nov"](t,15).color,al["\u0275nov"](t,15)._shouldForward("untouched"),al["\u0275nov"](t,15)._shouldForward("touched"),al["\u0275nov"](t,15)._shouldForward("pristine"),al["\u0275nov"](t,15)._shouldForward("dirty"),al["\u0275nov"](t,15)._shouldForward("valid"),al["\u0275nov"](t,15)._shouldForward("invalid"),al["\u0275nov"](t,15)._shouldForward("pending")]),e(t,24,1,[al["\u0275nov"](t,29).ngClassUntouched,al["\u0275nov"](t,29).ngClassTouched,al["\u0275nov"](t,29).ngClassPristine,al["\u0275nov"](t,29).ngClassDirty,al["\u0275nov"](t,29).ngClassValid,al["\u0275nov"](t,29).ngClassInvalid,al["\u0275nov"](t,29).ngClassPending,al["\u0275nov"](t,30)._isServer,al["\u0275nov"](t,30).id,al["\u0275nov"](t,30).placeholder,al["\u0275nov"](t,30).disabled,al["\u0275nov"](t,30).required,al["\u0275nov"](t,30).readonly,al["\u0275nov"](t,30)._ariaDescribedby||null,al["\u0275nov"](t,30).errorState,al["\u0275nov"](t,30).required.toString()]),e(t,37,0,al["\u0275nov"](t,38).disabled||null),e(t,42,0,al["\u0275nov"](t,43).disabled||null)})}function Vt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-dataversename-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,[" Dataverse Name "]))],null,null)}function zt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","indexes-dataversename-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.DataverseName)})}function Bt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-datasetname-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,[" Dataset Name "]))],null,null)}function Ht(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","indexes-datasetname-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.DatasetName)})}function Wt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-indexname-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,[" Index Name "]))],null,null)}function qt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","indexes-indexname-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.IndexName)})}function Ut(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-indexestructure-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,[" Index Structure "]))],null,null)}function Gt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","indexes-indexstructure-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.IndexStructure)})}function Kt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-isprimary-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,[" Is Primary "]))],null,null)}function $t(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","indexes-isprimary-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.IsPrimary)})}function Zt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-timestamp-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,[" Timestamp "]))],null,null)}function Qt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","indexes-timestamp-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.Timestamp)})}function Yt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-header-cell",[["class","header-pendingop-cell mat-header-cell"],["role","columnheader"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,nd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](-1,null,[" PendingOp "]))],null,null)}function Xt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"mat-cell",[["class","indexes-dataverse-cell mat-cell"],["role","gridcell"]],null,null,null,null,null)),al["\u0275did"](1,16384,null,0,rd,[Kc,al.ElementRef],null,null),(e()(),al["\u0275ted"](2,null,[" "," "]))],null,function(e,t){e(t,2,0,t.context.$implicit.PendingOp)})}function Jt(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"mat-header-row",[["class","mat-header-row"],["role","row"]],null,null,null,Se,cd)),al["\u0275did"](1,49152,null,0,ld,[],null,null)],null,null)}function en(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"mat-row",[["class","mat-row"],["role","row"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.highlight(e.context.$implicit)&&r),r},Oe,dd)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](2,{highlight:0}),al["\u0275did"](3,49152,null,0,ad,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,1,0,e(t,2,0,t.component.selectedRowIndex==t.context.$implicit.id))},null)}function tn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,168,"mat-card",[["class","indexes-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](1,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](3,0,null,0,12,"mat-toolbar",[["class","indexes-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](4,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,2,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](7,0,null,0,2,"mat-icon",[["class","icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](8,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](11,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["INDEXES - METADATA"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](14,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](17,0,null,0,131,"mat-card-content",[["class","indexes-content mat-card-content"]],null,null,null,null,null)),al["\u0275did"](18,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](20,0,null,null,127,"mat-table",[["class","indexes-table mat-table"]],null,null,null,Ee,ud)),al["\u0275did"](21,3391488,[["table",4]],3,Xc,[al.IterableDiffers,al.ChangeDetectorRef,al.ElementRef,[8,null]],{dataSource:[0,"dataSource"]},null),al["\u0275qud"](603979776,3,{_columnDefs:1}),al["\u0275qud"](335544320,4,{_headerDef:0}),al["\u0275qud"](603979776,5,{_rowDefs:1}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](27,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](28,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,6,{cell:0}),al["\u0275qud"](335544320,7,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Vt)),al["\u0275did"](34,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[7,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,zt)),al["\u0275did"](38,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[6,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](43,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](44,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,8,{cell:0}),al["\u0275qud"](335544320,9,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Bt)),al["\u0275did"](50,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[9,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Ht)),al["\u0275did"](54,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[8,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](59,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](60,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,10,{cell:0}),al["\u0275qud"](335544320,11,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Wt)),al["\u0275did"](66,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[11,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,qt)),al["\u0275did"](70,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[10,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](75,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](76,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,12,{cell:0}),al["\u0275qud"](335544320,13,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Ut)),al["\u0275did"](82,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[13,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Gt)),al["\u0275did"](86,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[12,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](91,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](92,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,14,{cell:0}),al["\u0275qud"](335544320,15,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Kt)),al["\u0275did"](98,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[15,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,$t)),al["\u0275did"](102,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[14,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](107,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](108,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,16,{cell:0}),al["\u0275qud"](335544320,17,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Zt)),al["\u0275did"](114,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[17,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Qt)),al["\u0275did"](118,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[16,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](123,0,null,null,13,null,null,null,null,null,null,null)),al["\u0275did"](124,16384,null,2,td,[],{name:[0,"name"]},null),al["\u0275qud"](335544320,18,{cell:0}),al["\u0275qud"](335544320,19,{headerCell:0}),al["\u0275prd"](2048,[[3,4]],Kc,null,[td]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Yt)),al["\u0275did"](130,16384,null,0,ed,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[19,4]],Gc,null,[ed]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,2,null,Xt)),al["\u0275did"](134,16384,null,0,Jc,[al.TemplateRef],null,null),al["\u0275prd"](2048,[[18,4]],Uc,null,[Jc]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275and"](0,null,null,3,null,Jt)),al["\u0275did"](139,540672,null,0,id,[al.TemplateRef,al.IterableDiffers],{columns:[0,"columns"]},null),al["\u0275pad"](140,6),al["\u0275prd"](2048,[[4,4]],Hc,null,[id]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](0,null,null,3,null,en)),al["\u0275did"](144,540672,null,0,od,[al.TemplateRef,al.IterableDiffers],{columns:[0,"columns"]},null),al["\u0275pad"](145,6),al["\u0275prd"](2048,[[5,4]],Wc,null,[od]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](150,0,null,0,17,"mat-card-actions",[["class","actions mat-card-actions"]],[[2,"mat-card-actions-align-end",null]],null,null,null,null)),al["\u0275did"](151,16384,null,0,fd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](153,0,null,null,3,"button",[["class","refresh-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.openDropIndexDialog()&&r),r},J,nc)),al["\u0275did"](154,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](155,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](158,0,null,null,1,"span",[["class","error-message"]],null,null,null,null,null)),(e()(),al["\u0275ted"](159,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](161,0,null,null,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](163,0,null,null,3,"button",[["class","refresh-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.getIndexes()&&r),r},J,nc)),al["\u0275did"](164,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](165,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["REFRESH"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "]))],function(e,t){var n=t.component;e(t,4,0,"primary"),e(t,8,0),e(t,21,0,n.dataSource),e(t,28,0,"DataverseName"),e(t,44,0,"DatasetName"),e(t,60,0,"IndexName"),e(t,76,0,"IndexStructure"),e(t,92,0,"IsPrimary"),e(t,108,0,"Timestamp"),e(t,124,0,"PendingOp"),e(t,139,0,e(t,140,0,"IndexName","DatasetName","DataverseName","IndexStructure","IsPrimary","Timestamp")),e(t,144,0,e(t,145,0,"IndexName","DatasetName","DataverseName","IndexStructure","IsPrimary","Timestamp"))},function(e,t){var n=t.component;e(t,3,0,al["\u0275nov"](t,4)._toolbarRows.length,!al["\u0275nov"](t,4)._toolbarRows.length),e(t,150,0,"end"===al["\u0275nov"](t,151).align),e(t,153,0,al["\u0275nov"](t,154).disabled||null),e(t,159,0,n.errorMessage),e(t,163,0,al["\u0275nov"](t,164).disabled||null)})}function nn(e){return al["\u0275vid"](0,[al["\u0275qud"](402653184,1,{inputQuery:0}),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](2,0,null,null,40,"div",[["class","container"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onClick()&&r),r},null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,0,null,null,8,"div",[["class","master"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,2,null,tn)),al["\u0275did"](7,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),al["\u0275pid"](131072,cl.AsyncPipe,[al.ChangeDetectorRef]),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](10,0,null,null,1,"awc-query-metadata",[["class","query"]],null,null,null,Ie,Xp)),al["\u0275did"](11,49152,[[1,4],["querymetadata",4]],0,Qp,[Yp.m,al.ChangeDetectorRef],null,null),(e()(),al["\u0275ted"](-1,null,[" \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](14,0,null,null,27,"div",[["class","detail"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](16,0,null,null,24,"mat-card",[["class","indexes-details-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](17,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](19,0,null,0,12,"mat-toolbar",[["class","indexes-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](20,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,20,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](23,0,null,0,2,"mat-icon",[["class","icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](24,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](27,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["INDEX - METADATA - DETAILS"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](30,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](33,0,null,0,6,"mat-card-content",[["class","indexes-content output mat-card-content"]],null,null,null,null,null)),al["\u0275did"](34,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](36,0,null,null,2,"span",[],null,null,null,null,null)),(e()(),al["\u0275eld"](37,0,null,null,1,"pre",[],null,null,null,null,null)),(e()(),al["\u0275ted"](38,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,7,0,al["\u0275unv"](t,7,0,al["\u0275nov"](t,8).transform(n.loaded$))),e(t,20,0,"primary"),e(t,24,0)},function(e,t){var n=t.component;e(t,19,0,al["\u0275nov"](t,20)._toolbarRows.length,!al["\u0275nov"](t,20)._toolbarRows.length),e(t,38,0,n.output)})}function rn(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"]))],null,null)}function on(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,46,"div",[["class","index-dialog"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,2,"p",[["class","mat-dialog-title"],["mat-dialog-title",""]],[[8,"id",0]],null,null,null,null)),al["\u0275did"](4,81920,null,0,zs,[[2,Ms]],null,null),(e()(),al["\u0275ted"](-1,null,["DROP INDEX"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](7,0,null,null,5,"mat-dialog-content",[["class","mat-dialog-content"]],null,null,null,null,null)),al["\u0275did"](8,16384,null,0,Bs,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](10,0,null,null,1,"p",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["PLEASE GIVE THE DATAVERSENAME.INDEXNAME OF THE INDEX TO DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](14,0,null,null,18,"mat-form-field",[["class","mat-input-container mat-form-field"]],[[2,"mat-input-invalid",null],[2,"mat-form-field-invalid",null],[2,"mat-form-field-can-float",null],[2,"mat-form-field-should-float",null],[2,"mat-form-field-hide-placeholder",null],[2,"mat-form-field-disabled",null],[2,"mat-focused",null],[2,"mat-primary",null],[2,"mat-accent",null],[2,"mat-warn",null],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,ze,lf)),al["\u0275did"](15,7389184,null,7,zu,[al.ElementRef,al.ChangeDetectorRef,[2,ps]],null,null),al["\u0275qud"](335544320,1,{_control:0}),al["\u0275qud"](335544320,2,{_placeholderChild:0}),al["\u0275qud"](335544320,3,{_labelChild:0}),al["\u0275qud"](603979776,4,{_errorChildren:1}),al["\u0275qud"](603979776,5,{_hintChildren:1}),al["\u0275qud"](603979776,6,{_prefixChildren:1}),al["\u0275qud"](603979776,7,{_suffixChildren:1}),(e()(),al["\u0275ted"](-1,1,["\n "])),(e()(),al["\u0275eld"](24,0,null,1,7,"input",[["class","mat-input-element mat-form-field-autofill-control"],["matInput",""],["tabindex","0"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"mat-input-server",null],[1,"id",0],[8,"placeholder",0],[8,"disabled",0],[8,"required",0],[8,"readOnly",0],[1,"aria-describedby",0],[1,"aria-invalid",0],[1,"aria-required",0]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"focus"]],function(e,t,n){var r=!0,i=e.component;return"input"===t&&(r=!1!==al["\u0275nov"](e,25)._handleInput(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,25).onTouched()&&r),"compositionstart"===t&&(r=!1!==al["\u0275nov"](e,25)._compositionStart()&&r),"compositionend"===t&&(r=!1!==al["\u0275nov"](e,25)._compositionEnd(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,30)._focusChanged(!1)&&r),"focus"===t&&(r=!1!==al["\u0275nov"](e,30)._focusChanged(!0)&&r),"input"===t&&(r=!1!==al["\u0275nov"](e,30)._onInput()&&r),"ngModelChange"===t&&(r=!1!==(i.data.indexName=n)&&r),r},null,null)),al["\u0275did"](25,16384,null,0,Fu.DefaultValueAccessor,[al.Renderer2,al.ElementRef,[2,Fu.COMPOSITION_BUFFER_MODE]],null,null),al["\u0275prd"](1024,null,Fu.NG_VALUE_ACCESSOR,function(e){return[e]},[Fu.DefaultValueAccessor]),al["\u0275did"](27,671744,null,0,Fu.NgModel,[[8,null],[8,null],[8,null],[2,Fu.NG_VALUE_ACCESSOR]],{model:[0,"model"]},{update:"ngModelChange"}),al["\u0275prd"](2048,null,Fu.NgControl,null,[Fu.NgModel]),al["\u0275did"](29,16384,null,0,Fu.NgControlStatus,[Fu.NgControl],null,null),al["\u0275did"](30,933888,null,0,Uu,[al.ElementRef,pl,[2,Fu.NgControl],[2,Fu.NgForm],[2,Fu.FormGroupDirective],es,[8,null]],null,null),al["\u0275prd"](2048,[[1,4]],ju,null,[Uu]),(e()(),al["\u0275ted"](-1,1,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](34,0,null,null,12,"mat-dialog-actions",[["class","mat-dialog-actions"]],null,null,null,null,null)),al["\u0275did"](35,16384,null,0,Hs,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](37,0,null,null,3,"button",[["class","mat-button"],["mat-button",""],["tabindex","1"]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onClick()&&r),r},J,nc)),al["\u0275did"](38,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](39,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["DROP"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](42,0,null,null,3,"button",[["class","mat-button"],["mat-button",""],["tabindex","2"]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onNoClick()&&r),r},J,nc)),al["\u0275did"](43,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](44,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["CANCEL"])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,4,0),e(t,27,0,n.data.indexName),e(t,30,0)},function(e,t){e(t,3,0,al["\u0275nov"](t,4).id),e(t,14,1,[al["\u0275nov"](t,15)._control.errorState,al["\u0275nov"](t,15)._control.errorState,al["\u0275nov"](t,15)._canLabelFloat,al["\u0275nov"](t,15)._shouldLabelFloat(),al["\u0275nov"](t,15)._hideControlPlaceholder(),al["\u0275nov"](t,15)._control.disabled,al["\u0275nov"](t,15)._control.focused,"primary"==al["\u0275nov"](t,15).color,"accent"==al["\u0275nov"](t,15).color,"warn"==al["\u0275nov"](t,15).color,al["\u0275nov"](t,15)._shouldForward("untouched"),al["\u0275nov"](t,15)._shouldForward("touched"),al["\u0275nov"](t,15)._shouldForward("pristine"),al["\u0275nov"](t,15)._shouldForward("dirty"),al["\u0275nov"](t,15)._shouldForward("valid"),al["\u0275nov"](t,15)._shouldForward("invalid"),al["\u0275nov"](t,15)._shouldForward("pending")]),e(t,24,1,[al["\u0275nov"](t,29).ngClassUntouched,al["\u0275nov"](t,29).ngClassTouched,al["\u0275nov"](t,29).ngClassPristine,al["\u0275nov"](t,29).ngClassDirty,al["\u0275nov"](t,29).ngClassValid,al["\u0275nov"](t,29).ngClassInvalid,al["\u0275nov"](t,29).ngClassPending,al["\u0275nov"](t,30)._isServer,al["\u0275nov"](t,30).id,al["\u0275nov"](t,30).placeholder,al["\u0275nov"](t,30).disabled,al["\u0275nov"](t,30).required,al["\u0275nov"](t,30).readonly,al["\u0275nov"](t,30)._ariaDescribedby||null,al["\u0275nov"](t,30).errorState,al["\u0275nov"](t,30).required.toString()]),e(t,37,0,al["\u0275nov"](t,38).disabled||null),e(t,42,0,al["\u0275nov"](t,43).disabled||null)})}function ln(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,41,"header",[["class","awc-navbar"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,38,"nav",[["class","awc-navbar-header"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](5,0,null,null,8,"a",[["aria-label","AsterixDB Web Console"],["class","awc-button mat-button"],["mat-button",""],["routerLink","/"]],[[1,"tabindex",0],[1,"disabled",0],[1,"aria-disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==al["\u0275nov"](e,6)._haltDisabledEvents(n)&&r),r},ee,rc)),al["\u0275did"](6,180224,null,0,Zs,[pl,La,al.ElementRef],null,null),al["\u0275did"](7,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](9,0,null,0,0,"img",[["alt","AsterixDB"],["class","awc-asterixDB-logo"],["src","assets/asterixdb_tm.png"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](11,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["Administration Console"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](15,0,null,null,0,"div",[["class","flex-spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](17,0,null,null,3,"a",[["aria-label","WEBSITE"],["class","awc-button awc-navbar-hide-small mat-button"],["href","https://asterixDB.apache.org"],["mat-button",""]],[[1,"tabindex",0],[1,"disabled",0],[1,"aria-disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==al["\u0275nov"](e,18)._haltDisabledEvents(n)&&r),r},ee,rc)),al["\u0275did"](18,180224,null,0,Zs,[pl,La,al.ElementRef],null,null),al["\u0275did"](19,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n WEBSITE\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](22,0,null,null,3,"a",[["aria-label","FILE ISSUES"],["class","awc-button awc-navbar-hide-small mat-button"],["href","https://issues.apache.org/jira/browse/ASTERIXDB"],["mat-button",""]],[[1,"tabindex",0],[1,"disabled",0],[1,"aria-disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==al["\u0275nov"](e,23)._haltDisabledEvents(n)&&r),r},ee,rc)),al["\u0275did"](23,180224,null,0,Zs,[pl,La,al.ElementRef],null,null),al["\u0275did"](24,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n FILE ISSUES\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](27,0,null,null,3,"a",[["aria-label","DOCUMENTATION"],["class","awc-button awc-navbar-hide-small mat-button"],["href","https://ci.apache.org/projects/asterixdb/index.html"],["mat-button",""]],[[1,"tabindex",0],[1,"disabled",0],[1,"aria-disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==al["\u0275nov"](e,28)._haltDisabledEvents(n)&&r),r},ee,rc)),al["\u0275did"](28,180224,null,0,Zs,[pl,La,al.ElementRef],null,null),al["\u0275did"](29,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n DOCUMENTATION\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](32,0,null,null,3,"a",[["aria-label","CONTACT"],["class","awc-button docs-navbar-hide-small mat-button"],["href","https://asterixdb.apache.org/community.html"],["mat-button",""]],[[1,"tabindex",0],[1,"disabled",0],[1,"aria-disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==al["\u0275nov"](e,33)._haltDisabledEvents(n)&&r),r},ee,rc)),al["\u0275did"](33,180224,null,0,Zs,[pl,La,al.ElementRef],null,null),al["\u0275did"](34,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n CONTACT\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275eld"](37,0,null,null,3,"a",[["aria-label","GITHUB"],["class","awc-button docs-navbar-hide-small mat-button"],["href","https://github.com/apache/asterixdb/"],["mat-button",""]],[[1,"tabindex",0],[1,"disabled",0],[1,"aria-disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==al["\u0275nov"](e,38)._haltDisabledEvents(n)&&r),r},ee,rc)),al["\u0275did"](38,180224,null,0,Zs,[pl,La,al.ElementRef],null,null),al["\u0275did"](39,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n GITHUB\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],null,function(e,t){e(t,5,0,al["\u0275nov"](t,6).disabled?-1:0,al["\u0275nov"](t,6).disabled||null,al["\u0275nov"](t,6).disabled.toString()),e(t,17,0,al["\u0275nov"](t,18).disabled?-1:0,al["\u0275nov"](t,18).disabled||null,al["\u0275nov"](t,18).disabled.toString()),e(t,22,0,al["\u0275nov"](t,23).disabled?-1:0,al["\u0275nov"](t,23).disabled||null,al["\u0275nov"](t,23).disabled.toString()),e(t,27,0,al["\u0275nov"](t,28).disabled?-1:0,al["\u0275nov"](t,28).disabled||null,al["\u0275nov"](t,28).disabled.toString()),e(t,32,0,al["\u0275nov"](t,33).disabled?-1:0,al["\u0275nov"](t,33).disabled||null,al["\u0275nov"](t,33).disabled.toString()),e(t,37,0,al["\u0275nov"](t,38).disabled?-1:0,al["\u0275nov"](t,38).disabled||null,al["\u0275nov"](t,38).disabled.toString())})}function an(e){return al["\u0275vid"](0,[(e()(),al["\u0275and"](0,null,null,0))],null,null)}function sn(e){return al["\u0275vid"](0,[(e()(),al["\u0275and"](16777216,null,null,1,null,an)),al["\u0275did"](1,212992,null,0,$l,[al.ComponentFactoryResolver,al.ViewContainerRef],{portal:[0,"portal"]},null),(e()(),al["\u0275and"](0,null,null,0))],function(e,t){e(t,1,0,t.parent.context.$implicit.templateLabel)},null)}function un(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](0,null,["",""]))],null,function(e,t){e(t,0,0,t.parent.context.$implicit.textLabel)})}function cn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,6,"div",[["class","mat-tab-label mat-ripple"],["mat-ripple",""],["matTabLabelWrapper",""],["role","tab"]],[[8,"id",0],[1,"tabIndex",0],[1,"aria-controls",0],[1,"aria-selected",0],[2,"mat-tab-label-active",null],[2,"mat-ripple-unbounded",null],[2,"mat-tab-disabled",null]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component._handleClick(e.context.$implicit,al["\u0275nov"](e.parent,2),e.context.index)&&r),r},null,null)),al["\u0275did"](1,671744,null,0,ss,[al.ElementRef,al.NgZone,pl,[2,as]],{disabled:[0,"disabled"]},null),al["\u0275did"](2,16384,[[2,4]],0,Jf,[al.ElementRef],{disabled:[0,"disabled"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,sn)),al["\u0275did"](4,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,un)),al["\u0275did"](6,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(e,t){e(t,1,0,t.context.$implicit.disabled||t.component.disableRipple),e(t,2,0,t.context.$implicit.disabled),e(t,4,0,t.context.$implicit.templateLabel),e(t,6,0,!t.context.$implicit.templateLabel)},function(e,t){var n=t.component;e(t,0,0,n._getTabLabelId(t.context.index),n._getTabIndex(t.context.$implicit,t.context.index),n._getTabContentId(t.context.index),n.selectedIndex==t.context.index,n.selectedIndex==t.context.index,al["\u0275nov"](t,1).unbounded,al["\u0275nov"](t,2).disabled)})}function dn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"mat-tab-body",[["class","mat-tab-body"],["role","tabpanel"]],[[8,"id",0],[1,"aria-labelledby",0],[2,"mat-tab-body-active",null]],[[null,"_onCentered"],[null,"_onCentering"]],function(e,t,n){var r=!0,i=e.component;return"_onCentered"===t&&(r=!1!==i._removeTabBodyWrapperHeight()&&r),"_onCentering"===t&&(r=!1!==i._setTabBodyWrapperHeight(n)&&r),r},hn,rh)),al["\u0275did"](1,114688,null,0,Qf,[al.ElementRef,[2,Bl]],{_content:[0,"_content"],position:[1,"position"],origin:[2,"origin"]},{_onCentering:"_onCentering",_onCentered:"_onCentered"})],function(e,t){e(t,1,0,t.context.$implicit.content,t.context.$implicit.position,t.context.$implicit.origin)},function(e,t){var n=t.component;e(t,0,0,n._getTabContentId(t.context.index),n._getTabLabelId(t.context.index),n.selectedIndex==t.context.index)})}function pn(e){return al["\u0275vid"](2,[al["\u0275qud"](402653184,1,{_tabBodyWrapper:0}),(e()(),al["\u0275eld"](1,0,null,null,4,"mat-tab-header",[["class","mat-tab-header"]],[[2,"mat-tab-header-pagination-controls-enabled",null],[2,"mat-tab-header-rtl",null]],[[null,"indexFocused"],[null,"selectFocusedIndex"]],function(e,t,n){var r=!0,i=e.component;return"indexFocused"===t&&(r=!1!==i._focusChanged(n)&&r),"selectFocusedIndex"===t&&(r=!1!==(i.selectedIndex=n)&&r),r},mn,ih)),al["\u0275did"](2,3325952,[["tabHeader",4]],1,eh,[al.ElementRef,al.ChangeDetectorRef,jl,[2,Bl]],{disableRipple:[0,"disableRipple"],selectedIndex:[1,"selectedIndex"]},{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}),al["\u0275qud"](603979776,2,{_labelWrappers:1}),(e()(),al["\u0275and"](16777216,null,0,1,null,cn)),al["\u0275did"](5,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275eld"](6,0,[[1,0],["tabBodyWrapper",1]],null,2,"div",[["class","mat-tab-body-wrapper"]],null,null,null,null,null)),(e()(),al["\u0275and"](16777216,null,null,1,null,dn)),al["\u0275did"](8,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(e,t){var n=t.component;e(t,2,0,n.disableRipple,n.selectedIndex),e(t,5,0,n._tabs),e(t,8,0,n._tabs)},function(e,t){e(t,1,0,al["\u0275nov"](t,2)._showPaginationControls,"rtl"==al["\u0275nov"](t,2)._getLayoutDirection())})}function fn(e){return al["\u0275vid"](0,[(e()(),al["\u0275and"](0,null,null,0))],null,null)}function hn(e){return al["\u0275vid"](2,[(e()(),al["\u0275eld"](0,0,[["content",1]],null,2,"div",[["class","mat-tab-body-content"]],[[24,"@translateTab",0]],[[null,"@translateTab.start"],[null,"@translateTab.done"]],function(e,t,n){var r=!0,i=e.component;return"@translateTab.start"===t&&(r=!1!==i._onTranslateTabStarted(n)&&r),"@translateTab.done"===t&&(r=!1!==i._onTranslateTabComplete(n)&&r),r},null,null)),(e()(),al["\u0275and"](16777216,null,null,1,null,fn)),al["\u0275did"](2,212992,null,0,Zf,[al.ComponentFactoryResolver,al.ViewContainerRef,Qf],null,null)],function(e,t){e(t,2,0)},function(e,t){e(t,0,0,t.component._position)})}function mn(e){return al["\u0275vid"](2,[al["\u0275qud"](402653184,1,{_inkBar:0}),al["\u0275qud"](402653184,2,{_tabListContainer:0}),al["\u0275qud"](402653184,3,{_tabList:0}),(e()(),al["\u0275eld"](3,0,null,null,2,"div",[["aria-hidden","true"],["class","mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4 mat-ripple"],["mat-ripple",""]],[[2,"mat-tab-header-pagination-disabled",null],[2,"mat-ripple-unbounded",null]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component._scrollHeader("before")&&r),r},null,null)),al["\u0275did"](4,671744,null,0,ss,[al.ElementRef,al.NgZone,pl,[2,as]],{disabled:[0,"disabled"]},null),(e()(),al["\u0275eld"](5,0,null,null,0,"div",[["class","mat-tab-header-pagination-chevron"]],null,null,null,null,null)),(e()(),al["\u0275eld"](6,0,[[2,0],["tabListContainer",1]],null,6,"div",[["class","mat-tab-label-container"]],null,[[null,"keydown"]],function(e,t,n){var r=!0;return"keydown"===t&&(r=!1!==e.component._handleKeydown(n)&&r),r},null,null)),(e()(),al["\u0275eld"](7,0,[[3,0],["tabList",1]],null,5,"div",[["class","mat-tab-list"],["role","tablist"]],null,[[null,"cdkObserveContent"]],function(e,t,n){var r=!0;return"cdkObserveContent"===t&&(r=!1!==e.component._onContentChanges()&&r),r},null,null)),al["\u0275did"](8,1196032,null,0,Uf,[qf,al.ElementRef,al.NgZone],null,{event:"cdkObserveContent"}),(e()(),al["\u0275eld"](9,0,null,null,1,"div",[["class","mat-tab-labels"]],null,null,null,null,null)),al["\u0275ncd"](null,0),(e()(),al["\u0275eld"](11,0,null,null,1,"mat-ink-bar",[["class","mat-ink-bar"]],null,null,null,null,null)),al["\u0275did"](12,16384,[[1,4]],0,Kf,[al.ElementRef,al.NgZone],null,null),(e()(),al["\u0275eld"](13,0,null,null,2,"div",[["aria-hidden","true"],["class","mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4 mat-ripple"],["mat-ripple",""]],[[2,"mat-tab-header-pagination-disabled",null],[2,"mat-ripple-unbounded",null]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component._scrollHeader("after")&&r),r},null,null)),al["\u0275did"](14,671744,null,0,ss,[al.ElementRef,al.NgZone,pl,[2,as]],{disabled:[0,"disabled"]},null),(e()(),al["\u0275eld"](15,0,null,null,0,"div",[["class","mat-tab-header-pagination-chevron"]],null,null,null,null,null))],function(e,t){var n=t.component;e(t,4,0,n._disableScrollBefore||n.disableRipple),e(t,14,0,n._disableScrollAfter||n.disableRipple)},function(e,t){var n=t.component;e(t,3,0,n._disableScrollBefore,al["\u0275nov"](t,4).unbounded),e(t,13,0,n._disableScrollAfter,al["\u0275nov"](t,14).unbounded)})}function gn(e){return al["\u0275vid"](0,[al["\u0275ncd"](null,0),(e()(),al["\u0275and"](0,null,null,0))],null,null)}function yn(e){return al["\u0275vid"](2,[al["\u0275qud"](402653184,1,{_content:0}),(e()(),al["\u0275and"](0,[[1,2]],null,0,null,gn))],null,null)}function vn(e){return al["\u0275vid"](0,[],null,null)}function bn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"li",[["class","ui-treenode-droppoint"]],null,[[null,"drop"],[null,"dragover"],[null,"dragenter"],[null,"dragleave"]],function(e,t,n){var r=!0,i=e.component;return"drop"===t&&(r=!1!==i.onDropPoint(n,-1)&&r),"dragover"===t&&(r=!1!==i.onDropPointDragOver(n)&&r),"dragenter"===t&&(r=!1!==i.onDropPointDragEnter(n,-1)&&r),"dragleave"===t&&(r=!1!==i.onDropPointDragLeave(n)&&r),r},null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](2,{"ui-treenode-droppoint-active ui-state-highlight":0})],function(e,t){e(t,1,0,"ui-treenode-droppoint",e(t,2,0,t.component.draghoverPrev))},null)}function _n(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,5,"div",[["class","ui-chkbox"]],null,null,null,null,null)),(e()(),al["\u0275eld"](1,0,null,null,4,"div",[["class","ui-chkbox-box ui-widget ui-corner-all ui-state-default"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,2,"span",[["class","ui-chkbox-icon ui-clickable fa"]],null,null,null,null,null)),al["\u0275did"](4,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](5,{"fa-check":0,"fa-minus":1})],function(e,t){var n=t.component;e(t,4,0,"ui-chkbox-icon ui-clickable fa",e(t,5,0,n.isSelected(),n.node.partialSelected))},null)}function wn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,0,"span",[],[[8,"className",0]],null,null,null,null))],null,function(e,t){e(t,0,0,t.component.getIcon())})}function xn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,1,0,t.component.node.label)})}function Cn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,16777216,null,null,1,"p-treeNodeTemplateLoader",[],null,null,null,vn,uh)),al["\u0275did"](3,245760,null,0,lh.TreeNodeTemplateLoader,[al.ViewContainerRef],{node:[0,"node"],template:[1,"template"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,3,0,n.node,n.tree.getTemplateForNode(n.node))},null)}function En(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"p-treeNode",[],null,null,null,Fn,ch)),al["\u0275did"](1,114688,null,0,lh.UITreeNode,[lh.Tree],{node:[0,"node"],parentNode:[1,"parentNode"],index:[2,"index"],firstChild:[3,"firstChild"],lastChild:[4,"lastChild"]},null)],function(e,t){e(t,1,0,t.context.$implicit,t.component.node,t.context.index,t.context.first,t.context.last)},null)}function Sn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"ul",[["class","ui-treenode-children"],["style","display: none;"]],[[4,"display",null]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,En)),al["\u0275did"](3,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,3,0,t.component.node.children)},function(e,t){e(t,0,0,t.component.node.expanded?"block":"none")})}function On(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,29,"li",[],null,null,null,null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pad"](2,3),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,0,null,null,21,"div",[["class","ui-treenode-content"]],[[8,"draggable",0]],[[null,"click"],[null,"contextmenu"],[null,"touchend"],[null,"drop"],[null,"dragover"],[null,"dragenter"],[null,"dragleave"],[null,"dragstart"],[null,"dragend"]],function(e,t,n){var r=!0,i=e.component;return"click"===t&&(r=!1!==i.onNodeClick(n)&&r),"contextmenu"===t&&(r=!1!==i.onNodeRightClick(n)&&r),"touchend"===t&&(r=!1!==i.onNodeTouchEnd()&&r),"drop"===t&&(r=!1!==i.onDropNode(n)&&r),"dragover"===t&&(r=!1!==i.onDropNodeDragOver(n)&&r),"dragenter"===t&&(r=!1!==i.onDropNodeDragEnter(n)&&r),"dragleave"===t&&(r=!1!==i.onDropNodeDragLeave(n)&&r),"dragstart"===t&&(r=!1!==i.onDragStart(n)&&r),"dragend"===t&&(r=!1!==i.onDragStop(n)&&r),r},null,null)),al["\u0275did"](5,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](6,{"ui-treenode-selectable":0,"ui-treenode-dragover":1,"ui-treenode-content-selected":2}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](8,0,null,null,2,"span",[["class","ui-tree-toggler fa fa-fw"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.toggle(n)&&r),r},null,null)),al["\u0275did"](9,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](10,{"fa-caret-right":0,"fa-caret-down":1}),(e()(),al["\u0275and"](16777216,null,null,1,null,_n)),al["\u0275did"](12,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,wn)),al["\u0275did"](14,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275eld"](15,0,null,null,9,"span",[["class","ui-treenode-label ui-corner-all"]],null,null,null,null,null)),al["\u0275did"](16,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](17,{"ui-state-highlight":0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,xn)),al["\u0275did"](20,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Cn)),al["\u0275did"](23,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Sn)),al["\u0275did"](28,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,1,0,e(t,2,0,"ui-treenode",n.node.styleClass||"",n.isLeaf()?"ui-treenode-leaf":"")),e(t,5,0,"ui-treenode-content",e(t,6,0,n.tree.selectionMode&&!1!==n.node.selectable,n.draghoverNode,n.isSelected())),e(t,9,0,"ui-tree-toggler fa fa-fw",e(t,10,0,!n.node.expanded,n.node.expanded)),e(t,12,0,"checkbox"==n.tree.selectionMode),e(t,14,0,n.node.icon||n.node.expandedIcon||n.node.collapsedIcon),e(t,16,0,"ui-treenode-label ui-corner-all",e(t,17,0,n.isSelected())),e(t,20,0,!n.tree.getTemplateForNode(n.node)),e(t,23,0,n.tree.getTemplateForNode(n.node)),e(t,28,0,n.node.children&&n.node.expanded)},function(e,t){e(t,4,0,t.component.tree.draggableNodes)})}function Tn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"li",[["class","ui-treenode-droppoint"]],null,[[null,"drop"],[null,"dragover"],[null,"dragenter"],[null,"dragleave"]],function(e,t,n){var r=!0,i=e.component;return"drop"===t&&(r=!1!==i.onDropPoint(n,1)&&r),"dragover"===t&&(r=!1!==i.onDropPointDragOver(n)&&r),"dragenter"===t&&(r=!1!==i.onDropPointDragEnter(n,1)&&r),"dragleave"===t&&(r=!1!==i.onDropPointDragLeave(n)&&r),r},null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](2,{"ui-treenode-droppoint-active ui-state-highlight":0})],function(e,t){e(t,1,0,"ui-treenode-droppoint",e(t,2,0,t.component.draghoverNext))},null)}function kn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,21,"td",[["class","ui-treenode-connector"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,18,"table",[["class","ui-treenode-connector-table"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,0,null,null,15,"tbody",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](6,0,null,null,5,"tr",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](8,0,null,null,2,"td",[],null,null,null,null,null)),al["\u0275did"](9,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](10,{"ui-treenode-connector-line":0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](13,0,null,null,5,"tr",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](15,0,null,null,2,"td",[],null,null,null,null,null)),al["\u0275did"](16,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](17,{"ui-treenode-connector-line":0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,9,0,e(t,10,0,!n.firstChild)),e(t,16,0,e(t,17,0,!n.lastChild))},null)}function Dn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"span",[["class","ui-tree-toggler fa fa-fw"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.toggle(n)&&r),r},null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](2,{"fa-plus":0,"fa-minus":1})],function(e,t){var n=t.component;e(t,1,0,"ui-tree-toggler fa fa-fw",e(t,2,0,!n.node.expanded,n.node.expanded))},null)}function In(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,0,"span",[],[[8,"className",0]],null,null,null,null))],null,function(e,t){e(t,0,0,t.component.getIcon())})}function Rn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,1,0,t.component.node.label)})}function Mn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,16777216,null,null,1,"p-treeNodeTemplateLoader",[],null,null,null,vn,uh)),al["\u0275did"](3,245760,null,0,lh.TreeNodeTemplateLoader,[al.ViewContainerRef],{node:[0,"node"],template:[1,"template"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,3,0,n.node,n.tree.getTemplateForNode(n.node))},null)}function Pn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"p-treeNode",[],null,null,null,Fn,ch)),al["\u0275did"](1,114688,null,0,lh.UITreeNode,[lh.Tree],{node:[0,"node"],firstChild:[1,"firstChild"],lastChild:[2,"lastChild"]},null)],function(e,t){e(t,1,0,t.context.$implicit,t.context.first,t.context.last)},null)}function Nn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,7,"td",[["class","ui-treenode-children-container"]],[[4,"display",null]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,4,"div",[["class","ui-treenode-children"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Pn)),al["\u0275did"](5,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,5,0,t.component.node.children)},function(e,t){e(t,0,0,t.component.node.expanded?"table-cell":"none")})}function An(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,36,"table",[],[[8,"className",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,33,"tbody",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,0,null,null,30,"tr",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,kn)),al["\u0275did"](7,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](9,0,null,null,21,"td",[["class","ui-treenode"]],null,null,null,null,null)),al["\u0275did"](10,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](11,{"ui-treenode-collapsed":0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](13,0,null,null,16,"div",[["class","ui-treenode-content ui-state-default ui-corner-all"]],null,[[null,"click"],[null,"contextmenu"],[null,"touchend"]],function(e,t,n){var r=!0,i=e.component;return"click"===t&&(r=!1!==i.onNodeClick(n)&&r),"contextmenu"===t&&(r=!1!==i.onNodeRightClick(n)&&r),"touchend"===t&&(r=!1!==i.onNodeTouchEnd()&&r),r},null,null)),al["\u0275did"](14,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](15,{"ui-treenode-selectable":0,"ui-state-highlight":1}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Dn)),al["\u0275did"](18,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275and"](16777216,null,null,1,null,In)),al["\u0275did"](20,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275eld"](21,0,null,null,7,"span",[["class","ui-treenode-label ui-corner-all"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Rn)),al["\u0275did"](24,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Mn)),al["\u0275did"](27,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Nn)),al["\u0275did"](33,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,7,0,!n.root),e(t,10,0,"ui-treenode",e(t,11,0,!n.node.expanded)),e(t,14,0,"ui-treenode-content ui-state-default ui-corner-all",e(t,15,0,n.tree.selectionMode,n.isSelected())),e(t,18,0,!n.isLeaf()),e(t,20,0,n.node.icon||n.node.expandedIcon||n.node.collapsedIcon),e(t,24,0,!n.tree.getTemplateForNode(n.node)),e(t,27,0,n.tree.getTemplateForNode(n.node)),e(t,33,0,n.node.children&&n.node.expanded)},function(e,t){e(t,0,0,t.component.node.styleClass)})}function Ln(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,bn)),al["\u0275did"](2,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,On)),al["\u0275did"](5,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Tn)),al["\u0275did"](8,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,An)),al["\u0275did"](11,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,2,0,n.tree.droppableNodes),e(t,5,0,!n.tree.horizontal),e(t,8,0,n.tree.droppableNodes&&n.lastChild),e(t,11,0,n.tree.horizontal)},null)}function Fn(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Ln)),al["\u0275did"](2,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,2,0,t.component.node)},null)}function jn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,0,"div",[["class","ui-tree-loading-mask ui-widget-overlay"]],null,null,null,null,null))],null,null)}function Vn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"div",[["class","ui-tree-loading-content"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "]))],null,function(e,t){e(t,2,0,"fa fa-spin fa-2x "+t.component.loadingIcon)})}function zn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"p-treeNode",[],null,null,null,Fn,ch)),al["\u0275did"](1,114688,null,0,lh.UITreeNode,[lh.Tree],{node:[0,"node"],index:[1,"index"],firstChild:[2,"firstChild"],lastChild:[3,"lastChild"]},null)],function(e,t){e(t,1,0,t.context.$implicit,t.context.index,t.context.first,t.context.last)},null)}function Bn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,16,"div",[],null,[[null,"drop"],[null,"dragover"],[null,"dragenter"],[null,"dragleave"]],function(e,t,n){var r=!0,i=e.component;return"drop"===t&&(r=!1!==i.onDrop(n)&&r),"dragover"===t&&(r=!1!==i.onDragOver(n)&&r),"dragenter"===t&&(r=!1!==i.onDragEnter(n)&&r),"dragleave"===t&&(r=!1!==i.onDragLeave(n)&&r),r},null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](2,{"ui-tree ui-widget ui-widget-content ui-corner-all":0,"ui-tree-selectable":1,"ui-treenode-dragover":2,"ui-tree-loading":3}),al["\u0275did"](3,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,jn)),al["\u0275did"](6,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Vn)),al["\u0275did"](9,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](11,0,null,null,4,"ul",[["class","ui-tree-container"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,zn)),al["\u0275did"](14,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,1,0,n.styleClass,e(t,2,0,!0,n.selectionMode,n.dragHover,n.loading)),e(t,3,0,n.style),e(t,6,0,n.loading),e(t,9,0,n.loading),e(t,14,0,n.value)},null)}function Hn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,0,"div",[["class","ui-tree-loading ui-widget-overlay"]],null,null,null,null,null))],null,null)}function Wn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"div",[["class","ui-tree-loading-content"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "]))],null,function(e,t){e(t,2,0,"fa fa-spin fa-2x "+t.component.loadingIcon)})}function qn(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"table",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,1,"p-treeNode",[],null,null,null,Fn,ch)),al["\u0275did"](3,114688,null,0,lh.UITreeNode,[lh.Tree],{node:[0,"node"],root:[1,"root"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,3,0,t.component.value[0],!0)},null)}function Un(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,13,"div",[],null,null,null,null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](2,{"ui-tree ui-tree-horizontal ui-widget ui-widget-content ui-corner-all":0,"ui-tree-selectable":1}),al["\u0275did"](3,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Hn)),al["\u0275did"](6,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Wn)),al["\u0275did"](9,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,qn)),al["\u0275did"](12,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,1,0,n.styleClass,e(t,2,0,!0,n.selectionMode)),e(t,3,0,n.style),e(t,6,0,n.loading),e(t,9,0,n.loading),e(t,12,0,n.value&&n.value[0])},null)}function Gn(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Bn)),al["\u0275did"](2,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Un)),al["\u0275did"](5,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,2,0,!n.horizontal),e(t,5,0,n.horizontal)},null)}function Kn(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,55,"mat-card",[["class","metadata-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](2,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](4,0,null,0,12,"mat-toolbar",[["class","metadata-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](5,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,1,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](8,0,null,0,2,"mat-icon",[["class","example-icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](9,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](12,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["METADATA GUIDE"])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](15,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](18,0,null,0,36,"div",[["class","metadata-content-area"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](20,0,null,null,33,"div",[["class","metadata-tree"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](22,0,null,null,6,"div",[["class","metadata-all"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](24,0,null,null,3,"p-tree",[["selectionMode","single"]],null,[[null,"onNodeSelect"]],function(e,t,n){var r=!0;return"onNodeSelect"===t&&(r=!1!==e.component.nodeSelectAll(n)&&r),r},Gn,dh)),al["\u0275did"](25,1294336,null,1,lh.Tree,[[2,sh.TreeDragDropService]],{value:[0,"value"],selectionMode:[1,"selectionMode"],style:[2,"style"]},{onNodeSelect:"onNodeSelect"}),al["\u0275qud"](603979776,2,{templates:1}),al["\u0275pod"](27,{width:0,border:1,"font-family":2,"font-size":3,"font-weight":4}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](30,0,null,null,6,"div",[["class","metadata-datasets"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](32,0,null,null,3,"p-tree",[["selectionMode","single"]],null,[[null,"onNodeSelect"]],function(e,t,n){var r=!0;return"onNodeSelect"===t&&(r=!1!==e.component.nodeSelectDataset(n)&&r),r},Gn,dh)),al["\u0275did"](33,1294336,null,1,lh.Tree,[[2,sh.TreeDragDropService]],{value:[0,"value"],selectionMode:[1,"selectionMode"],style:[2,"style"]},{onNodeSelect:"onNodeSelect"}),al["\u0275qud"](603979776,3,{templates:1}),al["\u0275pod"](35,{width:0,border:1,"font-family":2,"font-size":3,"font-weight":4}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](38,0,null,null,6,"div",[["class","metadata-datatypes"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](40,0,null,null,3,"p-tree",[["selectionMode","single"]],null,null,null,Gn,dh)),al["\u0275did"](41,1294336,null,1,lh.Tree,[[2,sh.TreeDragDropService]],{value:[0,"value"],selectionMode:[1,"selectionMode"],style:[2,"style"]},null),al["\u0275qud"](603979776,4,{templates:1}),al["\u0275pod"](43,{width:0,border:1,"font-family":2,"font-size":3,"font-weight":4}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](46,0,null,null,6,"div",[["class","metadata-index"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](48,0,null,null,3,"p-tree",[["selectionMode","single"]],null,null,null,Gn,dh)),al["\u0275did"](49,1294336,null,1,lh.Tree,[[2,sh.TreeDragDropService]],{value:[0,"value"],selectionMode:[1,"selectionMode"],style:[2,"style"]},null),al["\u0275qud"](603979776,5,{templates:1}),al["\u0275pod"](51,{width:0,border:1,"font-family":2,"font-size":3,"font-weight":4}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,5,0,"primary"),e(t,9,0),e(t,25,0,n.nodesAll,"single",e(t,27,0,"100%","none","Roboto Mono","0.80rem","500")),e(t,33,0,n.nodesDatasets,"single",e(t,35,0,"100%","none","Roboto Mono","0.80rem","500")),e(t,41,0,n.nodesDatatypes,"single",e(t,43,0,"100%","none","Roboto Mono","0.80rem","500")),e(t,49,0,n.nodesIndexes,"single",e(t,51,0,"100%","none","Roboto Mono","0.80rem","500"))},function(e,t){e(t,4,0,al["\u0275nov"](t,5)._toolbarRows.length,!al["\u0275nov"](t,5)._toolbarRows.length)})}function $n(e){return al["\u0275vid"](0,[al["\u0275qud"](402653184,1,{host:0}),(e()(),al["\u0275eld"](1,0,[[1,0],["host",1]],null,0,"textarea",[["class","code"]],null,null,null,null,null))],null,null)}function Zn(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,39,"mat-card",[["class","input-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](2,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n\t "])),(e()(),al["\u0275eld"](4,0,null,0,12,"mat-toolbar",[["class","input-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](5,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,1,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n\t\t\t"])),(e()(),al["\u0275eld"](8,0,null,0,2,"mat-icon",[["class","toolbar-icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](9,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n\t\t\t"])),(e()(),al["\u0275eld"](12,0,null,0,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["INPUT: SQL++"])),(e()(),al["\u0275ted"](-1,0,["\t\n\t\t\t"])),(e()(),al["\u0275eld"](15,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n\t"])),(e()(),al["\u0275ted"](-1,0,["\n\t"])),(e()(),al["\u0275eld"](18,0,null,0,12,"mat-card-content",[["class","content-area mat-card-content"]],null,null,null,null,null)),al["\u0275did"](19,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n\t\t"])),(e()(),al["\u0275eld"](21,0,null,null,8,"div",[["class","codemirror-container"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t"])),(e()(),al["\u0275eld"](23,0,null,null,5,"codemirror",[["class","code"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"]],function(e,t,n){var r=!0;return"ngModelChange"===t&&(r=!1!==(e.component.queryString=n)&&r),r},$n,mh)),al["\u0275did"](24,4374528,[["host",4]],0,hh,[],{config:[0,"config"]},null),al["\u0275prd"](1024,null,Fu.NG_VALUE_ACCESSOR,function(e){return[e]},[hh]),al["\u0275did"](26,671744,null,0,Fu.NgModel,[[8,null],[8,null],[8,null],[2,Fu.NG_VALUE_ACCESSOR]],{model:[0,"model"]},{update:"ngModelChange"}),al["\u0275prd"](2048,null,Fu.NgControl,null,[Fu.NgModel]),al["\u0275did"](28,16384,null,0,Fu.NgControlStatus,[Fu.NgControl],null,null),(e()(),al["\u0275ted"](-1,null,["\n\t\t"])),(e()(),al["\u0275ted"](-1,null,["\n\t"])),(e()(),al["\u0275ted"](-1,0,["\n\t"])),(e()(),al["\u0275eld"](32,0,null,0,7,"mat-card-actions",[["class","actions mat-card-actions"]],[[2,"mat-card-actions-align-end",null]],null,null,null,null)),al["\u0275did"](33,16384,null,0,fd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n\t\t"])),(e()(),al["\u0275eld"](35,0,null,null,3,"button",[["class","query-button mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onClick()&&r),r},J,nc)),al["\u0275did"](36,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](37,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["RUN"])),(e()(),al["\u0275ted"](-1,null,["\n\t"])),(e()(),al["\u0275ted"](-1,0,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,5,0,"primary"),e(t,9,0),e(t,24,0,n.codemirrorConfig),e(t,26,0,n.queryString)},function(e,t){e(t,4,0,al["\u0275nov"](t,5)._toolbarRows.length,!al["\u0275nov"](t,5)._toolbarRows.length),e(t,23,0,al["\u0275nov"](t,28).ngClassUntouched,al["\u0275nov"](t,28).ngClassTouched,al["\u0275nov"](t,28).ngClassPristine,al["\u0275nov"](t,28).ngClassDirty,al["\u0275nov"](t,28).ngClassValid,al["\u0275nov"](t,28).ngClassInvalid,al["\u0275nov"](t,28).ngClassPending),e(t,32,0,"end"===al["\u0275nov"](t,33).align),e(t,35,0,al["\u0275nov"](t,36).disabled||null)})}function Qn(e){return al["\u0275vid"](0,[],null,null)}function Yn(e){return al["\u0275vid"](0,[],null,null)}function Xn(e){return al["\u0275vid"](0,[],null,null)}function Jn(e){return al["\u0275vid"](0,[],null,null)}function er(e){return al["\u0275vid"](0,[],null,null)}function tr(e){return al["\u0275vid"](0,[],null,null)}function nr(e){return al["\u0275vid"](0,[],null,null)}function rr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"option",[],null,null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,1,0,t.component.placeholder)})}function ir(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"option",[],[[8,"value",0],[8,"selected",0]],null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,0,0,t.context.$implicit.value,t.component.selectedOption==t.context.$implicit),e(t,1,0,t.context.$implicit.label)})}function or(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,10,"div",[["class","ui-helper-hidden-accessible"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,7,"select",[["aria-hidden","true"],["tabindex","-1"]],[[8,"required",0],[1,"name",0],[1,"aria-label",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,rr)),al["\u0275did"](5,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ir)),al["\u0275did"](8,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,5,0,n.placeholder),e(t,8,0,n.options)},function(e,t){var n=t.component;e(t,2,0,n.required,n.name,n.selectedOption?n.selectedOption.label:" ")})}function lr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"label",[],null,null,null,null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](2,{"ui-dropdown-label ui-inputtext ui-corner-all":0,"ui-dropdown-label-empty":1}),(e()(),al["\u0275ted"](3,null,["",""]))],function(e,t){var n=t.component;e(t,1,0,e(t,2,0,!0,null==n.label||0===n.label.length))},function(e,t){e(t,3,0,t.component.label||"empty")})}function ar(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"label",[],null,null,null,null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](2,{"ui-dropdown-label ui-inputtext ui-corner-all ui-placeholder":0,"ui-dropdown-label-empty":1}),(e()(),al["\u0275ted"](3,null,["",""]))],function(e,t){var n=t.component;e(t,1,0,e(t,2,0,!0,null==n.placeholder||0===n.placeholder.length))},function(e,t){e(t,3,0,t.component.placeholder||"empty")})}function sr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,[[6,0],["editableInput",1]],null,0,"input",[["class","ui-dropdown-label ui-inputtext ui-corner-all"],["type","text"]],[[1,"aria-label",0],[8,"disabled",0],[1,"placeholder",0]],[[null,"click"],[null,"input"],[null,"focus"],[null,"blur"]],function(e,t,n){var r=!0,i=e.component;return"click"===t&&(r=!1!==i.onEditableInputClick(n)&&r),"input"===t&&(r=!1!==i.onEditableInputChange(n)&&r),"focus"===t&&(r=!1!==i.onEditableInputFocus(n)&&r),"blur"===t&&(r=!1!==i.onInputBlur(n)&&r),r},null,null))],null,function(e,t){var n=t.component;e(t,0,0,n.selectedOption?n.selectedOption.label:" ",n.disabled,n.placeholder)})}function ur(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,5,"div",[["class","ui-dropdown-filter-container"]],null,[[null,"input"],[null,"click"]],function(e,t,n){var r=!0;return"input"===t&&(r=!1!==e.component.onFilter(n)&&r),"click"===t&&(r=!1!==n.stopPropagation()&&r),r},null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,[[4,0],["filter",1]],null,0,"input",[["autocomplete","off"],["class","ui-dropdown-filter ui-inputtext ui-widget ui-state-default ui-corner-all"],["type","text"]],[[1,"placeholder",0]],[[null,"keydown.enter"],[null,"keydown"]],function(e,t,n){var r=!0,i=e.component;return"keydown.enter"===t&&(r=!1!==n.preventDefault()&&r),"keydown"===t&&(r=!1!==i.onKeydown(n)&&r),r},null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,0,null,null,0,"span",[["class","fa fa-search"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "]))],null,function(e,t){e(t,2,0,t.component.filterPlaceholder)})}function cr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,1,0,t.parent.context.$implicit.label||"empty")})}function dr(e){return al["\u0275vid"](0,[(e()(),al["\u0275and"](0,null,null,0))],null,null)}function pr(e){return al["\u0275vid"](0,[(e()(),al["\u0275and"](16777216,null,null,1,null,dr)),al["\u0275did"](1,212992,null,0,ah.TemplateWrapper,[al.ViewContainerRef],{item:[0,"item"],templateRef:[1,"templateRef"]},null),(e()(),al["\u0275and"](0,null,null,0))],function(e,t){e(t,1,0,t.parent.context.$implicit,t.component.itemTemplate)},null)}function fr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,9,"li",[],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onItemClick(n,e.context.$implicit)&&r),r},null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](2,{"ui-dropdown-item ui-corner-all":0,"ui-state-highlight":1,"ui-dropdown-item-empty":2}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,cr)),al["\u0275did"](5,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,pr)),al["\u0275did"](8,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,1,0,e(t,2,0,!0,n.selectedOption==t.context.$implicit,!t.context.$implicit.label||0===t.context.$implicit.label.length)),e(t,5,0,!n.itemTemplate),e(t,8,0,n.itemTemplate)},null)}function hr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"ul",[["class","ui-dropdown-items ui-dropdown-list ui-widget-content ui-widget ui-corner-all ui-helper-reset"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,fr)),al["\u0275did"](3,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,3,0,t.component.optionsToDisplay)},null)}function mr(e){return al["\u0275vid"](0,[al["\u0275qud"](402653184,1,{containerViewChild:0}),al["\u0275qud"](402653184,2,{panelViewChild:0}),al["\u0275qud"](402653184,3,{itemsWrapperViewChild:0}),al["\u0275qud"](671088640,4,{filterViewChild:0}),al["\u0275qud"](402653184,5,{focusViewChild:0}),al["\u0275qud"](671088640,6,{editableInputViewChild:0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](7,0,[[1,0],["container",1]],null,41,"div",[],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onMouseclick(n)&&r),r},null,null)),al["\u0275did"](8,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](9,{"ui-dropdown ui-widget ui-state-default ui-corner-all ui-helper-clearfix":0,"ui-state-disabled":1,"ui-dropdown-open":2,"ui-state-focus":3}),al["\u0275did"](10,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,or)),al["\u0275did"](13,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](15,0,null,null,3,"div",[["class","ui-helper-hidden-accessible"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](17,0,[[5,0],["in",1]],null,0,"input",[["readonly",""],["role","listbox"],["type","text"]],[[1,"id",0],[1,"aria-label",0],[8,"disabled",0],[1,"tabindex",0],[1,"autofocus",0]],[[null,"focus"],[null,"blur"],[null,"keydown"]],function(e,t,n){var r=!0,i=e.component;return"focus"===t&&(r=!1!==i.onInputFocus(n)&&r),"blur"===t&&(r=!1!==i.onInputBlur(n)&&r),"keydown"===t&&(r=!1!==i.onKeydown(n)&&r),r},null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,lr)),al["\u0275did"](21,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ar)),al["\u0275did"](24,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,sr)),al["\u0275did"](27,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](29,0,null,null,4,"div",[["class","ui-dropdown-trigger ui-state-default ui-corner-right"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](31,0,null,null,1,"span",[["class","ui-clickable"]],null,null,null,null,null)),al["\u0275did"](32,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](35,0,[[2,0],["panel",1]],null,12,"div",[],[[24,"@panelState",0],[4,"display",null]],null,null,null,null)),al["\u0275did"](36,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275did"](37,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ur)),al["\u0275did"](40,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](42,0,[[3,0],["itemswrapper",1]],null,4,"div",[["class","ui-dropdown-items-wrapper"]],[[4,"max-height",null]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,hr)),al["\u0275did"](45,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,8,0,n.styleClass,e(t,9,0,!0,n.disabled,n.panelVisible,n.focus)),e(t,10,0,n.style),e(t,13,0,n.autoWidth),e(t,21,0,!n.editable&&null!=n.label),e(t,24,0,!n.editable&&null==n.label),e(t,27,0,n.editable),e(t,32,0,"ui-clickable",n.dropdownIcon),e(t,36,0,n.panelStyleClass,"ui-dropdown-panel ui-widget-content ui-corner-all ui-shadow"),e(t,37,0,n.panelStyle),e(t,40,0,n.filter),e(t,45,0,!n.lazy||n.panelVisible)},function(e,t){var n=t.component;e(t,17,0,n.inputId,n.selectedOption?n.selectedOption.label:" ",n.disabled,n.tabindex,n.autofocus),e(t,35,0,n.panelVisible?"visible":"hidden",n.panelVisible?"block":"none"),e(t,42,0,n.scrollHeight||"auto")})}function gr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"a",[["class","ui-paginator-page ui-paginator-element ui-state-default ui-corner-all"],["href","#"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.onPageLinkClick(n,e.context.$implicit-1)&&r),r},null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](2,{"ui-state-active":0}),(e()(),al["\u0275ted"](3,null,["",""]))],function(e,t){e(t,1,0,"ui-paginator-page ui-paginator-element ui-state-default ui-corner-all",e(t,2,0,t.context.$implicit-1==t.component.getPage()))},function(e,t){e(t,3,0,t.context.$implicit)})}function yr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,8,"p-dropdown",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"onChange"]],function(e,t,n){var r=!0,i=e.component;return"ngModelChange"===t&&(r=!1!==(i.rows=n)&&r),"onChange"===t&&(r=!1!==i.onRppChange(n)&&r),r},mr,Ih)),al["\u0275prd"](512,null,kh.DomHandler,kh.DomHandler,[]),al["\u0275prd"](512,null,Dh.ObjectUtils,Dh.ObjectUtils,[]),al["\u0275did"](3,13877248,null,1,Oh.Dropdown,[al.ElementRef,kh.DomHandler,al.Renderer2,al.ChangeDetectorRef,Dh.ObjectUtils,al.NgZone],{autoWidth:[0,"autoWidth"],lazy:[1,"lazy"],options:[2,"options"]},{onChange:"onChange"}),al["\u0275qud"](603979776,1,{templates:1}),al["\u0275prd"](1024,null,Fu.NG_VALUE_ACCESSOR,function(e){return[e]},[Oh.Dropdown]),al["\u0275did"](6,671744,null,0,Fu.NgModel,[[8,null],[8,null],[8,null],[2,Fu.NG_VALUE_ACCESSOR]],{model:[0,"model"]},{update:"ngModelChange"}),al["\u0275prd"](2048,null,Fu.NgControl,null,[Fu.NgModel]),al["\u0275did"](8,16384,null,0,Fu.NgControlStatus,[Fu.NgControl],null,null)],function(e,t){var n=t.component;e(t,3,0,!1,!1,n.rowsPerPageItems),e(t,6,0,n.rows)},function(e,t){e(t,0,0,al["\u0275nov"](t,8).ngClassUntouched,al["\u0275nov"](t,8).ngClassTouched,al["\u0275nov"](t,8).ngClassPristine,al["\u0275nov"](t,8).ngClassDirty,al["\u0275nov"](t,8).ngClassValid,al["\u0275nov"](t,8).ngClassInvalid,al["\u0275nov"](t,8).ngClassPending)})}function vr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,40,"div",[],null,null,null,null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275did"](2,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,0,null,null,5,"a",[["class","ui-paginator-first ui-paginator-element ui-state-default ui-corner-all"],["href","#"]],[[8,"tabIndex",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.changePageToFirst(n)&&r),r},null,null)),al["\u0275did"](5,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](6,{"ui-state-disabled":0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](8,0,null,null,0,"span",[["class","fa fa-step-backward"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](11,0,null,null,5,"a",[["class","ui-paginator-prev ui-paginator-element ui-state-default ui-corner-all"],["href","#"]],[[8,"tabIndex",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.changePageToPrev(n)&&r),r},null,null)),al["\u0275did"](12,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](13,{"ui-state-disabled":0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](15,0,null,null,0,"span",[["class","fa fa-backward"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](18,0,null,null,4,"span",[["class","ui-paginator-pages"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,gr)),al["\u0275did"](21,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](24,0,null,null,5,"a",[["class","ui-paginator-next ui-paginator-element ui-state-default ui-corner-all"],["href","#"]],[[8,"tabIndex",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.changePageToNext(n)&&r),r},null,null)),al["\u0275did"](25,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](26,{"ui-state-disabled":0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](28,0,null,null,0,"span",[["class","fa fa-forward"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](31,0,null,null,5,"a",[["class","ui-paginator-last ui-paginator-element ui-state-default ui-corner-all"],["href","#"]],[[8,"tabIndex",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.changePageToLast(n)&&r),r},null,null)),al["\u0275did"](32,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](33,{"ui-state-disabled":0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](35,0,null,null,0,"span",[["class","fa fa-step-forward"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,yr)),al["\u0275did"](39,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,1,0,n.styleClass,"ui-paginator ui-widget ui-widget-header ui-unselectable-text"),e(t,2,0,n.style),e(t,5,0,"ui-paginator-first ui-paginator-element ui-state-default ui-corner-all",e(t,6,0,n.isFirstPage())),e(t,12,0,"ui-paginator-prev ui-paginator-element ui-state-default ui-corner-all",e(t,13,0,n.isFirstPage())),e(t,21,0,n.pageLinks),e(t,25,0,"ui-paginator-next ui-paginator-element ui-state-default ui-corner-all",e(t,26,0,n.isLastPage())),e(t,32,0,"ui-paginator-last ui-paginator-element ui-state-default ui-corner-all",e(t,33,0,n.isLastPage())),e(t,39,0,n.rowsPerPageOptions)},function(e,t){var n=t.component;e(t,4,0,n.isFirstPage()?-1:null),e(t,11,0,n.isFirstPage()?-1:null),e(t,24,0,n.isLastPage()?-1:null),e(t,31,0,n.isLastPage()?-1:null)})}function br(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,vr)),al["\u0275did"](2,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,2,0,!!n.alwaysShow||n.pageLinks&&n.pageLinks.length>1)},null)}function _r(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](1,0,null,null,15,"div",[["class","ui-radiobutton ui-widget"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,3,"div",[["class","ui-helper-hidden-accessible"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](5,0,null,null,0,"input",[["type","radio"]],[[8,"checked",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](8,0,null,null,7,"div",[["class","ui-radiobutton-box ui-widget ui-radiobutton-relative ui-state-default"]],null,[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(e,t,n){var r=!0,i=e.component;return"click"===t&&(r=!1!==i.handleClick(n)&&r),"mouseenter"===t&&(r=0!=(i.hover=!0)&&r),"mouseleave"===t&&(r=0!=(i.hover=!1)&&r),r},null,null)),al["\u0275did"](9,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](10,{"ui-state-hover":0,"ui-state-active":1}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](12,0,null,null,2,"span",[["class","ui-radiobutton-icon ui-clickable"]],null,null,null,null,null)),al["\u0275did"](13,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](14,{"fa fa-circle":0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,9,0,"ui-radiobutton-box ui-widget ui-radiobutton-relative ui-state-default",e(t,10,0,n.hover,n.checked)),e(t,13,0,"ui-radiobutton-icon ui-clickable",e(t,14,0,n.checked))},function(e,t){e(t,5,0,t.component.checked)})}function wr(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](1,0,null,null,15,"div",[["class","ui-chkbox ui-widget"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,3,"div",[["class","ui-helper-hidden-accessible"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](5,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](8,0,null,null,7,"div",[["class","ui-chkbox-box ui-widget ui-corner-all ui-state-default"]],null,[[null,"click"],[null,"mouseover"],[null,"mouseout"]],function(e,t,n){var r=!0,i=e.component;return"click"===t&&(r=!1!==i.handleClick(n)&&r),"mouseover"===t&&(r=0!=(i.hover=!0)&&r),"mouseout"===t&&(r=0!=(i.hover=!1)&&r),r},null,null)),al["\u0275did"](9,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](10,{"ui-state-hover":0,"ui-state-active":1,"ui-state-disabled":2}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](12,0,null,null,2,"span",[["class","ui-chkbox-icon ui-clickable"]],null,null,null,null,null)),al["\u0275did"](13,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](14,{"fa fa-check":0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,9,0,"ui-chkbox-box ui-widget ui-corner-all ui-state-default",e(t,10,0,n.hover&&!n.disabled,n.checked&&!n.disabled,n.disabled)),e(t,13,0,"ui-chkbox-icon ui-clickable",e(t,14,0,n.checked))},function(e,t){e(t,5,0,t.component.checked)})}function xr(e){return al["\u0275vid"](0,[],null,null)}function Cr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,0,"span",[["class","ui-column-resizer ui-clickable"]],null,[[null,"mousedown"]],function(e,t,n){var r=!0;return"mousedown"===t&&(r=!1!==e.component.dt.initColumnResize(n)&&r),r},null,null))],null,null)}function Er(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[["class","ui-column-title"]],null,null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,1,0,t.parent.context.$implicit.header)})}function Sr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"span",[["class","ui-column-title"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,16777216,null,null,1,"p-columnHeaderTemplateLoader",[],null,null,null,Xn,_h)),al["\u0275did"](3,245760,null,0,ah.ColumnHeaderTemplateLoader,[al.ViewContainerRef],{column:[0,"column"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,3,0,t.parent.context.$implicit)},null)}function Or(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,2,"span",[["class","ui-sortable-column-icon fa fa-fw fa-sort"]],null,null,null,null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](2,{"fa-sort-desc":0,"fa-sort-asc":1})],function(e,t){var n=t.component;e(t,1,0,"ui-sortable-column-icon fa fa-fw fa-sort",e(t,2,0,-1==n.dt.getSortOrder(t.parent.context.$implicit),1==n.dt.getSortOrder(t.parent.context.$implicit)))},null)}function Tr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,0,"input",[["class","ui-column-filter ui-inputtext ui-widget ui-state-default ui-corner-all"]],[[1,"type",0],[1,"maxlength",0],[1,"placeholder",0],[8,"value",0]],[[null,"click"],[null,"input"]],function(e,t,n){var r=!0,i=e.component;return"click"===t&&(r=!1!==i.dt.onFilterInputClick(n)&&r),"input"===t&&(r=!1!==i.dt.onFilterKeyup(n.target.value,e.parent.context.$implicit.filterField||e.parent.context.$implicit.field,e.parent.context.$implicit.filterMatchMode)&&r),r},null,null))],null,function(e,t){var n=t.component;e(t,0,0,t.parent.context.$implicit.filterType,t.parent.context.$implicit.filterMaxlength,t.parent.context.$implicit.filterPlaceholder,n.dt.filters[t.parent.context.$implicit.filterField||t.parent.context.$implicit.field]?n.dt.filters[t.parent.context.$implicit.filterField||t.parent.context.$implicit.field].value:"")})}function kr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,16777216,null,null,1,"p-columnFilterTemplateLoader",[],null,null,null,er,xh)),al["\u0275did"](1,245760,null,0,ah.ColumnFilterTemplateLoader,[al.ViewContainerRef],{column:[0,"column"]},null),(e()(),al["\u0275and"](0,null,null,0))],function(e,t){e(t,1,0,t.parent.context.$implicit)},null)}function Dr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"p-dtCheckbox",[],null,[[null,"onChange"]],function(e,t,n){var r=!0;return"onChange"===t&&(r=!1!==e.component.dt.toggleRowsWithCheckbox(n)&&r),r},wr,Ph)),al["\u0275did"](1,49152,null,0,Sh.DTCheckbox,[],{checked:[0,"checked"],disabled:[1,"disabled"]},{onChange:"onChange"})],function(e,t){var n=t.component;e(t,1,0,n.dt.allSelected,n.dt.isEmpty())},null)}function Ir(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](1,0,[["headerCell",1]],null,25,"th",[],[[1,"id",0],[1,"colspan",0],[1,"rowspan",0],[1,"tabindex",0],[1,"scope",0]],[[null,"click"],[null,"dragstart"],[null,"dragleave"],[null,"drop"],[null,"mousedown"],[null,"keydown"]],function(e,t,n){var r=!0,i=e.component;return"click"===t&&(r=!1!==i.dt.sort(n,e.context.$implicit)&&r),"dragstart"===t&&(r=!1!==i.dt.onColumnDragStart(n)&&r),"dragleave"===t&&(r=!1!==i.dt.onColumnDragleave(n)&&r),"drop"===t&&(r=!1!==i.dt.onColumnDrop(n)&&r),"mousedown"===t&&(r=!1!==i.dt.onHeaderMousedown(n,al["\u0275nov"](e,1))&&r),"keydown"===t&&(r=!1!==i.dt.onHeaderKeydown(n,e.context.$implicit)&&r),r},null,null)),al["\u0275did"](2,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](3,{"ui-state-default ui-unselectable-text":0,"ui-sortable-column":1,"ui-state-active":2,"ui-resizable-column":3,"ui-selection-column":4,"ui-helper-hidden":5}),al["\u0275did"](4,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Cr)),al["\u0275did"](7,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Er)),al["\u0275did"](10,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Sr)),al["\u0275did"](13,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Or)),al["\u0275did"](16,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Tr)),al["\u0275did"](19,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,kr)),al["\u0275did"](22,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Dr)),al["\u0275did"](25,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,2,0,t.context.$implicit.headerStyleClass||t.context.$implicit.styleClass,e(t,3,0,!0,t.context.$implicit.sortable,n.dt.isSorted(t.context.$implicit),n.dt.resizableColumns,t.context.$implicit.selectionMode,t.context.$implicit.hidden)),e(t,4,0,t.context.$implicit.headerStyle||t.context.$implicit.style),e(t,7,0,n.dt.resizableColumns&&("fit"==n.dt.columnResizeMode&&!t.context.last||"expand"==n.dt.columnResizeMode)),e(t,10,0,!t.context.$implicit.selectionMode&&!t.context.$implicit.headerTemplate),e(t,13,0,t.context.$implicit.headerTemplate),e(t,16,0,t.context.$implicit.sortable),e(t,19,0,t.context.$implicit.filter&&!t.context.$implicit.filterTemplate),e(t,22,0,t.context.$implicit.filter&&t.context.$implicit.filterTemplate),e(t,25,0,"multiple"==t.context.$implicit.selectionMode&&!0===n.dt.showHeaderCheckbox)},function(e,t){e(t,1,0,t.context.$implicit.colId,t.context.$implicit.colspan,t.context.$implicit.rowspan,t.context.$implicit.sortable?t.component.tabindex:null,t.context.$implicit.scope||(t.context.$implicit.colspan?"colgroup":"col"))})}function Rr(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Ir)),al["\u0275did"](2,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,2,0,t.component.columns)},null)}function Mr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[["class","ui-column-footer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,1,0,t.parent.context.$implicit.footer)})}function Pr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"span",[["class","ui-column-footer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,16777216,null,null,1,"p-columnFooterTemplateLoader",[],null,null,null,Jn,wh)),al["\u0275did"](3,245760,null,0,ah.ColumnFooterTemplateLoader,[al.ViewContainerRef],{column:[0,"column"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,3,0,t.parent.context.$implicit)},null)}function Nr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,10,"td",[],[[1,"colspan",0],[1,"rowspan",0]],null,null,null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](2,{"ui-state-default":0,"ui-helper-hidden":1}),al["\u0275did"](3,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Mr)),al["\u0275did"](6,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Pr)),al["\u0275did"](9,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,1,0,t.context.$implicit.footerStyleClass||t.context.$implicit.styleClass,e(t,2,0,!0,t.context.$implicit.hidden)),e(t,3,0,t.context.$implicit.footerStyle||t.context.$implicit.style),e(t,6,0,!t.context.$implicit.footerTemplate),e(t,9,0,t.context.$implicit.footerTemplate)},function(e,t){e(t,0,0,t.context.$implicit.colspan,t.context.$implicit.rowspan)})}function Ar(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Nr)),al["\u0275did"](2,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,2,0,t.component.columns)},null)}function Lr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"a",[["href","#"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.dt.toggleRowGroup(n,e.parent.parent.context.$implicit)&&r),r},null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,1,"span",[["class","fa fa-fw"]],null,null,null,null,null)),al["\u0275did"](3,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,3,0,"fa fa-fw",n.dt.isRowGroupExpanded(t.parent.parent.context.$implicit)?n.dt.expandedIcon:n.dt.collapsedIcon)},null)}function Fr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,[["rowGroupElement",1]],null,15,"tr",[["class","ui-widget-header ui-rowgroup-header"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.dt.onRowGroupClick(n)&&r),r},null,null)),al["\u0275did"](1,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),al["\u0275pod"](2,{cursor:0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,0,null,null,10,"td",[],[[1,"colspan",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Lr)),al["\u0275did"](7,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](9,0,null,null,4,"span",[["class","ui-rowgroup-header-name"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](11,16777216,null,null,1,"p-templateLoader",[],null,null,null,nr,Eh)),al["\u0275did"](12,245760,null,0,ah.TemplateLoader,[al.ViewContainerRef],{template:[0,"template"],data:[1,"data"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,1,0,e(t,2,0,n.dt.sortableRowGroup?"pointer":"auto")),e(t,7,0,n.dt.expandableRowGroups),e(t,12,0,n.dt.rowGroupHeaderTemplate,t.parent.context.$implicit)},function(e,t){e(t,4,0,t.component.dt.visibleColumns().length)})}function jr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[["class","ui-column-title"]],null,null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,1,0,t.parent.parent.context.$implicit.header)})}function Vr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[["class","ui-cell-data"]],null,null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,1,0,t.component.dt.resolveFieldData(t.parent.parent.parent.parent.context.$implicit,t.parent.parent.context.$implicit.field))})}function zr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"span",[["class","ui-cell-data"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,16777216,null,null,1,"p-columnBodyTemplateLoader",[],null,null,null,Yn,bh)),al["\u0275did"](3,770048,null,0,ah.ColumnBodyTemplateLoader,[al.ViewContainerRef],{column:[0,"column"],rowData:[1,"rowData"],rowIndex:[2,"rowIndex"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,3,0,t.parent.parent.context.$implicit,t.parent.parent.parent.parent.context.$implicit,t.parent.parent.parent.parent.context.index+t.component.dt.first)},null)}function Br(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,5,"input",[["class","ui-inputtext ui-widget ui-state-default ui-corner-all"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"keydown"],[null,"blur"],[null,"input"],[null,"change"],[null,"compositionstart"],[null,"compositionend"]],function(e,t,n){var r=!0,i=e.component;return"input"===t&&(r=!1!==al["\u0275nov"](e,1)._handleInput(n.target.value)&&r),"blur"===t&&(r=!1!==al["\u0275nov"](e,1).onTouched()&&r),"compositionstart"===t&&(r=!1!==al["\u0275nov"](e,1)._compositionStart()&&r),"compositionend"===t&&(r=!1!==al["\u0275nov"](e,1)._compositionEnd(n.target.value)&&r),"ngModelChange"===t&&(r=!1!==(e.parent.parent.parent.parent.parent.context.$implicit[e.parent.parent.parent.context.$implicit.field]=n)&&r),"keydown"===t&&(r=!1!==i.dt.onCellEditorKeydown(n,e.parent.parent.parent.context.$implicit,e.parent.parent.parent.parent.parent.context.$implicit,e.parent.parent.parent.parent.parent.context.index)&&r),"blur"===t&&(r=!1!==i.dt.onCellEditorBlur(n,e.parent.parent.parent.context.$implicit,e.parent.parent.parent.parent.parent.context.$implicit,e.parent.parent.parent.parent.parent.context.index)&&r),"input"===t&&(r=!1!==i.dt.onCellEditorInput(n,e.parent.parent.parent.context.$implicit,e.parent.parent.parent.parent.parent.context.$implicit,e.parent.parent.parent.parent.parent.context.index)&&r),"change"===t&&(r=!1!==i.dt.onCellEditorChange(n,e.parent.parent.parent.context.$implicit,e.parent.parent.parent.parent.parent.context.$implicit,e.parent.parent.parent.parent.parent.context.index)&&r),r},null,null)),al["\u0275did"](1,16384,null,0,Fu.DefaultValueAccessor,[al.Renderer2,al.ElementRef,[2,Fu.COMPOSITION_BUFFER_MODE]],null,null),al["\u0275prd"](1024,null,Fu.NG_VALUE_ACCESSOR,function(e){return[e]},[Fu.DefaultValueAccessor]),al["\u0275did"](3,671744,null,0,Fu.NgModel,[[8,null],[8,null],[8,null],[2,Fu.NG_VALUE_ACCESSOR]],{model:[0,"model"]},{update:"ngModelChange"}),al["\u0275prd"](2048,null,Fu.NgControl,null,[Fu.NgModel]),al["\u0275did"](5,16384,null,0,Fu.NgControlStatus,[Fu.NgControl],null,null)],function(e,t){e(t,3,0,t.parent.parent.parent.parent.parent.context.$implicit[t.parent.parent.parent.context.$implicit.field])},function(e,t){e(t,0,0,al["\u0275nov"](t,5).ngClassUntouched,al["\u0275nov"](t,5).ngClassTouched,al["\u0275nov"](t,5).ngClassPristine,al["\u0275nov"](t,5).ngClassDirty,al["\u0275nov"](t,5).ngClassValid,al["\u0275nov"](t,5).ngClassInvalid,al["\u0275nov"](t,5).ngClassPending)})}function Hr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,0,"a",[["class","ui-cell-editor-proxy-focus"],["href","#"]],null,[[null,"focus"]],function(e,t,n){var r=!0;return"focus"===t&&(r=!1!==e.component.dt.onCustomEditorFocusPrev(n,e.parent.parent.parent.context.index)&&r),r},null,null))],null,null)}function Wr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,16777216,null,null,1,"p-columnEditorTemplateLoader",[],null,null,null,tr,Ch)),al["\u0275did"](1,245760,null,0,ah.ColumnEditorTemplateLoader,[al.ViewContainerRef],{column:[0,"column"],rowData:[1,"rowData"],rowIndex:[2,"rowIndex"]},null),(e()(),al["\u0275and"](0,null,null,0))],function(e,t){e(t,1,0,t.parent.parent.parent.context.$implicit,t.parent.parent.parent.parent.parent.context.$implicit,t.parent.parent.parent.parent.parent.context.index)},null)}function qr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,0,"a",[["class","ui-cell-editor-proxy-focus"],["href","#"]],null,[[null,"focus"]],function(e,t,n){var r=!0;return"focus"===t&&(r=!1!==e.component.dt.onCustomEditorFocusNext(n,e.parent.parent.parent.context.index)&&r),r},null,null))],null,null)}function Ur(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,13,"div",[["class","ui-cell-editor"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Br)),al["\u0275did"](3,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Hr)),al["\u0275did"](6,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Wr)),al["\u0275did"](9,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,qr)),al["\u0275did"](12,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,3,0,!t.parent.parent.context.$implicit.editorTemplate),e(t,6,0,t.parent.parent.context.$implicit.editorTemplate),e(t,9,0,t.parent.parent.context.$implicit.editorTemplate),e(t,12,0,t.parent.parent.context.$implicit.editorTemplate)},null)}function Gr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"a",[["href","#"]],null,[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.dt.toggleRow(e.parent.parent.parent.parent.context.$implicit,n)&&r),r},null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,1,"span",[["class","ui-row-toggler fa fa-fw ui-clickable"]],null,null,null,null,null)),al["\u0275did"](3,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,3,0,"ui-row-toggler fa fa-fw ui-clickable",n.dt.isRowExpanded(t.parent.parent.parent.parent.context.$implicit)?n.dt.expandedIcon:n.dt.collapsedIcon)},null)}function Kr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"p-dtRadioButton",[],null,[[null,"onClick"]],function(e,t,n){var r=!0;return"onClick"===t&&(r=!1!==e.component.dt.selectRowWithRadio(n,e.parent.parent.parent.parent.context.$implicit)&&r),r},_r,Mh)),al["\u0275did"](1,49152,null,0,Sh.DTRadioButton,[],{checked:[0,"checked"]},{onClick:"onClick"})],function(e,t){e(t,1,0,t.component.dt.isSelected(t.parent.parent.parent.parent.context.$implicit))},null)}function $r(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"p-dtCheckbox",[],null,[[null,"onChange"]],function(e,t,n){var r=!0;return"onChange"===t&&(r=!1!==e.component.dt.toggleRowWithCheckbox(n,e.parent.parent.parent.parent.context.$implicit)&&r),r},wr,Ph)),al["\u0275did"](1,49152,null,0,Sh.DTCheckbox,[],{checked:[0,"checked"]},{onChange:"onChange"})],function(e,t){e(t,1,0,t.component.dt.isSelected(t.parent.parent.parent.parent.context.$implicit))},null)}function Zr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,[["cell",1]],null,25,"td",[],[[1,"rowspan",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.dt.switchCellToEditMode(al["\u0275nov"](e,0),e.parent.context.$implicit,e.parent.parent.parent.context.$implicit)&&r),r},null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](2,{"ui-editable-column":0,"ui-selection-column":1,"ui-helper-hidden":2}),al["\u0275did"](3,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,jr)),al["\u0275did"](6,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Vr)),al["\u0275did"](9,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,zr)),al["\u0275did"](12,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Ur)),al["\u0275did"](15,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Gr)),al["\u0275did"](18,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Kr)),al["\u0275did"](21,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,$r)),al["\u0275did"](24,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,1,0,t.parent.context.$implicit.bodyStyleClass||t.parent.context.$implicit.styleClass,e(t,2,0,t.parent.context.$implicit.editable,t.parent.context.$implicit.selectionMode,t.parent.context.$implicit.hidden)),e(t,3,0,t.parent.context.$implicit.bodyStyle||t.parent.context.$implicit.style),e(t,6,0,n.dt.responsive),e(t,9,0,!t.parent.context.$implicit.bodyTemplate&&!t.parent.context.$implicit.expander&&!t.parent.context.$implicit.selectionMode),e(t,12,0,t.parent.context.$implicit.bodyTemplate),e(t,15,0,t.parent.context.$implicit.editable),e(t,18,0,t.parent.context.$implicit.expander),e(t,21,0,"single"==t.parent.context.$implicit.selectionMode),e(t,24,0,"multiple"==t.parent.context.$implicit.selectionMode)},function(e,t){var n=t.component;e(t,0,0,"rowspan"==n.dt.rowGroupMode&&n.dt.sortField==t.parent.context.$implicit.field&&n.dt.rowGroupMetadata[n.dt.resolveFieldData(t.parent.parent.parent.context.$implicit,n.dt.sortField)].index==t.parent.parent.parent.context.index?n.dt.rowGroupMetadata[n.dt.resolveFieldData(t.parent.parent.parent.context.$implicit,n.dt.sortField)].size:null)})}function Qr(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Zr)),al["\u0275did"](2,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,2,0,!n.dt.rowGroupMode||"subheader"==n.dt.rowGroupMode||"rowspan"==n.dt.rowGroupMode&&(n.dt.sortField==t.context.$implicit.field&&n.dt.rowGroupMetadata[n.dt.resolveFieldData(t.parent.parent.context.$implicit,n.dt.sortField)].index==t.parent.parent.context.index||n.dt.sortField!=t.context.$implicit.field))},null)}function Yr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,[["rowElement",1]],null,6,"tr",[],null,[[null,"click"],[null,"dblclick"],[null,"contextmenu"],[null,"touchend"]],function(e,t,n){var r=!0,i=e.component;return"click"===t&&(r=!1!==i.dt.handleRowClick(n,e.parent.context.$implicit,e.parent.context.index)&&r),"dblclick"===t&&(r=!1!==i.dt.rowDblclick(n,e.parent.context.$implicit)&&r),"contextmenu"===t&&(r=!1!==i.dt.onRowRightClick(n,e.parent.context.$implicit)&&r),"touchend"===t&&(r=!1!==i.dt.handleRowTouchEnd(n)&&r),r},null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pad"](2,5),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Qr)),al["\u0275did"](5,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,1,0,e(t,2,0,t.parent.context.even&&"rowspan"!=n.dt.rowGroupMode?"ui-datatable-even":"",t.parent.context.odd&&"rowspan"!=n.dt.rowGroupMode?"ui-datatable-odd":"",n.dt.isSelected(t.parent.context.$implicit)?"ui-state-highlight":"",n.dt.isRowExpanded(t.parent.context.$implicit)?"ui-expanded-row":"",n.dt.getRowStyleClass(t.parent.context.$implicit,t.parent.context.index))),e(t,5,0,n.columns)},null)}function Xr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,7,"tr",[["class","ui-expanded-row-content"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,4,"td",[],[[1,"colspan",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,16777216,null,null,1,"p-rowExpansionLoader",[],null,null,null,xr,Nh)),al["\u0275did"](5,245760,null,0,Sh.RowExpansionLoader,[al.ViewContainerRef],{template:[0,"template"],rowData:[1,"rowData"],rowIndex:[2,"rowIndex"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,5,0,t.component.dt.rowExpansionTemplate,t.parent.context.$implicit,t.parent.context.index)},function(e,t){e(t,2,0,t.component.dt.visibleColumns().length)})}function Jr(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"tr",[["class","ui-widget-header ui-rowgroup-footer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,16777216,null,null,1,"p-templateLoader",[["class","ui-helper-hidden"]],null,null,null,nr,Eh)),al["\u0275did"](3,245760,null,0,ah.TemplateLoader,[al.ViewContainerRef],{template:[0,"template"],data:[1,"data"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,3,0,t.component.dt.rowGroupFooterTemplate,t.parent.context.$implicit)},null)}function ei(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Fr)),al["\u0275did"](2,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Yr)),al["\u0275did"](5,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Xr)),al["\u0275did"](8,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Jr)),al["\u0275did"](11,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,2,0,"subheader"==n.dt.rowGroupMode&&(0===t.context.index||n.dt.resolveFieldData(t.context.$implicit,n.dt.groupField)!==n.dt.resolveFieldData(n.dt.dataToRender[t.context.index-1],n.dt.groupField))),e(t,5,0,!n.dt.expandableRowGroups||n.dt.isRowGroupExpanded(t.context.$implicit)),e(t,8,0,n.dt.expandableRows&&n.dt.isRowExpanded(t.context.$implicit)),e(t,11,0,n.dt.rowGroupFooterTemplate&&"subheader"==n.dt.rowGroupMode&&(t.context.index===n.dt.dataToRender.length-1||n.dt.resolveFieldData(t.context.$implicit,n.dt.groupField)!==n.dt.resolveFieldData(n.dt.dataToRender[t.context.index+1],n.dt.groupField))&&(!n.dt.expandableRowGroups||n.dt.isRowGroupExpanded(t.context.$implicit)))},null)}function ti(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](1,null,["",""]))],null,function(e,t){e(t,1,0,t.component.dt.emptyMessage)})}function ni(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,10,"tr",[["class","ui-widget-content ui-datatable-emptymessage-row"]],[[4,"visibility",null]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,7,"td",[["class","ui-datatable-emptymessage"]],[[1,"colspan",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ti)),al["\u0275did"](5,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](7,16777216,null,null,1,"p-templateLoader",[],null,null,null,nr,Eh)),al["\u0275did"](8,245760,null,0,ah.TemplateLoader,[al.ViewContainerRef],{template:[0,"template"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,5,0,!n.dt.emptyMessageTemplate),e(t,8,0,n.dt.emptyMessageTemplate)},function(e,t){var n=t.component;e(t,0,0,n.dt.loading?"hidden":"visible"),e(t,2,0,n.dt.visibleColumns().length)})}function ri(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ei)),al["\u0275did"](2,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(e()(),al["\u0275ted"](-1,null,["\n\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ni)),al["\u0275did"](5,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,2,0,n.data,n.dt.rowTrackBy),e(t,5,0,n.dt.isEmpty())},null)}function ii(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"tr",[["class","ui-state-default"]],null,null,null,Rr,Ah)),al["\u0275did"](1,49152,null,0,Sh.ColumnHeaders,[Sh.DataTable],{columns:[0,"columns"]},null)],function(e,t){e(t,1,0,t.component.columns)},null)}function oi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"tr",[["class","ui-state-default"]],null,null,null,Rr,Ah)),al["\u0275did"](1,49152,null,0,Sh.ColumnHeaders,[Sh.DataTable],{columns:[0,"columns"]},null)],function(e,t){e(t,1,0,t.context.$implicit.columns)},null)}function li(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,oi)),al["\u0275did"](2,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,2,0,t.component.headerColumnGroup.rows)},null)}function ai(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"tbody",[],null,null,null,ri,Fh)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](2,{"ui-datatable-data ui-widget-content":0,"ui-datatable-hoverable-rows":1}),al["\u0275did"](3,49152,null,0,Sh.TableBody,[Sh.DataTable],{columns:[0,"columns"],data:[1,"data"]},null)],function(e,t){var n=t.component;e(t,1,0,e(t,2,0,!0,n.dt.rowHover||n.dt.selectionMode)),e(t,3,0,n.columns,n.dt.frozenValue)},null)}function si(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"col",[],null,null,null,null,null)),al["\u0275did"](1,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](2,{"ui-helper-hidden":0}),al["\u0275did"](3,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null)],function(e,t){e(t,1,0,e(t,2,0,t.context.$implicit.hidden)),e(t,3,0,t.context.$implicit.headerStyle||t.context.$implicit.style)},null)}function ui(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"tr",[["class","ui-state-default"]],null,null,null,Ar,Lh)),al["\u0275did"](1,49152,null,0,Sh.ColumnFooters,[Sh.DataTable],{columns:[0,"columns"]},null)],function(e,t){e(t,1,0,t.component.columns)},null)}function ci(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"tr",[["class","ui-state-default"]],null,null,null,Ar,Lh)),al["\u0275did"](1,49152,null,0,Sh.ColumnFooters,[Sh.DataTable],{columns:[0,"columns"]},null)],function(e,t){e(t,1,0,t.context.$implicit.columns)},null)}function di(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ci)),al["\u0275did"](2,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,2,0,t.component.footerColumnGroup.rows)},null)}function pi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,[[6,0],["scrollFooter",1]],null,20,"div",[["class","ui-widget-header ui-datatable-scrollable-footer"]],null,null,null,null,null)),al["\u0275did"](1,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),al["\u0275pod"](2,{width:0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](4,0,[[7,0],["scrollFooterBox",1]],null,15,"div",[["class","ui-datatable-scrollable-footer-box"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](6,0,null,null,12,"table",[],null,null,null,null,null)),al["\u0275did"](7,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275did"](8,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](10,0,null,null,7,"tfoot",[["class","ui-datatable-tfoot"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ui)),al["\u0275did"](13,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,di)),al["\u0275did"](16,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,1,0,e(t,2,0,n.width)),e(t,7,0,n.dt.tableStyleClass),e(t,8,0,n.dt.tableStyle),e(t,13,0,!n.footerColumnGroup),e(t,16,0,n.footerColumnGroup)},null)}function fi(e){return al["\u0275vid"](0,[al["\u0275qud"](402653184,1,{scrollHeaderViewChild:0}),al["\u0275qud"](402653184,2,{scrollHeaderBoxViewChild:0}),al["\u0275qud"](402653184,3,{scrollBodyViewChild:0}),al["\u0275qud"](402653184,4,{scrollTableViewChild:0}),al["\u0275qud"](402653184,5,{scrollTableWrapperViewChild:0}),al["\u0275qud"](671088640,6,{scrollFooterViewChild:0}),al["\u0275qud"](671088640,7,{scrollFooterBoxViewChild:0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](8,0,[[1,0],["scrollHeader",1]],null,23,"div",[["class","ui-widget-header ui-datatable-scrollable-header"]],null,null,null,null,null)),al["\u0275did"](9,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),al["\u0275pod"](10,{width:0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](12,0,[[2,0],["scrollHeaderBox",1]],null,18,"div",[["class","ui-datatable-scrollable-header-box"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](14,0,null,null,15,"table",[],null,null,null,null,null)),al["\u0275did"](15,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275did"](16,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](18,0,null,null,7,"thead",[["class","ui-datatable-thead"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ii)),al["\u0275did"](21,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,li)),al["\u0275did"](24,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ai)),al["\u0275did"](28,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](33,0,[[3,0],["scrollBody",1]],null,23,"div",[["class","ui-datatable-scrollable-body"]],null,null,null,null,null)),al["\u0275did"](34,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),al["\u0275pod"](35,{width:0}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](37,0,[[5,0],["scrollTableWrapper",1]],null,18,"div",[["class","ui-datatable-scrollable-table-wrapper"],["style","position:relative"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](39,0,[[4,0],["scrollTable",1]],null,15,"table",[["style","top:0px"]],null,null,null,null,null)),al["\u0275did"](40,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](41,{"ui-datatable-virtual-table":0}),al["\u0275did"](42,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](44,0,null,null,4,"colgroup",[["class","ui-datatable-scrollable-colgroup"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,si)),al["\u0275did"](47,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](50,0,null,null,3,"tbody",[],null,null,null,ri,Fh)),al["\u0275did"](51,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](52,{"ui-datatable-data ui-widget-content":0,"ui-datatable-hoverable-rows":1}),al["\u0275did"](53,49152,null,0,Sh.TableBody,[Sh.DataTable],{columns:[0,"columns"],data:[1,"data"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,pi)),al["\u0275did"](59,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,9,0,e(t,10,0,n.width)),e(t,15,0,n.dt.tableStyleClass),e(t,16,0,n.dt.tableStyle),e(t,21,0,!n.headerColumnGroup),e(t,24,0,n.headerColumnGroup),e(t,28,0,n.dt.frozenValue),e(t,34,0,e(t,35,0,n.width)),e(t,40,0,n.dt.tableStyleClass,e(t,41,0,n.virtualScroll)),e(t,42,0,n.dt.tableStyle),e(t,47,0,n.columns),e(t,51,0,e(t,52,0,!0,n.dt.rowHover||n.dt.selectionMode)),e(t,53,0,n.columns,n.dt.dataToRender),e(t,59,0,n.dt.hasFooter())},null)}function hi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,0,"div",[["class","ui-datatable-loading ui-widget-overlay"]],null,null,null,null,null))],null,null)}function mi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"div",[["class","ui-datatable-loading-content"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "]))],null,function(e,t){e(t,2,0,"fa fa-spin fa-2x "+t.component.loadingIcon)})}function gi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"div",[["class","ui-datatable-header ui-widget-header"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),al["\u0275ncd"](null,0),(e()(),al["\u0275ted"](-1,null,["\n "]))],null,null)}function yi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"p-paginator",[["styleClass","ui-paginator-top"]],null,[[null,"onPageChange"]],function(e,t,n){var r=!0;return"onPageChange"===t&&(r=!1!==e.component.onPageChange(n)&&r),r},br,Rh)),al["\u0275did"](1,49152,null,0,Th.Paginator,[],{pageLinkSize:[0,"pageLinkSize"],styleClass:[1,"styleClass"],alwaysShow:[2,"alwaysShow"],totalRecords:[3,"totalRecords"],first:[4,"first"],rows:[5,"rows"],rowsPerPageOptions:[6,"rowsPerPageOptions"]},{onPageChange:"onPageChange"})],function(e,t){var n=t.component;e(t,1,0,n.pageLinks,"ui-paginator-top",n.alwaysShowPaginator,n.totalRecords,n.first,n.rows,n.rowsPerPageOptions)},null)}function vi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"tr",[["class","ui-state-default"]],null,null,null,Rr,Ah)),al["\u0275did"](1,49152,null,0,Sh.ColumnHeaders,[Sh.DataTable],{columns:[0,"columns"]},null)],function(e,t){e(t,1,0,t.component.columns)},null)}function bi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"tr",[["class","ui-state-default"]],null,null,null,Rr,Ah)),al["\u0275did"](1,49152,null,0,Sh.ColumnHeaders,[Sh.DataTable],{columns:[0,"columns"]},null)],function(e,t){e(t,1,0,t.context.$implicit.columns)},null)}function _i(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,bi)),al["\u0275did"](2,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,2,0,t.component.headerColumnGroups.first.rows)},null)}function wi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"tr",[["class","ui-state-default"]],null,null,null,Ar,Lh)),al["\u0275did"](1,49152,null,0,Sh.ColumnFooters,[Sh.DataTable],{columns:[0,"columns"]},null)],function(e,t){e(t,1,0,t.component.columns)},null)}function xi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"tr",[["class","ui-state-default"]],null,null,null,Ar,Lh)),al["\u0275did"](1,49152,null,0,Sh.ColumnFooters,[Sh.DataTable],{columns:[0,"columns"]},null)],function(e,t){e(t,1,0,t.context.$implicit.columns)},null)}function Ci(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,xi)),al["\u0275did"](2,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){e(t,2,0,t.component.footerColumnGroups.first.rows)},null)}function Ei(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,7,"tfoot",[["class","ui-datatable-tfoot"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,wi)),al["\u0275did"](3,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Ci)),al["\u0275did"](6,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,3,0,!n.footerColumnGroups.first),e(t,6,0,n.footerColumnGroups.first)},null)}function Si(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,23,"div",[["class","ui-datatable-tablewrapper"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](2,0,null,null,20,"table",[],null,null,null,null,null)),al["\u0275did"](3,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275did"](4,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](6,0,null,null,7,"thead",[["class","ui-datatable-thead"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,vi)),al["\u0275did"](9,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,_i)),al["\u0275did"](12,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Ei)),al["\u0275did"](16,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](18,0,null,null,3,"tbody",[],null,null,null,ri,Fh)),al["\u0275did"](19,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngClass:[0,"ngClass"]},null),al["\u0275pod"](20,{"ui-datatable-data ui-widget-content":0,"ui-datatable-hoverable-rows":1}),al["\u0275did"](21,49152,null,0,Sh.TableBody,[Sh.DataTable],{columns:[0,"columns"],data:[1,"data"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,3,0,n.tableStyleClass),e(t,4,0,n.tableStyle),e(t,9,0,!n.headerColumnGroups.first),e(t,12,0,n.headerColumnGroups.first),e(t,16,0,n.hasFooter()),e(t,19,0,e(t,20,0,!0,n.rowHover||n.selectionMode)),e(t,21,0,n.columns,n.dataToRender)},null)}function Oi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"div",[["class","ui-datatable-scrollable-view ui-datatable-frozen-view"],["frozen","true"]],null,null,null,fi,jh)),al["\u0275did"](1,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),al["\u0275pod"](2,{width:0}),al["\u0275did"](3,12763136,null,0,Sh.ScrollableView,[Sh.DataTable,kh.DomHandler,al.ElementRef,al.Renderer2,al.NgZone],{columns:[0,"columns"],headerColumnGroup:[1,"headerColumnGroup"],footerColumnGroup:[2,"footerColumnGroup"],frozen:[3,"frozen"]},null)],function(e,t){var n=t.component;e(t,1,0,e(t,2,0,n.frozenWidth)),e(t,3,0,n.frozenColumns,n.frozenHeaderColumnGroup,n.frozenFooterColumnGroup,"true")},null)}function Ti(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](1,0,null,null,11,"div",[["class","ui-datatable-scrollable-wrapper ui-helper-clearfix"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Oi)),al["\u0275did"](4,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](6,0,null,null,5,"div",[["class","ui-datatable-scrollable-view"]],null,[[null,"onVirtualScroll"]],function(e,t,n){var r=!0;return"onVirtualScroll"===t&&(r=!1!==e.component.onVirtualScroll(n)&&r),r},fi,jh)),al["\u0275did"](7,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](8,{"ui-datatable-unfrozen-view":0}),al["\u0275did"](9,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),al["\u0275pod"](10,{width:0,left:1}),al["\u0275did"](11,12763136,null,0,Sh.ScrollableView,[Sh.DataTable,kh.DomHandler,al.ElementRef,al.Renderer2,al.NgZone],{columns:[0,"columns"],headerColumnGroup:[1,"headerColumnGroup"],footerColumnGroup:[2,"footerColumnGroup"],virtualScroll:[3,"virtualScroll"]},{onVirtualScroll:"onVirtualScroll"}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,4,0,n.hasFrozenColumns()),e(t,7,0,"ui-datatable-scrollable-view",e(t,8,0,n.hasFrozenColumns())),e(t,9,0,e(t,10,0,n.unfrozenWidth,n.frozenWidth)),e(t,11,0,n.scrollableColumns,n.scrollableHeaderColumnGroup,n.scrollableFooterColumnGroup,n.virtualScroll)},null)}function ki(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"p-paginator",[["styleClass","ui-paginator-bottom"]],null,[[null,"onPageChange"]],function(e,t,n){var r=!0;return"onPageChange"===t&&(r=!1!==e.component.onPageChange(n)&&r),r},br,Rh)),al["\u0275did"](1,49152,null,0,Th.Paginator,[],{pageLinkSize:[0,"pageLinkSize"],styleClass:[1,"styleClass"],alwaysShow:[2,"alwaysShow"],totalRecords:[3,"totalRecords"],first:[4,"first"],rows:[5,"rows"],rowsPerPageOptions:[6,"rowsPerPageOptions"]},{onPageChange:"onPageChange"})],function(e,t){var n=t.component;e(t,1,0,n.pageLinks,"ui-paginator-bottom",n.alwaysShowPaginator,n.totalRecords,n.first,n.rows,n.rowsPerPageOptions)},null)}function Di(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,3,"div",[["class","ui-datatable-footer ui-widget-header"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),al["\u0275ncd"](null,1),(e()(),al["\u0275ted"](-1,null,["\n "]))],null,null)}function Ii(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](1,0,null,null,34,"div",[],[[4,"width",null]],null,null,null,null)),al["\u0275did"](2,278528,null,0,cl.NgClass,[al.IterableDiffers,al.KeyValueDiffers,al.ElementRef,al.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),al["\u0275pod"](3,{"ui-datatable ui-widget":0,"ui-datatable-reflow":1,"ui-datatable-stacked":2,"ui-datatable-resizable":3,"ui-datatable-scrollable":4}),al["\u0275did"](4,278528,null,0,cl.NgStyle,[al.KeyValueDiffers,al.ElementRef,al.Renderer2],{ngStyle:[0,"ngStyle"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,hi)),al["\u0275did"](7,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,mi)),al["\u0275did"](10,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,gi)),al["\u0275did"](13,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,yi)),al["\u0275did"](16,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Si)),al["\u0275did"](19,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Ti)),al["\u0275did"](22,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,ki)),al["\u0275did"](25,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275and"](16777216,null,null,1,null,Di)),al["\u0275did"](28,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n \n "])),(e()(),al["\u0275eld"](30,0,null,null,0,"div",[["class","ui-column-resizer-helper ui-state-highlight"],["style","display:none"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](32,0,null,null,0,"span",[["class","fa fa-arrow-down ui-datatable-reorder-indicator-up"],["style","position: absolute; display: none;"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](34,0,null,null,0,"span",[["class","fa fa-arrow-up ui-datatable-reorder-indicator-down"],["style","position: absolute; display: none;"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "]))],function(e,t){var n=t.component;e(t,2,0,n.styleClass,e(t,3,0,!0,n.responsive,n.stacked,n.resizableColumns,n.scrollable)),e(t,4,0,n.style),e(t,7,0,n.loading),e(t,10,0,n.loading),e(t,13,0,n.header),e(t,16,0,n.paginator&&("top"===n.paginatorPosition||"both"==n.paginatorPosition)),e(t,19,0,!n.scrollable),e(t,22,0,n.scrollable),e(t,25,0,n.paginator&&("bottom"===n.paginatorPosition||"both"==n.paginatorPosition)),e(t,28,0,n.footer)},function(e,t){e(t,1,0,t.component.containerWidth)})}function Ri(e){return al["\u0275vid"](2,[al["\u0275qud"](402653184,1,{_inputElement:0}),(e()(),al["\u0275eld"](1,0,null,null,3,"label",[["class","mat-button-toggle-label"]],[[1,"for",0]],null,null,null,null)),(e()(),al["\u0275eld"](2,0,[[1,0],["input",1]],null,0,"input",[["class","mat-button-toggle-input cdk-visually-hidden"]],[[8,"type",0],[8,"id",0],[8,"checked",0],[8,"disabled",0],[8,"name",0],[1,"aria-label",0],[1,"aria-labelledby",0]],[[null,"change"],[null,"click"]],function(e,t,n){var r=!0,i=e.component;return"change"===t&&(r=!1!==i._onInputChange(n)&&r),"click"===t&&(r=!1!==i._onInputClick(n)&&r),r},null,null)),(e()(),al["\u0275eld"](3,0,null,null,1,"div",[["class","mat-button-toggle-label-content"]],null,null,null,null,null)),al["\u0275ncd"](null,0),(e()(),al["\u0275eld"](5,0,null,null,0,"div",[["class","mat-button-toggle-focus-overlay"]],null,null,null,null,null))],null,function(e,t){var n=t.component;e(t,1,0,n.inputId),e(t,2,0,n._type,n.inputId,n.checked,n.disabled||null,n.name,n.ariaLabel,n.ariaLabelledby)})}function Mi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,6,"p-column",[],null,null,null,Qn,vh)),al["\u0275did"](1,1097728,[[5,4]],2,ah.Column,[],{field:[0,"field"],header:[1,"header"],sortable:[2,"sortable"],style:[3,"style"],headerStyleClass:[4,"headerStyleClass"],footerStyle:[5,"footerStyle"]},null),al["\u0275qud"](603979776,8,{templates:1}),al["\u0275qud"](335544320,9,{template:0}),al["\u0275pod"](4,{"text-align":0,"text-overflow":1,"word-wrap":2,"word-break":3}),al["\u0275pod"](5,{color:0}),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t\t"]))],function(e,t){var n=t.component;e(t,1,0,t.context.$implicit.field,t.context.$implicit.header,!0,e(t,4,0,"left","ellipsis","break-word","break-all"),n.datatable-n.header,e(t,5,0,"blue"))},null)}function Pi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,18,"div",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\t\t\t\t\n\t\t\t\t"])),(e()(),al["\u0275eld"](2,0,null,null,15,"p-dataTable",[["id","review-table"]],[[8,"hidden",0]],null,null,Ii,Vh)),al["\u0275prd"](512,null,kh.DomHandler,kh.DomHandler,[]),al["\u0275prd"](512,null,Dh.ObjectUtils,Dh.ObjectUtils,[]),al["\u0275did"](5,14139392,null,6,Sh.DataTable,[al.ElementRef,kh.DomHandler,al.IterableDiffers,al.Renderer2,al.ChangeDetectorRef,Dh.ObjectUtils,al.NgZone],{paginator:[0,"paginator"],rows:[1,"rows"],pageLinks:[2,"pageLinks"],rowsPerPageOptions:[3,"rowsPerPageOptions"],responsive:[4,"responsive"],style:[5,"style"],value:[6,"value"]},null),al["\u0275qud"](335544320,2,{header:0}),al["\u0275qud"](335544320,3,{footer:0}),al["\u0275qud"](603979776,4,{templates:1}),al["\u0275qud"](603979776,5,{cols:1}),al["\u0275qud"](603979776,6,{headerColumnGroups:1}),al["\u0275qud"](603979776,7,{footerColumnGroups:1}),al["\u0275pad"](12,6),al["\u0275pod"](13,{width:0,overflow:1}),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t\t"])),(e()(),al["\u0275and"](16777216,null,null,1,null,Mi)),al["\u0275did"](16,802816,null,0,cl.NgForOf,[al.ViewContainerRef,al.TemplateRef,al.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t"]))],function(e,t){var n=t.component;e(t,5,0,!0,20,3,e(t,12,0,5,10,20,30,40,50),!0,e(t,13,0,"100%","hidden"),n.data),e(t,16,0,n.dataColumns)},function(e,t){e(t,2,0,t.component.loading)})}function Ni(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"div",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t"])),(e()(),al["\u0275and"](16777216,null,null,1,null,Pi)),al["\u0275did"](3,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n\t\t"]))],function(e,t){e(t,3,0,"TABLE"==t.component.selectedOutputView)},null)}function Ai(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,7,"div",[["class","queryErrorMessage"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](2,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["ERROR:"])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](5,0,null,null,1,"span",[],null,null,null,null,null)),(e()(),al["\u0275ted"](6,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t"]))],null,function(e,t){e(t,6,0,t.component.queryMessage)})}function Li(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,9,"div",[["class","data-viewer-container"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t\t"])),(e()(),al["\u0275eld"](2,0,null,null,3,"button",[["class","button-export mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.exportToText()&&r),r},J,nc)),al["\u0275did"](3,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](4,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](-1,0,["EXPORT"])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t\t"])),(e()(),al["\u0275eld"](7,0,null,null,1,"pre",[["class","json-output"]],null,null,null,null,null)),(e()(),al["\u0275ted"](8,null,["",""])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"]))],null,function(e,t){var n=t.component;e(t,2,0,al["\u0275nov"](t,3).disabled||null),e(t,8,0,n.jsonOutput)})}function Fi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"div",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\t\n\t\t\t\t"])),(e()(),al["\u0275and"](16777216,null,null,1,null,Li)),al["\u0275did"](3,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t"]))],function(e,t){e(t,3,0,"JSON"==t.component.selectedOutputView)},null)}function ji(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,21,"div",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\t\n\t\t\t"])),(e()(),al["\u0275and"](16777216,null,null,1,null,Ai)),al["\u0275did"](3,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\t\n\t\t\t "])),(e()(),al["\u0275eld"](5,0,null,null,11,"div",[["class","data-viewer-container"]],[[8,"hidden",0]],null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](7,0,null,null,3,"button",[["class","button-expand mat-button"],["mat-button",""]],[[8,"disabled",0]],[[null,"click"]],function(e,t,n){var r=!0;return"click"===t&&(r=!1!==e.component.expandTree()&&r),r},J,nc)),al["\u0275did"](8,180224,null,0,$s,[al.ElementRef,pl,La],null,null),al["\u0275did"](9,16384,null,0,Gs,[],null,null),(e()(),al["\u0275ted"](10,0,["",""])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](12,0,null,null,3,"p-tree",[],null,null,null,Gn,dh)),al["\u0275did"](13,1294336,null,1,lh.Tree,[[2,sh.TreeDragDropService]],{value:[0,"value"],style:[1,"style"]},null),al["\u0275qud"](603979776,10,{templates:1}),al["\u0275pod"](15,{width:0,border:1,"font-family":2,"font-size":3,"font-weight":4}),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t"])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t"])),(e()(),al["\u0275and"](16777216,null,null,2,null,Fi)),al["\u0275did"](19,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),al["\u0275pid"](131072,cl.AsyncPipe,[al.ChangeDetectorRef]),(e()(),al["\u0275ted"](-1,null,["\n\t\t"]))],function(e,t){var n=t.component;e(t,3,0,t.context.ngIf.sqlQueryError.metrics),e(t,13,0,n.treeData,e(t,15,0,"100%","none","Roboto Mono","0.80rem","500")),e(t,19,0,al["\u0275unv"](t,19,0,al["\u0275nov"](t,20).transform(n.loaded$)))},function(e,t){var n=t.component;e(t,5,0,"TREE"!=n.selectedOutputView),e(t,7,0,al["\u0275nov"](t,8).disabled||null),e(t,10,0,n.toogleExpand)})}function Vi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,36,"span",[["class","metrics"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](2,0,null,null,1,"span",[["class","span-results"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["SUCCESS:"])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](5,0,null,null,1,"span",[["class","span-results"]],null,null,null,null,null)),(e()(),al["\u0275ted"](6,null,["Count: ",""])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](8,0,null,null,1,"span",[["class","span-results"]],null,null,null,null,null)),(e()(),al["\u0275ted"](9,null,["Size: ",""])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](11,0,null,null,1,"span",[["class","span-results"]],null,null,null,null,null)),(e()(),al["\u0275ted"](12,null,["Elapsed time: ",""])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](14,0,null,null,1,"span",[["class","span-results"]],null,null,null,null,null)),(e()(),al["\u0275ted"](15,null,["Execution time: ",""])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](17,0,null,null,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275eld"](19,0,null,null,16,"mat-button-toggle-group",[["class","output-group mat-button-toggle-group"],["role","radiogroup"]],[[2,"mat-button-toggle-vertical",null]],[[null,"change"]],function(e,t,n){var r=!0;return"change"===t&&(r=!1!==e.component.onSelect(al["\u0275nov"](e,21).value)&&r),r},null,null)),al["\u0275prd"](5120,null,Fu.NG_VALUE_ACCESSOR,function(e){return[e]},[Wh]),al["\u0275did"](21,16384,[["group",4]],1,Wh,[al.ChangeDetectorRef],{value:[0,"value"]},{change:"change"}),al["\u0275qud"](603979776,11,{_buttonToggles:1}),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t\t"])),(e()(),al["\u0275eld"](24,0,null,null,2,"mat-button-toggle",[["class","mat-button-toggle"],["mat-button",""],["value","TABLE"]],[[2,"mat-button-toggle-standalone",null],[2,"mat-button-toggle-checked",null],[2,"mat-button-toggle-disabled",null],[1,"id",0]],null,null,Ri,Kh)),al["\u0275did"](25,245760,[[11,4]],0,Uh,[[2,Wh],[2,qh],al.ChangeDetectorRef,Vc,al.ElementRef,La],{value:[0,"value"]},null),(e()(),al["\u0275ted"](-1,0,["TABLE"])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t\t"])),(e()(),al["\u0275eld"](28,0,null,null,2,"mat-button-toggle",[["class","mat-button-toggle"],["mat-button",""],["value","TREE"]],[[2,"mat-button-toggle-standalone",null],[2,"mat-button-toggle-checked",null],[2,"mat-button-toggle-disabled",null],[1,"id",0]],null,null,Ri,Kh)),al["\u0275did"](29,245760,[[11,4]],0,Uh,[[2,Wh],[2,qh],al.ChangeDetectorRef,Vc,al.ElementRef,La],{value:[0,"value"]},null),(e()(),al["\u0275ted"](-1,0,["TREE"])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t\t"])),(e()(),al["\u0275eld"](32,0,null,null,2,"mat-button-toggle",[["class","mat-button-toggle"],["mat-button",""],["value","JSON"]],[[2,"mat-button-toggle-standalone",null],[2,"mat-button-toggle-checked",null],[2,"mat-button-toggle-disabled",null],[1,"id",0]],null,null,Ri,Kh)),al["\u0275did"](33,245760,[[11,4]],0,Uh,[[2,Wh],[2,qh],al.ChangeDetectorRef,Vc,al.ElementRef,La],{value:[0,"value"]},null),(e()(),al["\u0275ted"](-1,0,["JSON"])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t\t"])),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t"]))],function(e,t){e(t,21,0,al["\u0275inlineInterpolate"](1,"",t.component.selectedOutput,"")),e(t,25,0,"TABLE"),e(t,29,0,"TREE"),e(t,33,0,"JSON")},function(e,t){e(t,6,0,t.parent.context.ngIf.sqlQueryResult.metrics.resultCount),e(t,9,0,t.parent.context.ngIf.sqlQueryResult.metrics.resultSize),e(t,12,0,t.parent.context.ngIf.sqlQueryResult.metrics.elapsedTime),e(t,15,0,t.parent.context.ngIf.sqlQueryResult.metrics.executionTime),e(t,19,0,al["\u0275nov"](t,21).vertical),e(t,24,0,!al["\u0275nov"](t,25).buttonToggleGroup&&!al["\u0275nov"](t,25).buttonToggleGroupMultiple,al["\u0275nov"](t,25).checked,al["\u0275nov"](t,25).disabled,al["\u0275nov"](t,25).id),e(t,28,0,!al["\u0275nov"](t,29).buttonToggleGroup&&!al["\u0275nov"](t,29).buttonToggleGroupMultiple,al["\u0275nov"](t,29).checked,al["\u0275nov"](t,29).disabled,al["\u0275nov"](t,29).id),e(t,32,0,!al["\u0275nov"](t,33).buttonToggleGroup&&!al["\u0275nov"](t,33).buttonToggleGroupMultiple,al["\u0275nov"](t,33).checked,al["\u0275nov"](t,33).disabled,al["\u0275nov"](t,33).id)})}function zi(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,4,"div",[],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n\t\t\t"])),(e()(),al["\u0275and"](16777216,null,null,1,null,Vi)),al["\u0275did"](3,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),(e()(),al["\u0275ted"](-1,null,["\n\t\t"]))],function(e,t){e(t,3,0,t.context.ngIf.sqlQueryResult.metrics)},null)}function Bi(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,36,"mat-card",[["class","sql-results-card mat-card"]],null,null,null,Te,gd)),al["\u0275did"](2,49152,null,0,hd,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n\t"])),(e()(),al["\u0275eld"](4,0,null,0,12,"mat-toolbar",[["class","results-selector mat-toolbar"],["color","primary"]],[[2,"mat-toolbar-multiple-rows",null],[2,"mat-toolbar-single-row",null]],null,null,ke,bd)),al["\u0275did"](5,4243456,null,1,yd,[al.ElementRef,pl],{color:[0,"color"]},null),al["\u0275qud"](603979776,1,{_toolbarRows:1}),(e()(),al["\u0275ted"](-1,0,["\n\t\t"])),(e()(),al["\u0275eld"](8,0,null,0,2,"mat-icon",[["class","toolbar-icon mat-icon"],["role","img"]],null,null,null,te,ic)),al["\u0275did"](9,638976,null,0,Au,[al.ElementRef,Nu,[8,null]],null,null),(e()(),al["\u0275ted"](-1,0,["menu"])),(e()(),al["\u0275ted"](-1,0,["\n\t "])),(e()(),al["\u0275eld"](12,0,null,0,1,"span",[["class","output-query-string"]],null,null,null,null,null)),(e()(),al["\u0275ted"](13,null,["OUTPUT",""])),(e()(),al["\u0275ted"](-1,0,["\n\t\t"])),(e()(),al["\u0275eld"](15,0,null,0,0,"span",[["class","spacer"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,0,["\n\t"])),(e()(),al["\u0275ted"](-1,0,["\n \t"])),(e()(),al["\u0275eld"](18,0,null,0,10,"mat-card-content",[["class","content-area mat-card-content"]],null,null,null,null,null)),al["\u0275did"](19,16384,null,0,pd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n\t\t"])),(e()(),al["\u0275and"](16777216,null,null,2,null,Ni)),al["\u0275did"](22,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),al["\u0275pid"](131072,cl.AsyncPipe,[al.ChangeDetectorRef]),(e()(),al["\u0275ted"](-1,null,["\n\t\t"])),(e()(),al["\u0275and"](16777216,null,null,2,null,ji)),al["\u0275did"](26,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),al["\u0275pid"](131072,cl.AsyncPipe,[al.ChangeDetectorRef]),(e()(),al["\u0275ted"](-1,null,["\n\t"])),(e()(),al["\u0275ted"](-1,0,["\n\t"])),(e()(),al["\u0275eld"](30,0,null,0,6,"mat-card-actions",[["class","actions mat-card-actions"]],[[2,"mat-card-actions-align-end",null]],null,null,null,null)),al["\u0275did"](31,16384,null,0,fd,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n\t\t"])),(e()(),al["\u0275and"](16777216,null,null,2,null,zi)),al["\u0275did"](34,16384,null,0,cl.NgIf,[al.ViewContainerRef,al.TemplateRef],{ngIf:[0,"ngIf"]},null),al["\u0275pid"](131072,cl.AsyncPipe,[al.ChangeDetectorRef]),(e()(),al["\u0275ted"](-1,null,["\n\t"])),(e()(),al["\u0275ted"](-1,0,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){var n=t.component;e(t,5,0,"primary"),e(t,9,0),e(t,22,0,al["\u0275unv"](t,22,0,al["\u0275nov"](t,23).transform(n.loaded$))),e(t,26,0,al["\u0275unv"](t,26,0,al["\u0275nov"](t,27).transform(n.loaded$))),e(t,34,0,al["\u0275unv"](t,34,0,al["\u0275nov"](t,35).transform(n.loaded$)))},function(e,t){var n=t.component;e(t,4,0,al["\u0275nov"](t,5)._toolbarRows.length,!al["\u0275nov"](t,5)._toolbarRows.length),e(t,13,0,n.outputQueryString),e(t,30,0,"end"===al["\u0275nov"](t,31).align)})}function Hi(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n\n"])),(e()(),al["\u0275eld"](1,0,null,null,16,"div",[["class","query-container"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,4,"div",[["class","metadata"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,[" \n "])),(e()(),al["\u0275eld"](5,0,null,null,1,"awc-metadata",[["class","metadata-card"]],null,null,null,Kn,fh)),al["\u0275did"](6,114688,null,0,ph,[Yp.m,al.ChangeDetectorRef],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](9,0,null,null,7,"div",[["class","vertical"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](11,0,null,null,1,"awc-query",[["class","query-card"]],null,null,null,Zn,yh)),al["\u0275did"](12,49152,null,0,gh,[Yp.m],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](14,0,null,null,1,"awc-results",[["class","output-card"]],null,null,null,Bi,Qh)),al["\u0275did"](15,114688,null,0,Zh,[Yp.m,al.ChangeDetectorRef],null,null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,[" \n\n"]))],function(e,t){e(t,6,0),e(t,15,0)},null)}function Wi(e){return al["\u0275vid"](0,[al["\u0275qud"](402653184,1,{dataverses:0}),al["\u0275qud"](402653184,2,{datasets:0}),al["\u0275qud"](402653184,3,{datatypes:0}),al["\u0275qud"](402653184,4,{indexes:0}),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](5,0,null,null,47,"mat-tab-group",[["class","metadata-menu mat-tab-group"]],[[2,"mat-tab-group-dynamic-height",null],[2,"mat-tab-group-inverted-header",null]],[[null,"selectedTabChange"]],function(e,t,n){var r=!0;return"selectedTabChange"===t&&(r=!1!==e.component.tabChange()&&r),r},pn,nh)),al["\u0275did"](6,3325952,null,1,Xf,[al.ElementRef,al.ChangeDetectorRef],null,{selectedTabChange:"selectedTabChange"}),al["\u0275qud"](603979776,5,{_tabs:1}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](9,16777216,null,null,9,"mat-tab",[["class","submenu"],["label","DATAVERSES"]],null,null,null,yn,oh)),al["\u0275did"](10,770048,[[5,4]],1,$f,[al.ViewContainerRef],{textLabel:[0,"textLabel"]},null),al["\u0275qud"](335544320,6,{templateLabel:0}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](13,0,null,0,4,"div",[["class","dataverses"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](15,0,null,null,1,"awc-dataverses",[["class","dataverses"]],null,null,null,Xe,af)),al["\u0275did"](16,12697600,[[1,4],["dataverses",4]],0,tf,[Yp.m,Fs],{errorMessage:[0,"errorMessage"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](20,16777216,null,null,9,"mat-tab",[["label","DATASETS"]],null,null,null,yn,oh)),al["\u0275did"](21,770048,[[5,4]],1,$f,[al.ViewContainerRef],{textLabel:[0,"textLabel"]},null),al["\u0275qud"](335544320,7,{templateLabel:0}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](24,0,null,0,4,"div",[["class","datasets"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](26,0,null,null,1,"awc-datasets",[["class","datasets"]],null,null,null,Et,yf)),al["\u0275did"](27,114688,[[2,4],["datasets",4]],0,ff,[Yp.m,Fs],{errorMessage:[0,"errorMessage"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,[" \n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](31,16777216,null,null,9,"mat-tab",[["label","DATATYPES"]],null,null,null,yn,oh)),al["\u0275did"](32,770048,[[5,4]],1,$f,[al.ViewContainerRef],{textLabel:[0,"textLabel"]},null),al["\u0275qud"](335544320,8,{templateLabel:0}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](35,0,null,0,4,"div",[["class","datatypes"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](37,0,null,null,1,"awc-datatypes",[["class","datatypes"]],null,null,null,Lt,Tf)),al["\u0275did"](38,114688,[[3,4],["datatypes",4]],0,Cf,[Yp.m,Fs],{errorMessage:[0,"errorMessage"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](42,16777216,null,null,9,"mat-tab",[["class","indexes"],["label","INDEXES"]],null,null,null,yn,oh)),al["\u0275did"](43,770048,[[5,4]],1,$f,[al.ViewContainerRef],{textLabel:[0,"textLabel"]},null),al["\u0275qud"](335544320,9,{templateLabel:0}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](46,0,null,0,4,"div",[["class","indexes"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](48,0,null,null,1,"awc-indexes",[["class","indexes"]],null,null,null,nn,Ff)),al["\u0275did"](49,114688,[[4,4],["indexes",4]],0,Pf,[Yp.m,Fs],{errorMessage:[0,"errorMessage"]},null),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n\n"]))],function(e,t){var n=t.component;e(t,10,0,"DATAVERSES"),e(t,16,0,n.message),e(t,21,0,"DATASETS"),e(t,27,0,n.message),e(t,32,0,"DATATYPES"),e(t,38,0,n.message),e(t,43,0,"INDEXES"),e(t,49,0,n.message)},function(e,t){e(t,5,0,al["\u0275nov"](t,6).dynamicHeight,"below"===al["\u0275nov"](t,6).headerPosition)})}function qi(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,22,"div",[["class","content"]],null,null,null,null,null)),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](3,0,null,null,19,"mat-tab-group",[["class","menu mat-tab-group"]],[[2,"mat-tab-group-dynamic-height",null],[2,"mat-tab-group-inverted-header",null]],null,null,pn,nh)),al["\u0275did"](4,3325952,null,1,Xf,[al.ElementRef,al.ChangeDetectorRef],null,null),al["\u0275qud"](603979776,1,{_tabs:1}),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](7,16777216,null,null,6,"mat-tab",[["label",">_ QUERY"]],null,null,null,yn,oh)),al["\u0275did"](8,770048,[[1,4]],1,$f,[al.ViewContainerRef],{textLabel:[0,"textLabel"]},null),al["\u0275qud"](335544320,2,{templateLabel:0}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](11,0,null,0,1,"awc-query-container",[],null,null,null,Hi,nm)),al["\u0275did"](12,49152,null,0,tm,[Yp.m],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275eld"](15,16777216,null,null,6,"mat-tab",[["label","METADATA"]],null,null,null,yn,oh)),al["\u0275did"](16,770048,[[1,4]],1,$f,[al.ViewContainerRef],{textLabel:[0,"textLabel"]},null),al["\u0275qud"](335544320,3,{templateLabel:0}),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275eld"](19,0,null,0,1,"awc-metadata-container",[],null,null,null,Wi,im)),al["\u0275did"](20,49152,null,0,rm,[],null,null),(e()(),al["\u0275ted"](-1,0,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n "])),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275ted"](-1,null,["\n"]))],function(e,t){e(t,8,0,">_ QUERY"),e(t,16,0,"METADATA")},function(e,t){e(t,3,0,al["\u0275nov"](t,4).dynamicHeight,"below"===al["\u0275nov"](t,4).headerPosition)})}function Ui(e){return al["\u0275vid"](0,[(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](1,0,null,null,1,"awc-bar",[],null,null,null,ln,Wf)),al["\u0275did"](2,49152,null,0,Hf,[],null,null),(e()(),al["\u0275ted"](-1,null,["\n"])),(e()(),al["\u0275eld"](4,0,null,null,1,"awc-tab",[],null,null,null,qi,lm)),al["\u0275did"](5,49152,null,0,om,[Yp.m],null,null),(e()(),al["\u0275ted"](-1,null,["\n"]))],null,null)}function Gi(e){switch(e.length){case 0:return new Rs.NoopAnimationPlayer;case 1:return e[0];default:return new Rs["\u0275AnimationGroupPlayer"](e)}}function Ki(e,t,n,r,i,o){void 0===i&&(i={}),void 0===o&&(o={});var l=[],a=[],s=-1,u=null;if(r.forEach(function(e){var n=e.offset,r=n==s,c=r&&u||{};Object.keys(e).forEach(function(n){var r=n,a=e[n];if("offset"!==n)switch(r=t.normalizePropertyName(r,l),a){case Rs["\u0275PRE_STYLE"]:a=i[n];break;case Rs.AUTO_STYLE:a=o[n];break;default:a=t.normalizeStyleValue(n,r,a,l)}c[r]=a}),r||a.push(c),u=c,s=n}),l.length)throw new Error("Unable to animate due to the following errors:\n - "+l.join("\n - "));return a}function $i(e,t,n,r){switch(t){case"start":e.onStart(function(){return r(n&&Zi(n,"start",e.totalTime))});break;case"done":e.onDone(function(){return r(n&&Zi(n,"done",e.totalTime))});break;case"destroy":e.onDestroy(function(){return r(n&&Zi(n,"destroy",e.totalTime))})}}function Zi(e,t,n){var r=Qi(e.element,e.triggerName,e.fromState,e.toState,t||e.phaseName,void 0==n?e.totalTime:n),i=e._data;return null!=i&&(r._data=i),r}function Qi(e,t,n,r,i,o){return void 0===i&&(i=""),void 0===o&&(o=0),{element:e,triggerName:t,fromState:n,toState:r,phaseName:i,totalTime:o}}function Yi(e,t,n){var r;return e instanceof Map?(r=e.get(t))||e.set(t,r=n):(r=e[t])||(r=e[t]=n),r}function Xi(e){var t=e.indexOf(":");return[e.substring(1,t),e.substr(t+1)]}function Ji(e){mm||(mm=eo()||{},gm=!!mm.style&&"WebkitAppearance"in mm.style);var t=!0;return mm.style&&"ebkit"!=e.substring(1,6)&&!(t=e in mm.style)&&gm&&(t="Webkit"+e.charAt(0).toUpperCase()+e.substr(1)in mm.style),t}function eo(){return"undefined"!=typeof document?document.body:null}function to(e){if("number"==typeof e)return e;var t=e.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:no(parseFloat(t[1]),t[2])}function no(e,t){switch(t){case"s":return e*xm;default:return e}}function ro(e,t,n){return e.hasOwnProperty("duration")?e:function(e,t,n){var r,i=0,o="";if("string"==typeof e){var l=e.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===l)return t.push('The provided timing value "'+e+'" is invalid.'),{duration:0,delay:0,easing:""};r=no(parseFloat(l[1]),l[2]);var a=l[3];null!=a&&(i=no(Math.floor(parseFloat(a)),l[4]));var s=l[5];s&&(o=s)}else r=e;if(!n){var u=!1,c=t.length;r<0&&(t.push("Duration values below 0 are not allowed for this animation step."),u=!0),i<0&&(t.push("Delay values below 0 are not allowed for this animation step."),u=!0),u&&t.splice(c,0,'The provided timing value "'+e+'" is invalid.')}return{duration:r,delay:i,easing:o}}(e,t,n)}function io(e,t){return void 0===t&&(t={}),Object.keys(e).forEach(function(n){t[n]=e[n]}),t}function oo(e,t,n){if(void 0===n&&(n={}),t)for(var r in e)n[r]=e[r];else io(e,n);return n}function lo(e,t){e.style&&Object.keys(t).forEach(function(n){var r=fo(n);e.style[r]=t[n]})}function ao(e,t){e.style&&Object.keys(t).forEach(function(t){var n=fo(t);e.style[n]=""})}function so(e){return Array.isArray(e)?1==e.length?e[0]:Object(Rs.sequence)(e):e}function uo(e){var t=[];if("string"==typeof e){for(var n=e.toString(),r=void 0;r=Om.exec(n);)t.push(r[1]);Om.lastIndex=0}return t}function co(e,t,n){var r=e.toString(),i=r.replace(Om,function(e,r){var i=t[r];return t.hasOwnProperty(r)||(n.push("Please provide a value for the animation param "+r),i=""),i.toString()});return i==r?e:i}function po(e){for(var t=[],n=e.next();!n.done;)t.push(n.value),n=e.next();return t}function fo(e){return e.replace(Tm,function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e[1].toUpperCase()})}function ho(e,t,n){switch(t.type){case 7:return e.visitTrigger(t,n);case 0:return e.visitState(t,n);case 1:return e.visitTransition(t,n);case 2:return e.visitSequence(t,n);case 3:return e.visitGroup(t,n);case 4:return e.visitAnimate(t,n);case 5:return e.visitKeyframes(t,n);case 6:return e.visitStyle(t,n);case 8:return e.visitReference(t,n);case 9:return e.visitAnimateChild(t,n);case 10:return e.visitAnimateRef(t,n);case 11:return e.visitQuery(t,n);case 12:return e.visitStagger(t,n);default:throw new Error("Unable to resolve animation metadata node #"+t.type)}}function mo(e,t){var n=Dm.has(e)||Im.has(e),r=Dm.has(t)||Im.has(t);return function(i,o){var l=e==km||e==i,a=t==km||t==o;return!l&&n&&"boolean"==typeof i&&(l=i?Dm.has(e):Im.has(e)),!a&&r&&"boolean"==typeof o&&(a=o?Dm.has(t):Im.has(t)),l&&a}}function go(e,t,n){return new Mm(e).build(t,n)}function yo(e){return!Array.isArray(e)&&"object"==typeof e}function vo(e){return e?(e=io(e)).params&&(e.params=function(e){return e?io(e):null}(e.params)):e={},e}function bo(e,t,n){return{duration:e,delay:t,easing:n}}function _o(e,t,n,r,i,o,l,a){return void 0===l&&(l=null),void 0===a&&(a=!1),{type:1,element:e,keyframes:t,preStyleProps:n,postStyleProps:r,duration:i,delay:o,totalTime:i+o,easing:l,subTimeline:a}}function wo(e,t,n,r,i,o,l,a,s,u){return void 0===o&&(o={}),void 0===l&&(l={}),void 0===u&&(u=[]),(new Fm).buildKeyframes(e,t,n,r,i,o,l,a,s,u)}function xo(e,t){void 0===t&&(t=3);var n=Math.pow(10,t-1);return Math.round(e*n)/n}function Co(e,t,n,r,i,o,l,a,s,u,c,d){return{type:0,element:e,triggerName:t,isRemovalTransition:i,fromState:n,fromStyles:o,toState:r,toStyles:l,timelines:a,queriedElements:s,preStyleProps:u,postStyleProps:c,errors:d}}function Eo(e,t,n){e.hasOwnProperty(t)?e.hasOwnProperty(n)||(e[n]=e[t]):e.hasOwnProperty(n)&&(e[t]=e[n])}function So(e){return e&&1===e.nodeType}function Oo(e,t){var n=e.style.display;return e.style.display=null!=t?t:"none",n}function To(e,t,n,r,i){var o=[];n.forEach(function(e){return o.push(Oo(e))});var l=[];r.forEach(function(n,r){var o={};n.forEach(function(e){var n=o[e]=t.computeStyle(r,e,i);n&&0!=n.length||(r[ng]=tg,l.push(r))}),e.set(r,o)});var a=0;return n.forEach(function(e){return Oo(e,o[a++])}),l}function ko(e,t){function n(e){if(!e)return i;var t=l.get(e);if(t)return t;var a=e.parentNode;return t=r.has(a)?a:o.has(a)?i:n(a),l.set(e,t),t}var r=new Map;if(e.forEach(function(e){return r.set(e,[])}),0==t.length)return r;var i=1,o=new Set(t),l=new Map;return t.forEach(function(e){var t=n(e);t!==i&&r.get(t).push(e)}),r}function Do(e,t){if(e.classList)e.classList.add(t);else{var n=e[ug];n||(n=e[ug]={}),n[t]=!0}}function Io(e,t){if(e.classList)e.classList.remove(t);else{var n=e[ug];n&&delete n[t]}}function Ro(e,t){for(var n=0;n<e.length;n++){var r=e[n];r instanceof Rs["\u0275AnimationGroupPlayer"]?Ro(r.players,t):t.push(r)}}function Mo(e,t,n){var r=n.get(e);if(!r)return!1;var i=t.get(e);return i?r.forEach(function(e){return i.add(e)}):t.set(e,r),n.delete(e),!0}function Po(e,t){return window.getComputedStyle(e)[t]}function No(e,t,n,r,i){return e.setProperty(t,"@@"+n+":"+r,i)}function Ao(){return"undefined"!=typeof Element&&"function"==typeof Element.prototype.animate?new pg:new _m}function Lo(){return new Wm}function Fo(e,t,n){return new gg(e,t,n)}function jo(e,t,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),Object(nu.a)(e,t,n)(this)}function Vo(){return"undefined"!=typeof window?window.indexedDB:self.indexedDB}function zo(e){return function(){return e.scrollStrategies.reposition()}}function Bo(e){return function(){return e.scrollStrategies.reposition()}}function Ho(e){return function(){return e.scrollStrategies.reposition()}}function Wo(e){return e||new Ng}function qo(e){return e||new Lg}function Uo(e){var t=(void 0===e?{dispatch:!0}:e).dispatch;return function(e,n){!function(t,n){var r=e.constructor,i=r.hasOwnProperty(ly)?r[ly]:Object.defineProperty(r,ly,{value:[]})[ly];Array.prototype.push.apply(i,n)}(0,[{propertyName:n,dispatch:t}])}}function Go(e){return Object.getPrototypeOf(e)}function Ko(e){var t=function(e){var t=Go(e).constructor.name,n=ay(e).map(function(n){var r=n.propertyName,i=n.dispatch,o="function"==typeof e[r]?e[r]():e[r];if(!1===i)return function(){return function(e){return e.lift(new Wg)}(this)}.call(o);var l=function(){return function(e){return e.lift(new Ug)}(this)}.call(o);return iu.a.call(l,function(n){return{effect:e[r],notification:n,propertyName:r,sourceName:t,sourceInstance:e}})});return Ll.a.apply(void 0,n)}(e);return function(t){var n=Go(e);return sy in n&&"function"==typeof n[sy]}()?e.ngrxOnRunEffects(t):t}function $o(e){var t=e.propertyName;return'"'+e.sourceName+"."+t+("function"==typeof e.sourceInstance[t]?"()":"")+'"'}function Zo(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e}function Qo(){return console}function Yo(e,t){switch(void 0===e&&(e=yy),t.type){case Ad:return Object.assign({},e,{loading:!0});case Ld:return Object.assign({},e,{loaded:!0,loading:!1,dataverses:t.payload});case Fd:return Object.assign({},e,{createDataverse:[],createDataverseName:t.payload,createDataverseError:[],createDataverseSuccess:!1,createDataverseFailed:!1});case jd:return Object.assign({},e,{createDataverse:t.payload,createDataverseError:[],createDataverseSuccess:!0,createDataverseFailed:!1});case Vd:return Object.assign({},e,{createDataverse:[],createDataverseError:t.payload,createDataverseSuccess:!1,createDataverseFailed:!0});case zd:return Object.assign({},e,{dropDataverse:[],dropDataverseName:t.payload,dropDataverseError:[],dropDataverseSuccess:!1,dropDataverseFailed:!1});case Bd:return Object.assign({},e,{dropDataverse:t.payload,dropDataverseError:[],dropDataverseSuccess:!0,dropDataverseFailed:!1});case Hd:return Object.assign({},e,{dropDataverse:[],dropDataverseError:t.payload,dropDataverseSuccess:!1,dropDataverseFailed:!0});default:return e}}function Xo(e,t){switch(void 0===e&&(e=vy),t.type){case lp:return Object.assign({},e,{guideSelectsDataset:t.payload});case Xd:return Object.assign({},e,{loading:!0});case Jd:return Object.assign({},e,{loaded:!0,loading:!1,datasets:t.payload});case ep:return Object.assign({},e,{createDataset:[],createDatasetError:[],createDatasetSuccess:!1,createDatasetFailed:!1});case tp:return Object.assign({},e,{createDataset:t.payload,createDatasetName:t.payload,createDatasetError:[],createDatasetSuccess:!0,createDatasetFailed:!1});case np:return Object.assign({},e,{createDataset:[],createDatasetError:t.payload,createDatasetSuccess:!1,createDatasetFailed:!0});case rp:return Object.assign({},e,{dropDataset:[],dropDatasetError:[],dropDatasetName:t.payload,dropDatasetSuccess:!1,dropDatasetFailed:!1});case ip:return Object.assign({},e,{dropDataset:t.payload,dropDatasetError:[],dropDatasetSuccess:!0,dropDatasetFailed:!1});case op:return Object.assign({},e,{dropDataset:[],dropDatasetError:t.payload,dropDatasetSuccess:!1,dropDatasetFailed:!0});default:return e}}function Jo(e,t){switch(void 0===e&&(e=by),t.type){case yp:return Object.assign({},e,{loading:!0});case vp:return Object.assign({},e,{loaded:!0,loading:!1,datatypes:t.payload});case bp:return Object.assign({},e,{createDatatype:[],createDatatypeName:t.payload,createDatatypeError:[],createDatatypeSuccess:!1,createDatatypeFailed:!1});case _p:return Object.assign({},e,{createDatatype:t.payload,createDatatypeError:[],createDatatypeSuccess:!0,createDatatypeFailed:!1});case wp:return Object.assign({},e,{createDatatype:[],createDatatypeError:t.payload,createDatatypeSuccess:!1,createDatatypeFailed:!0});case xp:return Object.assign({},e,{dropDatatype:[],dropDatatypeName:t.payload,dropDatatypeError:[],dropDatatypeSuccess:!1,dropDatatypeFailed:!1});case Cp:return Object.assign({},e,{dropDatatype:t.payload,dropDatatypeError:[],dropDatatypeSuccess:!0,dropDatatypeFailed:!1});case Ep:return Object.assign({},e,{dropDatatype:[],dropDatatypeError:t.payload,dropDatatypeSuccess:!1,dropDatatypeFailed:!0});default:return e}}function el(e,t){switch(void 0===e&&(e=_y),t.type){case Np:return Object.assign({},e,{loading:!0});case Ap:return Object.assign({},e,{loaded:!0,loading:!1,indexes:t.payload});case Lp:return Object.assign({},e,{createIndex:[],createIndexName:t.payload,createIndexError:[],createIndexSuccess:!1,createIndexFailed:!1});case Fp:return Object.assign({},e,{createIndex:[],createIndexError:[],createIndexSuccess:!0,createIndexFailed:!1});case Fp:return Object.assign({},e,{createIndex:t.payload,createIndexError:[],createIndexSuccess:!1,createIndexFailed:!0});case jp:return Object.assign({},e,{dropIndex:[],dropIndexError:[],dropIndexName:t.payload,dropIndexSuccess:!1,dropIndexFailed:!1});case Vp:return Object.assign({},e,{dropIndex:t.payload,dropIndexError:[],dropIndexSuccess:!0,dropIndexFailed:!1});case zp:return Object.assign({},e,{dropIndex:[],dropIndexError:t.payload,dropIndexSuccess:!1,dropIndexFailed:!0});default:return e}}function tl(e,t){switch(void 0===e&&(e=wy),t.type){case Cd:return Object.assign({},e,{loading:!1,loaded:!0,success:!1,sqlQueryString:t.payload,sqlQueryResult:[],sqlQueryError:[]});case Ed:return Object.assign({},e,{loading:!1,loaded:!0,success:!0,sqlQueryResult:t.payload,sqlQueryError:[]});case Sd:return Object.assign({},e,{loading:!1,loaded:!0,success:!1,sqlQueryResult:[],sqlQueryError:t.payload});default:return e}}function nl(e,t){switch(void 0===e&&(e=xy),t.type){case Od:return Object.assign({},e,{loading:!1,loaded:!0,success:!1,sqlQueryMetadataString:t.payload,sqlQueryMetadataResult:[],sqlQueryMetadataError:[]});case Td:return Object.assign({},e,{loading:!1,loaded:!0,success:!0,sqlQueryMetadataResult:t.payload,sqlQueryMetadataError:[]});case kd:return Object.assign({},e,{loading:!1,loaded:!0,success:!1,sqlQueryMetadataResult:[],sqlQueryMetadataError:t.payload});default:return e}}function rl(e,t){switch(void 0===e&&(e=Cy),t.type){case Yh:return Object.assign({},e,{tree:[],loading:!0,loaded:!1});case Xh:return Object.assign({},e,{tree:e.tree.concat([t.payload]),loading:!1,loaded:!0});default:return e}}function il(e){return j(e)(this)}Object.defineProperty(t,"__esModule",{value:!0}),n("TU+8"),n("rgUS");var ol,ll,al=n("LMZF"),sl=function(){},ul=function(e){this.appCoreService=e,this.title="Asterix DB Web Console"},cl=n("Un6q"),dl="undefined"!=typeof Intl&&Intl.v8BreakIterator,pl=function(){return function(){this.isBrowser="object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!dl)&&!!CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}(),fl=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"],hl=function(){},ml=n("TO51"),gl=n("AP4T"),yl=n("Oryw"),vl=yl.a.of,bl=n("6Xbx"),_l=n("8ofh"),wl=n("B1iP"),xl=n("NePw"),Cl=n("qLnt"),El=Object.prototype.toString,Sl=function(e){function t(t,n,r,i){e.call(this),this.sourceObj=t,this.eventName=n,this.selector=r,this.options=i}return Object(bl.__extends)(t,e),t.create=function(e,n,r,i){return Object(wl.a)(r)&&(i=r,r=void 0),new t(e,n,i,r)},t.setupSubscription=function(e,n,r,i,o){var l;if(e&&"[object NodeList]"===El.call(e)||e&&"[object HTMLCollection]"===El.call(e))for(var a=0,s=e.length;a<s;a++)t.setupSubscription(e[a],n,r,i,o);else if(e&&"function"==typeof e.addEventListener&&"function"==typeof e.removeEventListener){var u=e;e.addEventListener(n,r,o),l=function(){return u.removeEventListener(n,r)}}else if(e&&"function"==typeof e.on&&"function"==typeof e.off){var c=e;e.on(n,r),l=function(){return c.off(n,r)}}else{if(!e||"function"!=typeof e.addListener||"function"!=typeof e.removeListener)throw new TypeError("Invalid event target");var d=e;e.addListener(n,r),l=function(){return d.removeListener(n,r)}}i.add(new Cl.a(l))},t.prototype._subscribe=function(e){var n=this.selector;t.setupSubscription(this.sourceObj,this.eventName,n?function(){for(var t=[],r=0;r<arguments.length;r++)t[r-0]=arguments[r];var i=Object(_l.a)(n).apply(void 0,t);i===xl.a?e.error(xl.a.e):e.next(i)}:function(t){return e.next(t)},e,this.options)},t}(gl.a).create,Ol=n("GTlS"),Tl=new(n("wclm").a)(Ol.a),kl=n("lI6h"),Dl=n("qgI0"),Il=function(){function e(e){this.durationSelector=e}return e.prototype.call=function(e,t){return t.subscribe(new Rl(e,this.durationSelector))},e}(),Rl=function(e){function t(t,n){e.call(this,t),this.durationSelector=n,this.hasValue=!1}return Object(bl.__extends)(t,e),t.prototype._next=function(e){if(this.value=e,this.hasValue=!0,!this.throttled){var t=Object(_l.a)(this.durationSelector)(e);if(t===xl.a)this.destination.error(xl.a.e);else{var n=Object(Dl.a)(this,t);n.closed?this.clearThrottle():this.add(this.throttled=n)}}},t.prototype.clearThrottle=function(){var e=this.value,t=this.hasValue,n=this.throttled;n&&(this.remove(n),this.throttled=null,n.unsubscribe()),t&&(this.value=null,this.hasValue=!1,this.destination.next(e))},t.prototype.notifyNext=function(e,t,n,r){this.clearThrottle()},t.prototype.notifyComplete=function(){this.clearThrottle()},t}(kl.a),Ml=n("1j/l"),Pl=n("3iOE"),Nl=function(e){function t(t,n,r){void 0===t&&(t=0),e.call(this),this.period=-1,this.dueTime=0,function(e){return!Object(Ml.a)(e)&&e-parseFloat(e)+1>=0}(n)?this.period=Number(n)<1?1:Number(n):Object(Pl.a)(n)&&(r=n),Object(Pl.a)(r)||(r=Tl),this.scheduler=r,this.dueTime=function(e){return e instanceof Date&&!isNaN(+e)}(t)?+t-this.scheduler.now():t}return Object(bl.__extends)(t,e),t.create=function(e,n,r){return void 0===e&&(e=0),new t(e,n,r)},t.dispatch=function(e){var t=e.index,n=e.period,r=e.subscriber;if(r.next(t),!r.closed){if(-1===n)return r.complete();e.index=t+1,this.schedule(e,n)}},t.prototype._subscribe=function(e){return this.scheduler.schedule(t.dispatch,this.dueTime,{index:0,period:this.period,subscriber:e})},t}(gl.a).create,Al=n("LaOa"),Ll=n("2kLc"),Fl=function(){function e(e,t){this._ngZone=e,this._platform=t,this._scrolled=new ml.Subject,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map}return e.prototype.register=function(e){var t=this,n=e.elementScrolled().subscribe(function(){return t._scrolled.next(e)});this.scrollContainers.set(e,n)},e.prototype.deregister=function(e){var t=this.scrollContainers.get(e);t&&(t.unsubscribe(),this.scrollContainers.delete(e))},e.prototype.scrolled=function(e){var t=this;return void 0===e&&(e=20),this._platform.isBrowser?gl.a.create(function(n){t._globalSubscription||t._addGlobalListener();var r=e>0?t._scrolled.pipe(o(e)).subscribe(n):t._scrolled.subscribe(n);return t._scrolledCount++,function(){r.unsubscribe(),t._scrolledCount--,t._globalSubscription&&!t._scrolledCount&&(t._globalSubscription.unsubscribe(),t._globalSubscription=null)}}):vl()},e.prototype.ancestorScrolled=function(e,t){var n=this.getAncestorScrollContainers(e);return this.scrolled(t).pipe(Object(Al.a)(function(e){return!e||n.indexOf(e)>-1}))},e.prototype.getAncestorScrollContainers=function(e){var t=this,n=[];return this.scrollContainers.forEach(function(r,i){t._scrollableContainsElement(i,e)&&n.push(i)}),n},e.prototype._scrollableContainsElement=function(e,t){var n=t.nativeElement,r=e.getElementRef().nativeElement;do{if(n==r)return!0}while(n=n.parentElement);return!1},e.prototype._addGlobalListener=function(){var e=this;this._globalSubscription=this._ngZone.runOutsideAngular(function(){return Sl(window.document,"scroll").subscribe(function(){return e._scrolled.next()})})},e}(),jl=function(){function e(e,t){var n=this;this._change=e.isBrowser?t.runOutsideAngular(function(){return Object(Ll.a)(Sl(window,"resize"),Sl(window,"orientationchange"))}):vl(),this._invalidateCache=this.change().subscribe(function(){return n._updateViewportSize()})}return e.prototype.ngOnDestroy=function(){this._invalidateCache.unsubscribe()},e.prototype.getViewportSize=function(){return this._viewportSize||this._updateViewportSize(),{width:this._viewportSize.width,height:this._viewportSize.height}},e.prototype.getViewportRect=function(){var e=this.getViewportScrollPosition(),t=this.getViewportSize(),n=t.width,r=t.height;return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+n,height:r,width:n}},e.prototype.getViewportScrollPosition=function(){var e=document.documentElement.getBoundingClientRect();return{top:-e.top||document.body.scrollTop||window.scrollY||document.documentElement.scrollTop||0,left:-e.left||document.body.scrollLeft||window.scrollX||document.documentElement.scrollLeft||0}},e.prototype.change=function(e){return void 0===e&&(e=20),e>0?this._change.pipe(o(e)):this._change},e.prototype._updateViewportSize=function(){this._viewportSize={width:window.innerWidth,height:window.innerHeight}},e}(),Vl=function(){},zl=new al.InjectionToken("cdk-dir-doc"),Bl=function(){return function(e){this.value="ltr",this.change=new al.EventEmitter,e&&(this.value=(e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr")}}(),Hl=function(){},Wl=function(){function e(){}return e.prototype.attach=function(e){return null==e&&function(){throw Error("Attempting to attach a portal to a null PortalOutlet")}(),e.hasAttached()&&s(),this._attachedHost=e,e.attach(this)},e.prototype.detach=function(){var e=this._attachedHost;null==e?function(){throw Error("Attempting to detach a portal that is not attached to a host")}():(this._attachedHost=null,e.detach())},Object.defineProperty(e.prototype,"isAttached",{get:function(){return null!=this._attachedHost},enumerable:!0,configurable:!0}),e.prototype.setAttachedHost=function(e){this._attachedHost=e},e}(),ql=function(e){function t(t,n,r){var i=e.call(this)||this;return i.component=t,i.viewContainerRef=n,i.injector=r,i}return Object(bl.__extends)(t,e),t}(Wl),Ul=function(e){function t(t,n,r){var i=e.call(this)||this;return i.templateRef=t,i.viewContainerRef=n,r&&(i.context=r),i}return Object(bl.__extends)(t,e),Object.defineProperty(t.prototype,"origin",{get:function(){return this.templateRef.elementRef},enumerable:!0,configurable:!0}),t.prototype.attach=function(t,n){return void 0===n&&(n=this.context),this.context=n,e.prototype.attach.call(this,t)},t.prototype.detach=function(){return this.context=void 0,e.prototype.detach.call(this)},t}(Wl),Gl=function(){function e(){this._isDisposed=!1}return e.prototype.hasAttached=function(){return!!this._attachedPortal},e.prototype.attach=function(e){return e||function(){throw Error("Must provide a portal to attach")}(),this.hasAttached()&&s(),this._isDisposed&&function(){throw Error("This PortalOutlet has already been disposed")}(),e instanceof ql?(this._attachedPortal=e,this.attachComponentPortal(e)):e instanceof Ul?(this._attachedPortal=e,this.attachTemplatePortal(e)):void function(){throw Error("Attempting to attach an unknown Portal type. BasePortalOutlet accepts either a ComponentPortal or a TemplatePortal.")}()},e.prototype.detach=function(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()},e.prototype.dispose=function(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0},e.prototype.setDisposeFn=function(e){this._disposeFn=e},e.prototype._invokeDisposeFn=function(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)},e}(),Kl=function(e){function t(t,n,r,i){var o=e.call(this)||this;return o._hostDomElement=t,o._componentFactoryResolver=n,o._appRef=r,o._defaultInjector=i,o}return Object(bl.__extends)(t,e),t.prototype.attachComponentPortal=function(e){var t,n=this,r=this._componentFactoryResolver.resolveComponentFactory(e.component);return e.viewContainerRef?(t=e.viewContainerRef.createComponent(r,e.viewContainerRef.length,e.injector||e.viewContainerRef.parentInjector),this.setDisposeFn(function(){return t.destroy()})):(t=r.create(e.injector||this._defaultInjector),this._appRef.attachView(t.hostView),this.setDisposeFn(function(){n._appRef.detachView(t.hostView),t.destroy()})),this._hostDomElement.appendChild(this._getComponentRootNode(t)),t},t.prototype.attachTemplatePortal=function(e){var t=this,n=e.viewContainerRef,r=n.createEmbeddedView(e.templateRef,e.context);return r.detectChanges(),r.rootNodes.forEach(function(e){return t._hostDomElement.appendChild(e)}),this.setDisposeFn(function(){var e=n.indexOf(r);-1!==e&&n.remove(e)}),r},t.prototype.dispose=function(){e.prototype.dispose.call(this),null!=this._hostDomElement.parentNode&&this._hostDomElement.parentNode.removeChild(this._hostDomElement)},t.prototype._getComponentRootNode=function(e){return e.hostView.rootNodes[0]},t}(Gl),$l=function(e){function t(t,n){var r=e.call(this)||this;return r._componentFactoryResolver=t,r._viewContainerRef=n,r._isInitialized=!1,r}return Object(bl.__extends)(t,e),Object.defineProperty(t.prototype,"_deprecatedPortal",{get:function(){return this.portal},set:function(e){this.portal=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedPortalHost",{get:function(){return this.portal},set:function(e){this.portal=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"portal",{get:function(){return this._attachedPortal},set:function(t){(!this.hasAttached()||t||this._isInitialized)&&(this.hasAttached()&&e.prototype.detach.call(this),t&&e.prototype.attach.call(this,t),this._attachedPortal=t)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this._isInitialized=!0},t.prototype.ngOnDestroy=function(){e.prototype.dispose.call(this),this._attachedPortal=null},t.prototype.attachComponentPortal=function(t){t.setAttachedHost(this);var n=null!=t.viewContainerRef?t.viewContainerRef:this._viewContainerRef,r=this._componentFactoryResolver.resolveComponentFactory(t.component),i=n.createComponent(r,n.length,t.injector||n.parentInjector);return e.prototype.setDisposeFn.call(this,function(){return i.destroy()}),this._attachedPortal=t,i},t.prototype.attachTemplatePortal=function(t){var n=this;t.setAttachedHost(this);var r=this._viewContainerRef.createEmbeddedView(t.templateRef,t.context);return e.prototype.setDisposeFn.call(this,function(){return n._viewContainerRef.clear()}),this._attachedPortal=t,r},t}(Gl),Zl=function(){},Ql=function(){function e(e,t){this._parentInjector=e,this._customTokens=t}return e.prototype.get=function(e,t){var n=this._customTokens.get(e);return void 0!==n?n:this._parentInjector.get(e,t)},e}(),Yl=n("E9/g"),Xl=function(e){function t(){var t=e.call(this,"argument out of range");this.name=t.name="ArgumentOutOfRangeError",this.stack=t.stack,this.message=t.message}return Object(bl.__extends)(t,e),t}(Error),Jl=n("Ecq+"),ea=function(){function e(e){if(this.total=e,this.total<0)throw new Xl}return e.prototype.call=function(e,t){return t.subscribe(new ta(e,this.total))},e}(),ta=function(e){function t(t,n){e.call(this,t),this.total=n,this.count=0}return Object(bl.__extends)(t,e),t.prototype._next=function(e){var t=this.total,n=++this.count;n<=t&&(this.destination.next(e),n===t&&(this.destination.complete(),this.unsubscribe()))},t}(Yl.a),na=function(){function e(){}return e.prototype.enable=function(){},e.prototype.disable=function(){},e.prototype.attach=function(){},e}(),ra=function(){return function(e){var t=this;this.scrollStrategy=new na,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.direction="ltr",e&&Object.keys(e).forEach(function(n){return t[n]=e[n]})}}(),ia=function(){function e(e,t){this._scrollDispatcher=e,this._ngZone=t,this._scrollSubscription=null}return e.prototype.attach=function(e){if(this._overlayRef)throw f();this._overlayRef=e},e.prototype.enable=function(){var e=this;this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(0).subscribe(function(){e._ngZone.run(function(){e.disable(),e._overlayRef.hasAttached()&&e._overlayRef.detach()})}))},e.prototype.disable=function(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)},e}(),oa=function(){function e(e){this._viewportRuler=e,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1}return e.prototype.attach=function(){},e.prototype.enable=function(){if(this._canBeEnabled()){var e=document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=-this._previousScrollPosition.left+"px",e.style.top=-this._previousScrollPosition.top+"px",e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}},e.prototype.disable=function(){if(this._isEnabled){var e=document.documentElement,t=document.body,n=e.style.scrollBehavior||"",r=t.style.scrollBehavior||"";this._isEnabled=!1,e.style.left=this._previousHTMLStyles.left,e.style.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),e.style.scrollBehavior=t.style.scrollBehavior="auto",window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),e.style.scrollBehavior=n,t.style.scrollBehavior=r}},e.prototype._canBeEnabled=function(){if(document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;var e=document.body,t=this._viewportRuler.getViewportSize();return e.scrollHeight>t.height||e.scrollWidth>t.width},e}(),la=function(){function e(e,t,n,r){this._scrollDispatcher=e,this._viewportRuler=t,this._ngZone=n,this._config=r,this._scrollSubscription=null}return e.prototype.attach=function(e){if(this._overlayRef)throw f();this._overlayRef=e},e.prototype.enable=function(){var e=this;this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(function(){if(e._overlayRef.updatePosition(),e._config&&e._config.autoClose){var t=e._overlayRef.overlayElement.getBoundingClientRect(),n=e._viewportRuler.getViewportSize(),r=n.width,i=n.height;h(t,[{width:r,height:i,bottom:i,right:r,top:0,left:0}])&&(e.disable(),e._ngZone.run(function(){return e._overlayRef.detach()}))}}))},e.prototype.disable=function(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)},e}(),aa=function(){return function(e,t,n){var r=this;this._scrollDispatcher=e,this._viewportRuler=t,this._ngZone=n,this.noop=function(){return new na},this.close=function(){return new ia(r._scrollDispatcher,r._ngZone)},this.block=function(){return new oa(r._viewportRuler)},this.reposition=function(e){return new la(r._scrollDispatcher,r._viewportRuler,r._ngZone,e)}}}(),sa=function(){function e(e,t,n,r,i){this._portalOutlet=e,this._pane=t,this._config=n,this._ngZone=r,this._keyboardDispatcher=i,this._backdropElement=null,this._backdropClick=new ml.Subject,this._attachments=new ml.Subject,this._detachments=new ml.Subject,this._keydownEvents=new ml.Subject,n.scrollStrategy&&n.scrollStrategy.attach(this)}return Object.defineProperty(e.prototype,"overlayElement",{get:function(){return this._pane},enumerable:!0,configurable:!0}),e.prototype.attach=function(e){var t=this,n=this._portalOutlet.attach(e);return this._config.positionStrategy&&this._config.positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._config.scrollStrategy&&this._config.scrollStrategy.enable(),this._ngZone.onStable.asObservable().pipe(u(1)).subscribe(function(){t.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&(Array.isArray(this._config.panelClass)?this._config.panelClass.forEach(function(e){return t._pane.classList.add(e)}):this._pane.classList.add(this._config.panelClass)),this._attachments.next(),this._keyboardDispatcher.add(this),n},e.prototype.detach=function(){if(this.hasAttached()){this.detachBackdrop(),this._togglePointerEvents(!1),this._config.positionStrategy&&this._config.positionStrategy.detach&&this._config.positionStrategy.detach(),this._config.scrollStrategy&&this._config.scrollStrategy.disable();var e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),e}},e.prototype.dispose=function(){var e=this.hasAttached();this._config.positionStrategy&&this._config.positionStrategy.dispose(),this._config.scrollStrategy&&this._config.scrollStrategy.disable(),this.detachBackdrop(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),e&&this._detachments.next(),this._detachments.complete()},e.prototype.hasAttached=function(){return this._portalOutlet.hasAttached()},e.prototype.backdropClick=function(){return this._backdropClick.asObservable()},e.prototype.attachments=function(){return this._attachments.asObservable()},e.prototype.detachments=function(){return this._detachments.asObservable()},e.prototype.keydownEvents=function(){return this._keydownEvents.asObservable()},e.prototype.getConfig=function(){return this._config},e.prototype.updatePosition=function(){this._config.positionStrategy&&this._config.positionStrategy.apply()},e.prototype.updateSize=function(e){this._config=Object(bl.__assign)({},this._config,e),this._updateElementSize()},e.prototype.setDirection=function(e){this._config=Object(bl.__assign)({},this._config,{direction:e}),this._updateElementDirection()},e.prototype._updateElementDirection=function(){this._pane.setAttribute("dir",this._config.direction)},e.prototype._updateElementSize=function(){(this._config.width||0===this._config.width)&&(this._pane.style.width=g(this._config.width)),(this._config.height||0===this._config.height)&&(this._pane.style.height=g(this._config.height)),(this._config.minWidth||0===this._config.minWidth)&&(this._pane.style.minWidth=g(this._config.minWidth)),(this._config.minHeight||0===this._config.minHeight)&&(this._pane.style.minHeight=g(this._config.minHeight)),(this._config.maxWidth||0===this._config.maxWidth)&&(this._pane.style.maxWidth=g(this._config.maxWidth)),(this._config.maxHeight||0===this._config.maxHeight)&&(this._pane.style.maxHeight=g(this._config.maxHeight))},e.prototype._togglePointerEvents=function(e){this._pane.style.pointerEvents=e?"auto":"none"},e.prototype._attachBackdrop=function(){var e=this;this._backdropElement=document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._config.backdropClass&&this._backdropElement.classList.add(this._config.backdropClass),this._pane.parentElement.insertBefore(this._backdropElement,this._pane),this._backdropElement.addEventListener("click",function(){return e._backdropClick.next(null)}),this._ngZone.runOutsideAngular(function(){requestAnimationFrame(function(){e._backdropElement&&e._backdropElement.classList.add("cdk-overlay-backdrop-showing")})})},e.prototype._updateStackingOrder=function(){this._pane.nextSibling&&this._pane.parentNode.appendChild(this._pane)},e.prototype.detachBackdrop=function(){var e=this,t=this._backdropElement;if(t){var n=function(){t&&t.parentNode&&t.parentNode.removeChild(t),e._backdropElement==t&&(e._backdropElement=null)};t.classList.remove("cdk-overlay-backdrop-showing"),this._config.backdropClass&&t.classList.remove(this._config.backdropClass),t.addEventListener("transitionend",n),t.style.pointerEvents="none",this._ngZone.runOutsideAngular(function(){setTimeout(n,500)})}},e}(),ua=function(){function e(e,t,n,r,i){this._connectedTo=n,this._viewportRuler=r,this._document=i,this._dir="ltr",this._offsetX=0,this._offsetY=0,this.scrollables=[],this._resizeSubscription=Cl.a.EMPTY,this._preferredPositions=[],this._applied=!1,this._positionLocked=!1,this._onPositionChange=new ml.Subject,this._origin=this._connectedTo.nativeElement,this.withFallbackPosition(e,t)}return Object.defineProperty(e.prototype,"_isRtl",{get:function(){return"rtl"===this._dir},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onPositionChange",{get:function(){return this._onPositionChange.asObservable()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"positions",{get:function(){return this._preferredPositions},enumerable:!0,configurable:!0}),e.prototype.attach=function(e){var t=this;this._overlayRef=e,this._pane=e.overlayElement,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(function(){return t.apply()})},e.prototype.dispose=function(){this._applied=!1,this._resizeSubscription.unsubscribe()},e.prototype.detach=function(){this._applied=!1,this._resizeSubscription.unsubscribe()},e.prototype.apply=function(){if(this._applied&&this._positionLocked&&this._lastConnectedPosition)this.recalculateLastPosition();else{this._applied=!0;for(var e,t,n=this._pane,r=this._origin.getBoundingClientRect(),i=n.getBoundingClientRect(),o=this._viewportRuler.getViewportSize(),l=0,a=this._preferredPositions;l<a.length;l++){var s=a[l],u=this._getOriginConnectionPoint(r,s),c=this._getOverlayPoint(u,i,o,s);if(c.fitsInViewport)return this._setElementPosition(n,i,c,s),void(this._lastConnectedPosition=s);(!e||e.visibleArea<c.visibleArea)&&(e=c,t=s)}this._setElementPosition(n,i,e,t)}},e.prototype.recalculateLastPosition=function(){if(this._lastConnectedPosition){var e=this._origin.getBoundingClientRect(),t=this._pane.getBoundingClientRect(),n=this._viewportRuler.getViewportSize(),r=this._lastConnectedPosition||this._preferredPositions[0],i=this._getOriginConnectionPoint(e,r),o=this._getOverlayPoint(i,t,n,r);this._setElementPosition(this._pane,t,o,r)}},e.prototype.withScrollableContainers=function(e){this.scrollables=e},e.prototype.withFallbackPosition=function(e,t,n,r){var i=new function(e,t,n,r){this.offsetX=n,this.offsetY=r,this.originX=e.originX,this.originY=e.originY,this.overlayX=t.overlayX,this.overlayY=t.overlayY}(e,t,n,r);return this._preferredPositions.push(i),this},e.prototype.withDirection=function(e){return this._dir=e,this},e.prototype.withOffsetX=function(e){return this._offsetX=e,this},e.prototype.withOffsetY=function(e){return this._offsetY=e,this},e.prototype.withLockedPosition=function(e){return this._positionLocked=e,this},e.prototype._getStartX=function(e){return this._isRtl?e.right:e.left},e.prototype._getEndX=function(e){return this._isRtl?e.left:e.right},e.prototype._getOriginConnectionPoint=function(e,t){var n,r=this._getStartX(e),i=this._getEndX(e);n="center"==t.originX?r+e.width/2:"start"==t.originX?r:i;var o;return o="center"==t.originY?e.top+e.height/2:"top"==t.originY?e.top:e.bottom,{x:n,y:o}},e.prototype._getOverlayPoint=function(e,t,n,r){var i;i="center"==r.overlayX?-t.width/2:"start"===r.overlayX?this._isRtl?-t.width:0:this._isRtl?0:-t.width;var o;o="center"==r.overlayY?-t.height/2:"top"==r.overlayY?0:-t.height;var l=e.x+i+(void 0===r.offsetX?this._offsetX:r.offsetX),a=e.y+o+(void 0===r.offsetY?this._offsetY:r.offsetY),s=0-a,u=a+t.height-n.height,c=this._subtractOverflows(t.width,0-l,l+t.width-n.width)*this._subtractOverflows(t.height,s,u);return{x:l,y:a,fitsInViewport:t.width*t.height===c,visibleArea:c}},e.prototype._getScrollVisibility=function(e){var t=this._origin.getBoundingClientRect(),n=e.getBoundingClientRect(),r=this.scrollables.map(function(e){return e.getElementRef().nativeElement.getBoundingClientRect()});return{isOriginClipped:m(t,r),isOriginOutsideView:h(t,r),isOverlayClipped:m(n,r),isOverlayOutsideView:h(n,r)}},e.prototype._setElementPosition=function(e,t,n,r){var i,o="bottom"===r.overlayY?"bottom":"top",l="top"===o?n.y:this._document.documentElement.clientHeight-(n.y+t.height),a="left"==(i="rtl"===this._dir?"end"===r.overlayX?"left":"right":"end"===r.overlayX?"right":"left")?n.x:this._document.documentElement.clientWidth-(n.x+t.width);["top","bottom","left","right"].forEach(function(t){return e.style[t]=null}),e.style[o]=l+"px",e.style[i]=a+"px";var s=new function(e,t){this.connectionPair=e,this.scrollableViewProperties=t}(r,this._getScrollVisibility(e));this._onPositionChange.next(s)},e.prototype._subtractOverflows=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce(function(e,t){return e-Math.max(t,0)},e)},e}(),ca=function(){function e(e){this._document=e,this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._leftOffset="",this._rightOffset="",this._alignItems="",this._justifyContent="",this._width="",this._height="",this._wrapper=null}return e.prototype.attach=function(e){this._overlayRef=e},e.prototype.top=function(e){return void 0===e&&(e=""),this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this},e.prototype.left=function(e){return void 0===e&&(e=""),this._rightOffset="",this._leftOffset=e,this._justifyContent="flex-start",this},e.prototype.bottom=function(e){return void 0===e&&(e=""),this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this},e.prototype.right=function(e){return void 0===e&&(e=""),this._leftOffset="",this._rightOffset=e,this._justifyContent="flex-end",this},e.prototype.width=function(e){return void 0===e&&(e=""),this._width=e,"100%"===e&&this.left("0px"),this},e.prototype.height=function(e){return void 0===e&&(e=""),this._height=e,"100%"===e&&this.top("0px"),this},e.prototype.centerHorizontally=function(e){return void 0===e&&(e=""),this.left(e),this._justifyContent="center",this},e.prototype.centerVertically=function(e){return void 0===e&&(e=""),this.top(e),this._alignItems="center",this},e.prototype.apply=function(){var e=this._overlayRef.overlayElement;!this._wrapper&&e.parentNode&&(this._wrapper=this._document.createElement("div"),this._wrapper.classList.add("cdk-global-overlay-wrapper"),e.parentNode.insertBefore(this._wrapper,e),this._wrapper.appendChild(e));var t=e.style,n=e.parentNode.style;t.position=this._cssPosition,t.marginTop=this._topOffset,t.marginLeft=this._leftOffset,t.marginBottom=this._bottomOffset,t.marginRight=this._rightOffset,t.width=this._width,t.height=this._height,n.justifyContent=this._justifyContent,n.alignItems=this._alignItems},e.prototype.dispose=function(){this._wrapper&&this._wrapper.parentNode&&(this._wrapper.parentNode.removeChild(this._wrapper),this._wrapper=null)},e}(),da=function(){function e(e,t){this._viewportRuler=e,this._document=t}return e.prototype.global=function(){return new ca(this._document)},e.prototype.connectedTo=function(e,t,n){return new ua(t,n,e,this._viewportRuler,this._document)},e}(),pa=function(){function e(e){this._document=e,this._attachedOverlays=[]}return e.prototype.ngOnDestroy=function(){this._unsubscribeFromKeydownEvents()},e.prototype.add=function(e){this._keydownEventSubscription||this._subscribeToKeydownEvents(),this._attachedOverlays.push(e)},e.prototype.remove=function(e){var t=this._attachedOverlays.indexOf(e);t>-1&&this._attachedOverlays.splice(t,1),0===this._attachedOverlays.length&&this._unsubscribeFromKeydownEvents()},e.prototype._subscribeToKeydownEvents=function(){var e=this,t=Sl(this._document.body,"keydown");this._keydownEventSubscription=t.pipe(Object(Al.a)(function(){return!!e._attachedOverlays.length})).subscribe(function(t){e._selectOverlayFromEvent(t)._keydownEvents.next(t)})},e.prototype._unsubscribeFromKeydownEvents=function(){this._keydownEventSubscription&&(this._keydownEventSubscription.unsubscribe(),this._keydownEventSubscription=null)},e.prototype._selectOverlayFromEvent=function(e){return this._attachedOverlays.find(function(t){return t.overlayElement===e.target||t.overlayElement.contains(e.target)})||this._attachedOverlays[this._attachedOverlays.length-1]},e}(),fa=function(){function e(e){this._document=e}return e.prototype.ngOnDestroy=function(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)},e.prototype.getContainerElement=function(){return this._containerElement||this._createContainer(),this._containerElement},e.prototype._createContainer=function(){var e=this._document.createElement("div");e.classList.add("cdk-overlay-container"),this._document.body.appendChild(e),this._containerElement=e},e}(),ha=0,ma=new ra,ga=function(){function e(e,t,n,r,i,o,l,a,s){this.scrollStrategies=e,this._overlayContainer=t,this._componentFactoryResolver=n,this._positionBuilder=r,this._keyboardDispatcher=i,this._appRef=o,this._injector=l,this._ngZone=a,this._document=s}return e.prototype.create=function(e){void 0===e&&(e=ma);var t=this._createPaneElement(),n=this._createPortalOutlet(t);return new sa(n,t,e,this._ngZone,this._keyboardDispatcher)},e.prototype.position=function(){return this._positionBuilder},e.prototype._createPaneElement=function(){var e=this._document.createElement("div");return e.id="cdk-overlay-"+ha++,e.classList.add("cdk-overlay-pane"),this._overlayContainer.getContainerElement().appendChild(e),e},e.prototype._createPortalOutlet=function(e){return new Kl(e,this._componentFactoryResolver,this._appRef,this._injector)},e}(),ya=new al.InjectionToken("cdk-connected-overlay-scroll-strategy"),va=function(){},ba=function(){function e(e,t){this.dueTime=e,this.scheduler=t}return e.prototype.call=function(e,t){return t.subscribe(new _a(e,this.dueTime,this.scheduler))},e}(),_a=function(e){function t(t,n,r){e.call(this,t),this.dueTime=n,this.scheduler=r,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}return Object(bl.__extends)(t,e),t.prototype._next=function(e){this.clearDebounce(),this.lastValue=e,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(w,this.dueTime,this))},t.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},t.prototype.debouncedNext=function(){this.clearDebounce(),this.hasValue&&(this.destination.next(this.lastValue),this.lastValue=null,this.hasValue=!1)},t.prototype.clearDebounce=function(){var e=this.debouncedSubscription;null!==e&&(this.remove(e),e.unsubscribe(),this.debouncedSubscription=null)},t}(Yl.a),wa=n("qqDE"),xa=function(){function e(e,t,n){this.nextOrObserver=e,this.error=t,this.complete=n}return e.prototype.call=function(e,t){return t.subscribe(new Ca(e,this.nextOrObserver,this.error,this.complete))},e}(),Ca=function(e){function t(t,n,r,i){e.call(this,t);var o=new Yl.a(n,r,i);o.syncErrorThrowable=!0,this.add(o),this.safeSubscriber=o}return Object(bl.__extends)(t,e),t.prototype._next=function(e){var t=this.safeSubscriber;t.next(e),t.syncErrorThrown?this.destination.error(t.syncErrorValue):this.destination.next(e)},t.prototype._error=function(e){var t=this.safeSubscriber;t.error(e),this.destination.error(t.syncErrorThrown?t.syncErrorValue:e)},t.prototype._complete=function(){var e=this.safeSubscriber;e.complete(),e.syncErrorThrown?this.destination.error(e.syncErrorValue):this.destination.complete()},t}(Yl.a),Ea=function(){function e(e){this._platform=e}return e.prototype.isDisabled=function(e){return e.hasAttribute("disabled")},e.prototype.isVisible=function(e){return!!(e.offsetWidth||e.offsetHeight||"function"==typeof e.getClientRects&&e.getClientRects().length)&&"visible"===getComputedStyle(e).visibility},e.prototype.isTabbable=function(e){if(!this._platform.isBrowser)return!1;var t=(e.ownerDocument.defaultView||window).frameElement;if(t){var n=t&&t.nodeName.toLowerCase();if(-1===E(t))return!1;if((this._platform.BLINK||this._platform.WEBKIT)&&"object"===n)return!1;if((this._platform.BLINK||this._platform.WEBKIT)&&!this.isVisible(t))return!1}var r=e.nodeName.toLowerCase(),i=E(e);if(e.hasAttribute("contenteditable"))return-1!==i;if("iframe"===r)return!1;if("audio"===r){if(!e.hasAttribute("controls"))return!1;if(this._platform.BLINK)return!0}if("video"===r){if(!e.hasAttribute("controls")&&this._platform.TRIDENT)return!1;if(this._platform.BLINK||this._platform.FIREFOX)return!0}return("object"!==r||!this._platform.BLINK&&!this._platform.WEBKIT)&&!(this._platform.WEBKIT&&this._platform.IOS&&!function(e){var t=e.nodeName.toLowerCase(),n="input"===t&&e.type;return"text"===n||"password"===n||"select"===t||"textarea"===t}(e))&&e.tabIndex>=0},e.prototype.isFocusable=function(e){return function(e){return!function(e){return"input"==e.nodeName.toLowerCase()&&"hidden"==e.type}(e)&&(function(t){var n=e.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}()||function(e){return"a"==e.nodeName.toLowerCase()&&e.hasAttribute("href")}(e)||e.hasAttribute("contenteditable")||C(e))}(e)&&!this.isDisabled(e)&&this.isVisible(e)},e}(),Sa=function(){function e(e,t,n,r,i){void 0===i&&(i=!1),this._element=e,this._checker=t,this._ngZone=n,this._document=r,this._enabled=!0,i||this.attachAnchors()}return Object.defineProperty(e.prototype,"enabled",{get:function(){return this._enabled},set:function(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._startAnchor.tabIndex=this._endAnchor.tabIndex=this._enabled?0:-1)},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this._startAnchor&&this._startAnchor.parentNode&&this._startAnchor.parentNode.removeChild(this._startAnchor),this._endAnchor&&this._endAnchor.parentNode&&this._endAnchor.parentNode.removeChild(this._endAnchor),this._startAnchor=this._endAnchor=null},e.prototype.attachAnchors=function(){var e=this;this._startAnchor||(this._startAnchor=this._createAnchor()),this._endAnchor||(this._endAnchor=this._createAnchor()),this._ngZone.runOutsideAngular(function(){e._startAnchor.addEventListener("focus",function(){e.focusLastTabbableElement()}),e._endAnchor.addEventListener("focus",function(){e.focusFirstTabbableElement()}),e._element.parentNode&&(e._element.parentNode.insertBefore(e._startAnchor,e._element),e._element.parentNode.insertBefore(e._endAnchor,e._element.nextSibling))})},e.prototype.focusInitialElementWhenReady=function(){var e=this;return new Promise(function(t){e._executeOnStable(function(){return t(e.focusInitialElement())})})},e.prototype.focusFirstTabbableElementWhenReady=function(){var e=this;return new Promise(function(t){e._executeOnStable(function(){return t(e.focusFirstTabbableElement())})})},e.prototype.focusLastTabbableElementWhenReady=function(){var e=this;return new Promise(function(t){e._executeOnStable(function(){return t(e.focusLastTabbableElement())})})},e.prototype._getRegionBoundary=function(e){for(var t=this._element.querySelectorAll("[cdk-focus-region-"+e+"], [cdkFocusRegion"+e+"], [cdk-focus-"+e+"]"),n=0;n<t.length;n++)t[n].hasAttribute("cdk-focus-"+e)?console.warn("Found use of deprecated attribute 'cdk-focus-"+e+"', use 'cdkFocusRegion"+e+"' instead.",t[n]):t[n].hasAttribute("cdk-focus-region-"+e)&&console.warn("Found use of deprecated attribute 'cdk-focus-region-"+e+"', use 'cdkFocusRegion"+e+"' instead.",t[n]);return"start"==e?t.length?t[0]:this._getFirstTabbableElement(this._element):t.length?t[t.length-1]:this._getLastTabbableElement(this._element)},e.prototype.focusInitialElement=function(){var e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");return this._element.hasAttribute("cdk-focus-initial")&&console.warn("Found use of deprecated attribute 'cdk-focus-initial', use 'cdkFocusInitial' instead.",this._element),e?(e.focus(),!0):this.focusFirstTabbableElement()},e.prototype.focusFirstTabbableElement=function(){var e=this._getRegionBoundary("start");return e&&e.focus(),!!e},e.prototype.focusLastTabbableElement=function(){var e=this._getRegionBoundary("end");return e&&e.focus(),!!e},e.prototype._getFirstTabbableElement=function(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;for(var t=e.children||e.childNodes,n=0;n<t.length;n++){var r=t[n].nodeType===Node.ELEMENT_NODE?this._getFirstTabbableElement(t[n]):null;if(r)return r}return null},e.prototype._getLastTabbableElement=function(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;for(var t=e.children||e.childNodes,n=t.length-1;n>=0;n--){var r=t[n].nodeType===Node.ELEMENT_NODE?this._getLastTabbableElement(t[n]):null;if(r)return r}return null},e.prototype._createAnchor=function(){var e=this._document.createElement("div");return e.tabIndex=this._enabled?0:-1,e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e},e.prototype._executeOnStable=function(e){this._ngZone.isStable?e():this._ngZone.onStable.asObservable().pipe(u(1)).subscribe(e)},e}(),Oa=function(){function e(e,t,n){this._checker=e,this._ngZone=t,this._document=n}return e.prototype.create=function(e,t){return void 0===t&&(t=!1),new Sa(e,this._checker,this._ngZone,this._document,t)},e}(),Ta=function(){function e(e,t,n){this._elementRef=e,this._focusTrapFactory=t,this._previouslyFocusedElement=null,this._document=n,this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0)}return Object.defineProperty(e.prototype,"enabled",{get:function(){return this.focusTrap.enabled},set:function(e){this.focusTrap.enabled=c(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"autoCapture",{get:function(){return this._autoCapture},set:function(e){this._autoCapture=c(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.focusTrap.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)},e.prototype.ngAfterContentInit=function(){this.focusTrap.attachAnchors(),this.autoCapture&&(this._previouslyFocusedElement=this._document.activeElement,this.focusTrap.focusInitialElementWhenReady())},e}(),ka="cdk-describedby-message",Da="cdk-describedby-host",Ia=0,Ra=new Map,Ma=null,Pa=function(){function e(e){this._document=e}return e.prototype.describe=function(e,t){t.trim()&&(Ra.has(t)||this._createMessageElement(t),this._isElementDescribedByMessage(e,t)||this._addMessageReference(e,t))},e.prototype.removeDescription=function(e,t){if(t.trim()){this._isElementDescribedByMessage(e,t)&&this._removeMessageReference(e,t);var n=Ra.get(t);n&&0===n.referenceCount&&this._deleteMessageElement(t),Ma&&0===Ma.childNodes.length&&this._deleteMessagesContainer()}},e.prototype.ngOnDestroy=function(){for(var e=this._document.querySelectorAll("["+Da+"]"),t=0;t<e.length;t++)this._removeCdkDescribedByReferenceIds(e[t]),e[t].removeAttribute(Da);Ma&&this._deleteMessagesContainer(),Ra.clear()},e.prototype._createMessageElement=function(e){var t=this._document.createElement("div");t.setAttribute("id",ka+"-"+Ia++),t.appendChild(this._document.createTextNode(e)),Ma||this._createMessagesContainer(),Ma.appendChild(t),Ra.set(e,{messageElement:t,referenceCount:0})},e.prototype._deleteMessageElement=function(e){var t=Ra.get(e),n=t&&t.messageElement;Ma&&n&&Ma.removeChild(n),Ra.delete(e)},e.prototype._createMessagesContainer=function(){(Ma=this._document.createElement("div")).setAttribute("id","cdk-describedby-message-container"),Ma.setAttribute("aria-hidden","true"),Ma.style.display="none",this._document.body.appendChild(Ma)},e.prototype._deleteMessagesContainer=function(){this._document.body.removeChild(Ma),Ma=null},e.prototype._removeCdkDescribedByReferenceIds=function(e){var t=S(e,"aria-describedby").filter(function(e){return 0!=e.indexOf(ka)});e.setAttribute("aria-describedby",t.join(" "))},e.prototype._addMessageReference=function(e,t){var n=Ra.get(t);!function(e,t,n){var r=S(e,"aria-describedby");r.some(function(e){return e.trim()==n.trim()})||(r.push(n.trim()),e.setAttribute("aria-describedby",r.join(" ")))}(e,0,n.messageElement.id),e.setAttribute(Da,""),n.referenceCount++},e.prototype._removeMessageReference=function(e,t){var n=Ra.get(t);n.referenceCount--,function(e,t,n){var r=S(e,"aria-describedby").filter(function(e){return e!=n.trim()});e.setAttribute("aria-describedby",r.join(" "))}(e,0,n.messageElement.id),e.removeAttribute(Da)},e.prototype._isElementDescribedByMessage=function(e,t){var n=S(e,"aria-describedby"),r=Ra.get(t),i=r&&r.messageElement.id;return!!i&&-1!=n.indexOf(i)},e}(),Na=new al.InjectionToken("liveAnnouncerElement"),Aa=function(){function e(e,t){this._document=t,this._liveElement=e||this._createLiveElement()}return e.prototype.announce=function(e,t){var n=this;void 0===t&&(t="polite"),this._liveElement.textContent="",this._liveElement.setAttribute("aria-live",t),setTimeout(function(){return n._liveElement.textContent=e},100)},e.prototype.ngOnDestroy=function(){this._liveElement&&this._liveElement.parentNode&&this._liveElement.parentNode.removeChild(this._liveElement)},e.prototype._createLiveElement=function(){var e=this._document.createElement("div");return e.classList.add("cdk-visually-hidden"),e.setAttribute("aria-atomic","true"),e.setAttribute("aria-live","polite"),this._document.body.appendChild(e),e},e}(),La=function(){function e(e,t){this._ngZone=e,this._platform=t,this._origin=null,this._windowFocused=!1,this._elementInfo=new WeakMap,this._unregisterGlobalListeners=function(){},this._monitoredElementCount=0}return e.prototype.monitor=function(e,t,n){var r=this;if(t instanceof al.Renderer2||(n=t),n=!!n,!this._platform.isBrowser)return vl(null);if(this._elementInfo.has(e)){var i=this._elementInfo.get(e);return i.checkChildren=n,i.subject.asObservable()}var o={unlisten:function(){},checkChildren:n,subject:new ml.Subject};this._elementInfo.set(e,o),this._incrementMonitoredElementCount();var l=function(t){return r._onFocus(t,e)},a=function(t){return r._onBlur(t,e)};return this._ngZone.runOutsideAngular(function(){e.addEventListener("focus",l,!0),e.addEventListener("blur",a,!0)}),o.unlisten=function(){e.removeEventListener("focus",l,!0),e.removeEventListener("blur",a,!0)},o.subject.asObservable()},e.prototype.stopMonitoring=function(e){var t=this._elementInfo.get(e);t&&(t.unlisten(),t.subject.complete(),this._setClasses(e),this._elementInfo.delete(e),this._decrementMonitoredElementCount())},e.prototype.focusVia=function(e,t){this._setOriginForCurrentEventQueue(t),e.focus()},e.prototype._registerGlobalListeners=function(){var e=this;if(this._platform.isBrowser){var t=function(){e._lastTouchTarget=null,e._setOriginForCurrentEventQueue("keyboard")},n=function(){e._lastTouchTarget||e._setOriginForCurrentEventQueue("mouse")},i=function(t){null!=e._touchTimeout&&clearTimeout(e._touchTimeout),e._lastTouchTarget=t.target,e._touchTimeout=setTimeout(function(){return e._lastTouchTarget=null},650)},o=function(){e._windowFocused=!0,setTimeout(function(){return e._windowFocused=!1},0)};this._ngZone.runOutsideAngular(function(){document.addEventListener("keydown",t,!0),document.addEventListener("mousedown",n,!0),document.addEventListener("touchstart",i,!r()||{passive:!0,capture:!0}),window.addEventListener("focus",o)}),this._unregisterGlobalListeners=function(){document.removeEventListener("keydown",t,!0),document.removeEventListener("mousedown",n,!0),document.removeEventListener("touchstart",i,!r()||{passive:!0,capture:!0}),window.removeEventListener("focus",o)}}},e.prototype._toggleClass=function(e,t,n){n?e.classList.add(t):e.classList.remove(t)},e.prototype._setClasses=function(e,t){this._elementInfo.get(e)&&(this._toggleClass(e,"cdk-focused",!!t),this._toggleClass(e,"cdk-touch-focused","touch"===t),this._toggleClass(e,"cdk-keyboard-focused","keyboard"===t),this._toggleClass(e,"cdk-mouse-focused","mouse"===t),this._toggleClass(e,"cdk-program-focused","program"===t))},e.prototype._setOriginForCurrentEventQueue=function(e){var t=this;this._origin=e,setTimeout(function(){return t._origin=null},0)},e.prototype._wasCausedByTouch=function(e){var t=e.target;return this._lastTouchTarget instanceof Node&&t instanceof Node&&(t===this._lastTouchTarget||t.contains(this._lastTouchTarget))},e.prototype._onFocus=function(e,t){var n=this._elementInfo.get(t);n&&(n.checkChildren||t===e.target)&&(this._origin||(this._origin=this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:this._wasCausedByTouch(e)?"touch":"program"),this._setClasses(t,this._origin),n.subject.next(this._origin),this._lastFocusOrigin=this._origin,this._origin=null)},e.prototype._onBlur=function(e,t){var n=this._elementInfo.get(t);!n||n.checkChildren&&e.relatedTarget instanceof Node&&t.contains(e.relatedTarget)||(this._setClasses(t),n.subject.next(null))},e.prototype._incrementMonitoredElementCount=function(){1==++this._monitoredElementCount&&this._registerGlobalListeners()},e.prototype._decrementMonitoredElementCount=function(){--this._monitoredElementCount||(this._unregisterGlobalListeners(),this._unregisterGlobalListeners=function(){})},e}(),Fa=function(){function e(e,t){var n=this;this._elementRef=e,this._focusMonitor=t,this.cdkFocusChange=new al.EventEmitter,this._monitorSubscription=this._focusMonitor.monitor(this._elementRef.nativeElement,this._elementRef.nativeElement.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(function(e){return n.cdkFocusChange.emit(e)})}return e.prototype.ngOnDestroy=function(){this._focusMonitor.stopMonitoring(this._elementRef.nativeElement),this._monitorSubscription.unsubscribe()},e}(),ja=function(){},Va=n("RyBE"),za=new al.InjectionToken("mat-sanity-checks"),Ba=function(){function e(e){this._sanityChecksEnabled=e,this._hasDoneGlobalChecks=!1,this._hasCheckedHammer=!1,this._document="object"==typeof document&&document?document:null,this._window="object"==typeof window&&window?window:null,this._areChecksEnabled()&&!this._hasDoneGlobalChecks&&(this._checkDoctypeIsDefined(),this._checkThemeIsPresent(),this._hasDoneGlobalChecks=!0)}return e.prototype._areChecksEnabled=function(){return this._sanityChecksEnabled&&Object(al.isDevMode)()&&!this._isTestEnv()},e.prototype._isTestEnv=function(){return this._window&&(this._window.__karma__||this._window.jasmine)},e.prototype._checkDoctypeIsDefined=function(){this._document&&!this._document.doctype&&console.warn("Current document does not have a doctype. This may cause some Angular Material components not to behave as expected.")},e.prototype._checkThemeIsPresent=function(){if(this._document&&"function"==typeof getComputedStyle){var e=this._document.createElement("div");e.classList.add("mat-theme-loaded-marker"),this._document.body.appendChild(e);var t=getComputedStyle(e);t&&"none"!==t.display&&console.warn("Could not find Angular Material core theme. Most Material components may not work as expected. For more info refer to the theming guide: https://material.angular.io/guide/theming"),this._document.body.removeChild(e)}},e.prototype._checkHammerIsAvailable=function(){!this._hasCheckedHammer&&this._window&&(this._areChecksEnabled()&&!this._window.Hammer&&console.warn("Could not find HammerJS. Certain Angular Material components may not work correctly."),this._hasCheckedHammer=!0)},e}(),Ha=new al.InjectionToken("MAT_DATE_LOCALE"),Wa=function(){function e(){this._localeChanges=new ml.Subject}return Object.defineProperty(e.prototype,"localeChanges",{get:function(){return this._localeChanges},enumerable:!0,configurable:!0}),e.prototype.deserialize=function(e){return null==e||this.isDateInstance(e)&&this.isValid(e)?e:this.invalid()},e.prototype.setLocale=function(e){this.locale=e,this._localeChanges.next()},e.prototype.compareDate=function(e,t){return this.getYear(e)-this.getYear(t)||this.getMonth(e)-this.getMonth(t)||this.getDate(e)-this.getDate(t)},e.prototype.sameDate=function(e,t){if(e&&t){var n=this.isValid(e),r=this.isValid(t);return n&&r?!this.compareDate(e,t):n==r}return e==t},e.prototype.clampDate=function(e,t,n){return t&&this.compareDate(e,t)<0?t:n&&this.compareDate(e,n)>0?n:e},e}(),qa=new al.InjectionToken("mat-date-formats"),Ua="undefined"!=typeof Intl,Ga={long:["January","February","March","April","May","June","July","August","September","October","November","December"],short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],narrow:["J","F","M","A","M","J","J","A","S","O","N","D"]},Ka=M(31,function(e){return String(e+1)}),$a={long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],narrow:["S","M","T","W","T","F","S"]},Za=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|(?:(?:\+|-)\d{2}:\d{2}))?)?$/,Qa=function(e){function t(t){var n=e.call(this)||this;return e.prototype.setLocale.call(n,t),n.useUtcForDisplay=!("object"==typeof document&&document&&/(msie|trident)/i.test(navigator.userAgent)),n}return Object(bl.__extends)(t,e),t.prototype.getYear=function(e){return e.getFullYear()},t.prototype.getMonth=function(e){return e.getMonth()},t.prototype.getDate=function(e){return e.getDate()},t.prototype.getDayOfWeek=function(e){return e.getDay()},t.prototype.getMonthNames=function(e){var t=this;if(Ua){var n=new Intl.DateTimeFormat(this.locale,{month:e});return M(12,function(e){return t._stripDirectionalityCharacters(n.format(new Date(2017,e,1)))})}return Ga[e]},t.prototype.getDateNames=function(){var e=this;if(Ua){var t=new Intl.DateTimeFormat(this.locale,{day:"numeric"});return M(31,function(n){return e._stripDirectionalityCharacters(t.format(new Date(2017,0,n+1)))})}return Ka},t.prototype.getDayOfWeekNames=function(e){var t=this;if(Ua){var n=new Intl.DateTimeFormat(this.locale,{weekday:e});return M(7,function(e){return t._stripDirectionalityCharacters(n.format(new Date(2017,0,e+1)))})}return $a[e]},t.prototype.getYearName=function(e){if(Ua){var t=new Intl.DateTimeFormat(this.locale,{year:"numeric"});return this._stripDirectionalityCharacters(t.format(e))}return String(this.getYear(e))},t.prototype.getFirstDayOfWeek=function(){return 0},t.prototype.getNumDaysInMonth=function(e){return this.getDate(this._createDateWithOverflow(this.getYear(e),this.getMonth(e)+1,0))},t.prototype.clone=function(e){return this.createDate(this.getYear(e),this.getMonth(e),this.getDate(e))},t.prototype.createDate=function(e,t,n){if(t<0||t>11)throw Error('Invalid month index "'+t+'". Month index has to be between 0 and 11.');if(n<1)throw Error('Invalid date "'+n+'". Date has to be greater than 0.');var r=this._createDateWithOverflow(e,t,n);if(r.getMonth()!=t)throw Error('Invalid date "'+n+'" for month with index "'+t+'".');return r},t.prototype.today=function(){return new Date},t.prototype.parse=function(e){return"number"==typeof e?new Date(e):e?new Date(Date.parse(e)):null},t.prototype.format=function(e,t){if(!this.isValid(e))throw Error("NativeDateAdapter: Cannot format invalid date.");if(Ua){this.useUtcForDisplay&&(e=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())),t=Object(bl.__assign)({},t,{timeZone:"utc"}));var n=new Intl.DateTimeFormat(this.locale,t);return this._stripDirectionalityCharacters(n.format(e))}return this._stripDirectionalityCharacters(e.toDateString())},t.prototype.addCalendarYears=function(e,t){return this.addCalendarMonths(e,12*t)},t.prototype.addCalendarMonths=function(e,t){var n=this._createDateWithOverflow(this.getYear(e),this.getMonth(e)+t,this.getDate(e));return this.getMonth(n)!=((this.getMonth(e)+t)%12+12)%12&&(n=this._createDateWithOverflow(this.getYear(n),this.getMonth(n),0)),n},t.prototype.addCalendarDays=function(e,t){return this._createDateWithOverflow(this.getYear(e),this.getMonth(e),this.getDate(e)+t)},t.prototype.toIso8601=function(e){return[e.getUTCFullYear(),this._2digit(e.getUTCMonth()+1),this._2digit(e.getUTCDate())].join("-")},t.prototype.deserialize=function(t){if("string"==typeof t){if(!t)return null;if(Za.test(t)){var n=new Date(t);if(this.isValid(n))return n}}return e.prototype.deserialize.call(this,t)},t.prototype.isDateInstance=function(e){return e instanceof Date},t.prototype.isValid=function(e){return!isNaN(e.getTime())},t.prototype.invalid=function(){return new Date(NaN)},t.prototype._createDateWithOverflow=function(e,t,n){var r=new Date(e,t,n);return e>=0&&e<100&&r.setFullYear(this.getYear(r)-1900),r},t.prototype._2digit=function(e){return("00"+e).slice(-2)},t.prototype._stripDirectionalityCharacters=function(e){return e.replace(/[\u200e\u200f]/g,"")},t}(Wa),Ya={parse:{dateInput:null},display:{dateInput:{year:"numeric",month:"numeric",day:"numeric"},monthYearLabel:{year:"numeric",month:"short"},dateA11yLabel:{year:"numeric",month:"long",day:"numeric"},monthYearA11yLabel:{year:"numeric",month:"long"}}},Xa=function(){},Ja=function(){},es=function(){function e(){}return e.prototype.isErrorState=function(e,t){return!!(e&&e.invalid&&(e.touched||t&&t.submitted))},e}(),ts=new al.InjectionToken("MAT_HAMMER_OPTIONS"),ns=function(e){function t(t,n){var r=e.call(this)||this;return r._hammerOptions=t,r._hammer="undefined"!=typeof window?window.Hammer:null,r.events=r._hammer?["longpress","slide","slidestart","slideend","slideright","slideleft"]:[],n&&n._checkHammerIsAvailable(),r}return Object(bl.__extends)(t,e),t.prototype.buildHammer=function(e){var t=new this._hammer(e,this._hammerOptions||void 0),n=new this._hammer.Pan,r=new this._hammer.Swipe,i=new this._hammer.Press,o=this._createRecognizer(n,{event:"slide",threshold:0},r),l=this._createRecognizer(i,{event:"longpress",time:500});return n.recognizeWith(r),t.add([r,i,n,o,l]),t},t.prototype._createRecognizer=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=new e.constructor(t);return n.push(e),n.forEach(function(e){return i.recognizeWith(e)}),i},t}(Va.g),rs=function(){},is=function(){var e={FADING_IN:0,VISIBLE:1,FADING_OUT:2,HIDDEN:3};return e[e.FADING_IN]="FADING_IN",e[e.VISIBLE]="VISIBLE",e[e.FADING_OUT]="FADING_OUT",e[e.HIDDEN]="HIDDEN",e}(),os=function(){function e(e,t,n){this._renderer=e,this.element=t,this.config=n,this.state=is.HIDDEN}return e.prototype.fadeOut=function(){this._renderer.fadeOutRipple(this)},e}(),ls=function(){function e(e,t,n){this._ngZone=t,this._isPointerDown=!1,this._triggerEvents=new Map,this._activeRipples=new Set,this.rippleConfig={},this.rippleDisabled=!1,n.isBrowser&&(this._containerElement=e.nativeElement,this._triggerEvents.set("mousedown",this.onMousedown.bind(this)),this._triggerEvents.set("mouseup",this.onPointerUp.bind(this)),this._triggerEvents.set("mouseleave",this.onPointerUp.bind(this)),this._triggerEvents.set("touchstart",this.onTouchStart.bind(this)),this._triggerEvents.set("touchend",this.onPointerUp.bind(this)),this.setTriggerElement(this._containerElement))}return e.prototype.fadeInRipple=function(e,t,n){var r=this;void 0===n&&(n={});var i=this._containerElement.getBoundingClientRect();n.centered&&(e=i.left+i.width/2,t=i.top+i.height/2);var o=n.radius||function(e,t,n){var r=Math.max(Math.abs(e-n.left),Math.abs(e-n.right)),i=Math.max(Math.abs(t-n.top),Math.abs(t-n.bottom));return Math.sqrt(r*r+i*i)}(e,t,i),l=450/(n.speedFactor||1),a=e-i.left,s=t-i.top,u=document.createElement("div");u.classList.add("mat-ripple-element"),u.style.left=a-o+"px",u.style.top=s-o+"px",u.style.height=2*o+"px",u.style.width=2*o+"px",u.style.backgroundColor=n.color||null,u.style.transitionDuration=l+"ms",this._containerElement.appendChild(u),function(e){window.getComputedStyle(e).getPropertyValue("opacity")}(u),u.style.transform="scale(1)";var c=new os(this,u,n);return c.state=is.FADING_IN,this._activeRipples.add(c),this.runTimeoutOutsideZone(function(){c.state=is.VISIBLE,n.persistent||r._isPointerDown||c.fadeOut()},l),c},e.prototype.fadeOutRipple=function(e){if(this._activeRipples.delete(e)){var t=e.element;t.style.transitionDuration="400ms",t.style.opacity="0",e.state=is.FADING_OUT,this.runTimeoutOutsideZone(function(){e.state=is.HIDDEN,t.parentNode.removeChild(t)},400)}},e.prototype.fadeOutAll=function(){this._activeRipples.forEach(function(e){return e.fadeOut()})},e.prototype.setTriggerElement=function(e){var t=this;this._triggerElement&&this._triggerEvents.forEach(function(e,n){t._triggerElement.removeEventListener(n,e)}),e&&this._ngZone.runOutsideAngular(function(){t._triggerEvents.forEach(function(t,n){return e.addEventListener(n,t)})}),this._triggerElement=e},e.prototype.onMousedown=function(e){var t=this._lastTouchStartEvent&&Date.now()<this._lastTouchStartEvent+800;this.rippleDisabled||t||(this._isPointerDown=!0,this.fadeInRipple(e.clientX,e.clientY,this.rippleConfig))},e.prototype.onTouchStart=function(e){this.rippleDisabled||(this._lastTouchStartEvent=Date.now(),this._isPointerDown=!0,this.fadeInRipple(e.touches[0].clientX,e.touches[0].clientY,this.rippleConfig))},e.prototype.onPointerUp=function(){this._isPointerDown&&(this._isPointerDown=!1,this._activeRipples.forEach(function(e){e.config.persistent||e.state!==is.VISIBLE||e.fadeOut()}))},e.prototype.runTimeoutOutsideZone=function(e,t){void 0===t&&(t=0),this._ngZone.runOutsideAngular(function(){return setTimeout(e,t)})},e}(),as=new al.InjectionToken("mat-ripple-global-options"),ss=function(){function e(e,t,n,r){this.radius=0,this.speedFactor=1,this._rippleRenderer=new ls(e,t,n),this._globalOptions=r||{},this._updateRippleRenderer()}return e.prototype.ngOnChanges=function(e){e.trigger&&this.trigger&&this._rippleRenderer.setTriggerElement(this.trigger),this._updateRippleRenderer()},e.prototype.ngOnDestroy=function(){this._rippleRenderer.setTriggerElement(null)},e.prototype.launch=function(e,t,n){return void 0===n&&(n=this.rippleConfig),this._rippleRenderer.fadeInRipple(e,t,n)},e.prototype.fadeOutAll=function(){this._rippleRenderer.fadeOutAll()},Object.defineProperty(e.prototype,"rippleConfig",{get:function(){return{centered:this.centered,speedFactor:this.speedFactor*(this._globalOptions.baseSpeedFactor||1),radius:this.radius,color:this.color}},enumerable:!0,configurable:!0}),e.prototype._updateRippleRenderer=function(){this._rippleRenderer.rippleDisabled=this._globalOptions.disabled||this.disabled,this._rippleRenderer.rippleConfig=this.rippleConfig},e}(),us=function(){},cs=function(){},ds=function(){},ps=new al.InjectionToken("mat-label-global-options"),fs=function(e){function t(t){e.call(this),this.observableFactory=t}return Object(bl.__extends)(t,e),t.create=function(e){return new t(e)},t.prototype._subscribe=function(e){return new hs(e,this.observableFactory)},t}(gl.a),hs=function(e){function t(t,n){e.call(this,t),this.factory=n,this.tryDefer()}return Object(bl.__extends)(t,e),t.prototype.tryDefer=function(){try{this._callFactory()}catch(e){this._error(e)}},t.prototype._callFactory=function(){var e=this.factory();e&&this.add(Object(Dl.a)(this,e))},t}(kl.a),ms=fs.create,gs=n("8Ut3"),ys=n("kQVV"),vs=n("mHG6"),bs=n("KRwF"),_s=n("xIGM"),ws=n("X3fp"),xs=function(e){function t(t,n){if(e.call(this),this.scheduler=n,null==t)throw new Error("iterator cannot be null.");this.iterator=function(e){var t=e[ws.a];if(!t&&"string"==typeof e)return new Cs(e);if(!t&&void 0!==e.length)return new Es(e);if(!t)throw new TypeError("object is not iterable");return e[ws.a]()}(t)}return Object(bl.__extends)(t,e),t.create=function(e,n){return new t(e,n)},t.dispatch=function(e){var t=e.index,n=e.iterator,r=e.subscriber;if(e.hasError)r.error(e.error);else{var i=n.next();i.done?r.complete():(r.next(i.value),e.index=t+1,r.closed?"function"==typeof n.return&&n.return():this.schedule(e))}},t.prototype._subscribe=function(e){var n=this.iterator,r=this.scheduler;if(r)return r.schedule(t.dispatch,0,{index:0,iterator:n,subscriber:e});for(;;){var i=n.next();if(i.done){e.complete();break}if(e.next(i.value),e.closed){"function"==typeof n.return&&n.return();break}}},t}(gl.a),Cs=function(){function e(e,t,n){void 0===t&&(t=0),void 0===n&&(n=e.length),this.str=e,this.idx=t,this.len=n}return e.prototype[ws.a]=function(){return this},e.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.str.charAt(this.idx++)}:{done:!0,value:void 0}},e}(),Es=function(){function e(e,t,n){void 0===t&&(t=0),void 0===n&&(n=function(t){var n=+e.length;return isNaN(n)?0:0!==n&&"number"==typeof n&&_s.a.isFinite(n)?(n=function(e){var t=+n;return 0===t?t:isNaN(t)?t:t<0?-1:1}()*Math.floor(Math.abs(n)))<=0?0:n>Ss?Ss:n:n}()),this.arr=e,this.idx=t,this.len=n}return e.prototype[ws.a]=function(){return this},e.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.arr[this.idx++]}:{done:!0,value:void 0}},e}(),Ss=Math.pow(2,53)-1,Os=function(e){function t(t,n){e.call(this),this.arrayLike=t,this.scheduler=n,n||1!==t.length||(this._isScalar=!0,this.value=t[0])}return Object(bl.__extends)(t,e),t.create=function(e,n){var r=e.length;return 0===r?new Jl.a:1===r?new gs.a(e[0],n):new t(e,n)},t.dispatch=function(e){var t=e.arrayLike,n=e.index,r=e.subscriber;r.closed||(n>=e.length?r.complete():(r.next(t[n]),e.index=n+1,this.schedule(e)))},t.prototype._subscribe=function(e){var n=this.arrayLike,r=this.scheduler,i=n.length;if(r)return r.schedule(t.dispatch,0,{arrayLike:n,index:0,length:i,subscriber:e});for(var o=0;o<i&&!e.closed;o++)e.next(n[o]);e.complete()},t}(gl.a),Ts=n("YRqN"),ks=n("mz3w"),Ds=function(e){function t(t,n){e.call(this,null),this.ish=t,this.scheduler=n}return Object(bl.__extends)(t,e),t.create=function(e,n){if(null!=e){if("function"==typeof e[ks.a])return e instanceof gl.a&&!n?e:new t(e,n);if(Object(Ml.a)(e))return new yl.a(e,n);if(Object(vs.a)(e))return new bs.a(e,n);if("function"==typeof e[ws.a]||"string"==typeof e)return new xs(e,n);if(Object(ys.a)(e))return new Os(e,n)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")},t.prototype._subscribe=function(e){var t=this.ish,n=this.scheduler;return null==n?t[ks.a]().subscribe(e):t[ks.a]().subscribe(new Ts.a(e,n,0))},t}(gl.a).create,Is=n("bywS"),Rs=n("fAeS"),Ms=function(e){function t(t,n,r,i){var o=e.call(this)||this;return o._elementRef=t,o._focusTrapFactory=n,o._changeDetectorRef=r,o._document=i,o._elementFocusedBeforeDialogWasOpened=null,o._state="enter",o._animationStateChanged=new al.EventEmitter,o._ariaLabelledBy=null,o}return Object(bl.__extends)(t,e),t.prototype.attachComponentPortal=function(e){return this._portalOutlet.hasAttached()&&N(),this._savePreviouslyFocusedElement(),this._portalOutlet.attachComponentPortal(e)},t.prototype.attachTemplatePortal=function(e){return this._portalOutlet.hasAttached()&&N(),this._savePreviouslyFocusedElement(),this._portalOutlet.attachTemplatePortal(e)},t.prototype._trapFocus=function(){this._focusTrap||(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement)),this._config.autoFocus&&this._focusTrap.focusInitialElementWhenReady()},t.prototype._restoreFocus=function(){var e=this._elementFocusedBeforeDialogWasOpened;e&&"function"==typeof e.focus&&e.focus(),this._focusTrap&&this._focusTrap.destroy()},t.prototype._savePreviouslyFocusedElement=function(){var e=this;this._document&&(this._elementFocusedBeforeDialogWasOpened=this._document.activeElement,Promise.resolve().then(function(){return e._elementRef.nativeElement.focus()}))},t.prototype._onAnimationDone=function(e){"enter"===e.toState?this._trapFocus():"exit"===e.toState&&this._restoreFocus(),this._animationStateChanged.emit(e)},t.prototype._onAnimationStart=function(e){this._animationStateChanged.emit(e)},t.prototype._startExitAnimation=function(){this._state="exit",this._changeDetectorRef.markForCheck()},t}(Gl),Ps=0,Ns=function(){function e(e,t,n){void 0===n&&(n="mat-dialog-"+Ps++);var r=this;this._overlayRef=e,this._containerInstance=t,this.id=n,this.disableClose=this._containerInstance._config.disableClose,this._afterOpen=new ml.Subject,this._afterClosed=new ml.Subject,this._beforeClose=new ml.Subject,t._animationStateChanged.pipe(Object(Al.a)(function(e){return"done"===e.phaseName&&"enter"===e.toState}),u(1)).subscribe(function(){r._afterOpen.next(),r._afterOpen.complete()}),t._animationStateChanged.pipe(Object(Al.a)(function(e){return"done"===e.phaseName&&"exit"===e.toState}),u(1)).subscribe(function(){r._overlayRef.dispose(),r._afterClosed.next(r._result),r._afterClosed.complete(),r.componentInstance=null})}return e.prototype.close=function(e){var t=this;this._result=e,this._containerInstance._animationStateChanged.pipe(Object(Al.a)(function(e){return"start"===e.phaseName}),u(1)).subscribe(function(){t._beforeClose.next(e),t._beforeClose.complete(),t._overlayRef.detachBackdrop()}),this._containerInstance._startExitAnimation()},e.prototype.afterOpen=function(){return this._afterOpen.asObservable()},e.prototype.afterClosed=function(){return this._afterClosed.asObservable()},e.prototype.beforeClose=function(){return this._beforeClose.asObservable()},e.prototype.backdropClick=function(){return this._overlayRef.backdropClick()},e.prototype.keydownEvents=function(){return this._overlayRef.keydownEvents()},e.prototype.updatePosition=function(e){var t=this._getPositionStrategy();return e&&(e.left||e.right)?e.left?t.left(e.left):t.right(e.right):t.centerHorizontally(),e&&(e.top||e.bottom)?e.top?t.top(e.top):t.bottom(e.bottom):t.centerVertically(),this._overlayRef.updatePosition(),this},e.prototype.updateSize=function(e,t){return void 0===e&&(e="auto"),void 0===t&&(t="auto"),this._getPositionStrategy().width(e).height(t),this._overlayRef.updatePosition(),this},e.prototype._getPositionStrategy=function(){return this._overlayRef.getConfig().positionStrategy},e}(),As=new al.InjectionToken("MatDialogData"),Ls=new al.InjectionToken("mat-dialog-scroll-strategy"),Fs=function(){function e(e,t,n,r,i){var o=this;this._overlay=e,this._injector=t,this._scrollStrategy=r,this._parentDialog=i,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new ml.Subject,this._afterOpenAtThisLevel=new ml.Subject,this.afterAllClosed=ms(function(){return o.openDialogs.length?o._afterAllClosed:o._afterAllClosed.pipe(P(void 0))}),!i&&n&&n.subscribe(function(){return o.closeAll()})}return Object.defineProperty(e.prototype,"openDialogs",{get:function(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"afterOpen",{get:function(){return this._parentDialog?this._parentDialog.afterOpen:this._afterOpenAtThisLevel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_afterAllClosed",{get:function(){var e=this._parentDialog;return e?e._afterAllClosed:this._afterAllClosedAtThisLevel},enumerable:!0,configurable:!0}),e.prototype.open=function(e,t){var n=this;if((t=function(e){return Object(bl.__assign)({},new function(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.direction="ltr",this.ariaDescribedBy=null,this.ariaLabel=null,this.autoFocus=!0},e)}(t)).id&&this.getDialogById(t.id))throw Error('Dialog with id "'+t.id+'" exists already. The dialog id must be unique.');var r=this._createOverlay(t),i=this._attachDialogContainer(r,t),o=this._attachDialogContent(e,i,r,t);return this.openDialogs.push(o),o.afterClosed().subscribe(function(){return n._removeOpenDialog(o)}),this.afterOpen.next(o),o},e.prototype.closeAll=function(){for(var e=this.openDialogs.length;e--;)this.openDialogs[e].close()},e.prototype.getDialogById=function(e){return this.openDialogs.find(function(t){return t.id===e})},e.prototype._createOverlay=function(e){var t=this._getOverlayConfig(e);return this._overlay.create(t)},e.prototype._getOverlayConfig=function(e){var t=new ra({positionStrategy:this._overlay.position().global(),scrollStrategy:this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight});return e.backdropClass&&(t.backdropClass=e.backdropClass),t},e.prototype._attachDialogContainer=function(e,t){var n=new ql(Ms,t.viewContainerRef),r=e.attach(n);return r.instance._config=t,r.instance},e.prototype._attachDialogContent=function(e,t,n,r){var i=new Ns(n,t,r.id);if(r.hasBackdrop&&n.backdropClick().subscribe(function(){i.disableClose||i.close()}),n.keydownEvents().pipe(Object(Al.a)(function(e){return 27===e.keyCode&&!i.disableClose})).subscribe(function(){return i.close()}),e instanceof al.TemplateRef)t.attachTemplatePortal(new Ul(e,null,{$implicit:r.data,dialogRef:i}));else{var o=this._createInjector(r,i,t),l=t.attachComponentPortal(new ql(e,void 0,o));i.componentInstance=l.instance}return i.updateSize(r.width,r.height).updatePosition(r.position),i},e.prototype._createInjector=function(e,t,n){var r=e&&e.viewContainerRef&&e.viewContainerRef.injector,i=new WeakMap;return i.set(Ns,t),i.set(Ms,n),i.set(As,e.data),i.set(Bl,{value:e.direction,change:vl()}),new Ql(r||this._injector,i)},e.prototype._removeOpenDialog=function(e){var t=this.openDialogs.indexOf(e);t>-1&&(this.openDialogs.splice(t,1),this.openDialogs.length||this._afterAllClosed.next())},e}(),js=0,Vs=function(){function e(e){this.dialogRef=e,this.ariaLabel="Close dialog"}return e.prototype.ngOnChanges=function(e){var t=e._matDialogClose||e._matDialogCloseResult;t&&(this.dialogResult=t.currentValue)},e}(),zs=function(){function e(e){this._container=e,this.id="mat-dialog-title-"+js++}return e.prototype.ngOnInit=function(){var e=this;this._container&&!this._container._ariaLabelledBy&&Promise.resolve().then(function(){return e._container._ariaLabelledBy=e.id})},e}(),Bs=function(){},Hs=function(){},Ws=function(){},qs=al["\u0275crt"]({encapsulation:2,styles:[".mat-dialog-container{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);display:block;padding:24px;border-radius:2px;box-sizing:border-box;overflow:auto;outline:0;width:100%;height:100%}@media screen and (-ms-high-contrast:active){.mat-dialog-container{outline:solid 1px}}.mat-dialog-content{display:block;margin:0 -24px;padding:0 24px;max-height:65vh;overflow:auto;-webkit-overflow-scrolling:touch;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mat-dialog-title{margin:0 0 20px;display:block}.mat-dialog-actions{padding:12px 0;display:flex;flex-wrap:wrap}.mat-dialog-actions:last-child{margin-bottom:-24px}.mat-dialog-actions[align=end]{justify-content:flex-end}.mat-dialog-actions[align=center]{justify-content:center}.mat-dialog-actions .mat-button+.mat-button,.mat-dialog-actions .mat-button+.mat-raised-button,.mat-dialog-actions .mat-raised-button+.mat-button,.mat-dialog-actions .mat-raised-button+.mat-raised-button{margin-left:8px}[dir=rtl] .mat-dialog-actions .mat-button+.mat-button,[dir=rtl] .mat-dialog-actions .mat-button+.mat-raised-button,[dir=rtl] .mat-dialog-actions .mat-raised-button+.mat-button,[dir=rtl] .mat-dialog-actions .mat-raised-button+.mat-raised-button{margin-left:0;margin-right:8px}"],data:{animation:[{type:7,name:"slideDialog",definitions:[{type:0,name:"enter",styles:{type:6,styles:{transform:"none",opacity:1},offset:null},options:void 0},{type:0,name:"void",styles:{type:6,styles:{transform:"translate3d(0, 25%, 0) scale(0.9)",opacity:0},offset:null},options:void 0},{type:0,name:"exit",styles:{type:6,styles:{transform:"translate3d(0, 25%, 0)",opacity:0},offset:null},options:void 0},{type:1,expr:"* => *",animation:{type:4,styles:null,timings:"400ms cubic-bezier(0.25, 0.8, 0.25, 1)"},options:null}],options:{}}]}}),Us=al["\u0275ccf"]("mat-dialog-container",Ms,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"mat-dialog-container",[["class","mat-dialog-container"],["tabindex","-1"]],[[1,"role",0],[1,"aria-labelledby",0],[1,"aria-label",0],[1,"aria-describedby",0],[40,"@slideDialog",0]],[["component","@slideDialog.start"],["component","@slideDialog.done"]],function(e,t,n){var r=!0;return"component:@slideDialog.start"===t&&(r=!1!==al["\u0275nov"](e,1)._onAnimationStart(n)&&r),"component:@slideDialog.done"===t&&(r=!1!==al["\u0275nov"](e,1)._onAnimationDone(n)&&r),r},F,qs)),al["\u0275did"](1,49152,null,0,Ms,[al.ElementRef,Oa,al.ChangeDetectorRef,[2,cl.DOCUMENT]],null,null)],null,function(e,t){e(t,0,0,null==al["\u0275nov"](t,1)._config?null:al["\u0275nov"](t,1)._config.role,null!=al["\u0275nov"](t,1)._config&&al["\u0275nov"](t,1)._config.ariaLabel?null:al["\u0275nov"](t,1)._ariaLabelledBy,null==al["\u0275nov"](t,1)._config?null:al["\u0275nov"](t,1)._config.ariaLabel,(null==al["\u0275nov"](t,1)._config?null:al["\u0275nov"](t,1)._config.ariaDescribedBy)||null,al["\u0275nov"](t,1)._state)})},{},{},[]),Gs=function(){},Ks=function(){},$s=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i._platform=n,i._focusMonitor=r,i._isRoundButton=i._hasHostAttributes("mat-fab","mat-mini-fab"),i._isIconButton=i._hasHostAttributes("mat-icon-button"),i._focusMonitor.monitor(i._elementRef.nativeElement,!0),i}return Object(bl.__extends)(t,e),t.prototype.ngOnDestroy=function(){this._focusMonitor.stopMonitoring(this._elementRef.nativeElement)},t.prototype.focus=function(){this._getHostElement().focus()},t.prototype._getHostElement=function(){return this._elementRef.nativeElement},t.prototype._isRippleDisabled=function(){return this.disableRipple||this.disabled},t.prototype._hasHostAttributes=function(){for(var e=this,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return!!this._platform.isBrowser&&t.some(function(t){return e._getHostElement().hasAttribute(t)})},t}(I(D(R(function(e){this._elementRef=e})))),Zs=function(e){function t(t,n,r){return e.call(this,r,t,n)||this}return Object(bl.__extends)(t,e),t.prototype._haltDisabledEvents=function(e){this.disabled&&(e.preventDefault(),e.stopImmediatePropagation())},t}($s),Qs=function(){},Ys=function(){function e(e){this.selector=e}return e.prototype.call=function(e,t){return t.subscribe(new Xs(e,this.selector,this.caught))},e}(),Xs=function(e){function t(t,n,r){e.call(this,t),this.selector=n,this.caught=r}return Object(bl.__extends)(t,e),t.prototype.error=function(t){if(!this.isStopped){var n=void 0;try{n=this.selector(t,this.caught)}catch(t){return void e.prototype.error.call(this,t)}this._unsubscribeAndRecycle(),this.add(Object(Dl.a)(this,n))}},t}(kl.a),Js=function(){function e(e){this.callback=e}return e.prototype.call=function(e,t){return t.subscribe(new eu(e,this.callback))},e}(),eu=function(e){function t(t,n){e.call(this,t),this.add(new Cl.a(n))}return Object(bl.__extends)(t,e),t}(Yl.a),tu=n("eIqN"),nu=n("wP3s"),ru=n("6S6c"),iu=n("dmC+"),ou=function(){},lu=function(){},au=function(){function e(e){var t=this;this.normalizedNames=new Map,this.lazyUpdate=null,e?this.lazyInit="string"==typeof e?function(){t.headers=new Map,e.split("\n").forEach(function(e){var n=e.indexOf(":");if(n>0){var r=e.slice(0,n),i=r.toLowerCase(),o=e.slice(n+1).trim();t.maybeSetNormalizedName(r,i),t.headers.has(i)?t.headers.get(i).push(o):t.headers.set(i,[o])}})}:function(){t.headers=new Map,Object.keys(e).forEach(function(n){var r=e[n],i=n.toLowerCase();"string"==typeof r&&(r=[r]),r.length>0&&(t.headers.set(i,r),t.maybeSetNormalizedName(n,i))})}:this.headers=new Map}return e.prototype.has=function(e){return this.init(),this.headers.has(e.toLowerCase())},e.prototype.get=function(e){this.init();var t=this.headers.get(e.toLowerCase());return t&&t.length>0?t[0]:null},e.prototype.keys=function(){return this.init(),Array.from(this.normalizedNames.values())},e.prototype.getAll=function(e){return this.init(),this.headers.get(e.toLowerCase())||null},e.prototype.append=function(e,t){return this.clone({name:e,value:t,op:"a"})},e.prototype.set=function(e,t){return this.clone({name:e,value:t,op:"s"})},e.prototype.delete=function(e,t){return this.clone({name:e,value:t,op:"d"})},e.prototype.maybeSetNormalizedName=function(e,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,e)},e.prototype.init=function(){var t=this;this.lazyInit&&(this.lazyInit instanceof e?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(function(e){return t.applyUpdate(e)}),this.lazyUpdate=null))},e.prototype.copyFrom=function(e){var t=this;e.init(),Array.from(e.headers.keys()).forEach(function(n){t.headers.set(n,e.headers.get(n)),t.normalizedNames.set(n,e.normalizedNames.get(n))})},e.prototype.clone=function(t){var n=new e;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n},e.prototype.applyUpdate=function(e){var t=e.name.toLowerCase();switch(e.op){case"a":case"s":var n=e.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(e.name,t);var r=("a"===e.op?this.headers.get(t):void 0)||[];r.push.apply(r,n),this.headers.set(t,r);break;case"d":var i=e.value;if(i){var o=this.headers.get(t);if(!o)return;0===(o=o.filter(function(e){return-1===i.indexOf(e)})).length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,o)}else this.headers.delete(t),this.normalizedNames.delete(t)}},e.prototype.forEach=function(e){var t=this;this.init(),Array.from(this.normalizedNames.keys()).forEach(function(n){return e(t.normalizedNames.get(n),t.headers.get(n))})},e}(),su=function(){function e(){}return e.prototype.encodeKey=function(e){return V(e)},e.prototype.encodeValue=function(e){return V(e)},e.prototype.decodeKey=function(e){return decodeURIComponent(e)},e.prototype.decodeValue=function(e){return decodeURIComponent(e)},e}(),uu=function(){function e(e){void 0===e&&(e={});var t=this;if(this.updates=null,this.cloneFrom=null,this.encoder=e.encoder||new su,e.fromString){if(e.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function(e,t){var n=new Map;return e.length>0&&e.split("&").forEach(function(e){var r=e.indexOf("="),i=-1==r?[t.decodeKey(e),""]:[t.decodeKey(e.slice(0,r)),t.decodeValue(e.slice(r+1))],o=i[0],l=i[1],a=n.get(o)||[];a.push(l),n.set(o,a)}),n}(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(function(n){var r=e.fromObject[n];t.map.set(n,Array.isArray(r)?r:[r])})):this.map=null}return e.prototype.has=function(e){return this.init(),this.map.has(e)},e.prototype.get=function(e){this.init();var t=this.map.get(e);return t?t[0]:null},e.prototype.getAll=function(e){return this.init(),this.map.get(e)||null},e.prototype.keys=function(){return this.init(),Array.from(this.map.keys())},e.prototype.append=function(e,t){return this.clone({param:e,value:t,op:"a"})},e.prototype.set=function(e,t){return this.clone({param:e,value:t,op:"s"})},e.prototype.delete=function(e,t){return this.clone({param:e,value:t,op:"d"})},e.prototype.toString=function(){var e=this;return this.init(),this.keys().map(function(t){var n=e.encoder.encodeKey(t);return e.map.get(t).map(function(t){return n+"="+e.encoder.encodeValue(t)}).join("&")}).join("&")},e.prototype.clone=function(t){var n=new e({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat([t]),n},e.prototype.init=function(){var e=this;null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(function(t){return e.map.set(t,e.cloneFrom.map.get(t))}),this.updates.forEach(function(t){switch(t.op){case"a":case"s":var n=("a"===t.op?e.map.get(t.param):void 0)||[];n.push(t.value),e.map.set(t.param,n);break;case"d":if(void 0===t.value){e.map.delete(t.param);break}var r=e.map.get(t.param)||[],i=r.indexOf(t.value);-1!==i&&r.splice(i,1),r.length>0?e.map.set(t.param,r):e.map.delete(t.param)}}),this.cloneFrom=null)},e}(),cu=function(){function e(e,t,n,r){this.url=t,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=e.toUpperCase();var i;if(function(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==n?n:null,i=r):i=n,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.params&&(this.params=i.params)),this.headers||(this.headers=new au),this.params){var o=this.params.toString();if(0===o.length)this.urlWithParams=t;else{var l=t.indexOf("?");this.urlWithParams=t+(-1===l?"?":l<t.length-1?"&":"")+o}}else this.params=new uu,this.urlWithParams=t}return e.prototype.serializeBody=function(){return null===this.body?null:z(this.body)||B(this.body)||H(this.body)||"string"==typeof this.body?this.body:this.body instanceof uu?this.body.toString():"object"==typeof this.body||"boolean"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()},e.prototype.detectContentTypeHeader=function(){return null===this.body?null:H(this.body)?null:B(this.body)?this.body.type||null:z(this.body)?null:"string"==typeof this.body?"text/plain":this.body instanceof uu?"application/x-www-form-urlencoded;charset=UTF-8":"object"==typeof this.body||"number"==typeof this.body||Array.isArray(this.body)?"application/json":null},e.prototype.clone=function(t){void 0===t&&(t={});var n=t.method||this.method,r=t.url||this.url,i=t.responseType||this.responseType,o=void 0!==t.body?t.body:this.body,l=void 0!==t.withCredentials?t.withCredentials:this.withCredentials,a=void 0!==t.reportProgress?t.reportProgress:this.reportProgress,s=t.headers||this.headers,u=t.params||this.params;return void 0!==t.setHeaders&&(s=Object.keys(t.setHeaders).reduce(function(e,n){return e.set(n,t.setHeaders[n])},s)),t.setParams&&(u=Object.keys(t.setParams).reduce(function(e,n){return e.set(n,t.setParams[n])},u)),new e(n,r,o,{params:u,headers:s,reportProgress:a,responseType:i,withCredentials:l})},e}(),du=function(){var e={Sent:0,UploadProgress:1,ResponseHeader:2,DownloadProgress:3,Response:4,User:5};return e[e.Sent]="Sent",e[e.UploadProgress]="UploadProgress",e[e.ResponseHeader]="ResponseHeader",e[e.DownloadProgress]="DownloadProgress",e[e.Response]="Response",e[e.User]="User",e}(),pu=function(){return function(e,t,n){void 0===t&&(t=200),void 0===n&&(n="OK"),this.headers=e.headers||new au,this.status=void 0!==e.status?e.status:t,this.statusText=e.statusText||n,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}}(),fu=function(e){function t(t){void 0===t&&(t={});var n=e.call(this,t)||this;return n.type=du.ResponseHeader,n}return Object(bl.__extends)(t,e),t.prototype.clone=function(e){return void 0===e&&(e={}),new t({headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})},t}(pu),hu=function(e){function t(t){void 0===t&&(t={});var n=e.call(this,t)||this;return n.type=du.Response,n.body=void 0!==t.body?t.body:null,n}return Object(bl.__extends)(t,e),t.prototype.clone=function(e){return void 0===e&&(e={}),new t({body:void 0!==e.body?e.body:this.body,headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})},t}(pu),mu=function(e){function t(t){var n=e.call(this,t,0,"Unknown Error")||this;return n.name="HttpErrorResponse",n.ok=!1,n.message=n.status>=200&&n.status<300?"Http failure during parsing for "+(t.url||"(unknown url)"):"Http failure response for "+(t.url||"(unknown url)")+": "+t.status+" "+t.statusText,n.error=t.error||null,n}return Object(bl.__extends)(t,e),t}(pu),gu=function(){function e(e){this.handler=e}return e.prototype.request=function(e,t,n){var r=this;void 0===n&&(n={});var i;if(e instanceof cu)i=e;else{var o=void 0;o=n.headers instanceof au?n.headers:new au(n.headers);var l=void 0;n.params&&(l=n.params instanceof uu?n.params:new uu({fromObject:n.params})),i=new cu(e,t,void 0!==n.body?n.body:null,{headers:o,params:l,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials})}var a=function(e,t){return function(e,t){return Object(nu.a)(e,t,1)}(e,t)(this)}.call(vl(i),function(e){return r.handler.handle(e)});if(e instanceof cu||"events"===n.observe)return a;var s=ru.a.call(a,function(e){return e instanceof hu});switch(n.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return iu.a.call(s,function(e){if(null!==e.body&&!(e.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return e.body});case"blob":return iu.a.call(s,function(e){if(null!==e.body&&!(e.body instanceof Blob))throw new Error("Response is not a Blob.");return e.body});case"text":return iu.a.call(s,function(e){if(null!==e.body&&"string"!=typeof e.body)throw new Error("Response is not a string.");return e.body});case"json":default:return iu.a.call(s,function(e){return e.body})}case"response":return s;default:throw new Error("Unreachable: unhandled observe type "+n.observe+"}")}},e.prototype.delete=function(e,t){return void 0===t&&(t={}),this.request("DELETE",e,t)},e.prototype.get=function(e,t){return void 0===t&&(t={}),this.request("GET",e,t)},e.prototype.head=function(e,t){return void 0===t&&(t={}),this.request("HEAD",e,t)},e.prototype.jsonp=function(e,t){return this.request("JSONP",e,{params:(new uu).append(t,"JSONP_CALLBACK"),observe:"body",responseType:"json"})},e.prototype.options=function(e,t){return void 0===t&&(t={}),this.request("OPTIONS",e,t)},e.prototype.patch=function(e,t,n){return void 0===n&&(n={}),this.request("PATCH",e,W(n,t))},e.prototype.post=function(e,t,n){return void 0===n&&(n={}),this.request("POST",e,W(n,t))},e.prototype.put=function(e,t,n){return void 0===n&&(n={}),this.request("PUT",e,W(n,t))},e}(),yu=function(){function e(e,t){this.next=e,this.interceptor=t}return e.prototype.handle=function(e){return this.interceptor.intercept(e,this.next)},e}(),vu=new al.InjectionToken("HTTP_INTERCEPTORS"),bu=function(){function e(){}return e.prototype.intercept=function(e,t){return t.handle(e)},e}(),_u=/^\)\]\}',?\n/,wu=function(){},xu=function(){function e(){}return e.prototype.build=function(){return new XMLHttpRequest},e}(),Cu=function(){function e(e){this.xhrFactory=e}return e.prototype.handle=function(e){var t=this;if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without JsonpClientModule installed.");return new gl.a(function(n){var r=t.xhrFactory.build();if(r.open(e.method,e.urlWithParams),e.withCredentials&&(r.withCredentials=!0),e.headers.forEach(function(e,t){return r.setRequestHeader(e,t.join(","))}),e.headers.has("Accept")||r.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){var i=e.detectContentTypeHeader();null!==i&&r.setRequestHeader("Content-Type",i)}if(e.responseType){var o=e.responseType.toLowerCase();r.responseType="json"!==o?o:"text"}var l=e.serializeBody(),a=null,s=function(){if(null!==a)return a;var t=1223===r.status?204:r.status,n=r.statusText||"OK",i=new au(r.getAllResponseHeaders()),o=function(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(r)||e.url;return a=new fu({headers:i,status:t,statusText:n,url:o})},u=function(){var t=s(),i=t.headers,o=t.status,l=t.statusText,a=t.url,u=null;204!==o&&(u=void 0===r.response?r.responseText:r.response),0===o&&(o=u?200:0);var c=o>=200&&o<300;if("json"===e.responseType&&"string"==typeof u){var d=u;u=u.replace(_u,"");try{u=""!==u?JSON.parse(u):null}catch(e){u=d,c&&(c=!1,u={error:e,text:u})}}c?(n.next(new hu({body:u,headers:i,status:o,statusText:l,url:a||void 0})),n.complete()):n.error(new mu({error:u,headers:i,status:o,statusText:l,url:a||void 0}))},c=function(e){var t=new mu({error:e,status:r.status||0,statusText:r.statusText||"Unknown Error"});n.error(t)},d=!1,p=function(t){d||(n.next(s()),d=!0);var i={type:du.DownloadProgress,loaded:t.loaded};t.lengthComputable&&(i.total=t.total),"text"===e.responseType&&r.responseText&&(i.partialText=r.responseText),n.next(i)},f=function(e){var t={type:du.UploadProgress,loaded:e.loaded};e.lengthComputable&&(t.total=e.total),n.next(t)};return r.addEventListener("load",u),r.addEventListener("error",c),e.reportProgress&&(r.addEventListener("progress",p),null!==l&&r.upload&&r.upload.addEventListener("progress",f)),r.send(l),n.next({type:du.Sent}),function(){r.removeEventListener("error",c),r.removeEventListener("load",u),e.reportProgress&&(r.removeEventListener("progress",p),null!==l&&r.upload&&r.upload.removeEventListener("progress",f)),r.abort()}})},e}(),Eu=new al.InjectionToken("XSRF_COOKIE_NAME"),Su=new al.InjectionToken("XSRF_HEADER_NAME"),Ou=function(){},Tu=function(){function e(e,t,n){this.doc=e,this.platform=t,this.cookieName=n,this.lastCookieString="",this.lastToken=null,this.parseCount=0}return e.prototype.getToken=function(){if("server"===this.platform)return null;var e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=Object(cl["\u0275parseCookieValue"])(e,this.cookieName),this.lastCookieString=e),this.lastToken},e}(),ku=function(){function e(e,t){this.tokenService=e,this.headerName=t}return e.prototype.intercept=function(e,t){var n=e.url.toLowerCase();if("GET"===e.method||"HEAD"===e.method||n.startsWith("http://")||n.startsWith("https://"))return t.handle(e);var r=this.tokenService.getToken();return null===r||e.headers.has(this.headerName)||(e=e.clone({headers:e.headers.set(this.headerName,r)})),t.handle(e)},e}(),Du=function(){function e(){}return e.disable=function(){return{ngModule:e,providers:[{provide:ku,useClass:bu}]}},e.withOptions=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[t.cookieName?{provide:Eu,useValue:t.cookieName}:[],t.headerName?{provide:Su,useValue:t.headerName}:[]]}},e}(),Iu=function(){},Ru=n("Jsyr"),Mu=function(e){function t(t,n){e.call(this),this.error=t,this.scheduler=n}return Object(bl.__extends)(t,e),t.create=function(e,n){return new t(e,n)},t.dispatch=function(e){e.subscriber.error(e.error)},t.prototype._subscribe=function(e){var n=this.error,r=this.scheduler;if(e.syncErrorThrowable=!0,r)return r.schedule(t.dispatch,0,{error:n,subscriber:e});e.error(n)},t}(gl.a).create,Pu=function(e){this.url=e,this.svgElement=null},Nu=function(){function e(e,t){this._httpClient=e,this._sanitizer=t,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._defaultFontSetClass="material-icons"}return e.prototype.addSvgIcon=function(e,t){return this.addSvgIconInNamespace("",e,t)},e.prototype.addSvgIconInNamespace=function(e,t,n){var r=Z(e,t);return this._svgIconConfigs.set(r,new Pu(n)),this},e.prototype.addSvgIconSet=function(e){return this.addSvgIconSetInNamespace("",e)},e.prototype.addSvgIconSetInNamespace=function(e,t){var n=new Pu(t),r=this._iconSetConfigs.get(e);return r?r.push(n):this._iconSetConfigs.set(e,[n]),this},e.prototype.registerFontClassAlias=function(e,t){return void 0===t&&(t=e),this._fontCssClassesByAlias.set(e,t),this},e.prototype.classNameForFontAlias=function(e){return this._fontCssClassesByAlias.get(e)||e},e.prototype.setDefaultFontSetClass=function(e){return this._defaultFontSetClass=e,this},e.prototype.getDefaultFontSetClass=function(){return this._defaultFontSetClass},e.prototype.getSvgIconFromUrl=function(e){var t=this,n=this._sanitizer.sanitize(al.SecurityContext.RESOURCE_URL,e);if(!n)throw G(e);var r=this._cachedIconsByUrl.get(n);return r?vl($(r)):this._loadSvgIconFromConfig(new Pu(e)).pipe(x(function(e){return t._cachedIconsByUrl.set(n,e)}),Object(wa.a)(function(e){return $(e)}))},e.prototype.getNamedSvgIcon=function(e,t){void 0===t&&(t="");var n=Z(t,e),r=this._svgIconConfigs.get(n);if(r)return this._getSvgFromConfig(r);var i=this._iconSetConfigs.get(t);return i?this._getSvgFromIconSetConfigs(e,i):Mu(U(n))},e.prototype._getSvgFromConfig=function(e){return e.svgElement?vl($(e.svgElement)):this._loadSvgIconFromConfig(e).pipe(x(function(t){return e.svgElement=t}),Object(wa.a)(function(e){return $(e)}))},e.prototype._getSvgFromIconSetConfigs=function(e,t){var n=this,r=this._extractIconWithNameFromAnySet(e,t);if(r)return vl(r);var i=t.filter(function(e){return!e.svgElement}).map(function(e){return n._loadSvgIconSetFromConfig(e).pipe(j(function(t){var r=n._sanitizer.sanitize(al.SecurityContext.RESOURCE_URL,e.url);return console.log("Loading icon set URL: "+r+" failed: "+t),vl(null)}),x(function(t){t&&(e.svgElement=t)}))});return Object(Ru.a)(i).pipe(Object(wa.a)(function(){var r=n._extractIconWithNameFromAnySet(e,t);if(!r)throw U(e);return r}))},e.prototype._extractIconWithNameFromAnySet=function(e,t){for(var n=t.length-1;n>=0;n--){var r=t[n];if(r.svgElement){var i=this._extractSvgIconFromSet(r.svgElement,e);if(i)return i}}return null},e.prototype._loadSvgIconFromConfig=function(e){var t=this;return this._fetchUrl(e.url).pipe(Object(wa.a)(function(e){return t._createSvgElementForSingleIcon(e)}))},e.prototype._loadSvgIconSetFromConfig=function(e){var t=this;return this._fetchUrl(e.url).pipe(Object(wa.a)(function(e){return t._svgElementFromString(e)}))},e.prototype._createSvgElementForSingleIcon=function(e){var t=this._svgElementFromString(e);return this._setSvgAttributes(t),t},e.prototype._extractSvgIconFromSet=function(e,t){var n=e.querySelector("#"+t);if(!n)return null;var r=n.cloneNode(!0);if(r.id="","svg"===r.nodeName.toLowerCase())return this._setSvgAttributes(r);if("symbol"===r.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(r));var i=this._svgElementFromString("<svg></svg>");return i.appendChild(r),this._setSvgAttributes(i)},e.prototype._svgElementFromString=function(e){var t=document.createElement("DIV");t.innerHTML=e;var n=t.querySelector("svg");if(!n)throw Error("<svg> tag not found");return n},e.prototype._toSvgElement=function(e){for(var t=this._svgElementFromString("<svg></svg>"),n=0;n<e.childNodes.length;n++)e.childNodes[n].nodeType===Node.ELEMENT_NODE&&t.appendChild(e.childNodes[n].cloneNode(!0));return t},e.prototype._setSvgAttributes=function(e){return e.getAttribute("xmlns")||e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e.setAttribute("fit",""),e.setAttribute("height","100%"),e.setAttribute("width","100%"),e.setAttribute("preserveAspectRatio","xMidYMid meet"),e.setAttribute("focusable","false"),e},e.prototype._fetchUrl=function(e){var t=this;if(!this._httpClient)throw Error("Could not find HttpClient provider for use with Angular Material icons. Please include the HttpClientModule from @angular/common/http in your app imports.");var n=this._sanitizer.sanitize(al.SecurityContext.RESOURCE_URL,e);if(!n)throw G(e);var r=this._inProgressUrlFetches.get(n);if(r)return r;var i=this._httpClient.get(n,{responseType:"text"}).pipe(function(e){return function(t){return t.lift(new Js(e))}}(function(){return t._inProgressUrlFetches.delete(n)}),Object(tu.a)());return this._inProgressUrlFetches.set(n,i),i},e}(),Au=function(e){function t(t,n,r){var i=e.call(this,t)||this;return i._iconRegistry=n,r||t.nativeElement.setAttribute("aria-hidden","true"),i}return Object(bl.__extends)(t,e),t.prototype._splitIconName=function(e){if(!e)return["",""];var t=e.split(":");switch(t.length){case 1:return["",t[0]];case 2:return t;default:throw Error('Invalid icon name: "'+e+'"')}},t.prototype.ngOnChanges=function(e){var t=this;if(e.svgIcon)if(this.svgIcon){var n=this._splitIconName(this.svgIcon);this._iconRegistry.getNamedSvgIcon(n[1],n[0]).pipe(u(1)).subscribe(function(e){return t._setSvgElement(e)},function(e){return console.log("Error retrieving icon: "+e.message)})}else this._clearSvgElement();this._usingFontIcon()&&this._updateFontIconClasses()},t.prototype.ngOnInit=function(){this._usingFontIcon()&&this._updateFontIconClasses()},t.prototype._usingFontIcon=function(){return!this.svgIcon},t.prototype._setSvgElement=function(e){this._clearSvgElement(),this._elementRef.nativeElement.appendChild(e)},t.prototype._clearSvgElement=function(){for(var e=this._elementRef.nativeElement,t=e.childNodes.length,n=0;n<t;n++)e.removeChild(e.childNodes[n])},t.prototype._updateFontIconClasses=function(){if(this._usingFontIcon()){var e=this._elementRef.nativeElement,t=this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet):this._iconRegistry.getDefaultFontSetClass();t!=this._previousFontSetClass&&(this._previousFontSetClass&&e.classList.remove(this._previousFontSetClass),t&&e.classList.add(t),this._previousFontSetClass=t),this.fontIcon!=this._previousFontIconClass&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}},t}(I(function(e){this._elementRef=e})),Lu=function(){},Fu=n("0nO6"),ju=function(){},Vu=0,zu=function(){function e(e,t,n){this._elementRef=e,this._changeDetectorRef=t,this.color="primary",this._showAlwaysAnimate=!1,this._subscriptAnimationState="",this._hintLabel="",this._hintLabelId="mat-hint-"+Vu++,this._labelOptions=n||{},this.floatLabel=this._labelOptions.float||"auto"}return Object.defineProperty(e.prototype,"dividerColor",{get:function(){return this.color},set:function(e){this.color=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hideRequiredMarker",{get:function(){return this._hideRequiredMarker},set:function(e){this._hideRequiredMarker=c(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_shouldAlwaysFloat",{get:function(){return"always"===this._floatLabel&&!this._showAlwaysAnimate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_canLabelFloat",{get:function(){return"never"!==this._floatLabel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hintLabel",{get:function(){return this._hintLabel},set:function(e){this._hintLabel=e,this._processHints()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"floatPlaceholder",{get:function(){return this._floatLabel},set:function(e){this.floatLabel=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"floatLabel",{get:function(){return this._floatLabel},set:function(e){e!==this._floatLabel&&(this._floatLabel=e||this._labelOptions.float||"auto",this._changeDetectorRef.markForCheck())},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){var e=this;this._validateControlChild(),this._control.controlType&&this._elementRef.nativeElement.classList.add("mat-form-field-type-"+this._control.controlType),this._control.stateChanges.pipe(P(null)).subscribe(function(){e._validatePlaceholders(),e._syncDescribedByIds(),e._changeDetectorRef.markForCheck()});var t=this._control.ngControl;t&&t.valueChanges&&t.valueChanges.subscribe(function(){e._changeDetectorRef.markForCheck()}),this._hintChildren.changes.pipe(P(null)).subscribe(function(){e._processHints(),e._changeDetectorRef.markForCheck()}),this._errorChildren.changes.pipe(P(null)).subscribe(function(){e._syncDescribedByIds(),e._changeDetectorRef.markForCheck()})},e.prototype.ngAfterContentChecked=function(){this._validateControlChild()},e.prototype.ngAfterViewInit=function(){this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()},e.prototype._shouldForward=function(e){var t=this._control?this._control.ngControl:null;return t&&t[e]},e.prototype._hasPlaceholder=function(){return!(!this._control.placeholder&&!this._placeholderChild)},e.prototype._hasLabel=function(){return!!this._labelChild},e.prototype._shouldLabelFloat=function(){return this._canLabelFloat&&(this._control.shouldLabelFloat||this._control.shouldPlaceholderFloat||this._shouldAlwaysFloat)},e.prototype._hideControlPlaceholder=function(){return!this._hasLabel()||!this._shouldLabelFloat()},e.prototype._hasFloatingLabel=function(){return this._hasLabel()||this._hasPlaceholder()},e.prototype._getDisplayedMessages=function(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"},e.prototype._animateAndLockLabel=function(){var e=this;this._hasFloatingLabel()&&this._canLabelFloat&&(this._showAlwaysAnimate=!0,this._floatLabel="always",Sl(this._label.nativeElement,"transitionend").pipe(u(1)).subscribe(function(){e._showAlwaysAnimate=!1}),this._changeDetectorRef.markForCheck())},e.prototype._validatePlaceholders=function(){if(this._control.placeholder&&this._placeholderChild)throw Error("Placeholder attribute and child element were both specified.")},e.prototype._processHints=function(){this._validateHints(),this._syncDescribedByIds()},e.prototype._validateHints=function(){var e=this;if(this._hintChildren){var t,n;this._hintChildren.forEach(function(r){if("start"==r.align){if(t||e.hintLabel)throw Q("start");t=r}else if("end"==r.align){if(n)throw Q("end");n=r}})}},e.prototype._syncDescribedByIds=function(){if(this._control){var e=[];if("hint"===this._getDisplayedMessages()){var t=this._hintChildren?this._hintChildren.find(function(e){return"start"===e.align}):null,n=this._hintChildren?this._hintChildren.find(function(e){return"end"===e.align}):null;t?e.push(t.id):this._hintLabel&&e.push(this._hintLabelId),n&&e.push(n.id)}else this._errorChildren&&(e=this._errorChildren.map(function(e){return e.id}));this._control.setDescribedByIds(e)}},e.prototype._validateControlChild=function(){if(!this._control)throw Error("mat-form-field must contain a MatFormFieldControl.")},e}(),Bu=function(){},Hu=n("5O0w"),Wu=["button","checkbox","color","file","hidden","image","radio","range","reset","submit"],qu=0,Uu=function(e){function t(t,n,r,o,l,a,s){var u=e.call(this,a,o,l,r)||this;return u._elementRef=t,u._platform=n,u.ngControl=r,u._type="text",u._disabled=!1,u._required=!1,u._uid="mat-input-"+qu++,u._readonly=!1,u.focused=!1,u._isServer=!1,u.stateChanges=new ml.Subject,u.controlType="mat-input",u.placeholder="",u._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(function(e){return i().has(e)}),u._inputValueAccessor=s||u._elementRef.nativeElement,u._previousNativeValue=u.value,u.id=u.id,n.IOS&&t.nativeElement.addEventListener("keyup",function(e){var t=e.target;t.value||t.selectionStart||t.selectionEnd||(t.setSelectionRange(1,1),t.setSelectionRange(0,0))}),u._isServer=!u._platform.isBrowser,u}return Object(bl.__extends)(t,e),Object.defineProperty(t.prototype,"disabled",{get:function(){return this.ngControl?this.ngControl.disabled:this._disabled},set:function(e){this._disabled=c(e),this.focused&&(this.focused=!1,this.stateChanges.next())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},set:function(e){this._id=e||this._uid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"required",{get:function(){return this._required},set:function(e){this._required=c(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this._type},set:function(e){this._type=e||"text",this._validateType(),!this._isTextarea()&&i().has(this._type)&&(this._elementRef.nativeElement.type=this._type)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._inputValueAccessor.value},set:function(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"readonly",{get:function(){return this._readonly},set:function(e){this._readonly=c(e)},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(){this.stateChanges.next()},t.prototype.ngOnDestroy=function(){this.stateChanges.complete()},t.prototype.ngDoCheck=function(){this.ngControl?this.updateErrorState():this._dirtyCheckNativeValue()},t.prototype.focus=function(){this._elementRef.nativeElement.focus()},t.prototype._focusChanged=function(e){e===this.focused||this.readonly||(this.focused=e,this.stateChanges.next())},t.prototype._onInput=function(){},t.prototype._dirtyCheckNativeValue=function(){var e=this.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())},t.prototype._validateType=function(){if(Wu.indexOf(this._type)>-1)throw function(e){return Error('Input type "'+e+"\" isn't supported by matInput.")}(this._type)},t.prototype._isNeverEmpty=function(){return this._neverEmptyInputTypes.indexOf(this._type)>-1},t.prototype._isBadInput=function(){var e=this._elementRef.nativeElement.validity;return e&&e.badInput},t.prototype._isTextarea=function(){var e=this._elementRef.nativeElement,t=this._platform.isBrowser?e.nodeName:e.name;return!!t&&"textarea"===t.toLowerCase()},Object.defineProperty(t.prototype,"empty",{get:function(){return!this._isNeverEmpty()&&!this._elementRef.nativeElement.value&&!this._isBadInput()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"shouldLabelFloat",{get:function(){return this.focused||!this.empty},enumerable:!0,configurable:!0}),t.prototype.setDescribedByIds=function(e){this._ariaDescribedby=e.join(" ")},t.prototype.onContainerClick=function(){this.focus()},t}(function(e){return function(e){function t(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=e.apply(this,t)||this;return r.errorState=!1,r.stateChanges=new ml.Subject,r}return Object(bl.__extends)(t,e),t.prototype.updateErrorState=function(){var e=this.errorState,t=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);t!==e&&(this.errorState=t,this.stateChanges.next())},t}(function(e,t,n,r){this._defaultErrorStateMatcher=e,this._parentForm=t,this._parentFormGroup=n,this.ngControl=r})}()),Gu=function(){},Ku=function(){return function(){this.changes=new ml.Subject,this.calendarLabel="Calendar",this.openCalendarLabel="Open calendar",this.prevMonthLabel="Previous month",this.nextMonthLabel="Next month",this.prevYearLabel="Previous year",this.nextYearLabel="Next year",this.switchToMonthViewLabel="Change to month view",this.switchToYearViewLabel="Change to year view"}}(),$u=function(e,t,n,r){this.value=e,this.displayValue=t,this.ariaLabel=n,this.enabled=r},Zu=function(){function e(){this.numCols=7,this.allowDisabledSelection=!1,this.activeCell=0,this.cellAspectRatio=1,this.selectedValueChange=new al.EventEmitter}return e.prototype._cellClicked=function(e){(this.allowDisabledSelection||e.enabled)&&this.selectedValueChange.emit(e.value)},Object.defineProperty(e.prototype,"_firstRowOffset",{get:function(){return this.rows&&this.rows.length&&this.rows[0].length?this.numCols-this.rows[0].length:0},enumerable:!0,configurable:!0}),e.prototype._isActiveCell=function(e,t){var n=e*this.numCols+t;return e&&(n-=this._firstRowOffset),n==this.activeCell},e}(),Qu=function(){function e(e,t,n){if(this._dateAdapter=e,this._dateFormats=t,this._changeDetectorRef=n,this.selectedChange=new al.EventEmitter,this._userSelection=new al.EventEmitter,!this._dateAdapter)throw Y("DateAdapter");if(!this._dateFormats)throw Y("MAT_DATE_FORMATS");var r=this._dateAdapter.getFirstDayOfWeek(),i=this._dateAdapter.getDayOfWeekNames("narrow"),o=this._dateAdapter.getDayOfWeekNames("long").map(function(e,t){return{long:e,narrow:i[t]}});this._weekdays=o.slice(r).concat(o.slice(0,r)),this._activeDate=this._dateAdapter.today()}return Object.defineProperty(e.prototype,"activeDate",{get:function(){return this._activeDate},set:function(e){var t=this._activeDate;this._activeDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today(),this._hasSameMonthAndYear(t,this._activeDate)||this._init()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=this._getValidDateOrNull(this._dateAdapter.deserialize(e)),this._selectedDate=this._getDateInCurrentMonth(this._selected)},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this._init()},e.prototype._dateSelected=function(e){if(this._selectedDate!=e){var t=this._dateAdapter.getYear(this.activeDate),n=this._dateAdapter.getMonth(this.activeDate),r=this._dateAdapter.createDate(t,n,e);this.selectedChange.emit(r)}this._userSelection.emit()},e.prototype._init=function(){this._selectedDate=this._getDateInCurrentMonth(this.selected),this._todayDate=this._getDateInCurrentMonth(this._dateAdapter.today()),this._monthLabel=this._dateAdapter.getMonthNames("short")[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();var e=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),1);this._firstWeekOffset=(7+this._dateAdapter.getDayOfWeek(e)-this._dateAdapter.getFirstDayOfWeek())%7,this._createWeekCells(),this._changeDetectorRef.markForCheck()},e.prototype._createWeekCells=function(){var e=this._dateAdapter.getNumDaysInMonth(this.activeDate),t=this._dateAdapter.getDateNames();this._weeks=[[]];for(var n=0,r=this._firstWeekOffset;n<e;n++,r++){7==r&&(this._weeks.push([]),r=0);var i=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),n+1),o=!this.dateFilter||this.dateFilter(i),l=this._dateAdapter.format(i,this._dateFormats.display.dateA11yLabel);this._weeks[this._weeks.length-1].push(new $u(n+1,t[n],l,o))}},e.prototype._getDateInCurrentMonth=function(e){return e&&this._hasSameMonthAndYear(e,this.activeDate)?this._dateAdapter.getDate(e):null},e.prototype._hasSameMonthAndYear=function(e,t){return!(!e||!t||this._dateAdapter.getMonth(e)!=this._dateAdapter.getMonth(t)||this._dateAdapter.getYear(e)!=this._dateAdapter.getYear(t))},e.prototype._getValidDateOrNull=function(e){return this._dateAdapter.isDateInstance(e)&&this._dateAdapter.isValid(e)?e:null},e}(),Yu=function(){function e(e,t,n){if(this._dateAdapter=e,this._dateFormats=t,this._changeDetectorRef=n,this.selectedChange=new al.EventEmitter,!this._dateAdapter)throw Y("DateAdapter");if(!this._dateFormats)throw Y("MAT_DATE_FORMATS");this._activeDate=this._dateAdapter.today()}return Object.defineProperty(e.prototype,"activeDate",{get:function(){return this._activeDate},set:function(e){var t=this._activeDate;this._activeDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today(),this._dateAdapter.getYear(t)!=this._dateAdapter.getYear(this._activeDate)&&this._init()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=this._getValidDateOrNull(this._dateAdapter.deserialize(e)),this._selectedMonth=this._getMonthInCurrentYear(this._selected)},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this._init()},e.prototype._monthSelected=function(e){var t=this._dateAdapter.getNumDaysInMonth(this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1));this.selectedChange.emit(this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,Math.min(this._dateAdapter.getDate(this.activeDate),t)))},e.prototype._init=function(){var e=this;this._selectedMonth=this._getMonthInCurrentYear(this.selected),this._todayMonth=this._getMonthInCurrentYear(this._dateAdapter.today()),this._yearLabel=this._dateAdapter.getYearName(this.activeDate);var t=this._dateAdapter.getMonthNames("short");this._months=[[0,1,2,3],[4,5,6,7],[8,9,10,11]].map(function(n){return n.map(function(n){return e._createCellForMonth(n,t[n])})}),this._changeDetectorRef.markForCheck()},e.prototype._getMonthInCurrentYear=function(e){return e&&this._dateAdapter.getYear(e)==this._dateAdapter.getYear(this.activeDate)?this._dateAdapter.getMonth(e):null},e.prototype._createCellForMonth=function(e,t){var n=this._dateAdapter.format(this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1),this._dateFormats.display.monthYearA11yLabel);return new $u(e,t.toLocaleUpperCase(),n,this._isMonthEnabled(e))},e.prototype._isMonthEnabled=function(e){if(!this.dateFilter)return!0;for(var t=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1);this._dateAdapter.getMonth(t)==e;t=this._dateAdapter.addCalendarDays(t,1))if(this.dateFilter(t))return!0;return!1},e.prototype._getValidDateOrNull=function(e){return this._dateAdapter.isDateInstance(e)&&this._dateAdapter.isValid(e)?e:null},e}(),Xu=function(){function e(e,t,n,r,i,o){var l=this;if(this._elementRef=e,this._intl=t,this._ngZone=n,this._dateAdapter=r,this._dateFormats=i,this.startView="month",this.selectedChange=new al.EventEmitter,this._userSelection=new al.EventEmitter,this._dateFilterForViews=function(e){return!!e&&(!l.dateFilter||l.dateFilter(e))&&(!l.minDate||l._dateAdapter.compareDate(e,l.minDate)>=0)&&(!l.maxDate||l._dateAdapter.compareDate(e,l.maxDate)<=0)},!this._dateAdapter)throw Y("DateAdapter");if(!this._dateFormats)throw Y("MAT_DATE_FORMATS");this._intlChanges=t.changes.subscribe(function(){return o.markForCheck()})}return Object.defineProperty(e.prototype,"startAt",{get:function(){return this._startAt},set:function(e){this._startAt=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minDate",{get:function(){return this._minDate},set:function(e){this._minDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{get:function(){return this._maxDate},set:function(e){this._maxDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_activeDate",{get:function(){return this._clampedActiveDate},set:function(e){this._clampedActiveDate=this._dateAdapter.clampDate(e,this.minDate,this.maxDate)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_periodButtonText",{get:function(){return this._monthView?this._dateAdapter.format(this._activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase():this._dateAdapter.getYearName(this._activeDate)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_periodButtonLabel",{get:function(){return this._monthView?this._intl.switchToYearViewLabel:this._intl.switchToMonthViewLabel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_prevButtonLabel",{get:function(){return this._monthView?this._intl.prevMonthLabel:this._intl.prevYearLabel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_nextButtonLabel",{get:function(){return this._monthView?this._intl.nextMonthLabel:this._intl.nextYearLabel},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this._activeDate=this.startAt||this._dateAdapter.today(),this._focusActiveCell(),this._monthView="year"!=this.startView},e.prototype.ngOnDestroy=function(){this._intlChanges.unsubscribe()},e.prototype.ngOnChanges=function(e){var t=e.minDate||e.maxDate||e.dateFilter;if(t&&!t.firstChange){var n=this.monthView||this.yearView;n&&n._init()}},e.prototype._dateSelected=function(e){this._dateAdapter.sameDate(e,this.selected)||this.selectedChange.emit(e)},e.prototype._userSelected=function(){this._userSelection.emit()},e.prototype._monthSelected=function(e){this._activeDate=e,this._monthView=!0},e.prototype._currentPeriodClicked=function(){this._monthView=!this._monthView},e.prototype._previousClicked=function(){this._activeDate=this._monthView?this._dateAdapter.addCalendarMonths(this._activeDate,-1):this._dateAdapter.addCalendarYears(this._activeDate,-1)},e.prototype._nextClicked=function(){this._activeDate=this._monthView?this._dateAdapter.addCalendarMonths(this._activeDate,1):this._dateAdapter.addCalendarYears(this._activeDate,1)},e.prototype._previousEnabled=function(){return!this.minDate||!this.minDate||!this._isSameView(this._activeDate,this.minDate)},e.prototype._nextEnabled=function(){return!this.maxDate||!this._isSameView(this._activeDate,this.maxDate)},e.prototype._handleCalendarBodyKeydown=function(e){this._monthView?this._handleCalendarBodyKeydownInMonthView(e):this._handleCalendarBodyKeydownInYearView(e)},e.prototype._focusActiveCell=function(){var e=this;this._ngZone.runOutsideAngular(function(){e._ngZone.onStable.asObservable().pipe(u(1)).subscribe(function(){e._elementRef.nativeElement.querySelector(".mat-calendar-body-active").focus()})})},e.prototype._isSameView=function(e,t){return this._monthView?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(t)&&this._dateAdapter.getMonth(e)==this._dateAdapter.getMonth(t):this._dateAdapter.getYear(e)==this._dateAdapter.getYear(t)},e.prototype._handleCalendarBodyKeydownInMonthView=function(e){switch(e.keyCode){case 37:this._activeDate=this._dateAdapter.addCalendarDays(this._activeDate,-1);break;case 39:this._activeDate=this._dateAdapter.addCalendarDays(this._activeDate,1);break;case 38:this._activeDate=this._dateAdapter.addCalendarDays(this._activeDate,-7);break;case 40:this._activeDate=this._dateAdapter.addCalendarDays(this._activeDate,7);break;case 36:this._activeDate=this._dateAdapter.addCalendarDays(this._activeDate,1-this._dateAdapter.getDate(this._activeDate));break;case 35:this._activeDate=this._dateAdapter.addCalendarDays(this._activeDate,this._dateAdapter.getNumDaysInMonth(this._activeDate)-this._dateAdapter.getDate(this._activeDate));break;case 33:this._activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,-1):this._dateAdapter.addCalendarMonths(this._activeDate,-1);break;case 34:this._activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,1):this._dateAdapter.addCalendarMonths(this._activeDate,1);break;case 13:return void(this._dateFilterForViews(this._activeDate)&&(this._dateSelected(this._activeDate),this._userSelected(),e.preventDefault()));default:return}this._focusActiveCell(),e.preventDefault()},e.prototype._handleCalendarBodyKeydownInYearView=function(e){switch(e.keyCode){case 37:this._activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-1);break;case 39:this._activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,1);break;case 38:this._activeDate=this._prevMonthInSameCol(this._activeDate);break;case 40:this._activeDate=this._nextMonthInSameCol(this._activeDate);break;case 36:this._activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-this._dateAdapter.getMonth(this._activeDate));break;case 35:this._activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,11-this._dateAdapter.getMonth(this._activeDate));break;case 33:this._activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?-10:-1);break;case 34:this._activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?10:1);break;case 13:this._monthSelected(this._activeDate);break;default:return}this._focusActiveCell(),e.preventDefault()},e.prototype._prevMonthInSameCol=function(e){return this._dateAdapter.addCalendarMonths(e,-4)},e.prototype._nextMonthInSameCol=function(e){return this._dateAdapter.addCalendarMonths(e,4)},e.prototype._getValidDateOrNull=function(e){return this._dateAdapter.isDateInstance(e)&&this._dateAdapter.isValid(e)?e:null},e}(),Ju=new al.InjectionToken("mat-datepicker-scroll-strategy"),ec=function(){function e(){}return e.prototype.ngAfterContentInit=function(){this._calendar._focusActiveCell()},e.prototype._handleKeydown=function(e){27===e.keyCode&&(this.datepicker.close(),e.preventDefault(),e.stopPropagation())},e}(),tc=function(){},nc=al["\u0275crt"]({encapsulation:2,styles:[".mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:88px;line-height:36px;padding:0 16px;border-radius:2px}[disabled].mat-button,[disabled].mat-fab,[disabled].mat-icon-button,[disabled].mat-mini-fab,[disabled].mat-raised-button{cursor:default}.cdk-keyboard-focused.mat-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-icon-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-mini-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-raised-button .mat-button-focus-overlay,.cdk-program-focused.mat-button .mat-button-focus-overlay,.cdk-program-focused.mat-fab .mat-button-focus-overlay,.cdk-program-focused.mat-icon-button .mat-button-focus-overlay,.cdk-program-focused.mat-mini-fab .mat-button-focus-overlay,.cdk-program-focused.mat-raised-button .mat-button-focus-overlay{opacity:1}.mat-button::-moz-focus-inner,.mat-fab::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-mini-fab::-moz-focus-inner,.mat-raised-button::-moz-focus-inner{border:0}.mat-fab,.mat-mini-fab,.mat-raised-button{transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,0,.2,1)}.mat-fab:not([class*=mat-elevation-z]),.mat-mini-fab:not([class*=mat-elevation-z]),.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]),.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]),.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}[disabled].mat-fab,[disabled].mat-mini-fab,[disabled].mat-raised-button{box-shadow:none}.mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{transition:none;opacity:0}.mat-button:hover .mat-button-focus-overlay{opacity:1}.mat-fab{min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button .mat-icon,.mat-icon-button i{line-height:24px}.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{color:currentColor}.mat-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*{vertical-align:middle}.mat-button-focus-overlay,.mat-button-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-focus-overlay{background-color:rgba(0,0,0,.12);border-radius:inherit;opacity:0;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}@media screen and (-ms-high-contrast:active){.mat-button-focus-overlay{background-color:rgba(255,255,255,.5)}}.mat-button-ripple-round{border-radius:50%;z-index:1}@media screen and (-ms-high-contrast:active){.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{outline:solid 1px}}"],data:{}}),rc=al["\u0275crt"]({encapsulation:2,styles:[".mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:88px;line-height:36px;padding:0 16px;border-radius:2px}[disabled].mat-button,[disabled].mat-fab,[disabled].mat-icon-button,[disabled].mat-mini-fab,[disabled].mat-raised-button{cursor:default}.cdk-keyboard-focused.mat-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-icon-button .mat-button-focus-overlay,.cdk-keyboard-focused.mat-mini-fab .mat-button-focus-overlay,.cdk-keyboard-focused.mat-raised-button .mat-button-focus-overlay,.cdk-program-focused.mat-button .mat-button-focus-overlay,.cdk-program-focused.mat-fab .mat-button-focus-overlay,.cdk-program-focused.mat-icon-button .mat-button-focus-overlay,.cdk-program-focused.mat-mini-fab .mat-button-focus-overlay,.cdk-program-focused.mat-raised-button .mat-button-focus-overlay{opacity:1}.mat-button::-moz-focus-inner,.mat-fab::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-mini-fab::-moz-focus-inner,.mat-raised-button::-moz-focus-inner{border:0}.mat-fab,.mat-mini-fab,.mat-raised-button{transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,0,.2,1)}.mat-fab:not([class*=mat-elevation-z]),.mat-mini-fab:not([class*=mat-elevation-z]),.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]),.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]),.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}[disabled].mat-fab,[disabled].mat-mini-fab,[disabled].mat-raised-button{box-shadow:none}.mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{transition:none;opacity:0}.mat-button:hover .mat-button-focus-overlay{opacity:1}.mat-fab{min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button .mat-icon,.mat-icon-button i{line-height:24px}.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{color:currentColor}.mat-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*{vertical-align:middle}.mat-button-focus-overlay,.mat-button-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-focus-overlay{background-color:rgba(0,0,0,.12);border-radius:inherit;opacity:0;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}@media screen and (-ms-high-contrast:active){.mat-button-focus-overlay{background-color:rgba(255,255,255,.5)}}.mat-button-ripple-round{border-radius:50%;z-index:1}@media screen and (-ms-high-contrast:active){.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{outline:solid 1px}}"],data:{}}),ic=al["\u0275crt"]({encapsulation:2,styles:[".mat-icon{background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}"],data:{}}),oc=al["\u0275crt"]({encapsulation:2,styles:[".mat-calendar{display:block}.mat-calendar-header{padding:8px 8px 0 8px}.mat-calendar-content{padding:0 8px 8px 8px;outline:0}.mat-calendar-controls{display:flex;margin:5% calc(33% / 7 - 16px)}.mat-calendar-spacer{flex:1 1 auto}.mat-calendar-period-button{min-width:0}.mat-calendar-arrow{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top-width:5px;border-top-style:solid;margin:0 0 0 5px;vertical-align:middle}.mat-calendar-arrow.mat-calendar-invert{transform:rotate(180deg)}[dir=rtl] .mat-calendar-arrow{margin:0 5px 0 0}.mat-calendar-next-button,.mat-calendar-previous-button{position:relative}.mat-calendar-next-button::after,.mat-calendar-previous-button::after{top:0;left:0;right:0;bottom:0;position:absolute;content:'';margin:15.5px;border:0 solid currentColor;border-top-width:2px}[dir=rtl] .mat-calendar-next-button,[dir=rtl] .mat-calendar-previous-button{transform:rotate(180deg)}.mat-calendar-previous-button::after{border-left-width:2px;transform:translateX(2px) rotate(-45deg)}.mat-calendar-next-button::after{border-right-width:2px;transform:translateX(-2px) rotate(45deg)}.mat-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mat-calendar-table-header th{text-align:center;padding:0 0 8px 0}.mat-calendar-table-header-divider{position:relative;height:1px}.mat-calendar-table-header-divider::after{content:'';position:absolute;top:0;left:-8px;right:-8px;height:1px}"],data:{}}),lc=al["\u0275crt"]({encapsulation:2,styles:[".mat-calendar-body{min-width:224px}.mat-calendar-body-label{height:0;line-height:0;text-align:left;padding-left:4.71429%;padding-right:4.71429%}.mat-calendar-body-cell{position:relative;height:0;line-height:0;text-align:center;outline:0;cursor:pointer}.mat-calendar-body-disabled{cursor:default}.mat-calendar-body-cell-content{position:absolute;top:5%;left:5%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:90%;height:90%;line-height:1;border-width:1px;border-style:solid;border-radius:999px}[dir=rtl] .mat-calendar-body-label{text-align:right}"],data:{}}),ac=al["\u0275crt"]({encapsulation:2,styles:[".mat-datepicker-content{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);display:block}.mat-datepicker-content .mat-calendar{width:296px;height:354px}.mat-datepicker-content-touch{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);display:block;max-height:80vh;overflow:auto;margin:-24px}.mat-datepicker-content-touch .mat-calendar{min-width:250px;min-height:312px;max-width:750px;max-height:788px}@media all and (orientation:landscape){.mat-datepicker-content-touch .mat-calendar{width:64vh;height:80vh}}@media all and (orientation:portrait){.mat-datepicker-content-touch .mat-calendar{width:80vw;height:100vw}}"],data:{}}),sc=al["\u0275ccf"]("mat-datepicker-content",ec,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"mat-datepicker-content",[["class","mat-datepicker-content"]],[[2,"mat-datepicker-content-touch",null]],[[null,"keydown"]],function(e,t,n){var r=!0;return"keydown"===t&&(r=!1!==al["\u0275nov"](e,1)._handleKeydown(n)&&r),r},ce,ac)),al["\u0275did"](1,1097728,null,0,ec,[],null,null)],null,function(e,t){e(t,0,0,al["\u0275nov"](t,1).datepicker.touchUi)})},{},{},[]),uc=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),cc=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),dc=20,pc=new al.InjectionToken("mat-tooltip-scroll-strategy"),fc=function(){function e(e){this._changeDetectorRef=e,this._visibility="initial",this._closeOnInteraction=!1,this._transformOrigin="bottom",this._onHide=new ml.Subject}return e.prototype.show=function(e,t){var n=this;this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._closeOnInteraction=!0,this._position=e,this._showTimeoutId=setTimeout(function(){n._visibility="visible",n._markForCheck()},t)},e.prototype.hide=function(e){var t=this;this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(function(){t._visibility="hidden",t._markForCheck()},e)},e.prototype.afterHidden=function(){return this._onHide.asObservable()},e.prototype.isVisible=function(){return"visible"===this._visibility},e.prototype._setTransformOrigin=function(e){var t="X"==("above"===this._position||"below"===this._position?"Y":"X")?e.overlayX:e.overlayY;if("top"===t||"bottom"===t)this._transformOrigin=t;else if("start"===t)this._transformOrigin="left";else{if("end"!==t)throw function(e){return Error('Tooltip position "'+e+'" is invalid.')}(this._position);this._transformOrigin="right"}},e.prototype._animationStart=function(){this._closeOnInteraction=!1},e.prototype._animationDone=function(e){var t=this,n=e.toState;"hidden"!==n||this.isVisible()||this._onHide.next(),"visible"!==n&&"hidden"!==n||Promise.resolve().then(function(){return t._closeOnInteraction=!0})},e.prototype._handleBodyInteraction=function(){this._closeOnInteraction&&this.hide(0)},e.prototype._markForCheck=function(){this._changeDetectorRef.markForCheck()},e}(),hc=function(){},mc=al["\u0275crt"]({encapsulation:2,styles:[".mat-tooltip-panel{pointer-events:none!important}.mat-tooltip{color:#fff;border-radius:2px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px}@media screen and (-ms-high-contrast:active){.mat-tooltip{outline:solid 1px}}"],data:{animation:[{type:7,name:"state",definitions:[{type:0,name:"initial, void, hidden",styles:{type:6,styles:{transform:"scale(0)"},offset:null},options:void 0},{type:0,name:"visible",styles:{type:6,styles:{transform:"scale(1)"},offset:null},options:void 0},{type:1,expr:"* => visible",animation:{type:4,styles:null,timings:"150ms cubic-bezier(0.0, 0.0, 0.2, 1)"},options:null},{type:1,expr:"* => hidden",animation:{type:4,styles:null,timings:"150ms cubic-bezier(0.4, 0.0, 1, 1)"},options:null}],options:{}}]}}),gc=al["\u0275ccf"]("mat-tooltip-component",fc,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"mat-tooltip-component",[["aria-hidden","true"]],[[4,"zoom",null]],[["body","click"]],function(e,t,n){var r=!0;return"body:click"===t&&(r=!1!==al["\u0275nov"](e,1)._handleBodyInteraction()&&r),r},me,mc)),al["\u0275did"](1,49152,null,0,fc,[al.ChangeDetectorRef],null,null)],null,function(e,t){e(t,0,0,"visible"===al["\u0275nov"](t,1)._visibility?1:null)})},{},{},[]),yc={},vc=function(){function e(e){this.project=e}return e.prototype.call=function(e,t){return t.subscribe(new bc(e,this.project))},e}(),bc=function(e){function t(t,n){e.call(this,t),this.project=n,this.active=0,this.values=[],this.observables=[]}return Object(bl.__extends)(t,e),t.prototype._next=function(e){this.values.push(yc),this.observables.push(e)},t.prototype._complete=function(){var e=this.observables,t=e.length;if(0===t)this.destination.complete();else{this.active=t,this.toRespond=t;for(var n=0;n<t;n++){var r=e[n];this.add(Object(Dl.a)(this,r,r,n))}}},t.prototype.notifyComplete=function(e){0==(this.active-=1)&&this.destination.complete()},t.prototype.notifyNext=function(e,t,n,r,i){var o=this.values,l=this.toRespond?o[n]===yc?--this.toRespond:this.toRespond:0;o[n]=t,0===l&&(this.project?this._tryProject(o):this.destination.next(o.slice()))},t.prototype._tryProject=function(e){var t;try{t=this.project.apply(this,e)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(kl.a),_c=function(e){function t(t,n,r){e.call(this),this.addHandler=t,this.removeHandler=n,this.selector=r}return Object(bl.__extends)(t,e),t.create=function(e,n,r){return new t(e,n,r)},t.prototype._subscribe=function(e){var t=this,n=this.removeHandler,r=this.selector?function(){for(var n=[],r=0;r<arguments.length;r++)n[r-0]=arguments[r];t._callSelector(e,n)}:function(t){e.next(t)},i=this._callAddHandler(r,e);Object(wl.a)(n)&&e.add(new Cl.a(function(){n(r,i)}))},t.prototype._callSelector=function(e,t){try{var n=this.selector.apply(this,t);e.next(n)}catch(t){e.error(t)}},t.prototype._callAddHandler=function(e,t){try{return this.addHandler(e)||null}catch(e){t.error(e)}},t}(gl.a).create,wc=new Map,xc=function(){function e(e){this.platform=e,this._matchMedia=this.platform.isBrowser?window.matchMedia.bind(window):ge}return e.prototype.matchMedia=function(e){return this.platform.WEBKIT&&function(e){if(!wc.has(e))try{var t=document.createElement("style");if(t.setAttribute("type","text/css"),!t.sheet){var n="@media "+e+" {.fx-query-test{ }}";t.appendChild(document.createTextNode(n))}document.getElementsByTagName("head")[0].appendChild(t),wc.set(e,t)}catch(e){console.error(e)}}(e),this._matchMedia(e)},e}(),Cc=function(){function e(e,t){this.mediaMatcher=e,this.zone=t,this._queries=new Map,this._destroySubject=new ml.Subject}return e.prototype.ngOnDestroy=function(){this._destroySubject.next(),this._destroySubject.complete()},e.prototype.isMatched=function(e){var t=this;return p(e).some(function(e){return t._registerQuery(e).mql.matches})},e.prototype.observe=function(e){var t=this;return function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var n=null,r=null;return Object(Pl.a)(e[e.length-1])&&(r=e.pop()),"function"==typeof e[e.length-1]&&(n=e.pop()),1===e.length&&Object(Ml.a)(e[0])&&(e=e[0]),new yl.a(e,r).lift(new vc(n))}(p(e).map(function(e){return t._registerQuery(e).observable}),function(e,t){return{matches:!!(e&&e.matches||t&&t.matches)}})},e.prototype._registerQuery=function(e){var t=this;if(this._queries.has(e))return this._queries.get(e);var n=this.mediaMatcher.matchMedia(e),r={observable:_c(function(e){n.addListener(function(n){return t.zone.run(function(){return e(n)})})},function(e){n.removeListener(function(n){return t.zone.run(function(){return e(n)})})}).pipe(Object(Hu.a)(this._destroySubject),P(n),Object(wa.a)(function(e){return{matches:e.matches}})),mql:n};return this._queries.set(e,r),r},e}(),Ec=function(){},Sc=function(){function e(e,t){var n=this;this._overlayRef=t,this._afterClosed=new ml.Subject,this._afterOpened=new ml.Subject,this._onAction=new ml.Subject,this.containerInstance=e,this.onAction().subscribe(function(){return n.dismiss()}),e._onExit.subscribe(function(){return n._finishDismiss()})}return e.prototype.dismiss=function(){this._afterClosed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)},e.prototype.closeWithAction=function(){this._onAction.closed||(this._onAction.next(),this._onAction.complete())},e.prototype._dismissAfter=function(e){var t=this;this._durationTimeoutId=setTimeout(function(){return t.dismiss()},e)},e.prototype._open=function(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())},e.prototype._finishDismiss=function(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterClosed.next(),this._afterClosed.complete()},e.prototype.afterDismissed=function(){return this._afterClosed.asObservable()},e.prototype.afterOpened=function(){return this.containerInstance._onEnter},e.prototype.onAction=function(){return this._onAction.asObservable()},e}(),Oc=new al.InjectionToken("MatSnackBarData"),Tc=function(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.direction="ltr",this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"},kc=function(){function e(e,t){this.snackBarRef=e,this.data=t}return e.prototype.action=function(){this.snackBarRef.closeWithAction()},Object.defineProperty(e.prototype,"hasAction",{get:function(){return!!this.data.action},enumerable:!0,configurable:!0}),e}(),Dc=function(e){function t(t,n,r){var i=e.call(this)||this;return i._ngZone=t,i._elementRef=n,i._changeDetectorRef=r,i._destroyed=!1,i._onExit=new ml.Subject,i._onEnter=new ml.Subject,i._animationState="void",i}return Object(bl.__extends)(t,e),t.prototype.attachComponentPortal=function(e){if(this._portalOutlet.hasAttached())throw Error("Attempting to attach snack bar content after content is already attached");var t=this._elementRef.nativeElement;return(this.snackBarConfig.panelClass||this.snackBarConfig.extraClasses)&&(this._setCssClasses(this.snackBarConfig.panelClass),this._setCssClasses(this.snackBarConfig.extraClasses)),"center"===this.snackBarConfig.horizontalPosition&&t.classList.add("mat-snack-bar-center"),"top"===this.snackBarConfig.verticalPosition&&t.classList.add("mat-snack-bar-top"),this._portalOutlet.attachComponentPortal(e)},t.prototype.attachTemplatePortal=function(){throw Error("Not yet implemented")},t.prototype.onAnimationEnd=function(e){var t=e.toState;if(("void"===t&&"void"!==e.fromState||t.startsWith("hidden"))&&this._completeExit(),t.startsWith("visible")){var n=this._onEnter;this._ngZone.run(function(){n.next(),n.complete()})}},t.prototype.enter=function(){this._destroyed||(this._animationState="visible-"+this.snackBarConfig.verticalPosition,this._changeDetectorRef.detectChanges())},t.prototype.exit=function(){return this._animationState="hidden-"+this.snackBarConfig.verticalPosition,this._onExit},t.prototype.ngOnDestroy=function(){this._destroyed=!0,this._completeExit()},t.prototype._completeExit=function(){var e=this;this._ngZone.onMicrotaskEmpty.asObservable().pipe(u(1)).subscribe(function(){e._onExit.next(),e._onExit.complete()})},t.prototype._setCssClasses=function(e){if(e){var t=this._elementRef.nativeElement;Array.isArray(e)?e.forEach(function(e){return t.classList.add(e)}):t.classList.add(e)}},t}(Gl),Ic=function(){function e(e,t,n,r,i){this._overlay=e,this._live=t,this._injector=n,this._breakpointObserver=r,this._parentSnackBar=i,this._snackBarRefAtThisLevel=null}return Object.defineProperty(e.prototype,"_openedSnackBarRef",{get:function(){var e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel},set:function(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e},enumerable:!0,configurable:!0}),e.prototype.openFromComponent=function(e,t){var n=this,r=ye(t),i=this._attach(e,r);return i.afterDismissed().subscribe(function(){n._openedSnackBarRef==i&&(n._openedSnackBarRef=null)}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(function(){i.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):i.containerInstance.enter(),r.duration&&r.duration>0&&i.afterOpened().subscribe(function(){return i._dismissAfter(r.duration)}),r.announcementMessage&&this._live.announce(r.announcementMessage,r.politeness),this._openedSnackBarRef=i,this._openedSnackBarRef},e.prototype.open=function(e,t,n){void 0===t&&(t="");var r=ye(n);return r.data={message:e,action:t},r.announcementMessage=e,this.openFromComponent(kc,r)},e.prototype.dismiss=function(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()},e.prototype._attachSnackBarContainer=function(e,t){var n=new ql(Dc,t.viewContainerRef),r=e.attach(n);return r.instance.snackBarConfig=t,r.instance},e.prototype._attach=function(e,t){var n=this._createOverlay(t),r=this._attachSnackBarContainer(n,t),i=new Sc(r,n),o=this._createInjector(t,i),l=new ql(e,void 0,o),a=r.attachComponentPortal(l);return i.instance=a.instance,this._breakpointObserver.observe("(max-width: 599px) and (orientation: portrait), (max-width: 959px) and (orientation: landscape)").pipe(Object(Hu.a)(n.detachments().pipe(u(1)))).subscribe(function(e){e.matches?n.overlayElement.classList.add("mat-snack-bar-handset"):n.overlayElement.classList.remove("mat-snack-bar-handset")}),i},e.prototype._createOverlay=function(e){var t=new ra;t.direction=e.direction;var n=this._overlay.position().global(),r="rtl"===e.direction,i="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!r||"end"===e.horizontalPosition&&r,o=!i&&"center"!==e.horizontalPosition;return i?n.left("0"):o?n.right("0"):n.centerHorizontally(),"top"===e.verticalPosition?n.top("0"):n.bottom("0"),t.positionStrategy=n,this._overlay.create(t)},e.prototype._createInjector=function(e,t){var n=e&&e.viewContainerRef&&e.viewContainerRef.injector,r=new WeakMap;return r.set(Sc,t),r.set(Oc,e.data),new Ql(n||this._injector,r)},e}(),Rc=function(){},Mc=al["\u0275crt"]({encapsulation:2,styles:[".mat-snack-bar-container{border-radius:2px;box-sizing:border-box;display:block;margin:24px;max-width:568px;min-width:288px;padding:14px 24px;transform:translateY(100%) translateY(24px)}.mat-snack-bar-container.mat-snack-bar-center{margin:0;transform:translateY(100%)}.mat-snack-bar-container.mat-snack-bar-top{transform:translateY(-100%) translateY(-24px)}.mat-snack-bar-container.mat-snack-bar-top.mat-snack-bar-center{transform:translateY(-100%)}@media screen and (-ms-high-contrast:active){.mat-snack-bar-container{border:solid 1px}}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:0;max-width:inherit;width:100%}"],data:{animation:[{type:7,name:"state",definitions:[{type:0,name:"visible-top, visible-bottom",styles:{type:6,styles:{transform:"translateY(0%)"},offset:null},options:void 0},{type:1,expr:"visible-top => hidden-top, visible-bottom => hidden-bottom",animation:{type:4,styles:null,timings:"195ms cubic-bezier(0.4,0.0,1,1)"},options:null},{type:1,expr:"void => visible-top, void => visible-bottom",animation:{type:4,styles:null,timings:"225ms cubic-bezier(0.0,0.0,0.2,1)"},options:null}],options:{}}]}}),Pc=al["\u0275ccf"]("snack-bar-container",Dc,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"snack-bar-container",[["class","mat-snack-bar-container"],["role","alert"]],[[40,"@state",0]],[["component","@state.done"]],function(e,t,n){var r=!0;return"component:@state.done"===t&&(r=!1!==al["\u0275nov"](e,1).onAnimationEnd(n)&&r),r},be,Mc)),al["\u0275did"](1,180224,null,0,Dc,[al.NgZone,al.ElementRef,al.ChangeDetectorRef],null,null)],null,function(e,t){e(t,0,0,al["\u0275nov"](t,1)._animationState)})},{},{},[]),Nc=al["\u0275crt"]({encapsulation:2,styles:[".mat-simple-snackbar{display:flex;justify-content:space-between;line-height:20px;opacity:1}.mat-simple-snackbar-action{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;background:0 0;flex-shrink:0;margin-left:48px}[dir=rtl] .mat-simple-snackbar-action{margin-right:48px;margin-left:0}"],data:{animation:[{type:7,name:"contentFade",definitions:[{type:1,expr:":enter",animation:[{type:6,styles:{opacity:"0"},offset:null},{type:4,styles:null,timings:"375ms cubic-bezier(0.4,0.0,0.2,1)"}],options:null}],options:{}}]}}),Ac=al["\u0275ccf"]("simple-snack-bar",kc,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"simple-snack-bar",[["class","mat-simple-snackbar"]],[[40,"@contentFade",0]],null,null,we,Nc)),al["\u0275did"](1,49152,null,0,kc,[Sc,Oc],null,null)],null,function(e,t){e(t,0,0,void 0)})},{},{},[]),Lc=function(){},Fc=function(){function e(e,t,n){void 0===e&&(e=!1),void 0===n&&(n=!0);var r=this;this._isMulti=e,this._emitChanges=n,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.onChange=this._emitChanges?new ml.Subject:null,t&&(e?t.forEach(function(e){return r._markSelected(e)}):this._markSelected(t[0]),this._selectedToEmit.length=0)}return Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected},enumerable:!0,configurable:!0}),e.prototype.select=function(){for(var e=this,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this._verifyValueAssignment(t),t.forEach(function(t){return e._markSelected(t)}),this._emitChangeEvent()},e.prototype.deselect=function(){for(var e=this,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this._verifyValueAssignment(t),t.forEach(function(t){return e._unmarkSelected(t)}),this._emitChangeEvent()},e.prototype.toggle=function(e){this.isSelected(e)?this.deselect(e):this.select(e)},e.prototype.clear=function(){this._unmarkAll(),this._emitChangeEvent()},e.prototype.isSelected=function(e){return this._selection.has(e)},e.prototype.isEmpty=function(){return 0===this._selection.size},e.prototype.hasValue=function(){return!this.isEmpty()},e.prototype.sort=function(e){this._isMulti&&this._selected&&this._selected.sort(e)},e.prototype._emitChangeEvent=function(){if(this._selected=null,this._selectedToEmit.length||this._deselectedToEmit.length){var e=new jc(this._selectedToEmit,this._deselectedToEmit);this.onChange&&this.onChange.next(e),this._deselectedToEmit=[],this._selectedToEmit=[]}},e.prototype._markSelected=function(e){this.isSelected(e)||(this._isMulti||this._unmarkAll(),this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))},e.prototype._unmarkSelected=function(e){this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))},e.prototype._unmarkAll=function(){var e=this;this.isEmpty()||this._selection.forEach(function(t){return e._unmarkSelected(t)})},e.prototype._verifyValueAssignment=function(e){if(e.length>1&&!this._isMulti)throw Error("Cannot pass multiple values into SelectionModel with single-value mode.")},e}(),jc=function(e,t){this.added=e,this.removed=t},Vc=function(){function e(){this._listeners=[]}return e.prototype.notify=function(e,t){for(var n=0,r=this._listeners;n<r.length;n++)(0,r[n])(e,t)},e.prototype.listen=function(e){var t=this;return this._listeners.push(e),function(){t._listeners=t._listeners.filter(function(t){return e!==t})}},e}(),zc=n("eoFs"),Bc=function(){function e(e,t){this.template=e,this._differs=t}return e.prototype.ngOnChanges=function(e){var t=e.columns.currentValue||[];this._columnsDiffer||(this._columnsDiffer=this._differs.find(t).create(),this._columnsDiffer.diff(t))},e.prototype.getColumnsDiff=function(){return this._columnsDiffer.diff(this.columns)},e}(),Hc=function(e){function t(t,n){return e.call(this,t,n)||this}return Object(bl.__extends)(t,e),t}(Bc),Wc=function(e){function t(t,n){return e.call(this,t,n)||this}return Object(bl.__extends)(t,e),t}(Bc),qc=function(){function e(t){this._viewContainer=t,e.mostRecentCellOutlet=this}return e.mostRecentCellOutlet=null,e}(),Uc=function(e){this.template=e},Gc=function(e){this.template=e},Kc=function(){function e(){}return Object.defineProperty(e.prototype,"name",{get:function(){return this._name},set:function(e){this._name=e,this.cssClassFriendlyName=e.replace(/[^a-z0-9_-]/gi,"-")},enumerable:!0,configurable:!0}),e}(),$c=function(e){this.viewContainer=e},Zc=function(e){this.viewContainer=e},Qc=function(){function e(e,t,n,r){this._differs=e,this._changeDetectorRef=t,this._onDestroy=new ml.Subject,this._data=[],this._columnDefsByName=new Map,this.viewChange=new zc.a({start:0,end:Number.MAX_VALUE}),r||n.nativeElement.setAttribute("role","grid")}return Object.defineProperty(e.prototype,"trackBy",{get:function(){return this._trackByFn},set:function(e){Object(al.isDevMode)()&&null!=e&&"function"!=typeof e&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(e)+"."),this._trackByFn=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataSource",{get:function(){return this._dataSource},set:function(e){this._dataSource!==e&&this._switchDataSource(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this._dataDiffer=this._differs.find([]).create(this._trackByFn)},e.prototype.ngAfterContentInit=function(){var e=this;if(!this._headerDef&&!this._rowDefs.length)throw Error("Missing definitions for header and row, cannot determine which columns should be rendered.");this._cacheColumnDefsByName(),this._columnDefs.changes.subscribe(function(){return e._cacheColumnDefsByName()}),this._renderHeaderRow()},e.prototype.ngAfterContentChecked=function(){this._renderUpdatedColumns();var e=this._rowDefs.filter(function(e){return!e.when});if(e.length>1)throw Error("There can only be one default row without a when predicate function.");this._defaultRowDef=e[0],this.dataSource&&!this._renderChangeSubscription&&this._observeRenderChanges()},e.prototype.ngOnDestroy=function(){this._rowPlaceholder.viewContainer.clear(),this._headerRowPlaceholder.viewContainer.clear(),this._onDestroy.next(),this._onDestroy.complete(),this.dataSource&&this.dataSource.disconnect(this)},e.prototype._cacheColumnDefsByName=function(){var e=this;this._columnDefsByName.clear(),this._columnDefs.forEach(function(t){if(e._columnDefsByName.has(t.name))throw function(e){return Error('Duplicate column definition name provided: "'+e+'".')}(t.name);e._columnDefsByName.set(t.name,t)})},e.prototype._renderUpdatedColumns=function(){var e=this;this._rowDefs.forEach(function(t){t.getColumnsDiff()&&(e._dataDiffer.diff([]),e._rowPlaceholder.viewContainer.clear(),e._renderRowChanges())}),this._headerDef.getColumnsDiff()&&(this._headerRowPlaceholder.viewContainer.clear(),this._renderHeaderRow())},e.prototype._switchDataSource=function(e){this._data=[],this.dataSource&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),e||this._rowPlaceholder.viewContainer.clear(),this._dataSource=e},e.prototype._observeRenderChanges=function(){var e=this;this._renderChangeSubscription=this.dataSource.connect(this).pipe(Object(Hu.a)(this._onDestroy)).subscribe(function(t){e._data=t,e._renderRowChanges()})},e.prototype._renderHeaderRow=function(){var e=this._getHeaderCellTemplatesForRow(this._headerDef);e.length&&(this._headerRowPlaceholder.viewContainer.createEmbeddedView(this._headerDef.template,{cells:e}),e.forEach(function(e){qc.mostRecentCellOutlet&&qc.mostRecentCellOutlet._viewContainer.createEmbeddedView(e.template,{})}),this._changeDetectorRef.markForCheck())},e.prototype._renderRowChanges=function(){var e=this,t=this._dataDiffer.diff(this._data);if(t){var n=this._rowPlaceholder.viewContainer;t.forEachOperation(function(t,r,i){if(null==t.previousIndex)e._insertRow(t.item,i);else if(null==i)n.remove(r);else{var o=n.get(r);n.move(o,i)}}),this._updateRowIndexContext(),t.forEachIdentityChange(function(e){n.get(e.currentIndex).context.$implicit=e.item})}},e.prototype._getRowDef=function(e,t){if(1==this._rowDefs.length)return this._rowDefs.first;var n=this._rowDefs.find(function(n){return n.when&&n.when(t,e)})||this._defaultRowDef;if(!n)throw Error("Could not find a matching row definition for the provided row data.");return n},e.prototype._insertRow=function(e,t){var n=this._getRowDef(e,t),r={$implicit:e};this._rowPlaceholder.viewContainer.createEmbeddedView(n.template,r,t),this._getCellTemplatesForRow(n).forEach(function(e){qc.mostRecentCellOutlet&&qc.mostRecentCellOutlet._viewContainer.createEmbeddedView(e.template,r)}),this._changeDetectorRef.markForCheck()},e.prototype._updateRowIndexContext=function(){for(var e=this._rowPlaceholder.viewContainer,t=0,n=e.length;t<n;t++){var r=e.get(t);r.context.index=t,r.context.count=n,r.context.first=0===t,r.context.last=t===n-1,r.context.even=t%2==0,r.context.odd=!r.context.even}},e.prototype._getHeaderCellTemplatesForRow=function(e){var t=this;return e.columns?e.columns.map(function(e){var n=t._columnDefsByName.get(e);if(!n)throw Ce(e);return n.headerCell}):[]},e.prototype._getCellTemplatesForRow=function(e){var t=this;return e.columns?e.columns.map(function(e){var n=t._columnDefsByName.get(e);if(!n)throw Ce(e);return n.cell}):[]},e}(),Yc=function(){},Xc=(n("3m71"),function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(bl.__extends)(t,e),t}(Qc)),Jc=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(bl.__extends)(t,e),t}(Uc),ed=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(bl.__extends)(t,e),t}(Gc),td=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(bl.__extends)(t,e),t}(Kc),nd=function(e){function t(t,n){var r=e.call(this,t,n)||this;return n.nativeElement.classList.add("mat-column-"+t.cssClassFriendlyName),r}return Object(bl.__extends)(t,e),t}(function(e,t){t.nativeElement.classList.add("cdk-column-"+e.cssClassFriendlyName)}),rd=function(e){function t(t,n){var r=e.call(this,t,n)||this;return n.nativeElement.classList.add("mat-column-"+t.cssClassFriendlyName),r}return Object(bl.__extends)(t,e),t}(function(e,t){t.nativeElement.classList.add("cdk-column-"+e.cssClassFriendlyName)}),id=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(bl.__extends)(t,e),t}(Hc),od=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(bl.__extends)(t,e),t}(Wc),ld=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(bl.__extends)(t,e),t}(function(){}),ad=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(bl.__extends)(t,e),t}(function(){}),sd=function(){},ud=al["\u0275crt"]({encapsulation:2,styles:[".mat-table{display:block}.mat-header-row,.mat-row{display:flex;border-bottom-width:1px;border-bottom-style:solid;align-items:center;min-height:48px;padding:0 24px}.mat-cell,.mat-header-cell{flex:1;overflow:hidden;word-wrap:break-word}"],data:{}}),cd=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),dd=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),pd=function(){},fd=function(){this.align="start"},hd=function(){},md=function(){},gd=al["\u0275crt"]({encapsulation:2,styles:[".mat-card{transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);display:block;position:relative;padding:24px;border-radius:2px}.mat-card:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){.mat-card{outline:solid 1px}}.mat-card-flat{box-shadow:none}.mat-card-actions,.mat-card-content,.mat-card-subtitle,.mat-card-title{display:block;margin-bottom:16px}.mat-card-actions{margin-left:-16px;margin-right:-16px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 48px);margin:0 -24px 16px -24px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-footer{display:block;margin:0 -24px -24px -24px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button{margin:0 4px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header-text{margin:0 8px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0}.mat-card-lg-image,.mat-card-md-image,.mat-card-sm-image{margin:-8px 0}.mat-card-title-group{display:flex;justify-content:space-between;margin:0 -8px}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}@media (max-width:600px){.mat-card{padding:24px 16px}.mat-card-actions{margin-left:-8px;margin-right:-8px}.mat-card-image{width:calc(100% + 32px);margin:16px -16px}.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}.mat-card-header{margin:-8px 0 0 0}.mat-card-footer{margin-left:-16px;margin-right:-16px}}.mat-card-content>:first-child,.mat-card>:first-child{margin-top:0}.mat-card-content>:last-child:not(.mat-card-footer),.mat-card>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-24px}.mat-card>.mat-card-actions:last-child{margin-bottom:-16px;padding-bottom:0}.mat-card-actions .mat-button:first-child,.mat-card-actions .mat-raised-button:first-child{margin-left:0;margin-right:0}.mat-card-subtitle:not(:first-child),.mat-card-title:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}"],data:{}}),yd=function(e){function t(t,n){var r=e.call(this,t)||this;return r._platform=n,r}return Object(bl.__extends)(t,e),t.prototype.ngAfterViewInit=function(){var e=this;Object(al.isDevMode)()&&this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(function(){return e._checkToolbarMixedModes()}))},t.prototype._checkToolbarMixedModes=function(){this._toolbarRows.length&&[].slice.call(this._elementRef.nativeElement.childNodes).filter(function(e){return!(e.classList&&e.classList.contains("mat-toolbar-row"))}).filter(function(e){return e.nodeType!==Node.COMMENT_NODE}).some(function(e){return e.textContent.trim()})&&function(){throw Error("MatToolbar: Attempting to combine different toolbar modes. Either specify multiple `<mat-toolbar-row>` elements explicitly or just place content inside of a `<mat-toolbar>` for a single row.")}()},t}(I(function(e){this._elementRef=e})),vd=function(){},bd=al["\u0275crt"]({encapsulation:2,styles:[".mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%}.mat-toolbar-multiple-rows{min-height:64px}.mat-toolbar-row,.mat-toolbar-single-row{height:64px}@media (max-width:600px){.mat-toolbar-multiple-rows{min-height:56px}.mat-toolbar-row,.mat-toolbar-single-row{height:56px}}"],data:{}}),_d=n("oiK7"),wd=function(){function e(){this.change=new al.EventEmitter,this.focus=new al.EventEmitter,this.blur=new al.EventEmitter,this.instance=null,this._value="",this.codemirrorMetadataConfig={mode:"asterix",lineWrapping:!0,showCursorWhenSelecting:!0,autofocus:!0},_d.defineMode("asterix",function(){var e=["drop","dataverse","dataset","if","exists","create","use","type","as","closed","primary","key","hints","cardinality","index","on","btree","rtree","keyword","for","in","Metadata","Dataset","return","Index","load","using","localfs","path","format","from","in","with","group","by","select","let","where","order","asc","desc","limit","keeping","offset","distinct","or","and","boolean","tinyint","smallint","integer","bigint","float","double","string","binary","hex","base64","point","line","rectangle","circle","polygon","date","time","datetime","duration","interval","uuid","null","missing","DROP","DATAVERSE","IF","EXISTS","CREATE","USE","TYPE","AS","DATASET","PRIMARY","KEY","INDEX","SELECT","VALUE","INSERT","INTO","FROM","WHERE","AND","SOME","IN","SATISFIES","IS","UNKNOWN","NOT","EVERY","GROUP","BY","ORDER","DESC","LIMIT","OR","SET","DELETE","LOAD","USING"],t=/[$][a-zA-Z]+(\d*)/,n=/[.](\S)*/,r=/["].*["]/,i=/['].*[']/;return{startState:function(){return{inString:!1}},token:function(o,l){if(void 0==l.newLine&&(l.newLine=!0),o.match(t))return"variable";if(o.match(n))return"dot-variable";if(o.match(r))return"string";if(o.match(i))return"string";for(var a in e)if(l.newLine&&o.match(e[a]))return"keyword";return l.newLine=" "===o.peek()||null===o.peek(),o.next(),null}}})}return Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){e!==this._value&&(this._value=e,this.onChange(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){},e.prototype.ngAfterViewInit=function(){this.config=this.config||{},this.codemirrorInit(this.config)},e.prototype.codemirrorInit=function(e){var t=this;this.instance=_d.fromTextArea(this.hostMetadata.nativeElement,this.codemirrorMetadataConfig),this.instance.setSize("100%","100px"),this.instance.on("change",function(){t.updateValue(t.instance.getValue())}),this.instance.on("focus",function(){t.focus.emit()}),this.instance.on("blur",function(){t.blur.emit()})},e.prototype.updateValue=function(e){this.value=e,this.onTouched(),this.change.emit(e)},e.prototype.writeValue=function(e){this._value=e||"",this.instance&&this.instance.setValue(this._value)},e.prototype.onChange=function(e){},e.prototype.onTouched=function(){},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e}(),xd=al["\u0275crt"]({encapsulation:0,styles:[[".textarea-metadata[_ngcontent-%COMP%]{background-color:red!important;border:1px solid #000!important;padding:0;margin:0}codemirror-metadata[_ngcontent-%COMP%]{border:1px solid #eee;height:auto;background-color:blue!important;padding:0;margin:0}"]],data:{}}),Cd="[Query] Execute SQL++ Query",Ed="[Query] Execute SQL++ Query Success",Sd="[Query] Execute SQL++ Query Fail",Od="[Query] Execute Metadata SQL++ Query",Td="[Query] Execute Metadata SQL++ Query Success",kd="[Query] Execute Metadata SQL++ Query Fail",Dd=function(){return function(e){this.payload=e,this.type=Cd}}(),Id=function(){return function(e){this.payload=e,this.type=Ed}}(),Rd=function(){return function(e){this.payload=e,this.type=Sd}}(),Md=function(){return function(e){this.payload=e,this.type=Od}}(),Pd=function(){return function(e){this.payload=e,this.type=Td}}(),Nd=function(){return function(e){this.payload=e,this.type=kd}}(),Ad="[Dataverse Collection] Select Dataverses",Ld="[Dataverse Collection] Select Dataverses Success",Fd="[Dataverse Collection] Create Dataverse",jd="[Dataverse Collection] Create Dataverse Success",Vd="[Dataverse Collection] Create Dataverse Fail",zd="[Dataverse Collection] Drop Dataverses",Bd="[Dataverse Collection] Drop Dataverses Success",Hd="[Dataverse Collection] Drop Dataverses Fail",Wd=function(){return function(e){this.payload=e,this.type=Ad}}(),qd=function(){return function(e){this.payload=e,this.type=Ld}}(),Ud=function(e){this.payload=e,this.type="[Dataverse Collection] Select Dataverses Fail"},Gd=function(){return function(e){this.payload=e,this.type=Fd}}(),Kd=function(){return function(e){this.payload=e,this.type=jd}}(),$d=function(){return function(e){this.payload=e,this.type=Vd}}(),Zd=function(){return function(e){this.payload=e,this.type=zd}}(),Qd=function(){return function(e){this.payload=e,this.type=Bd}}(),Yd=function(){return function(e){this.payload=e,this.type=Hd}}(),Xd="[Dataset Collection] Select Dataset",Jd="[Dataset Collection] Select Dataset Success",ep="[Dataset Collection] Create Dataset",tp="[Dataset Collection] Create Dataset Success",np="[Dataset Collection] Create Dataset Fail",rp="[Dataset Collection] Drop Dataset",ip="[Dataset Collection] Drop Dataset Success",op="[Dataset Collection] Drop Dataset Fail",lp="[Dataset Collection] Guide Select Dataset",ap=function(){return function(e){this.payload=e,this.type=lp}}(),sp=function(){return function(e){this.payload=e,this.type=Xd}}(),up=function(){return function(e){this.payload=e,this.type=Jd}}(),cp=function(e){this.payload=e,this.type="[Dataset Collection] Select Dataset Fail"},dp=function(){return function(e){this.payload=e,this.type=ep}}(),pp=function(){return function(e){this.payload=e,this.type=tp}}(),fp=function(){return function(e){this.payload=e,this.type=np}}(),hp=function(){return function(e){this.payload=e,this.type=rp}}(),mp=function(){return function(e){this.payload=e,this.type=ip}}(),gp=function(){return function(e){this.payload=e,this.type=op}}(),yp="[Datatype Collection] Select Datatypes",vp="[Datatype Collection] Select Datatypes Success",bp="[Datatype Collection] Create Datatypes",_p="[Datatype Collection] Create Datatypes Success",wp="[Datatype Collection] Create Datatypes Fail",xp="[Datatype Collection] Drop Datatypes",Cp="[Datatype Collection] Drop Datatypes Success",Ep="[Datatype Collection] Drop Datatypes Fail",Sp=function(){return function(e){this.payload=e,this.type=yp}}(),Op=function(){return function(e){this.payload=e,this.type=vp}}(),Tp=function(e){this.payload=e,this.type="[Datatype Collection] Select Datatypes Fail"},kp=function(){return function(e){this.payload=e,this.type=bp}}(),Dp=function(){return function(e){this.payload=e,this.type=_p}}(),Ip=function(){return function(e){this.payload=e,this.type=wp}}(),Rp=function(){return function(e){this.payload=e,this.type=xp}}(),Mp=function(){return function(e){this.payload=e,this.type=Cp}}(),Pp=function(){return function(e){this.payload=e,this.type=Ep}}(),Np="[Index Collection] Select Indexes",Ap="[Index Collection] Select Indexes Success",Lp="[Index Collection] Create Index",Fp="[Index Collection] Create Index Success",jp="[Index Collection] Drop Indexes",Vp="[Index Collection] Drop Indexes Success",zp="[Index Collection] Drop Indexes Fail",Bp=function(){return function(e){this.payload=e,this.type=Np}}(),Hp=function(){return function(e){this.payload=e,this.type=Ap}}(),Wp=function(e){this.payload=e,this.type="[Index Collection] Select Indexes Fail"},qp=function(){return function(e){this.payload=e,this.type=Lp}}(),Up=function(){return function(e){this.payload=e,this.type=Fp}}(),Gp=function(e){this.payload=e,this.type="[Index Collection] Create Index Fail"},Kp=function(){return function(e){this.payload=e,this.type=jp}}(),$p=function(){return function(e){this.payload=e,this.type=Vp}}(),Zp=function(){return function(e){this.payload=e,this.type=zp}}(),Qp=function(){function e(e,t){var n=this;this.store=e,this.changeDetector=t,this.dataverses=[],this.datatypes=[],this.datasets=[],this.indexes=[],this.queryMetadataString="",this.errorMessage="",this.codemirrorMetadataConfig={mode:"asterix",lineWrapping:!0,showCursorWhenSelecting:!0,autofocus:!0},this.store.select("sqlMetadataQuery").subscribe(function(e){if(!1===e.success)e.sqlQueryMetadataError.errors&&(n.errorMessage="ERROR: "+e.sqlQueryMetadataError.errors[0].msg,n.changeDetector.detectChanges());else{n.errorMessage="SUCCEED";var t=e.sqlQueryMetadataString;(t=t.toUpperCase()).includes("CREATE DATAVERSE")||t.includes("DROP DATAVERSE")?n.store.dispatch(new Wd("-")):t.includes("CREATE DATASET")||t.includes("DROP DATASET")?n.store.dispatch(new sp("-")):t.includes("CREATE TYPE")||t.includes("DROP TYPE")?n.store.dispatch(new Sp("-")):(t.includes("CREATE INDEX")||t.includes("DROP INDEX"))&&n.store.dispatch(new Bp("-")),n.changeDetector.detectChanges()}})}return e.prototype.getQueryResults=function(e){this.store.dispatch(new Md(e))},e.prototype.executeQuery=function(){this.getQueryResults(this.queryMetadataString.replace(/\n/g," "))},e.prototype.onClick=function(){this.errorMessage=""},e.prototype.cleanUp=function(){this.errorMessage=""},e}(),Yp=n("ADVA"),Xp=al["\u0275crt"]({encapsulation:0,styles:[[".input-card[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;padding:0;margin:0 auto;margin-top:8px;height:250px;width:95%;overflow:hidden}.toolbar-icon[_ngcontent-%COMP%]{padding:0 14px 0 0;margin:0}.spacer[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.input-selector[_ngcontent-%COMP%]{max-height:42px;min-height:42px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:.8rem;font-weight:500;background-color:#fff;border:1px solid rgba(54,147,209,.87)}.content-area[_ngcontent-%COMP%]{position:relative;color:rgba(0,0,0,.87);height:120px;padding:0;margin:16px;overflow:none}.codemirror-container[_ngcontent-%COMP%]{width:100%;height:100%;padding:0;margin:0;font-size:14px;line-height:1.8}.actions[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.1);color:rgba(54,147,209,.87);padding:8px;margin:0}.error-message[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.1);color:rgba(209,54,54,.87);padding-top:10px;padding-left:20px;text-overflow:ellipsis}"]],data:{}});gl.a.prototype.startWith=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return P.apply(void 0,e)(this)},gl.a.merge=Ll.a,gl.a.prototype.map=iu.a,gl.a.prototype.debounceTime=function(e,t){return void 0===t&&(t=Tl),_(e,t)(this)};var Jp=n("6y8h");gl.a.prototype.distinctUntilChanged=Jp.a,gl.a.fromEvent=Sl;var ef=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),tf=function(){function e(e,t){var n=this;this.store=e,this.dialog=t,this.displayedColumns=["DataverseName","Dataformat","Timestamp","PendingOp"],this.selection=new Fc(!0,[]),this.errorMessage="",this.dvName="",this.selectedRowIndex=-1,this.loaded$=this.store.select("dataverse"),this.store.select(function(e){return e.dataverse.createDataverseName}).subscribe(function(e){n.dvName=e}),this.store.select(function(e){return e.dataverse.dropDataverseName}).subscribe(function(e){n.dvName=e}),this.store.select(function(e){return e.dataverse.createDataverseSuccess}).subscribe(function(e){!0===e&&(n.getDataverse(),n.errorMessage="SUCCEED: CREATED DATAVERSE "+n.dvName+" ")}),this.store.select(function(e){return e.dataverse.createDataverseError}).subscribe(function(e){e.errors&&(n.errorMessage="ERROR: "+e.errors[0].msg)}),this.store.select(function(e){return e.dataverse.dropDataverseSuccess}).subscribe(function(e){!0===e&&(n.getDataverse(),n.errorMessage="SUCCEED: DROP DATAVERSE "+n.dvName)}),this.store.select(function(e){return e.dataverse.dropDataverseError}).subscribe(function(e){e.errors&&(n.errorMessage="ERROR: "+e.errors[0].msg)})}return e.prototype.getDataverse=function(){this.store.dispatch(new Wd("-"))},e.prototype.ngOnInit=function(){this.dataSource=new of(this.store)},e.prototype.ngAfterViewChecked=function(){},e.prototype.ngAfterViewInit=function(){},e.prototype.openCreateDataverseDialog=function(){this.dialog.open(nf,{width:"420px",data:{name:this.dataverseName}}).afterClosed().subscribe(function(e){})},e.prototype.openDropDataverseDialog=function(){var e=this;this.dialog.open(rf,{width:"420px",data:{name:this.dataverseName}}).afterClosed().subscribe(function(t){e.dataverseName=t})},e.prototype.onClick=function(){this.errorMessage=""},e.prototype.highlight=function(e){this.output=JSON.stringify(e,null,2)},e.prototype.cleanUp=function(){this.errorMessage="",this.inputQuery.cleanUp()},e}(),nf=function(){function e(e,t,n){this.store=e,this.dialogCreateDvRef=t,this.data=n}return e.prototype.onClick=function(){this.store.dispatch(new Gd(this.data.dataverseName)),this.dialogCreateDvRef.close(this.data.dataverseName)},e.prototype.onNoClick=function(){this.dialogCreateDvRef.close()},e}(),rf=function(){function e(e,t,n){this.store=e,this.dialogDropDvRef=t,this.data=n}return e.prototype.onClick=function(){this.store.dispatch(new Zd(this.data.dataverseName)),this.dialogDropDvRef.close(this.data.dataverseName)},e.prototype.onNoClick=function(){this.dialogDropDvRef.close()},e}(),of=function(e){function t(t){var n=e.call(this)||this;return n.store=t,n._filterChange=new zc.a(""),n.dataverse$=n.store.select(function(e){return e.dataverse.dataverses.results}),n}return ef(t,e),Object.defineProperty(t.prototype,"filter",{get:function(){return this._filterChange.value},set:function(e){this._filterChange.next(e)},enumerable:!0,configurable:!0}),t.prototype.connect=function(){return this.dataverse$},t.prototype.disconnect=function(){},t}(Lc),lf=al["\u0275crt"]({encapsulation:2,styles:[".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0;width:180px}.mat-form-field-label-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}.mat-form-field-label{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform:perspective(100px);-ms-transform:none;transform-origin:0 0;transition:transform .4s cubic-bezier(.25,.8,.25,1),color .4s cubic-bezier(.25,.8,.25,1),width .4s cubic-bezier(.25,.8,.25,1);display:none}[dir=rtl] .mat-form-field-label{transform-origin:100% 0;left:auto;right:0}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-empty.mat-form-field-label{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:block;transition:none}.mat-input-server:focus+.mat-form-field-placeholder-wrapper .mat-form-field-placeholder,.mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-placeholder-wrapper .mat-form-field-placeholder{display:none}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-placeholder-wrapper .mat-form-field-placeholder,.mat-form-field-can-float .mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-placeholder-wrapper .mat-form-field-placeholder{display:block}.mat-form-field-label:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;height:1px;width:100%}.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}.mat-form-field-underline .mat-form-field-ripple{position:absolute;top:0;left:0;width:100%;height:2px;transform-origin:50%;transform:scaleX(.5);visibility:hidden;opacity:0;transition:background-color .3s cubic-bezier(.55,0,.55,.2)}.mat-form-field-invalid:not(.mat-focused) .mat-form-field-underline .mat-form-field-ripple{height:1px}.mat-focused .mat-form-field-underline .mat-form-field-ripple,.mat-form-field-invalid .mat-form-field-underline .mat-form-field-ripple{visibility:visible;opacity:1;transform:scaleX(1);transition:transform .3s cubic-bezier(.25,.8,.25,1),opacity .1s cubic-bezier(.25,.8,.25,1),background-color .3s cubic-bezier(.25,.8,.25,1)}.mat-form-field-subscript-wrapper{position:absolute;width:100%;overflow:hidden}.mat-form-field-label-wrapper .mat-icon,.mat-form-field-subscript-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block}",".mat-input-element{font:inherit;background:0 0;color:currentColor;border:none;outline:0;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::-ms-clear,.mat-input-element::-ms-reveal{display:none}.mat-input-element[type=date]::after,.mat-input-element[type=datetime-local]::after,.mat-input-element[type=datetime]::after,.mat-input-element[type=month]::after,.mat-input-element[type=time]::after,.mat-input-element[type=week]::after{content:' ';white-space:pre;width:1px}.mat-input-element::placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element::-moz-placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element::-webkit-input-placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element:-ms-input-placeholder{transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-form-field-hide-placeholder .mat-input-element::placeholder{color:transparent!important;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{color:transparent!important;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{color:transparent!important;transition:none}.mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{color:transparent!important;transition:none}textarea.mat-input-element{resize:vertical;overflow:auto}textarea.mat-autosize{resize:none}"],data:{animation:[{type:7,name:"transitionMessages",definitions:[{type:0,name:"enter",styles:{type:6,styles:{opacity:1,transform:"translateY(0%)"},offset:null},options:void 0},{type:1,expr:"void => enter",animation:[{type:6,styles:{opacity:0,transform:"translateY(-100%)"},offset:null},{type:4,styles:null,timings:"300ms cubic-bezier(0.55, 0, 0.55, 0.2)"}],options:null}],options:{}}]}}),af=al["\u0275crt"]({encapsulation:0,styles:[[".container[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row;flex-flow:row;padding:0;margin:0}.master[_ngcontent-%COMP%]{width:60%}.detail[_ngcontent-%COMP%]{width:40%}.dataverses-card[_ngcontent-%COMP%]{margin:0 auto;margin-top:16px;min-height:450px;max-height:450px;width:95%}.dataverses-card[_ngcontent-%COMP%], .dataverses-details-card[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;padding:0;overflow:hidden}.dataverses-details-card[_ngcontent-%COMP%]{margin:0 auto;margin:16px;min-height:716px;max-height:716px}.icon[_ngcontent-%COMP%]{padding:0 14px 0 0;margin:0}.dataverses-selector[_ngcontent-%COMP%]{min-height:42px;max-height:42px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:.8rem;font-weight:500;background-color:#fff;border:1px solid rgba(54,147,209,.87)}.dataverses-content[_ngcontent-%COMP%]{position:relative;top:0;left:0;margin:0;padding:0;overflow:auto}.dataverses-table[_ngcontent-%COMP%]{margin:8px!important;height:330px;overflow:auto}.spacer[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.example-header[_ngcontent-%COMP%]{min-height:64px;padding-left:24px}.mat-table[_ngcontent-%COMP%]{overflow:auto}.customWidthClass[_ngcontent-%COMP%]{-webkit-box-flex:0;-ms-flex:0 0 75px;flex:0 0 75px}.mat-cell.mat-column-DataverseName[_ngcontent-%COMP%], .mat-column-DataverseName[_ngcontent-%COMP%], .mat-header-cell.mat-column-DataverseName[_ngcontent-%COMP%]{text-align:left}.header-name-cell[_ngcontent-%COMP%]{-ms-flex:0 0 150px;flex:0 0 150px}.header-dataformat-cell[_ngcontent-%COMP%], .header-name-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;text-transform:uppercase}.header-dataformat-cell[_ngcontent-%COMP%]{-ms-flex:0 0 400px;flex:0 0 400px}.header-timestamp-cell[_ngcontent-%COMP%]{-ms-flex:0 0 250px;flex:0 0 250px;text-transform:uppercase}.dataverse-name-cell[_ngcontent-%COMP%], .header-timestamp-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0}.dataverse-name-cell[_ngcontent-%COMP%]{-ms-flex:0 0 150px;flex:0 0 150px}.dataverse-dataformat-cell[_ngcontent-%COMP%]{-ms-flex:0 0 400px;flex:0 0 400px}.dataverse-dataformat-cell[_ngcontent-%COMP%], .dataverse-timestamp-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0}.dataverse-timestamp-cell[_ngcontent-%COMP%]{-ms-flex:0 0 250px;flex:0 0 250px}.example-header[_ngcontent-%COMP%]{min-height:56px;max-height:56px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 24px 0;font-size:20px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid transparent}.mat-form-field[_ngcontent-%COMP%]{font-size:14px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-top:8px}.example-no-results[_ngcontent-%COMP%]{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:24px;font-size:12px;font-style:italic}.actions[_ngcontent-%COMP%], .example-no-results[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex}.actions[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.1);color:rgba(54,147,209,.87);padding:8px;margin:0}.error-message[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.1);color:rgba(209,54,54,.87);padding-top:10px;padding-left:20px;text-overflow:ellipsis}.highlight[_ngcontent-%COMP%]{background:#42a948}.output[_ngcontent-%COMP%]{padding-left:16px}"]],data:{}}),sf=al["\u0275crt"]({encapsulation:0,styles:[[".dataverse-dialog[_ngcontent-%COMP%]{font-family:Roboto Mono,monospace;font-size:.8rem;font-weight:500}"]],data:{}}),uf=al["\u0275ccf"]("dataverse-create-dialog",nf,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"dataverse-create-dialog",[],null,null,null,Je,sf)),al["\u0275did"](1,49152,null,0,nf,[Yp.m,Ns,As],null,null)],null,null)},{},{},[]),cf=al["\u0275crt"]({encapsulation:0,styles:[[".dataverse-dialog[_ngcontent-%COMP%]{font-family:Roboto Mono,monospace;font-size:.8rem;font-weight:500}"]],data:{}}),df=al["\u0275ccf"]("dataverse-drop-dialog",rf,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"dataverse-drop-dialog",[],null,null,null,et,cf)),al["\u0275did"](1,49152,null,0,rf,[Yp.m,Ns,As],null,null)],null,null)},{},{},[]),pf=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),ff=function(){function e(e,t){var n=this;this.store=e,this.dialog=t,this.displayedColumns="['CompactionPolicy', 'DatasetId', 'DatasetName', 'DatasetType', 'DatatypeDataverseName', 'DatatypeName', 'DataverseName', 'GroupName', 'PendingOp', 'Timestamp']",this.errorMessage="",this.dsName="",this.loaded$=this.store.select("dataset"),this.store.select(function(e){return e.dataset.createDatasetName}).subscribe(function(e){n.dsName=e}),this.store.select(function(e){return e.dataset.dropDatasetName}).subscribe(function(e){n.dsName=e}),this.store.select(function(e){return e.dataset.createDatasetSuccess}).subscribe(function(e){!0===e&&(n.getDatasets(),n.errorMessage="SUCCEED: CREATE DATASET "+n.dsName)}),this.store.select(function(e){return e.dataset.createDatasetError}).subscribe(function(e){e.errors&&(n.errorMessage="ERROR: "+e.errors[0].msg)}),this.store.select(function(e){return e.dataset.dropDatasetSuccess}).subscribe(function(e){!0===e&&(n.getDatasets(),n.errorMessage="SUCCEED: DROP DATASET "+n.dsName)}),this.store.select(function(e){return e.dataset.dropDatasetError}).subscribe(function(e){e.errors&&(n.errorMessage="ERROR: "+e.errors[0].msg)})}return e.prototype.getDatasets=function(){this.store.dispatch(new sp("-"))},e.prototype.ngOnInit=function(){this.dataSource=new gf(this.store)},e.prototype.openCreateDatasetDialog=function(){var e=this;this.dialog.open(hf,{width:"420px",data:{name:this.datasetName}}).afterClosed().subscribe(function(t){e.datasetName=t})},e.prototype.openDropDatasetDialog=function(){var e=this;this.dialog.open(mf,{width:"420px",data:{name:this.datasetName}}).afterClosed().subscribe(function(t){e.datasetName=t})},e.prototype.onClick=function(){this.errorMessage=""},e.prototype.highlight=function(e){this.output=JSON.stringify(e,null,2)},e.prototype.cleanUp=function(){this.errorMessage="",this.inputQuery.cleanUp()},e}(),hf=function(){function e(e,t,n){this.store=e,this.dialogCreateDsRef=t,this.data=n}return e.prototype.onClick=function(){this.store.dispatch(new dp(this.data.datasetName)),this.dialogCreateDsRef.close()},e.prototype.onNoClick=function(){this.dialogCreateDsRef.close()},e}(),mf=function(){function e(e,t,n){this.store=e,this.dialogDropDsRef=t,this.data=n}return e.prototype.onClick=function(){this.store.dispatch(new hp(this.data.datasetName)),this.dialogDropDsRef.close()},e.prototype.onNoClick=function(){this.dialogDropDsRef.close()},e}(),gf=function(e){function t(t){var n=e.call(this)||this;return n.store=t,n.datasets$=n.store.select(function(e){return e.dataset.datasets.results}),n}return pf(t,e),t.prototype.connect=function(){return this.datasets$},t.prototype.disconnect=function(){},t}(Lc),yf=al["\u0275crt"]({encapsulation:0,styles:[[".container[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row;flex-flow:row;padding:0;margin:0}.master[_ngcontent-%COMP%]{width:60%;overflow:hidden}.detail[_ngcontent-%COMP%]{width:40%;overflow:hidden}.datasets-card[_ngcontent-%COMP%]{margin:0 auto;margin-top:16px;min-height:450px;max-height:450px;width:95%}.datasets-card[_ngcontent-%COMP%], .datasets-details-card[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;padding:0;overflow:hidden}.datasets-details-card[_ngcontent-%COMP%]{margin:0 auto;margin:16px;min-height:716px;max-height:716px}.icon[_ngcontent-%COMP%]{padding:0 14px 0 0;margin:0}.datasets-selector[_ngcontent-%COMP%]{min-height:42px;max-height:42px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:.8rem;font-weight:500;background-color:#fff;border:1px solid rgba(54,147,209,.87)}.datasets-content[_ngcontent-%COMP%]{position:relative;top:0;left:0;margin:0;padding:0;overflow:auto}.datasets-table[_ngcontent-%COMP%]{margin:8px!important;height:330px;overflow:auto}.spacer[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.example-header[_ngcontent-%COMP%]{min-height:64px;padding-left:24px}.mat-table[_ngcontent-%COMP%]{overflow:auto}.customWidthClass[_ngcontent-%COMP%]{-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.mat-cell.mat-column-DataverseName[_ngcontent-%COMP%], .mat-column-DataverseName[_ngcontent-%COMP%], .mat-header-cell.mat-column-DataverseName[_ngcontent-%COMP%]{text-align:left}.header-compactionpolicy-cell[_ngcontent-%COMP%]{text-transform:uppercase}.dataset-compactionpolicy-cell[_ngcontent-%COMP%], .header-compactionpolicy-cell[_ngcontent-%COMP%], .header-datasetid-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.header-datasetid-cell[_ngcontent-%COMP%]{text-transform:uppercase}.dataset-datasetid-cell[_ngcontent-%COMP%], .header-datasetname-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.header-datasetname-cell[_ngcontent-%COMP%]{text-transform:uppercase}.dataset-datasetname-cell[_ngcontent-%COMP%]{letter-spacing:1px}.dataset-datasetname-cell[_ngcontent-%COMP%], .header-datasettype-cell[_ngcontent-%COMP%]{border:none;font-size:12px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.header-datasettype-cell[_ngcontent-%COMP%]{text-transform:uppercase}.dataset-datasettype-cell[_ngcontent-%COMP%]{border:none;font-size:12px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.header-datatypedataversename-cell[_ngcontent-%COMP%]{text-transform:uppercase}.dataset-datatypedataversename-cell[_ngcontent-%COMP%], .header-datatypedataversename-cell[_ngcontent-%COMP%], .header-datatypename-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.header-datatypename-cell[_ngcontent-%COMP%]{text-transform:uppercase}.dataset-datatypename-cell[_ngcontent-%COMP%], .header-dataversename-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.header-dataversename-cell[_ngcontent-%COMP%]{text-transform:uppercase}.dataset-dataversename-cell[_ngcontent-%COMP%], .header-groupname-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.header-groupname-cell[_ngcontent-%COMP%]{text-transform:uppercase}.dataset-groupname-cell[_ngcontent-%COMP%], .header-timestamp-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.header-timestamp-cell[_ngcontent-%COMP%]{text-transform:uppercase}.dataset-timestamp-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.example-header[_ngcontent-%COMP%]{min-height:56px;max-height:56px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 24px 0;font-size:20px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid transparent}.mat-form-field[_ngcontent-%COMP%]{font-size:14px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-top:8px}.example-no-results[_ngcontent-%COMP%]{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:24px;font-size:12px;font-style:italic}.actions[_ngcontent-%COMP%], .example-no-results[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex}.actions[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.1);color:rgba(54,147,209,.87);padding:8px;margin:0}.error-message[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.1);color:rgba(209,54,54,.87);padding-top:10px;padding-left:20px;text-overflow:ellipsis}.output[_ngcontent-%COMP%]{padding-left:16px}"]],data:{}}),vf=al["\u0275crt"]({encapsulation:0,styles:[[".dataset-dialog[_ngcontent-%COMP%]{font-family:Roboto Mono,monospace;font-size:.8rem;font-weight:500}"]],data:{}}),bf=al["\u0275ccf"]("dataset-create-dialog",hf,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"dataset-create-dialog",[],null,null,null,St,vf)),al["\u0275did"](1,49152,null,0,hf,[Yp.m,Ns,As],null,null)],null,null)},{},{},[]),_f=al["\u0275crt"]({encapsulation:0,styles:[[".dataset-dialog[_ngcontent-%COMP%]{font-family:Roboto Mono,monospace;font-size:.8rem;font-weight:500}"]],data:{}}),wf=al["\u0275ccf"]("dataset-drop-dialog",mf,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"dataset-drop-dialog",[],null,null,null,Ot,_f)),al["\u0275did"](1,49152,null,0,mf,[Yp.m,Ns,As],null,null)],null,null)},{},{},[]),xf=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Cf=function(){function e(e,t){var n=this;this.store=e,this.dialog=t,this.displayedColumns="['datatypeName', 'dataverseName', 'timeStamp']",this.selection=new Fc(!0,[]),this.errorMessage="",this.dtName="",this.loaded$=this.store.select("datatype"),this.store.select(function(e){return e.datatype.createDatatypeName}).subscribe(function(e){n.dtName=e}),this.store.select(function(e){return e.datatype.dropDatatypeName}).subscribe(function(e){n.dtName=e}),this.store.select(function(e){return e.datatype.createDatatypeSuccess}).subscribe(function(e){!0===e&&(n.getDatatypes(),n.errorMessage="SUCCEED: CREATE DATATYPE "+n.dtName)}),this.store.select(function(e){return e.datatype.createDatatypeError}).subscribe(function(e){e.errors&&(n.errorMessage="ERROR: "+e.errors[0].msg)}),this.store.select(function(e){return e.datatype.dropDatatypeSuccess}).subscribe(function(e){!0===e&&(n.getDatatypes(),n.errorMessage="SUCCEED: DROP DATATYPE "+n.dtName)}),this.store.select(function(e){return e.datatype.dropDatatypeError}).subscribe(function(e){e.errors&&(n.errorMessage="ERROR: "+e.errors[0].msg)})}return e.prototype.getDatatypes=function(){this.store.dispatch(new Sp("-"))},e.prototype.ngOnInit=function(){this.dataSource=new Of(this.store)},e.prototype.openCreateDatatypeDialog=function(){var e=this;this.dialog.open(Ef,{width:"420px",data:{name:this.datatypeName}}).afterClosed().subscribe(function(t){e.datatypeName=t})},e.prototype.openDropDatatypeDialog=function(){var e=this;this.dialog.open(Sf,{width:"420px",data:{name:this.datatypeName}}).afterClosed().subscribe(function(t){e.datatypeName=t})},e.prototype.onClick=function(){this.errorMessage=""},e.prototype.highlight=function(e){this.output=JSON.stringify(e,null,2)},e.prototype.cleanUp=function(){this.errorMessage="",this.inputQuery.cleanUp()},e}(),Ef=function(){function e(e,t,n){this.store=e,this.dialogCreateDtRef=t,this.data=n}return e.prototype.onClick=function(){this.store.dispatch(new kp(this.data.datasetName)),this.dialogCreateDtRef.close()},e.prototype.onNoClick=function(){this.dialogCreateDtRef.close()},e}(),Sf=function(){function e(e,t,n){this.store=e,this.dialogDropDtRef=t,this.data=n}return e.prototype.onClick=function(){this.store.dispatch(new Rp(this.data.datatypeName)),this.dialogDropDtRef.close()},e.prototype.onNoClick=function(){this.dialogDropDtRef.close()},e}(),Of=function(e){function t(t){var n=e.call(this)||this;return n.store=t,n.datatypes$=n.store.select(function(e){return e.datatype.datatypes.results}),n}return xf(t,e),t.prototype.connect=function(){return this.datatypes$},t.prototype.disconnect=function(){},t}(Lc),Tf=al["\u0275crt"]({encapsulation:0,styles:[[".container[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row;flex-flow:row;padding:0;margin:0}.master[_ngcontent-%COMP%]{width:60%;overflow:hidden}.detail[_ngcontent-%COMP%]{width:40%;overflow:hidden}.datatypes-card[_ngcontent-%COMP%]{margin:0 auto;margin-top:16px;min-height:450px;max-height:450px;width:95%}.datatypes-card[_ngcontent-%COMP%], .datatypes-details-card[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;padding:0;overflow:hidden}.datatypes-details-card[_ngcontent-%COMP%]{margin:0 auto;margin:16px;min-height:716px;max-height:716px}.icon[_ngcontent-%COMP%]{padding:0 14px 0 0;margin:0}.datatypes-selector[_ngcontent-%COMP%]{min-height:42px;max-height:42px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:.8rem;font-weight:500;background-color:#fff;border:1px solid rgba(54,147,209,.87)}.datatypes-content[_ngcontent-%COMP%]{position:relative;top:0;left:0;margin:0;padding:0;overflow:auto}.datatypes-table[_ngcontent-%COMP%]{margin:8px!important;height:330px;overflow:auto}.spacer[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.datatypes-toolbar[_ngcontent-%COMP%]{display:block;min-height:56px;height:56px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:1px;font-weight:400;background:rgba(0,0,1,.8)}.example-header[_ngcontent-%COMP%]{min-height:64px;padding-left:24px}.mat-table[_ngcontent-%COMP%]{overflow:auto}.customWidthClass[_ngcontent-%COMP%]{-webkit-box-flex:0;-ms-flex:0 0 75px;flex:0 0 75px}.mat-cell.mat-column-DataverseName[_ngcontent-%COMP%], .mat-column-DataverseName[_ngcontent-%COMP%], .mat-header-cell.mat-column-DataverseName[_ngcontent-%COMP%]{text-align:left}.header-datatypename-cell[_ngcontent-%COMP%]{text-transform:uppercase}.datatypes-datatypename-cell[_ngcontent-%COMP%], .header-datatypename-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 400px;flex:0 0 400px}.header-dataversename-cell[_ngcontent-%COMP%]{text-align:center;color:rgba(0,0,0,.87);text-transform:uppercase}.datatypes-dataversename-cell[_ngcontent-%COMP%], .header-dataversename-cell[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.header-timestamp-cell[_ngcontent-%COMP%]{text-transform:uppercase}.datatypes-timestamp-cell[_ngcontent-%COMP%], .header-timestamp-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:center;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.example-header[_ngcontent-%COMP%]{min-height:56px;max-height:56px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 24px 0;font-size:20px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid transparent}.mat-form-field[_ngcontent-%COMP%]{font-size:14px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-top:8px}.example-no-results[_ngcontent-%COMP%]{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:24px;font-size:12px;font-style:italic}.actions[_ngcontent-%COMP%], .example-no-results[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex}.actions[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.1);color:rgba(54,147,209,.87);padding:8px;margin:0}.error-message[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.1);color:rgba(209,54,54,.87);padding-top:10px;padding-left:20px;text-overflow:ellipsis}.output[_ngcontent-%COMP%]{padding-left:16px}"]],data:{}}),kf=al["\u0275crt"]({encapsulation:0,styles:[[".datatype-dialog[_ngcontent-%COMP%]{font-family:Roboto Mono,monospace;font-size:.8rem;font-weight:500}"]],data:{}}),Df=al["\u0275ccf"]("datatype-create-dialog",Ef,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"datatype-create-dialog",[],null,null,null,Ft,kf)),al["\u0275did"](1,49152,null,0,Ef,[Yp.m,Ns,As],null,null)],null,null)},{},{},[]),If=al["\u0275crt"]({encapsulation:0,styles:[[".datatype-dialog[_ngcontent-%COMP%]{font-family:Roboto Mono,monospace;font-size:.8rem;font-weight:500}"]],data:{}}),Rf=al["\u0275ccf"]("datatypes-drop-dialog",Sf,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"datatypes-drop-dialog",[],null,null,null,jt,If)),al["\u0275did"](1,49152,null,0,Sf,[Yp.m,Ns,As],null,null)],null,null)},{},{},[]),Mf=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Pf=function(){function e(e,t){var n=this;this.store=e,this.dialog=t,this.displayedColumns="['dataverseName', 'datasetName', 'indexName', 'indexStructure', 'isPrimary', 'timestamp', 'pendingOp']",this.errorMessage="",this.idxName="",this.loaded$=this.store.select("index"),this.store.select(function(e){return e.index.createIndexName}).subscribe(function(e){n.idxName=e}),this.store.select(function(e){return e.index.dropIndexName}).subscribe(function(e){n.idxName=e}),this.store.select(function(e){return e.index.createIndexSuccess}).subscribe(function(e){!0===e&&(n.getIndexes(),n.errorMessage="SUCCEED: CREATE INDEX "+n.idxName)}),this.store.select(function(e){return e.index.createIndexError}).subscribe(function(e){e.errors&&(n.errorMessage="ERROR: "+e.errors[0].msg)}),this.store.select(function(e){return e.index.dropIndexSuccess}).subscribe(function(e){!0===e&&(n.getIndexes(),n.errorMessage="SUCCEED: DROP INDEX "+n.idxName)}),this.store.select(function(e){return e.index.dropIndexError}).subscribe(function(e){e.errors&&(n.errorMessage="ERROR: "+e.errors[0].msg)})}return e.prototype.getIndexes=function(){this.store.dispatch(new Bp("-"))},e.prototype.ngOnInit=function(){this.dataSource=new Lf(this.store)},e.prototype.openCreateIndexDialog=function(){var e=this;this.dialog.open(Nf,{width:"420px",data:{name:this.indexName}}).afterClosed().subscribe(function(t){e.indexName=t})},e.prototype.openDropIndexDialog=function(){var e=this;this.dialog.open(Af,{width:"420px",data:{name:this.indexName}}).afterClosed().subscribe(function(t){e.indexName=t})},e.prototype.onClick=function(){this.errorMessage=""},e.prototype.highlight=function(e){this.output=JSON.stringify(e,null,2)},e.prototype.cleanUp=function(){this.errorMessage="",this.inputQuery.cleanUp()},e}(),Nf=function(){function e(e,t,n){this.store=e,this.dialogCreateIdxRef=t,this.data=n}return e.prototype.onClick=function(){this.store.dispatch(new qp(this.data.indexName)),this.dialogCreateIdxRef.close()},e.prototype.onNoClick=function(){this.dialogCreateIdxRef.close()},e}(),Af=function(){function e(e,t,n){this.store=e,this.dialogDropIdxRef=t,this.data=n}return e.prototype.onClick=function(){console.log(this.data.indexName),this.store.dispatch(new Kp(this.data.indexName)),this.dialogDropIdxRef.close()},e.prototype.onNoClick=function(){this.dialogDropIdxRef.close()},e}(),Lf=function(e){function t(t){var n=e.call(this)||this;return n.store=t,n.indexes$=n.store.select(function(e){return e.index.indexes.results}),n}return Mf(t,e),t.prototype.connect=function(){return this.indexes$},t.prototype.disconnect=function(){},t}(Lc),Ff=al["\u0275crt"]({encapsulation:0,styles:[[".container[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row;flex-flow:row;padding:0;margin:0}.master[_ngcontent-%COMP%]{width:60%}.detail[_ngcontent-%COMP%]{width:40%}.indexes-card[_ngcontent-%COMP%]{margin:0 auto;margin-top:16px;min-height:450px;max-height:450px;width:95%}.indexes-card[_ngcontent-%COMP%], .indexes-details-card[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;padding:0;overflow:hidden}.indexes-details-card[_ngcontent-%COMP%]{margin:0 auto;margin:16px;min-height:716px;max-height:716px}.icon[_ngcontent-%COMP%]{padding:0 14px 0 0;margin:0}.indexes-selector[_ngcontent-%COMP%]{min-height:42px;max-height:42px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:.8rem;font-weight:500;background-color:#fff;border:1px solid rgba(54,147,209,.87)}.indexes-content[_ngcontent-%COMP%]{position:relative;top:0;left:0;margin:0;padding:0;overflow:auto}.indexes-table[_ngcontent-%COMP%]{margin:8px!important;height:330px;overflow:auto}.spacer[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.example-header[_ngcontent-%COMP%]{min-height:64px;padding-left:24px}.mat-table[_ngcontent-%COMP%]{overflow:auto}.customWidthClass[_ngcontent-%COMP%]{-webkit-box-flex:0;-ms-flex:0 0 75px;flex:0 0 75px}.mat-cell.mat-column-DataverseName[_ngcontent-%COMP%], .mat-column-DataverseName[_ngcontent-%COMP%], .mat-header-cell.mat-column-DataverseName[_ngcontent-%COMP%]{text-align:left}.header-dataversename-cell[_ngcontent-%COMP%]{text-transform:uppercase}.header-datasetname-cell[_ngcontent-%COMP%], .header-dataversename-cell[_ngcontent-%COMP%], .indexes-dataversename-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 150px;flex:0 0 150px}.header-datasetname-cell[_ngcontent-%COMP%]{text-transform:uppercase}.header-indexname-cell[_ngcontent-%COMP%], .indexes-datasetname-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 150px;flex:0 0 150px}.header-indexname-cell[_ngcontent-%COMP%]{text-transform:uppercase}.indexes-indexname-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 150px;flex:0 0 150px}.header-indexestructure-cell[_ngcontent-%COMP%]{text-transform:uppercase}.header-indexestructure-cell[_ngcontent-%COMP%], .header-isprimary-cell[_ngcontent-%COMP%], .indexes-indexstructure-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:center;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 150px;flex:0 0 150px}.header-isprimary-cell[_ngcontent-%COMP%]{text-transform:uppercase}.indexes-isprimary-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:center;color:rgba(0,0,0,.87);-webkit-box-flex:0}.header-timestamp-cell[_ngcontent-%COMP%], .indexes-isprimary-cell[_ngcontent-%COMP%], .indexes-timestamp-cell[_ngcontent-%COMP%]{-ms-flex:0 0 150px;flex:0 0 150px}.header-groupname-cell[_ngcontent-%COMP%]{text-transform:uppercase}.header-groupname-cell[_ngcontent-%COMP%], .indexes-groupname-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 150px;flex:0 0 150px}.header-timestamp-cell[_ngcontent-%COMP%]{text-transform:uppercase}.header-timestamp-cell[_ngcontent-%COMP%], .indexes-timestamp-cell[_ngcontent-%COMP%]{border:none;font-size:12px;letter-spacing:1px;line-height:24px;font-weight:400;margin:0;padding:0 16px;text-align:left;color:rgba(0,0,0,.87);-webkit-box-flex:0;-ms-flex:0 0 250px;flex:0 0 250px}.example-header[_ngcontent-%COMP%]{min-height:56px;max-height:56px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 24px 0;font-size:20px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;border-bottom:1px solid transparent}.mat-form-field[_ngcontent-%COMP%]{font-size:14px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-top:8px}.example-no-results[_ngcontent-%COMP%]{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:24px;font-size:12px;font-style:italic}.actions[_ngcontent-%COMP%], .example-no-results[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex}.actions[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.1);color:rgba(54,147,209,.87);padding:8px;margin:0}.error-message[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.1);color:rgba(209,54,54,.87);padding-top:10px;padding-left:20px;text-overflow:ellipsis}.output[_ngcontent-%COMP%]{padding-left:16px}"]],data:{}}),jf=al["\u0275crt"]({encapsulation:0,styles:[[".index-dialog[_ngcontent-%COMP%]{font-family:Roboto Mono,monospace;font-size:.8rem;font-weight:500}"]],data:{}}),Vf=al["\u0275ccf"]("index-create-dialog",Nf,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"index-create-dialog",[],null,null,null,rn,jf)),al["\u0275did"](1,49152,null,0,Nf,[Yp.m,Ns,As],null,null)],null,null)},{},{},[]),zf=al["\u0275crt"]({encapsulation:0,styles:[[".index-dialog[_ngcontent-%COMP%]{font-family:Roboto Mono,monospace;font-size:.8rem;font-weight:500}"]],data:{}}),Bf=al["\u0275ccf"]("index-drop-dialog",Af,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"index-drop-dialog",[],null,null,null,on,zf)),al["\u0275did"](1,49152,null,0,Af,[Yp.m,Ns,As],null,null)],null,null)},{},{},[]),Hf=function(){},Wf=al["\u0275crt"]({encapsulation:0,styles:[[".awc-navbar[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.1);overflow:hidden}.awc-navbar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:none}.awc-navbar-header[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 16px}.awc-navbar-header[_ngcontent-%COMP%] > .mat-button[_ngcontent-%COMP%]:last-child{margin-left:auto}.flex-spacer[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.awc-asterixDB-logo[_ngcontent-%COMP%]{height:26px;margin:0 4px 3px 0;vertical-align:middle}.awc-github-logo[_ngcontent-%COMP%]{height:21px;margin:0 7px 2px 0;vertical-align:middle}.awc-navbar-link[_ngcontent-%COMP%]{text-decoration:inherit;-webkit-box-flex:1;-ms-flex:1;flex:1}"]],data:{}}),qf=function(){function e(){}return e.prototype.create=function(e){return"undefined"==typeof MutationObserver?null:new MutationObserver(e)},e}(),Uf=function(){function e(e,t,n){this._mutationObserverFactory=e,this._elementRef=t,this._ngZone=n,this.event=new al.EventEmitter,this._debouncer=new ml.Subject}return e.prototype.ngAfterContentInit=function(){var e=this;this.debounce>0?this._ngZone.runOutsideAngular(function(){e._debouncer.pipe(_(e.debounce)).subscribe(function(t){return e.event.emit(t)})}):this._debouncer.subscribe(function(t){return e.event.emit(t)}),this._observer=this._ngZone.runOutsideAngular(function(){return e._mutationObserverFactory.create(function(t){e._debouncer.next(t)})}),this._observer&&this._observer.observe(this._elementRef.nativeElement,{characterData:!0,childList:!0,subtree:!0})},e.prototype.ngOnDestroy=function(){this._observer&&this._observer.disconnect(),this._debouncer.complete()},e}(),Gf=function(){},Kf=function(){function e(e,t){this._elementRef=e,this._ngZone=t}return e.prototype.alignToElement=function(e){var t=this;this.show(),"undefined"!=typeof requestAnimationFrame?this._ngZone.runOutsideAngular(function(){requestAnimationFrame(function(){return t._setStyles(e)})}):this._setStyles(e)},e.prototype.show=function(){this._elementRef.nativeElement.style.visibility="visible"},e.prototype.hide=function(){this._elementRef.nativeElement.style.visibility="hidden"},e.prototype._setStyles=function(e){var t=this._elementRef.nativeElement;t.style.left=e?(e.offsetLeft||0)+"px":"0",t.style.width=e?(e.offsetWidth||0)+"px":"0"},e}(),$f=function(e){function t(t){var n=e.call(this)||this;return n._viewContainerRef=t,n.textLabel="",n._contentPortal=null,n._labelChange=new ml.Subject,n._disableChange=new ml.Subject,n.position=null,n.origin=null,n.isActive=!1,n}return Object(bl.__extends)(t,e),Object.defineProperty(t.prototype,"content",{get:function(){return this._contentPortal},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(e){e.hasOwnProperty("textLabel")&&this._labelChange.next(),e.hasOwnProperty("disabled")&&this._disableChange.next()},t.prototype.ngOnDestroy=function(){this._disableChange.complete(),this._labelChange.complete()},t.prototype.ngOnInit=function(){this._contentPortal=new Ul(this._content,this._viewContainerRef)},t}(D(function(){})),Zf=function(e){function t(t,n,r){var i=e.call(this,t,n)||this;return i._host=r,i}return Object(bl.__extends)(t,e),t.prototype.ngOnInit=function(){var e=this;this._host._isCenterPosition(this._host._position)&&this.attach(this._host._content),this._centeringSub=this._host._beforeCentering.subscribe(function(t){t&&(e.hasAttached()||e.attach(e._host._content))}),this._leavingSub=this._host._afterLeavingCenter.subscribe(function(){e.detach()})},t.prototype.ngOnDestroy=function(){this._centeringSub&&!this._centeringSub.closed&&this._centeringSub.unsubscribe(),this._leavingSub&&!this._leavingSub.closed&&this._leavingSub.unsubscribe()},t}($l),Qf=function(){function e(e,t){this._elementRef=e,this._dir=t,this._onCentering=new al.EventEmitter,this._beforeCentering=new al.EventEmitter,this._afterLeavingCenter=new al.EventEmitter,this._onCentered=new al.EventEmitter(!0)}return Object.defineProperty(e.prototype,"position",{set:function(e){this._position=e<0?"ltr"==this._getLayoutDirection()?"left":"right":e>0?"ltr"==this._getLayoutDirection()?"right":"left":"center"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"origin",{set:function(e){if(null!=e){var t=this._getLayoutDirection();this._origin="ltr"==t&&e<=0||"rtl"==t&&e>0?"left":"right"}},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){"center"==this._position&&this._origin&&(this._position="left"==this._origin?"left-origin-center":"right-origin-center")},e.prototype._onTranslateTabStarted=function(e){var t=this._isCenterPosition(e.toState);this._beforeCentering.emit(t),t&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)},e.prototype._onTranslateTabComplete=function(e){this._isCenterPosition(e.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(e.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()},e.prototype._getLayoutDirection=function(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"},e.prototype._isCenterPosition=function(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e},e}(),Yf=0,Xf=function(e){function t(t,n){var r=e.call(this,t)||this;return r._changeDetectorRef=n,r._indexToSelect=0,r._tabBodyWrapperHeight=0,r._tabsSubscription=Cl.a.EMPTY,r._tabLabelSubscription=Cl.a.EMPTY,r._dynamicHeight=!1,r._selectedIndex=null,r.headerPosition="above",r.selectedIndexChange=new al.EventEmitter,r.focusChange=new al.EventEmitter,r.selectedTabChange=new al.EventEmitter(!0),r.selectChange=r.selectedTabChange,r._groupId=Yf++,r}return Object(bl.__extends)(t,e),Object.defineProperty(t.prototype,"dynamicHeight",{get:function(){return this._dynamicHeight},set:function(e){this._dynamicHeight=c(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_dynamicHeightDeprecated",{get:function(){return this._dynamicHeight},set:function(e){this._dynamicHeight=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectedIndex",{get:function(){return this._selectedIndex},set:function(e){this._indexToSelect=d(e,null)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"backgroundColor",{get:function(){return this._backgroundColor},set:function(e){var t=this._elementRef.nativeElement;t.classList.remove("mat-background-"+this.backgroundColor),e&&t.classList.add("mat-background-"+e),this._backgroundColor=e},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentChecked=function(){var e=this,t=this._indexToSelect=Math.min(this._tabs.length-1,Math.max(this._indexToSelect||0,0));if(this._selectedIndex!=t&&null!=this._selectedIndex){var n=this._createChangeEvent(t);this.selectedTabChange.emit(n),Promise.resolve().then(function(){return e.selectedIndexChange.emit(t)})}this._tabs.forEach(function(n,r){n.position=r-t,n.isActive=r===t,null==e._selectedIndex||0!=n.position||n.origin||(n.origin=t-e._selectedIndex)}),this._selectedIndex!==t&&(this._selectedIndex=t,this._changeDetectorRef.markForCheck())},t.prototype.ngAfterContentInit=function(){var e=this;this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(function(){e._subscribeToTabLabels(),e._changeDetectorRef.markForCheck()})},t.prototype.ngOnDestroy=function(){this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()},t.prototype._focusChanged=function(e){this.focusChange.emit(this._createChangeEvent(e))},t.prototype._createChangeEvent=function(e){var t=new function(){};return t.index=e,this._tabs&&this._tabs.length&&(t.tab=this._tabs.toArray()[e]),t},t.prototype._subscribeToTabLabels=function(){var e=this;this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Ll.a.apply(void 0,this._tabs.map(function(e){return e._disableChange}).concat(this._tabs.map(function(e){return e._labelChange}))).subscribe(function(){e._changeDetectorRef.markForCheck()})},t.prototype._getTabLabelId=function(e){return"mat-tab-label-"+this._groupId+"-"+e},t.prototype._getTabContentId=function(e){return"mat-tab-content-"+this._groupId+"-"+e},t.prototype._setTabBodyWrapperHeight=function(e){if(this._dynamicHeight&&this._tabBodyWrapperHeight){var t=this._tabBodyWrapper.nativeElement;t.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(t.style.height=e+"px")}},t.prototype._removeTabBodyWrapperHeight=function(){this._tabBodyWrapperHeight=this._tabBodyWrapper.nativeElement.clientHeight,this._tabBodyWrapper.nativeElement.style.height=""},t.prototype._handleClick=function(e,t,n){e.disabled||(this.selectedIndex=t.focusIndex=n)},t.prototype._getTabIndex=function(e,t){return e.disabled?null:this.selectedIndex===t?0:-1},t}(I(R(function(e){this._elementRef=e}),"primary")),Jf=function(e){function t(t){var n=e.call(this)||this;return n.elementRef=t,n}return Object(bl.__extends)(t,e),t.prototype.focus=function(){this.elementRef.nativeElement.focus()},t.prototype.getOffsetLeft=function(){return this.elementRef.nativeElement.offsetLeft},t.prototype.getOffsetWidth=function(){return this.elementRef.nativeElement.offsetWidth},t}(D(function(){})),eh=function(e){function t(t,n,r,i){var o=e.call(this)||this;return o._elementRef=t,o._changeDetectorRef=n,o._viewportRuler=r,o._dir=i,o._focusIndex=0,o._scrollDistance=0,o._selectedIndexChanged=!1,o._realignInkBar=Cl.a.EMPTY,o._showPaginationControls=!1,o._disableScrollAfter=!0,o._disableScrollBefore=!0,o._selectedIndex=0,o.selectFocusedIndex=new al.EventEmitter,o.indexFocused=new al.EventEmitter,o}return Object(bl.__extends)(t,e),Object.defineProperty(t.prototype,"selectedIndex",{get:function(){return this._selectedIndex},set:function(e){e=d(e),this._selectedIndexChanged=this._selectedIndex!=e,this._selectedIndex=e,this._focusIndex=e},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentChecked=function(){this._tabLabelCount!=this._labelWrappers.length&&(this._updatePagination(),this._tabLabelCount=this._labelWrappers.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())},t.prototype._handleKeydown=function(e){switch(e.keyCode){case 39:this._focusNextTab();break;case 37:this._focusPreviousTab();break;case 13:case 32:this.selectFocusedIndex.emit(this.focusIndex),e.preventDefault()}},t.prototype.ngAfterContentInit=function(){var e=this,t=this._dir?this._dir.change:vl(null),n=this._viewportRuler.change(150),r=function(){e._updatePagination(),e._alignInkBarToSelectedTab()};"undefined"!=typeof requestAnimationFrame?requestAnimationFrame(r):r(),this._realignInkBar=Object(Ll.a)(t,n).subscribe(r)},t.prototype.ngOnDestroy=function(){this._realignInkBar.unsubscribe()},t.prototype._onContentChanges=function(){this._updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()},t.prototype._updatePagination=function(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()},Object.defineProperty(t.prototype,"focusIndex",{get:function(){return this._focusIndex},set:function(e){this._isValidIndex(e)&&this._focusIndex!=e&&(this._focusIndex=e,this.indexFocused.emit(e),this._setTabFocus(e))},enumerable:!0,configurable:!0}),t.prototype._isValidIndex=function(e){if(!this._labelWrappers)return!0;var t=this._labelWrappers?this._labelWrappers.toArray()[e]:null;return!!t&&!t.disabled},t.prototype._setTabFocus=function(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._labelWrappers&&this._labelWrappers.length){this._labelWrappers.toArray()[e].focus();var t=this._tabListContainer.nativeElement,n=this._getLayoutDirection();t.scrollLeft="ltr"==n?0:t.scrollWidth-t.offsetWidth}},t.prototype._moveFocus=function(e){if(this._labelWrappers)for(var t=this._labelWrappers.toArray(),n=this.focusIndex+e;n<t.length&&n>=0;n+=e)if(this._isValidIndex(n))return void(this.focusIndex=n)},t.prototype._focusNextTab=function(){this._moveFocus("ltr"==this._getLayoutDirection()?1:-1)},t.prototype._focusPreviousTab=function(){this._moveFocus("ltr"==this._getLayoutDirection()?-1:1)},t.prototype._getLayoutDirection=function(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"},t.prototype._updateTabScrollPosition=function(){var e=this.scrollDistance,t="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform="translate3d("+t+"px, 0, 0)"},Object.defineProperty(t.prototype,"scrollDistance",{get:function(){return this._scrollDistance},set:function(e){this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),e)),this._scrollDistanceChanged=!0,this._checkScrollingControls()},enumerable:!0,configurable:!0}),t.prototype._scrollHeader=function(e){this.scrollDistance+=("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3},t.prototype._scrollToLabel=function(e){var t=this._labelWrappers?this._labelWrappers.toArray()[e]:null;if(t){var n,r,i=this._tabListContainer.nativeElement.offsetWidth;"ltr"==this._getLayoutDirection()?r=(n=t.getOffsetLeft())+t.getOffsetWidth():n=(r=this._tabList.nativeElement.offsetWidth-t.getOffsetLeft())-t.getOffsetWidth();var o=this.scrollDistance,l=this.scrollDistance+i;n<o?this.scrollDistance-=o-n+60:r>l&&(this.scrollDistance+=r-l+60)}},t.prototype._checkPaginationEnabled=function(){var e=this._tabList.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e},t.prototype._checkScrollingControls=function(){this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck()},t.prototype._getMaxScrollDistance=function(){return this._tabList.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0},t.prototype._alignInkBarToSelectedTab=function(){var e=this._labelWrappers&&this._labelWrappers.length?this._labelWrappers.toArray()[this.selectedIndex].elementRef.nativeElement:null;this._inkBar.alignToElement(e)},t}(R(function(){})),th=function(){},nh=al["\u0275crt"]({encapsulation:2,styles:[".mat-tab-group{display:flex;flex-direction:column}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:0;opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}@media (max-width:600px){.mat-tab-label{padding:0 12px}}@media (max-width:960px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs] .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height .5s cubic-bezier(.35,0,.25,1)}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}"],data:{}}),rh=al["\u0275crt"]({encapsulation:2,styles:[".mat-tab-body-content{-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}"],data:{animation:[{type:7,name:"translateTab",definitions:[{type:0,name:"center, void, left-origin-center, right-origin-center",styles:{type:6,styles:{transform:"none"},offset:null},options:void 0},{type:0,name:"left",styles:{type:6,styles:{transform:"translate3d(-100%, 0, 0)"},offset:null},options:void 0},{type:0,name:"right",styles:{type:6,styles:{transform:"translate3d(100%, 0, 0)"},offset:null},options:void 0},{type:1,expr:"* => left, * => right, left => center, right => center",animation:{type:4,styles:null,timings:"500ms cubic-bezier(0.35, 0, 0.25, 1)"},options:null},{type:1,expr:"void => left-origin-center",animation:[{type:6,styles:{transform:"translate3d(-100%, 0, 0)"},offset:null},{type:4,styles:null,timings:"500ms cubic-bezier(0.35, 0, 0.25, 1)"}],options:null},{type:1,expr:"void => right-origin-center",animation:[{type:6,styles:{transform:"translate3d(100%, 0, 0)"},offset:null},{type:4,styles:null,timings:"500ms cubic-bezier(0.35, 0, 0.25, 1)"}],options:null}],options:{}}]}}),ih=al["\u0275crt"]({encapsulation:2,styles:[".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:0;opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}@media (max-width:600px){.mat-tab-label{min-width:72px}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.mat-tab-header-pagination{position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-pagination-after,.mat-tab-header-rtl .mat-tab-header-pagination-before{padding-right:4px}.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:'';height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-list{flex-grow:1;position:relative;transition:transform .5s cubic-bezier(.35,0,.25,1)}.mat-tab-labels{display:flex}"],data:{}}),oh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),lh=n("QhpF"),ah=n("/zAi"),sh=n("H0Ur"),uh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),ch=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),dh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),ph=function(){function e(e,t){this.store=e,this.changeDetector=t,this.nodesAll=[],this.nodesDatasets=[],this.nodesDatatypes=[],this.nodesIndexes=[]}return e.prototype.ngOnInit=function(){var e=this;this.store.select(function(e){return e.metadata.tree}).subscribe(function(t){e.nodesAll=[],e.nodesDatasets=[],e.nodesDatatypes=[],e.nodesIndexes=[];var n=[],r=[],i=[],o={label:"",children:[]};o.label="DATAVERSES",o.children=[];for(var l=0;l<t.length;l++){var a={label:"",children:[]};if(a.label=t[l].DataverseName,o.children.push(a),t[l].Datasets.length){var s={label:"",children:[]};s.label="DATASETS",a.children.push(s);for(var u=0;u<t[l].Datasets.length;u++){var c={label:"",children:[]};if(c.label=t[l].Datasets[u].DatasetName,t[l].Datasets[u].Datatype){var d={label:"",children:[]};if(d.label="Datatype: "+t[l].Datasets[u].Datatype.DatatypeName,t[l].Datasets[u].Datatype.Derived&&t[l].Datasets[u].Datatype.Derived.Record){var p={label:"",leaf:!0,expanded:!0,children:[]};p.label="FIELDS";for(var f=0;f<t[l].Datasets[u].Datatype.Derived.Record.Fields.length;f++){var h={label:"",children:[]};h.label=t[l].Datasets[u].Datatype.Derived.Record.Fields[f].FieldName+": "+t[l].Datasets[u].Datatype.Derived.Record.Fields[f].FieldType,p.children.push(h)}d.children.push(p)}c.children.push(d),d.label=t[l].Datasets[u].Datatype.DatatypeName,r.push(d)}if(t[l].Datasets[u].Indexes.length){var m={label:"",children:[]};for(m.label="INDEXES",f=0;f<t[l].Datasets[u].Indexes.length;f++){var g={label:"",children:[]};g.label=t[l].Datasets[u].Indexes[f].IndexName;var y={label:"",children:[]};if(y.label="isPrimary: "+t[l].Datasets[u].Indexes[f].IsPrimary,g.children.push(y),t[l].Datasets[u].Indexes[f].SearchKey){var v={label:"",children:[]};v.label="SEARCH KEY";for(var b=0;b<t[l].Datasets[u].Indexes[f].SearchKey.length;b++){var _={label:"",children:[]};_.label=t[l].Datasets[u].Indexes[f].SearchKey[b],v.children.push(_)}g.children.push(v),n.push(g)}m.children.push(g)}c.children.push(m),s.children.push(c),i.push(c)}}}}e.nodesAll.push(o);var w={label:"",children:[]};w.label="DATASETS",w.children=i,e.nodesDatasets.push(w);var x={label:"",children:[]};x.label="DATATYPES",x.children=r,e.nodesDatatypes.push(x);var C={label:"",children:[]};C.label="INDEXES",C.children=n,e.nodesIndexes.push(C),e.changeDetector.detectChanges()})},e.prototype.nodeSelectAll=function(e){if(e.node.parent&&"DATASETS"===e.node.parent.label){var t=e.node.label.replace(/-;-/g);this.store.dispatch(new ap(t))}},e.prototype.nodeSelectDataset=function(e){if(e.node.parent&&"DATASETS"===e.node.parent.label){var t=e.node.label.replace(/-;-/g);this.store.dispatch(new ap(t))}},e}(),fh=al["\u0275crt"]({encapsulation:0,styles:[[".metadata-card[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;padding:0;margin:0 auto;margin-top:10px;margin-bottom:10px;min-height:150px;box-shadow:none!important;width:92%;overflow:hidden}.example-icon[_ngcontent-%COMP%]{padding:0 14px 0 0;margin:0}.spacer[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.metadata-selector[_ngcontent-%COMP%]{min-height:42px;max-height:42px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:.8rem;font-weight:500;background-color:#fff;border:1px solid rgba(54,147,209,.87)}.metadata-content-area[_ngcontent-%COMP%]{padding:10px;margin:0}.metadata-tree[_ngcontent-%COMP%]{min-height:30px;font-size:.8rem;font-weight:500}.metadata-dataindexes[_ngcontent-%COMP%], .metadata-datasets[_ngcontent-%COMP%], .metadata-datatypes[_ngcontent-%COMP%]{margin-top:10px;margin-bottom:10px}.metadata-tree.ui-tree[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;border:none!important;background-color:red}.refresh-button[_ngcontent-%COMP%]{float:left;margin-top:5px}.actions[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.1);color:rgba(54,147,209,.87);padding:5px;margin:0}"]],data:{}}),hh=function(){function e(){this.change=new al.EventEmitter,this.focus=new al.EventEmitter,this.blur=new al.EventEmitter,this.instance=null,this._value="",_d.defineMode("asterix",function(){var e=["drop","dataverse","dataset","if","exists","create","use","type","as","closed","primary","key","hints","cardinality","index","on","btree","rtree","keyword","for","in","Metadata","Dataset","return","Index","load","using","localfs","path","format","from","in","with","group","by","select","let","where","order","asc","desc","limit","keeping","offset","distinct","or","and","boolean","tinyint","smallint","integer","bigint","float","double","string","binary","hex","base64","point","line","rectangle","circle","polygon","date","time","datetime","duration","interval","uuid","null","missing","DROP","DATAVERSE","IF","EXISTS","CREATE","USE","TYPE","AS","DATASET","PRIMARY","KEY","INDEX","SELECT","VALUE","INSERT","INTO","FROM","WHERE","AND","SOME","IN","SATISFIES","IS","UNKNOWN","NOT","EVERY","GROUP","BY","ORDER","DESC","LIMIT","OR","SET","DELETE","LOAD","USING"],t=/[$][a-zA-Z]+(\d*)/,n=/[.](\S)*/,r=/["].*["]/,i=/['].*[']/;return{startState:function(){return{inString:!1}},token:function(o,l){if(void 0==l.newLine&&(l.newLine=!0),o.match(t))return"variable";if(o.match(n))return"dot-variable";if(o.match(r))return"string";if(o.match(i))return"string";for(var a in e)if(l.newLine&&o.match(e[a]))return"keyword";return l.newLine=" "===o.peek()||null===o.peek(),o.next(),null}}})}return Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){e!==this._value&&(this._value=e,this.onChange(e))},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){},e.prototype.ngAfterViewInit=function(){this.config=this.config||{},this.codemirrorInit(this.config)},e.prototype.codemirrorInit=function(e){var t=this;this.instance=_d.fromTextArea(this.host.nativeElement,e),this.instance.setValue(this._value),this.instance.setSize(null,90),this.instance.on("change",function(){t.updateValue(t.instance.getValue())}),this.instance.on("focus",function(){t.focus.emit()}),this.instance.on("blur",function(){t.blur.emit()})},e.prototype.updateValue=function(e){this.value=e,this.onTouched(),this.change.emit(e)},e.prototype.writeValue=function(e){this._value=e||"",this.instance&&this.instance.setValue(this._value)},e.prototype.onChange=function(e){},e.prototype.onTouched=function(){},e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e}(),mh=al["\u0275crt"]({encapsulation:0,styles:[["code[_ngcontent-%COMP%]{width:100%;height:100%;padding:10%;margin:0;overflow-wrap:break-word;word-break:break-all;background-color:pink}"]],data:{}}),gh=function(){function e(e){var t=this;this.store=e,this.dataverses=[],this.datatypes=[],this.datasets=[],this.indexes=[],this.datasetName="",this.dataverseName="",this.queryString="",this.codemirrorConfig={mode:"asterix",lineWrapping:!0,showCursorWhenSelecting:!0,autofocus:!0},this.guideSelectedDataset$=this.store.select(function(e){return e.dataset.guideSelectsDataset}),this.guideSelectedDataset$.subscribe(function(e){if(e){t.datasetName=e;for(var n=0;n<t.datasets.length;n++)t.datasets[n].DatasetName===t.datasetName&&(t.dataverseName=t.datasets[n].DataverseName);t.queryString="USE "+t.dataverseName+"; SELECT * FROM "+t.datasetName}}),this.dataverses$=this.store.select(function(e){return e.dataverse.dataverses.results}),this.dataverses$.subscribe(function(e){t.dataverses=e}),this.datasets$=this.store.select(function(e){return e.dataset.datasets.results}),this.datasets$.subscribe(function(e){t.datasets=e})}return e.prototype.getQueryResults=function(e){this.store.dispatch(new Dd(e))},e.prototype.onClick=function(){this.getQueryResults(this.queryString.replace(/\n/g," "))},e}(),yh=al["\u0275crt"]({encapsulation:0,styles:[[".input-card[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;padding:0;margin:10px;height:200px;width:100%;min-height:150px}.toolbar-icon[_ngcontent-%COMP%]{padding:0 14px 0 0;margin:0}.spacer[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.input-selector[_ngcontent-%COMP%]{max-height:42px;min-height:42px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:.8rem;font-weight:500;background-color:#fff;border:1px solid rgba(54,147,209,.87)}.content-area[_ngcontent-%COMP%]{color:rgba(0,0,0,.87);padding:0;margin:0;overflow:none}.codemirror-container[_ngcontent-%COMP%]{width:95%;height:98%;padding:0;margin:0 auto;font-size:14px;line-height:1.8;background-color:red}.actions[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.1);color:rgba(54,147,209,.87);padding-left:5px;margin:0}"]],data:{}}),vh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),bh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),_h=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),wh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),xh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),Ch=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),Eh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),Sh=n("pQo2"),Oh=n("wRXj"),Th=n("Rs3a"),kh=n("4cOY"),Dh=n("P0cP"),Ih=al["\u0275crt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"panelState",definitions:[{type:0,name:"hidden",styles:{type:6,styles:{opacity:0},offset:null},options:void 0},{type:0,name:"visible",styles:{type:6,styles:{opacity:1},offset:null},options:void 0},{type:1,expr:"visible => hidden",animation:{type:4,styles:null,timings:"400ms ease-in"},options:null},{type:1,expr:"hidden => visible",animation:{type:4,styles:null,timings:"400ms ease-out"},options:null}],options:{}}]}}),Rh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),Mh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),Ph=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),Nh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),Ah=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),Lh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),Fh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),jh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),Vh=al["\u0275crt"]({encapsulation:2,styles:[],data:{}}),zh=D(function(){}),Bh=0,Hh=function(){},Wh=function(e){function t(t){var n=e.call(this)||this;return n._changeDetector=t,n._value=null,n._name="mat-button-toggle-group-"+Bh++,n._vertical=!1,n._selected=null,n._controlValueAccessorChangeFn=function(){},n._onTouched=function(){},n.valueChange=new al.EventEmitter,n.change=new al.EventEmitter,n}return Object(bl.__extends)(t,e),Object.defineProperty(t.prototype,"name",{get:function(){return this._name},set:function(e){this._name=e,this._updateButtonToggleNames()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"vertical",{get:function(){return this._vertical},set:function(e){this._vertical=c(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._value},set:function(e){this._value!=e&&(this._value=e,this.valueChange.emit(e),this._updateSelectedButtonToggleFromValue())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=e,this.value=e?e.value:null,e&&!e.checked&&(e.checked=!0)},enumerable:!0,configurable:!0}),t.prototype._updateButtonToggleNames=function(){var e=this;this._buttonToggles&&this._buttonToggles.forEach(function(t){t.name=e._name})},t.prototype._updateSelectedButtonToggleFromValue=function(){var e=this;if(null!=this._buttonToggles&&(null==this._selected||this._selected.value!=this._value)){var t=this._buttonToggles.filter(function(t){return t.value==e._value})[0];t?this.selected=t:null==this.value&&(this.selected=null,this._buttonToggles.forEach(function(e){e.checked=!1}))}},t.prototype._emitChangeEvent=function(){var e=new Hh;e.source=this._selected,e.value=this._value,this._controlValueAccessorChangeFn(e.value),this.change.emit(e)},t.prototype.writeValue=function(e){this.value=e,this._changeDetector.markForCheck()},t.prototype.registerOnChange=function(e){this._controlValueAccessorChangeFn=e},t.prototype.registerOnTouched=function(e){this._onTouched=e},t.prototype.setDisabledState=function(e){this.disabled=e,this._markButtonTogglesForCheck()},t.prototype._markButtonTogglesForCheck=function(){this._buttonToggles&&this._buttonToggles.forEach(function(e){return e._markForCheck()})},t}(zh),qh=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._vertical=!1,t}return Object(bl.__extends)(t,e),Object.defineProperty(t.prototype,"vertical",{get:function(){return this._vertical},set:function(e){this._vertical=c(e)},enumerable:!0,configurable:!0}),t}(zh),Uh=function(){function e(e,t,n,r,i,o){var l=this;this._changeDetectorRef=n,this._buttonToggleDispatcher=r,this._elementRef=i,this._focusMonitor=o,this.ariaLabel="",this.ariaLabelledby=null,this._checked=!1,this._disabled=!1,this._value=null,this._isSingleSelector=!1,this._removeUniqueSelectionListener=function(){},this.change=new al.EventEmitter,this.buttonToggleGroup=e,this.buttonToggleGroupMultiple=t,this.buttonToggleGroup?(this._removeUniqueSelectionListener=r.listen(function(e,t){e!=l.id&&t==l.name&&(l.checked=!1,l._changeDetectorRef.markForCheck())}),this._type="radio",this.name=this.buttonToggleGroup.name,this._isSingleSelector=!0):(this._type="checkbox",this._isSingleSelector=!1)}return Object.defineProperty(e.prototype,"inputId",{get:function(){return this.id+"-input"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"checked",{get:function(){return this._checked},set:function(e){this._isSingleSelector&&e&&(this._buttonToggleDispatcher.notify(this.id,this.name),this._changeDetectorRef.markForCheck()),this._checked=e,e&&this._isSingleSelector&&this.buttonToggleGroup.value!=this.value&&(this.buttonToggleGroup.selected=this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this._value!=e&&(null!=this.buttonToggleGroup&&this.checked&&(this.buttonToggleGroup.value=e),this._value=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled||null!=this.buttonToggleGroup&&this.buttonToggleGroup.disabled||null!=this.buttonToggleGroupMultiple&&this.buttonToggleGroupMultiple.disabled},set:function(e){this._disabled=c(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){null==this.id&&(this.id="mat-button-toggle-"+Bh++),this.buttonToggleGroup&&this._value==this.buttonToggleGroup.value&&(this._checked=!0),this._focusMonitor.monitor(this._elementRef.nativeElement,!0)},e.prototype.focus=function(){this._inputElement.nativeElement.focus()},e.prototype._toggle=function(){this.checked=!this.checked},e.prototype._onInputChange=function(e){if(e.stopPropagation(),this._isSingleSelector){var t=this.buttonToggleGroup.selected!=this;this.checked=!0,this.buttonToggleGroup.selected=this,this.buttonToggleGroup._onTouched(),t&&this.buttonToggleGroup._emitChangeEvent()}else this._toggle();this._emitChangeEvent()},e.prototype._onInputClick=function(e){e.stopPropagation()},e.prototype._emitChangeEvent=function(){var e=new Hh;e.source=this,e.value=this._value,this.change.emit(e)},e.prototype.ngOnDestroy=function(){this._removeUniqueSelectionListener()},e.prototype._markForCheck=function(){this._changeDetectorRef.markForCheck()},e}(),Gh=function(){},Kh=al["\u0275crt"]({encapsulation:2,styles:[".mat-button-toggle-group,.mat-button-toggle-standalone{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);position:relative;display:inline-flex;flex-direction:row;border-radius:2px;cursor:pointer;white-space:nowrap;overflow:hidden}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle-disabled .mat-button-toggle-label-content{cursor:default}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay,.mat-button-toggle.cdk-program-focused .mat-button-toggle-focus-overlay{opacity:1}.mat-button-toggle-label-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;cursor:pointer}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{border-radius:inherit;pointer-events:none;opacity:0;top:0;left:0;right:0;bottom:0;position:absolute}"],data:{}}),$h=n("bbdN"),Zh=function(){function e(e,t){var n=this;this.store=e,this.changeDetector=t,this.treeData=[],this.flattenData=[],this.dataColumns=[],this.jsonOutput="",this.selectedOutputView="NONE",this.outputQueryString="",this.toogleExpand="EXPAND TREE",this.codemirrorConfig={mode:"asterix",lineWrapping:!0,showCursorWhenSelecting:!0},this.loaded$=this.store.select(function(e){return e.sqlQuery.loaded}),this.store.select("sqlQuery").subscribe(function(e){if(e.loaded){n.selectedOutputView="TABLE",n.loading=!0,n.data=e.sqlQueryResult.results,n.treeData=[];var t=e.sqlQueryString;if(n.outputQueryString=t.length>150?": "+t.slice(0,150)+" (..)":": "+t,e.sqlQueryResult.results&&e.sqlQueryResult.results.length>0&&n.data[0]){for(var r=0;r<n.data.length;r++)n.treeData.push(n.generateTreeMenu(n.data[r],{label:"["+r+"]",children:[]}));n.loading=!1}if(n.jsonOutput=JSON.stringify(e.sqlQueryResult.results,null,2),n.data&&n.data.length>0){n.collapseAll(),n.dataColumns=[];var i=Object.keys(n.data[0]),o=i[0];if(n.data[0][o]instanceof Object){var l=Object.keys(n.data[0][o]);for(r=0;r<l.length;r++)n.dataColumns.push("object"==typeof n.data[0][o][l[r]]?{field:"nestedString"+r,header:l[r]}:{field:l[r],header:l[r]})}else for(r=0;r<i.length;r++)n.dataColumns.push({field:i[r],header:i[r]});if(n.data[0][o]instanceof Object)for(r=0;r<n.data.length;r++){l=Object.keys(n.data[r][o]);for(var a=0;a<l.length;a++)if("object"==typeof n.data[r][o][l[a]]){var s=JSON.stringify(n.data[r][o][l[a]],null,"\n");n.data[r][o]["nestedString"+a]=s}n.data[r]=n.data[r][o]}}}})}return e.prototype.generateTreeMenu=function(e,t){var n=this;void 0===t&&(t={label:"",children:[]});var r=[];return Object.keys(e).map(function(i){if("object"==typeof e[i]){var o={label:"",children:[]};(o={label:"",children:[]}).label=i;var l=n.generateTreeMenu(e[i],o);t.children?t.children.push(l):t=l}else{var a={label:"",children:[]};a.label=i+" : "+e[i],r.push(a)}}),r.length>0&&(t.children=r.concat(t.children)),t},e.prototype.ngOnInit=function(){var e=this;this.loaded$=this.store.select("sqlQuery"),this.store.select("sqlQuery").subscribe(function(t){e.queryMessage=t.sqlQueryError.errors?t.sqlQueryError.errors[0].msg:""})},e.prototype.onSelect=function(e){this.selectedOutputView=e},e.prototype.exportToCSV=function(){var e=new Blob([this.jsonOutput],{type:"text/csv;charset=utf-8"});Object($h.saveAs)(e,"Asterix-results.csv")},e.prototype.exportToText=function(){var e=this.jsonOutput,t=new Blob([e],{type:"text/plain;charset=utf-8"});Object($h.saveAs)(t,"Asterix-results.txt")},e.prototype.expandTree=function(){"EXPAND TREE"===this.toogleExpand?this.expandAll():this.collapseAll()},e.prototype.expandAll=function(){var e=this;this.toogleExpand="TREE COLLAPSE",this.treeData.forEach(function(t){e.expandRecursive(t,!0)})},e.prototype.collapseAll=function(){var e=this;this.toogleExpand="EXPAND TREE",this.treeData.forEach(function(t){e.expandRecursive(t,!1)})},e.prototype.expandRecursive=function(e,t){var n=this;e.expanded=t,e.children&&e.children.forEach(function(e){n.expandRecursive(e,t)})},e}(),Qh=al["\u0275crt"]({encapsulation:0,styles:[['.sql-results-card[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;padding:0;height:600px;width:100%;margin:10px;min-height:150px}.toolbar-icon[_ngcontent-%COMP%]{padding:0 14px 0 0;margin:0}.spacer[_ngcontent-%COMP%]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.results-selector[_ngcontent-%COMP%]{max-height:42px;min-height:42px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:.8rem;font-weight:500;background-color:#fff;border:1px solid rgba(54,147,209,.87);overflow-wrap:break-word;word-break:break-all}.content-area[_ngcontent-%COMP%]{position:relative;color:rgba(0,0,0,.87);height:500px;padding:0;margin:0;overflow:auto;font-size:.8rem;font-weight:500;font-family:Roboto,monospace}.leaf-list-open[_ngcontent-%COMP%], .root-closed[_ngcontent-%COMP%], .root-open[_ngcontent-%COMP%]{list-style-type:none}.leaf-list-open[_ngcontent-%COMP%]{padding-left:25px;color:red}.leaf-list-open.div[_ngcontent-%COMP%] .leaf-list-open.li[_ngcontent-%COMP%]{margin-left:50px!important;color:green}.leaf[_ngcontent-%COMP%]{color:blue}.leaf-list-closed[_ngcontent-%COMP%]{list-style-type:none;display:none}ul[_ngcontent-%COMP%] > .root-closed[_ngcontent-%COMP%]:before{content:"+"}ul[_ngcontent-%COMP%] > .root-open[_ngcontent-%COMP%]:before{content:"-"}.queryErrorMessage[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.1);color:rgba(209,54,54,.87);padding:5px;padding-left:10px}.metrics[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;color:rgba(54,147,209,.87);font-size:.8rem;font-weight:500}.span-results[_ngcontent-%COMP%]{padding-top:10px;padding-left:10px}.actions[_ngcontent-%COMP%]{border-top:1px solid rgba(0,0,0,.1);color:rgba(54,147,209,.87);margin:0}th[_ngcontent-%COMP%]{text-align:left!important}.datatable-header[_ngcontent-%COMP%]{color:red!important;background-color:blue}.data-viewer-container[_ngcontent-%COMP%]{padding:20px;padding-bottom:40px;height:100%;overflow:hidden}.output-group[_ngcontent-%COMP%]{margin-right:20px}.menu-export[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:500!important}.button-expand[_ngcontent-%COMP%], .button-export[_ngcontent-%COMP%]{margin-right:20px;color:rgba(54,147,209,.87)}.ui-datatable-data[_ngcontent-%COMP%] > tr[_ngcontent-%COMP%] > td[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;color:red}']],data:{}}),Yh="[Metadata Tree Query] UPDATE Metadata tree",Xh="[Metadata Tree Query] UPDATE Metadata tree Success",Jh=function(){return function(){this.type=Yh}}(),em=function(){return function(e){this.payload=e,this.type=Xh}}(),tm=function(){function e(e){var t=this;this.store=e,this.nodes=[],this.store.select(function(e){return e.metadata.tree}).subscribe(function(e){t.nodes=[];for(var n=0;n<e.length;n++)if(e[n].DataverseName){var r={id:0,name:"",children:[]};r.id=n,r.name=e[n].DataverseName;for(var i=0;i<e[n].Datasets.length;i++){var o={id:0,name:"",children:[]};o.id=i,o.name=e[n].Datasets[i].DatasetName,r.children.push(o)}t.nodes.push(r)}})}return e.prototype.treeCalc=function(){this.store.dispatch(new Jh)},e}(),nm=al["\u0275crt"]({encapsulation:0,styles:[[".query-container[_ngcontent-%COMP%]{width:100%;overflow:hidden}.metadata[_ngcontent-%COMP%], .query-container[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin:0;padding:0}.metadata[_ngcontent-%COMP%]{width:20%;border-right:1px solid rgba(0,0,0,.2)}.vertical[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:80%;overflow:hidden;margin:0;padding:1px0}.metadata-card[_ngcontent-%COMP%], .output-card[_ngcontent-%COMP%], .query-card[_ngcontent-%COMP%]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;overflow:hidden;margin:0;padding:0}"]],data:{}}),rm=function(){function e(){this.message=""}return e.prototype.tabChange=function(){this.indexes.cleanUp(),this.datasets.cleanUp(),this.datatypes.cleanUp(),this.dataverses.cleanUp()},e}(),im=al["\u0275crt"]({encapsulation:0,styles:[[".datasets[_ngcontent-%COMP%], .datatypes[_ngcontent-%COMP%], .dataverses[_ngcontent-%COMP%], .indexes[_ngcontent-%COMP%]{margin:0;min-height:750px;max-height:750px;width:100%;overflow:hidden}.metadata-menu[_ngcontent-%COMP%] .mat-tab-label{font-size:.8rem!important;font-weight:500!important}"]],data:{}}),om=function(e){this.store=e},lm=al["\u0275crt"]({encapsulation:0,styles:[[".content[_ngcontent-%COMP%]{width:95%;margin:0 auto}.menu[_ngcontent-%COMP%] .mat-tab-label{font-size:.8rem!important;font-weight:500!important}"]],data:{}}),am=function(){return function(e){this.store=e,console.log("AsterixDB Web Console Core Service"),this.store.dispatch(new Wd("-")),this.store.dispatch(new sp("-")),this.store.dispatch(new Sp("-")),this.store.dispatch(new Bp("-"))}}(),sm=al["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}}),um=al["\u0275ccf"]("awc-root",ul,function(e){return al["\u0275vid"](0,[(e()(),al["\u0275eld"](0,0,null,null,1,"awc-root",[],null,null,null,Ui,sm)),al["\u0275did"](1,49152,null,0,ul,[am],null,null)],null,null)},{},{},[]),cm=function(e,t){return!1},dm=function(e,t){return!1},pm=function(e,t,n){return[]};if("undefined"!=typeof Element){if(cm=function(e,t){return e.contains(t)},Element.prototype.matches)dm=function(e,t){return e.matches(t)};else{var fm=Element.prototype,hm=fm.matchesSelector||fm.mozMatchesSelector||fm.msMatchesSelector||fm.oMatchesSelector||fm.webkitMatchesSelector;hm&&(dm=function(e,t){return hm.apply(e,[t])})}pm=function(e,t,n){var r=[];if(n)r.push.apply(r,e.querySelectorAll(t));else{var i=e.querySelector(t);i&&r.push(i)}return r}}var mm=null,gm=!1,ym=dm,vm=cm,bm=pm,_m=function(){function e(){}return e.prototype.validateStyleProperty=function(e){return Ji(e)},e.prototype.matchesElement=function(e,t){return ym(e,t)},e.prototype.containsElement=function(e,t){return vm(e,t)},e.prototype.query=function(e,t,n){return bm(e,t,n)},e.prototype.computeStyle=function(e,t,n){return n||""},e.prototype.animate=function(e,t,n,r,i,o){return void 0===o&&(o=[]),new Rs.NoopAnimationPlayer},e}(),wm=function(){function e(){}return e.NOOP=new _m,e}(),xm=1e3,Cm="ng-trigger",Em=".ng-trigger",Sm=".ng-animating",Om=new RegExp("{{\\s*(.+?)\\s*}}","g"),Tm=/-+([a-z0-9])/g,km="*",Dm=new Set(["true","1"]),Im=new Set(["false","0"]),Rm=new RegExp("s*:selfs*,?","g"),Mm=function(){function e(e){this._driver=e}return e.prototype.build=function(e,t){var n=new Pm(t);return this._resetContextStyleTimingState(n),ho(this,so(e),n)},e.prototype._resetContextStyleTimingState=function(e){e.currentQuerySelector="",e.collectedStyles={},e.collectedStyles[""]={},e.currentTime=0},e.prototype.visitTrigger=function(e,t){var n=this,r=t.queryCount=0,i=t.depCount=0,o=[],l=[];return"@"==e.name.charAt(0)&&t.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),e.definitions.forEach(function(e){if(n._resetContextStyleTimingState(t),0==e.type){var a=e,s=a.name;s.split(/\s*,\s*/).forEach(function(e){a.name=e,o.push(n.visitState(a,t))}),a.name=s}else if(1==e.type){var u=n.visitTransition(e,t);r+=u.queryCount,i+=u.depCount,l.push(u)}else t.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:e.name,states:o,transitions:l,queryCount:r,depCount:i,options:null}},e.prototype.visitState=function(e,t){var n=this.visitStyle(e.styles,t),r=e.options&&e.options.params||null;if(n.containsDynamicStyles){var i=new Set,o=r||{};if(n.styles.forEach(function(e){if(yo(e)){var t=e;Object.keys(t).forEach(function(e){uo(t[e]).forEach(function(e){o.hasOwnProperty(e)||i.add(e)})})}}),i.size){var l=po(i.values());t.errors.push('state("'+e.name+'", ...) must define default values for all the following style substitutions: '+l.join(", "))}}return{type:0,name:e.name,style:n,options:r?{params:r}:null}},e.prototype.visitTransition=function(e,t){t.queryCount=0,t.depCount=0;var n=ho(this,so(e.animation),t);return{type:1,matchers:function(e,t){var n=[];return"string"==typeof e?e.split(/\s*,\s*/).forEach(function(e){return function(e,t,n){if(":"==e[0]){var r=function(e,t){switch(e){case":enter":return"void => *";case":leave":return"* => void";case":increment":return function(e,t){return parseFloat(t)>parseFloat(e)};case":decrement":return function(e,t){return parseFloat(t)<parseFloat(e)};default:return t.push('The transition alias value "'+e+'" is not supported'),"* => *"}}(e,n);if("function"==typeof r)return void t.push(r);e=r}var i=e.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return n.push('The provided transition expression "'+e+'" is not supported'),t;var o=i[1],l=i[2],a=i[3];t.push(mo(o,a)),"<"!=l[0]||o==km&&a==km||t.push(mo(a,o))}(e,n,t)}):n.push(e),n}(e.expr,t.errors),animation:n,queryCount:t.queryCount,depCount:t.depCount,options:vo(e.options)}},e.prototype.visitSequence=function(e,t){var n=this;return{type:2,steps:e.steps.map(function(e){return ho(n,e,t)}),options:vo(e.options)}},e.prototype.visitGroup=function(e,t){var n=this,r=t.currentTime,i=0,o=e.steps.map(function(e){t.currentTime=r;var o=ho(n,e,t);return i=Math.max(i,t.currentTime),o});return t.currentTime=i,{type:3,steps:o,options:vo(e.options)}},e.prototype.visitAnimate=function(e,t){var n=function(e,t){var n=null;if(e.hasOwnProperty("duration"))n=e;else if("number"==typeof e)return bo(ro(e,t).duration,0,"");var r=e;if(r.split(/\s+/).some(function(e){return"{"==e.charAt(0)&&"{"==e.charAt(1)})){var i=bo(0,0,"");return i.dynamic=!0,i.strValue=r,i}return n=n||ro(r,t),bo(n.duration,n.delay,n.easing)}(e.timings,t.errors);t.currentAnimateTimings=n;var r,i=e.styles?e.styles:Object(Rs.style)({});if(5==i.type)r=this.visitKeyframes(i,t);else{var o=e.styles,l=!1;if(!o){l=!0;var a={};n.easing&&(a.easing=n.easing),o=Object(Rs.style)(a)}t.currentTime+=n.duration+n.delay;var s=this.visitStyle(o,t);s.isEmptyStep=l,r=s}return t.currentAnimateTimings=null,{type:4,timings:n,style:r,options:null}},e.prototype.visitStyle=function(e,t){var n=this._makeStyleAst(e,t);return this._validateStyleAst(n,t),n},e.prototype._makeStyleAst=function(e,t){var n=[];Array.isArray(e.styles)?e.styles.forEach(function(e){"string"==typeof e?e==Rs.AUTO_STYLE?n.push(e):t.errors.push("The provided style string value "+e+" is not allowed."):n.push(e)}):n.push(e.styles);var r=!1,i=null;return n.forEach(function(e){if(yo(e)){var t=e,n=t.easing;if(n&&(i=n,delete t.easing),!r)for(var o in t)if(t[o].toString().indexOf("{{")>=0){r=!0;break}}}),{type:6,styles:n,easing:i,offset:e.offset,containsDynamicStyles:r,options:null}},e.prototype._validateStyleAst=function(e,t){var n=this,r=t.currentAnimateTimings,i=t.currentTime,o=t.currentTime;r&&o>0&&(o-=r.duration+r.delay),e.styles.forEach(function(e){"string"!=typeof e&&Object.keys(e).forEach(function(r){if(n._driver.validateStyleProperty(r)){var l=t.collectedStyles[t.currentQuerySelector],a=l[r],s=!0;a&&(o!=i&&o>=a.startTime&&i<=a.endTime&&(t.errors.push('The CSS property "'+r+'" that exists between the times of "'+a.startTime+'ms" and "'+a.endTime+'ms" is also being animated in a parallel animation between the times of "'+o+'ms" and "'+i+'ms"'),s=!1),o=a.startTime),s&&(l[r]={startTime:o,endTime:i}),t.options&&function(n,i,o){var l=t.options.params||{},a=uo(e[r]);a.length&&a.forEach(function(e){l.hasOwnProperty(e)||o.push("Unable to resolve the local animation param "+e+" in the given list of values")})}(0,0,t.errors)}else t.errors.push('The provided animation property "'+r+'" is not a supported CSS property for animations')})})},e.prototype.visitKeyframes=function(e,t){var n=this,r={type:5,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push("keyframes() must be placed inside of a call to animate()"),r;var i=0,o=[],l=!1,a=!1,s=0,u=e.steps.map(function(e){var r=n._makeStyleAst(e,t),u=null!=r.offset?r.offset:function(e){if("string"==typeof e)return null;var t=null;if(Array.isArray(e))e.forEach(function(e){if(yo(e)&&e.hasOwnProperty("offset")){var n=e;t=parseFloat(n.offset),delete n.offset}});else if(yo(e)&&e.hasOwnProperty("offset")){var n=e;t=parseFloat(n.offset),delete n.offset}return t}(r.styles),c=0;return null!=u&&(i++,c=r.offset=u),a=a||c<0||c>1,l=l||c<s,s=c,o.push(c),r});a&&t.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),l&&t.errors.push("Please ensure that all keyframe offsets are in order");var c=e.steps.length,d=0;i>0&&i<c?t.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==i&&(d=1/(c-1));var p=c-1,f=t.currentTime,h=t.currentAnimateTimings,m=h.duration;return u.forEach(function(e,i){var l=d>0?i==p?1:d*i:o[i],a=l*m;t.currentTime=f+h.delay+a,h.duration=a,n._validateStyleAst(e,t),e.offset=l,r.styles.push(e)}),r},e.prototype.visitReference=function(e,t){return{type:8,animation:ho(this,so(e.animation),t),options:vo(e.options)}},e.prototype.visitAnimateChild=function(e,t){return t.depCount++,{type:9,options:vo(e.options)}},e.prototype.visitAnimateRef=function(e,t){return{type:10,animation:this.visitReference(e.animation,t),options:vo(e.options)}},e.prototype.visitQuery=function(e,t){var n=t.currentQuerySelector,r=e.options||{};t.queryCount++,t.currentQuery=e;var i=function(e){var t=!!e.split(/\s*,\s*/).find(function(e){return":self"==e});return t&&(e=e.replace(Rm,"")),e=e.replace(/@\*/g,Em).replace(/@\w+/g,function(e){return Em+"-"+e.substr(1)}).replace(/:animating/g,Sm),[e,t]}(e.selector),o=i[0],l=i[1];t.currentQuerySelector=n.length?n+" "+o:o,Yi(t.collectedStyles,t.currentQuerySelector,{});var a=ho(this,so(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=n,{type:11,selector:o,limit:r.limit||0,optional:!!r.optional,includeSelf:l,animation:a,originalSelector:e.selector,options:vo(e.options)}},e.prototype.visitStagger=function(e,t){t.currentQuery||t.errors.push("stagger() can only be used inside of query()");var n="full"===e.timings?{duration:0,delay:0,easing:"full"}:ro(e.timings,t.errors,!0);return{type:12,animation:ho(this,so(e.animation),t),timings:n,options:null}},e}(),Pm=function(e){this.errors=e,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null},Nm=function(){function e(){this._map=new Map}return e.prototype.consume=function(e){var t=this._map.get(e);return t?this._map.delete(e):t=[],t},e.prototype.append=function(e,t){var n=this._map.get(e);n||this._map.set(e,n=[]),n.push.apply(n,t)},e.prototype.has=function(e){return this._map.has(e)},e.prototype.clear=function(){this._map.clear()},e}(),Am=new RegExp(":enter","g"),Lm=new RegExp(":leave","g"),Fm=function(){function e(){}return e.prototype.buildKeyframes=function(e,t,n,r,i,o,l,a,s,u){void 0===u&&(u=[]),s=s||new Nm;var c=new Vm(e,t,s,r,i,u,[]);c.options=a,c.currentTimeline.setStyles([o],null,c.errors,a),ho(this,n,c);var d=c.timelines.filter(function(e){return e.containsAnimation()});if(d.length&&Object.keys(l).length){var p=d[d.length-1];p.allowOnlyTimelineStyles()||p.setStyles([l],null,c.errors,a)}return d.length?d.map(function(e){return e.buildKeyframes()}):[_o(t,[],[],[],0,0,"",!1)]},e.prototype.visitTrigger=function(e,t){},e.prototype.visitState=function(e,t){},e.prototype.visitTransition=function(e,t){},e.prototype.visitAnimateChild=function(e,t){var n=t.subInstructions.consume(t.element);if(n){var r=t.createSubContext(e.options),i=t.currentTimeline.currentTime,o=this._visitSubInstructions(n,r,r.options);i!=o&&t.transformIntoNewTimeline(o)}t.previousNode=e},e.prototype.visitAnimateRef=function(e,t){var n=t.createSubContext(e.options);n.transformIntoNewTimeline(),this.visitReference(e.animation,n),t.transformIntoNewTimeline(n.currentTimeline.currentTime),t.previousNode=e},e.prototype._visitSubInstructions=function(e,t,n){var r=t.currentTimeline.currentTime,i=null!=n.duration?to(n.duration):null,o=null!=n.delay?to(n.delay):null;return 0!==i&&e.forEach(function(e){var n=t.appendInstructionToTimeline(e,i,o);r=Math.max(r,n.duration+n.delay)}),r},e.prototype.visitReference=function(e,t){t.updateOptions(e.options,!0),ho(this,e.animation,t),t.previousNode=e},e.prototype.visitSequence=function(e,t){var n=this,r=t.subContextCount,i=t,o=e.options;if(o&&(o.params||o.delay)&&((i=t.createSubContext(o)).transformIntoNewTimeline(),null!=o.delay)){6==i.previousNode.type&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=jm);var l=to(o.delay);i.delayNextStep(l)}e.steps.length&&(e.steps.forEach(function(e){return ho(n,e,i)}),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>r&&i.transformIntoNewTimeline()),t.previousNode=e},e.prototype.visitGroup=function(e,t){var n=this,r=[],i=t.currentTimeline.currentTime,o=e.options&&e.options.delay?to(e.options.delay):0;e.steps.forEach(function(l){var a=t.createSubContext(e.options);o&&a.delayNextStep(o),ho(n,l,a),i=Math.max(i,a.currentTimeline.currentTime),r.push(a.currentTimeline)}),r.forEach(function(e){return t.currentTimeline.mergeTimelineCollectedStyles(e)}),t.transformIntoNewTimeline(i),t.previousNode=e},e.prototype._visitTiming=function(e,t){if(e.dynamic){var n=e.strValue;return ro(t.params?co(n,t.params,t.errors):n,t.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}},e.prototype.visitAnimate=function(e,t){var n=t.currentAnimateTimings=this._visitTiming(e.timings,t),r=t.currentTimeline;n.delay&&(t.incrementTime(n.delay),r.snapshotCurrentStyles());var i=e.style;5==i.type?this.visitKeyframes(i,t):(t.incrementTime(n.duration),this.visitStyle(i,t),r.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e},e.prototype.visitStyle=function(e,t){var n=t.currentTimeline,r=t.currentAnimateTimings;!r&&n.getCurrentStyleProperties().length&&n.forwardFrame();var i=r&&r.easing||e.easing;e.isEmptyStep?n.applyEmptyStep(i):n.setStyles(e.styles,i,t.errors,t.options),t.previousNode=e},e.prototype.visitKeyframes=function(e,t){var n=t.currentAnimateTimings,r=t.currentTimeline.duration,i=n.duration,o=t.createSubContext().currentTimeline;o.easing=n.easing,e.styles.forEach(function(e){o.forwardTime((e.offset||0)*i),o.setStyles(e.styles,e.easing,t.errors,t.options),o.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(o),t.transformIntoNewTimeline(r+i),t.previousNode=e},e.prototype.visitQuery=function(e,t){var n=this,r=t.currentTimeline.currentTime,i=e.options||{},o=i.delay?to(i.delay):0;o&&(6===t.previousNode.type||0==r&&t.currentTimeline.getCurrentStyleProperties().length)&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=jm);var l=r,a=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!i.optional,t.errors);t.currentQueryTotal=a.length;var s=null;a.forEach(function(r,i){t.currentQueryIndex=i;var a=t.createSubContext(e.options,r);o&&a.delayNextStep(o),r===t.element&&(s=a.currentTimeline),ho(n,e.animation,a),a.currentTimeline.applyStylesToKeyframe();var u=a.currentTimeline.currentTime;l=Math.max(l,u)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(l),s&&(t.currentTimeline.mergeTimelineCollectedStyles(s),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e},e.prototype.visitStagger=function(e,t){var n=t.parentContext,r=t.currentTimeline,i=e.timings,o=Math.abs(i.duration),l=o*t.currentQueryIndex;switch(i.duration<0?"reverse":i.easing){case"reverse":l=o*(t.currentQueryTotal-1)-l;break;case"full":l=n.currentStaggerTime}var a=t.currentTimeline;l&&a.delayNextStep(l);var s=a.currentTime;ho(this,e.animation,t),t.previousNode=e,n.currentStaggerTime=r.currentTime-s+(r.startTime-n.currentTimeline.startTime)},e}(),jm={},Vm=function(){function e(e,t,n,r,i,o,l,a){this._driver=e,this.element=t,this.subInstructions=n,this._enterClassName=r,this._leaveClassName=i,this.errors=o,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=jm,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=a||new zm(this._driver,t,0),l.push(this.currentTimeline)}return Object.defineProperty(e.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),e.prototype.updateOptions=function(e,t){var n=this;if(e){var r=e,i=this.options;null!=r.duration&&(i.duration=to(r.duration)),null!=r.delay&&(i.delay=to(r.delay));var o=r.params;if(o){var l=i.params;l||(l=this.options.params={}),Object.keys(o).forEach(function(e){t&&l.hasOwnProperty(e)||(l[e]=co(o[e],l,n.errors))})}}},e.prototype._copyOptions=function(){var e={};if(this.options){var t=this.options.params;if(t){var n=e.params={};Object.keys(t).forEach(function(e){n[e]=t[e]})}}return e},e.prototype.createSubContext=function(t,n,r){void 0===t&&(t=null);var i=n||this.element,o=new e(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i,r||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(t),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o},e.prototype.transformIntoNewTimeline=function(e){return this.previousNode=jm,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline},e.prototype.appendInstructionToTimeline=function(e,t,n){var r={duration:null!=t?t:e.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+e.delay,easing:""},i=new Bm(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,r,e.stretchStartingKeyframe);return this.timelines.push(i),r},e.prototype.incrementTime=function(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)},e.prototype.delayNextStep=function(e){e>0&&this.currentTimeline.delayNextStep(e)},e.prototype.invokeQuery=function(e,t,n,r,i,o){var l=[];if(r&&l.push(this.element),e.length>0){e=(e=e.replace(Am,"."+this._enterClassName)).replace(Lm,"."+this._leaveClassName);var a=this._driver.query(this.element,e,1!=n);0!==n&&(a=n<0?a.slice(a.length+n,a.length):a.slice(0,n)),l.push.apply(l,a)}return i||0!=l.length||o.push('`query("'+t+'")` returned zero elements. (Use `query("'+t+'", { optional: true })` if you wish to allow this.)'),l},e}(),zm=function(){function e(e,t,n,r){this._driver=e,this.element=t,this.startTime=n,this._elementTimelineStylesLookup=r,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}return e.prototype.containsAnimation=function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}},e.prototype.getCurrentStyleProperties=function(){return Object.keys(this._currentKeyframe)},Object.defineProperty(e.prototype,"currentTime",{get:function(){return this.startTime+this.duration},enumerable:!0,configurable:!0}),e.prototype.delayNextStep=function(e){var t=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e},e.prototype.fork=function(t,n){return this.applyStylesToKeyframe(),new e(this._driver,t,n||this.currentTime,this._elementTimelineStylesLookup)},e.prototype._loadKeyframe=function(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))},e.prototype.forwardFrame=function(){this.duration+=1,this._loadKeyframe()},e.prototype.forwardTime=function(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()},e.prototype._updateStyle=function(e,t){this._localTimelineStyles[e]=t,this._globalTimelineStyles[e]=t,this._styleSummary[e]={time:this.currentTime,value:t}},e.prototype.allowOnlyTimelineStyles=function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe},e.prototype.applyEmptyStep=function(e){var t=this;e&&(this._previousKeyframe.easing=e),Object.keys(this._globalTimelineStyles).forEach(function(e){t._backFill[e]=t._globalTimelineStyles[e]||Rs.AUTO_STYLE,t._currentKeyframe[e]=Rs.AUTO_STYLE}),this._currentEmptyStepKeyframe=this._currentKeyframe},e.prototype.setStyles=function(e,t,n,r){var i=this;t&&(this._previousKeyframe.easing=t);var o=r&&r.params||{},l=function(t,n){var r,i={};return e.forEach(function(e){"*"===e?(r=r||Object.keys(n)).forEach(function(e){i[e]=Rs.AUTO_STYLE}):oo(e,!1,i)}),i}(0,this._globalTimelineStyles);Object.keys(l).forEach(function(e){var t=co(l[e],o,n);i._pendingStyles[e]=t,i._localTimelineStyles.hasOwnProperty(e)||(i._backFill[e]=i._globalTimelineStyles.hasOwnProperty(e)?i._globalTimelineStyles[e]:Rs.AUTO_STYLE),i._updateStyle(e,t)})},e.prototype.applyStylesToKeyframe=function(){var e=this,t=this._pendingStyles,n=Object.keys(t);0!=n.length&&(this._pendingStyles={},n.forEach(function(n){e._currentKeyframe[n]=t[n]}),Object.keys(this._localTimelineStyles).forEach(function(t){e._currentKeyframe.hasOwnProperty(t)||(e._currentKeyframe[t]=e._localTimelineStyles[t])}))},e.prototype.snapshotCurrentStyles=function(){var e=this;Object.keys(this._localTimelineStyles).forEach(function(t){var n=e._localTimelineStyles[t];e._pendingStyles[t]=n,e._updateStyle(t,n)})},e.prototype.getFinalKeyframe=function(){return this._keyframes.get(this.duration)},Object.defineProperty(e.prototype,"properties",{get:function(){var e=[];for(var t in this._currentKeyframe)e.push(t);return e},enumerable:!0,configurable:!0}),e.prototype.mergeTimelineCollectedStyles=function(e){var t=this;Object.keys(e._styleSummary).forEach(function(n){var r=t._styleSummary[n],i=e._styleSummary[n];(!r||i.time>r.time)&&t._updateStyle(n,i.value)})},e.prototype.buildKeyframes=function(){var e=this;this.applyStylesToKeyframe();var t=new Set,n=new Set,r=1===this._keyframes.size&&0===this.duration,i=[];this._keyframes.forEach(function(o,l){var a=oo(o,!0);Object.keys(a).forEach(function(e){var r=a[e];r==Rs["\u0275PRE_STYLE"]?t.add(e):r==Rs.AUTO_STYLE&&n.add(e)}),r||(a.offset=l/e.duration),i.push(a)});var o=t.size?po(t.values()):[],l=n.size?po(n.values()):[];if(r){var a=i[0],s=io(a);a.offset=0,s.offset=1,i=[a,s]}return _o(this.element,i,o,l,this.duration,this.startTime,this.easing,!1)},e}(),Bm=function(e){function t(t,n,r,i,o,l,a){void 0===a&&(a=!1);var s=e.call(this,t,n,l.delay)||this;return s.element=n,s.keyframes=r,s.preStyleProps=i,s.postStyleProps=o,s._stretchStartingKeyframe=a,s.timings={duration:l.duration,delay:l.delay,easing:l.easing},s}return Object(bl.__extends)(t,e),t.prototype.containsAnimation=function(){return this.keyframes.length>1},t.prototype.buildKeyframes=function(){var e=this.keyframes,t=this.timings,n=t.delay,r=t.duration,i=t.easing;if(this._stretchStartingKeyframe&&n){var o=[],l=r+n,a=n/l,s=oo(e[0],!1);s.offset=0,o.push(s);var u=oo(e[0],!1);u.offset=xo(a),o.push(u);for(var c=e.length-1,d=1;d<=c;d++){var p=oo(e[d],!1);p.offset=xo((n+p.offset*r)/l),o.push(p)}r=l,n=0,i="",e=o}return _o(this.element,e,this.preStyleProps,this.postStyleProps,r,n,i,!0)},t}(zm),Hm=function(){},Wm=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(bl.__extends)(t,e),t.prototype.normalizePropertyName=function(e,t){return fo(e)},t.prototype.normalizeStyleValue=function(e,t,n,r){var i="",o=n.toString().trim();if(qm[t]&&0!==n&&"0"!==n)if("number"==typeof n)i="px";else{var l=n.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&0==l[1].length&&r.push("Please provide a CSS unit value for "+e+":"+n)}return o+i},t}(Hm),qm=function(e){var t={};return"width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(",").forEach(function(e){return t[e]=!0}),t}(),Um={},Gm=function(){function e(e,t,n){this._triggerName=e,this.ast=t,this._stateStyles=n}return e.prototype.match=function(e,t){return function(e,t,n){return e.some(function(e){return e(t,n)})}(this.ast.matchers,e,t)},e.prototype.buildStyles=function(e,t,n){var r=this._stateStyles["*"],i=this._stateStyles[e],o=r?r.buildStyles(t,n):{};return i?i.buildStyles(t,n):o},e.prototype.build=function(e,t,n,r,i,o,l,a,s){var u=[],c=this.ast.options&&this.ast.options.params||Um,d=this.buildStyles(n,l&&l.params||Um,u),p=a&&a.params||Um,f=this.buildStyles(r,p,u),h=new Set,m=new Map,g=new Map,y="void"===r,v={params:Object(bl.__assign)({},c,p)},b=wo(e,t,this.ast.animation,i,o,d,f,v,s,u);if(u.length)return Co(t,this._triggerName,n,r,y,d,f,[],[],m,g,u);b.forEach(function(e){var n=e.element,r=Yi(m,n,{});e.preStyleProps.forEach(function(e){return r[e]=!0});var i=Yi(g,n,{});e.postStyleProps.forEach(function(e){return i[e]=!0}),n!==t&&h.add(n)});var _=po(h.values());return Co(t,this._triggerName,n,r,y,d,f,b,_,m,g)},e}(),Km=function(){function e(e,t){this.styles=e,this.defaultParams=t}return e.prototype.buildStyles=function(e,t){var n={},r=io(this.defaultParams);return Object.keys(e).forEach(function(t){var n=e[t];null!=n&&(r[t]=n)}),this.styles.styles.forEach(function(e){if("string"!=typeof e){var i=e;Object.keys(i).forEach(function(e){var o=i[e];o.length>1&&(o=co(o,r,t)),n[e]=o})}}),n},e}(),$m=function(){function e(e,t){var n=this;this.name=e,this.ast=t,this.transitionFactories=[],this.states={},t.states.forEach(function(e){n.states[e.name]=new Km(e.style,e.options&&e.options.params||{})}),Eo(this.states,"true","1"),Eo(this.states,"false","0"),t.transitions.forEach(function(t){n.transitionFactories.push(new Gm(e,t,n.states))}),this.fallbackTransition=function(t,n){return new Gm(e,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(e,t){return!0}],options:null,queryCount:0,depCount:0},n)}(0,this.states)}return Object.defineProperty(e.prototype,"containsQueries",{get:function(){return this.ast.queryCount>0},enumerable:!0,configurable:!0}),e.prototype.matchTransition=function(e,t){return this.transitionFactories.find(function(n){return n.match(e,t)})||null},e.prototype.matchStyles=function(e,t,n){return this.fallbackTransition.buildStyles(e,t,n)},e}(),Zm=new Nm,Qm=function(){function e(e,t){this._driver=e,this._normalizer=t,this._animations={},this._playersById={},this.players=[]}return e.prototype.register=function(e,t){var n=[],r=go(this._driver,t,n);if(n.length)throw new Error("Unable to build the animation due to the following errors: "+n.join("\n"));this._animations[e]=r},e.prototype._buildPlayer=function(e,t,n){var r=e.element,i=Ki(0,this._normalizer,0,e.keyframes,t,n);return this._driver.animate(r,i,e.duration,e.delay,e.easing,[])},e.prototype.create=function(e,t,n){var r=this;void 0===n&&(n={});var i,o=[],l=this._animations[e],a=new Map;if(l?(i=wo(this._driver,t,l,"ng-enter","ng-leave",{},{},n,Zm,o)).forEach(function(e){var t=Yi(a,e.element,{});e.postStyleProps.forEach(function(e){return t[e]=null})}):(o.push("The requested animation doesn't exist or has already been destroyed"),i=[]),o.length)throw new Error("Unable to create the animation due to the following errors: "+o.join("\n"));a.forEach(function(e,t){Object.keys(e).forEach(function(n){e[n]=r._driver.computeStyle(t,n,Rs.AUTO_STYLE)})});var s=Gi(i.map(function(e){var t=a.get(e.element);return r._buildPlayer(e,{},t)}));return this._playersById[e]=s,s.onDestroy(function(){return r.destroy(e)}),this.players.push(s),s},e.prototype.destroy=function(e){var t=this._getPlayer(e);t.destroy(),delete this._playersById[e];var n=this.players.indexOf(t);n>=0&&this.players.splice(n,1)},e.prototype._getPlayer=function(e){var t=this._playersById[e];if(!t)throw new Error("Unable to find the timeline player referenced by "+e);return t},e.prototype.listen=function(e,t,n,r){var i=Qi(t,"","","");return $i(this._getPlayer(e),n,i,r),function(){}},e.prototype.command=function(e,t,n,r){if("register"!=n)if("create"!=n){var i=this._getPlayer(e);switch(n){case"play":i.play();break;case"pause":i.pause();break;case"reset":i.reset();break;case"restart":i.restart();break;case"finish":i.finish();break;case"init":i.init();break;case"setPosition":i.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(e)}}else this.create(e,t,r[0]||{});else this.register(e,r[0])},e}(),Ym="ng-animate-disabled",Xm=".ng-animate-disabled",Jm=[],eg={namespaceId:"",setForRemoval:null,hasAnimation:!1,removedBeforeQueried:!1},tg={namespaceId:"",setForRemoval:null,hasAnimation:!1,removedBeforeQueried:!0},ng="__ng_removed",rg=function(){function e(e,t){void 0===t&&(t=""),this.namespaceId=t;var n=e&&e.hasOwnProperty("value");if(this.value=function(e){return null!=e?e:null}(n?e.value:e),n){var r=io(e);delete r.value,this.options=r}else this.options={};this.options.params||(this.options.params={})}return Object.defineProperty(e.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),e.prototype.absorbOptions=function(e){var t=e.params;if(t){var n=this.options.params;Object.keys(t).forEach(function(e){null==n[e]&&(n[e]=t[e])})}},e}(),ig=new rg("void"),og=new rg("DELETED"),lg=function(){function e(e,t,n){this.id=e,this.hostElement=t,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+e,Do(t,this._hostClassName)}return e.prototype.listen=function(e,t,n,r){var i=this;if(!this._triggers.hasOwnProperty(t))throw new Error('Unable to listen on the animation trigger event "'+n+'" because the animation trigger "'+t+"\" doesn't exist!");if(null==n||0==n.length)throw new Error('Unable to listen on the animation trigger "'+t+'" because the provided event is undefined!');if("start"!=n&&"done"!=n)throw new Error('The provided animation trigger event "'+n+'" for the animation trigger "'+t+'" is not supported!');var o=Yi(this._elementListeners,e,[]),l={name:t,phase:n,callback:r};o.push(l);var a=Yi(this._engine.statesByElement,e,{});return a.hasOwnProperty(t)||(Do(e,Cm),Do(e,Cm+"-"+t),a[t]=ig),function(){i._engine.afterFlush(function(){var e=o.indexOf(l);e>=0&&o.splice(e,1),i._triggers[t]||delete a[t]})}},e.prototype.register=function(e,t){return!this._triggers[e]&&(this._triggers[e]=t,!0)},e.prototype._getTrigger=function(e){var t=this._triggers[e];if(!t)throw new Error('The provided animation trigger "'+e+'" has not been registered!');return t},e.prototype.trigger=function(e,t,n,r){var i=this;void 0===r&&(r=!0);var o=this._getTrigger(t),l=new sg(this.id,t,e),a=this._engine.statesByElement.get(e);a||(Do(e,Cm),Do(e,Cm+"-"+t),this._engine.statesByElement.set(e,a={}));var s=a[t],u=new rg(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&s&&u.absorbOptions(s.options),a[t]=u,s){if(s===og)return l}else s=ig;if("void"===u.value||s.value!==u.value){var c=Yi(this._engine.playersByElement,e,[]);c.forEach(function(e){e.namespaceId==i.id&&e.triggerName==t&&e.queued&&e.destroy()});var d=o.matchTransition(s.value,u.value),p=!1;if(!d){if(!r)return;d=o.fallbackTransition,p=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:d,fromState:s,toState:u,player:l,isFallbackTransition:p}),p||(Do(e,"ng-animate-queued"),l.onStart(function(){Io(e,"ng-animate-queued")})),l.onDone(function(){var t=i.players.indexOf(l);t>=0&&i.players.splice(t,1);var n=i._engine.playersByElement.get(e);if(n){var r=n.indexOf(l);r>=0&&n.splice(r,1)}}),this.players.push(l),c.push(l),l}if(!function(e,t){var n=Object.keys(e),r=Object.keys(t);if(n.length!=r.length)return!1;for(var i=0;i<n.length;i++){var o=n[i];if(!t.hasOwnProperty(o)||e[o]!==t[o])return!1}return!0}(s.params,u.params)){var f=[],h=o.matchStyles(s.value,s.params,f),m=o.matchStyles(u.value,u.params,f);f.length?this._engine.reportError(f):this._engine.afterFlush(function(){ao(e,h),lo(e,m)})}},e.prototype.deregister=function(e){var t=this;delete this._triggers[e],this._engine.statesByElement.forEach(function(t,n){delete t[e]}),this._elementListeners.forEach(function(n,r){t._elementListeners.set(r,n.filter(function(t){return t.name!=e}))})},e.prototype.clearElementCache=function(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);var t=this._engine.playersByElement.get(e);t&&(t.forEach(function(e){return e.destroy()}),this._engine.playersByElement.delete(e))},e.prototype._signalRemovalForInnerTriggers=function(e,t,n){var r=this;void 0===n&&(n=!1),this._engine.driver.query(e,Em,!0).forEach(function(e){if(!e[ng]){var n=r._engine.fetchNamespacesByElement(e);n.size?n.forEach(function(n){return n.triggerLeaveAnimation(e,t,!1,!0)}):r.clearElementCache(e)}})},e.prototype.triggerLeaveAnimation=function(e,t,n,r){var i=this,o=this._engine.statesByElement.get(e);if(o){var l=[];if(Object.keys(o).forEach(function(t){if(i._triggers[t]){var n=i.trigger(e,t,"void",r);n&&l.push(n)}}),l.length)return this._engine.markElementAsRemoved(this.id,e,!0,t),n&&Gi(l).onDone(function(){return i._engine.processLeaveNode(e)}),!0}return!1},e.prototype.prepareLeaveAnimationListeners=function(e){var t=this,n=this._elementListeners.get(e);if(n){var r=new Set;n.forEach(function(n){var i=n.name;if(!r.has(i)){r.add(i);var o=t._triggers[i].fallbackTransition,l=t._engine.statesByElement.get(e)[i]||ig,a=new rg("void"),s=new sg(t.id,i,e);t._engine.totalQueuedPlayers++,t._queue.push({element:e,triggerName:i,transition:o,fromState:l,toState:a,player:s,isFallbackTransition:!0})}})}},e.prototype.removeNode=function(e,t){var n=this,r=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,t,!0),!this.triggerLeaveAnimation(e,t,!0)){var i=!1;if(r.totalAnimations){var o=r.players.length?r.playersByQueriedElement.get(e):[];if(o&&o.length)i=!0;else for(var l=e;l=l.parentNode;)if(r.statesByElement.get(l)){i=!0;break}}this.prepareLeaveAnimationListeners(e),i?r.markElementAsRemoved(this.id,e,!1,t):(r.afterFlush(function(){return n.clearElementCache(e)}),r.destroyInnerAnimations(e),r._onRemovalComplete(e,t))}},e.prototype.insertNode=function(e,t){Do(e,this._hostClassName)},e.prototype.drainQueuedTransitions=function(e){var t=this,n=[];return this._queue.forEach(function(r){var i=r.player;if(!i.destroyed){var o=r.element,l=t._elementListeners.get(o);l&&l.forEach(function(t){if(t.name==r.triggerName){var n=Qi(o,r.triggerName,r.fromState.value,r.toState.value);n._data=e,$i(r.player,t.phase,n,t.callback)}}),i.markedForDestroy?t._engine.afterFlush(function(){i.destroy()}):n.push(r)}}),this._queue=[],n.sort(function(e,n){var r=e.transition.ast.depCount,i=n.transition.ast.depCount;return 0==r||0==i?r-i:t._engine.driver.containsElement(e.element,n.element)?1:-1})},e.prototype.destroy=function(e){this.players.forEach(function(e){return e.destroy()}),this._signalRemovalForInnerTriggers(this.hostElement,e)},e.prototype.elementContainsData=function(e){var t=!1;return this._elementListeners.has(e)&&(t=!0),t=!!this._queue.find(function(t){return t.element===e})||t},e}(),ag=function(){function e(e,t){this.driver=e,this._normalizer=t,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=function(e,t){}}return e.prototype._onRemovalComplete=function(e,t){this.onRemovalComplete(e,t)},Object.defineProperty(e.prototype,"queuedPlayers",{get:function(){var e=[];return this._namespaceList.forEach(function(t){t.players.forEach(function(t){t.queued&&e.push(t)})}),e},enumerable:!0,configurable:!0}),e.prototype.createNamespace=function(e,t){var n=new lg(e,t,this);return t.parentNode?this._balanceNamespaceList(n,t):(this.newHostElements.set(t,n),this.collectEnterElement(t)),this._namespaceLookup[e]=n},e.prototype._balanceNamespaceList=function(e,t){var n=this._namespaceList.length-1;if(n>=0){for(var r=!1,i=n;i>=0;i--)if(this.driver.containsElement(this._namespaceList[i].hostElement,t)){this._namespaceList.splice(i+1,0,e),r=!0;break}r||this._namespaceList.splice(0,0,e)}else this._namespaceList.push(e);return this.namespacesByHostElement.set(t,e),e},e.prototype.register=function(e,t){var n=this._namespaceLookup[e];return n||(n=this.createNamespace(e,t)),n},e.prototype.registerTrigger=function(e,t,n){var r=this._namespaceLookup[e];r&&r.register(t,n)&&this.totalAnimations++},e.prototype.destroy=function(e,t){var n=this;if(e){var r=this._fetchNamespace(e);this.afterFlush(function(){n.namespacesByHostElement.delete(r.hostElement),delete n._namespaceLookup[e];var t=n._namespaceList.indexOf(r);t>=0&&n._namespaceList.splice(t,1)}),this.afterFlushAnimationsDone(function(){return r.destroy(t)})}},e.prototype._fetchNamespace=function(e){return this._namespaceLookup[e]},e.prototype.fetchNamespacesByElement=function(e){var t=new Set,n=this.statesByElement.get(e);if(n)for(var r=Object.keys(n),i=0;i<r.length;i++){var o=n[r[i]].namespaceId;if(o){var l=this._fetchNamespace(o);l&&t.add(l)}}return t},e.prototype.trigger=function(e,t,n,r){return!!So(t)&&(this._fetchNamespace(e).trigger(t,n,r),!0)},e.prototype.insertNode=function(e,t,n,r){if(So(t)){var i=t[ng];i&&i.setForRemoval&&(i.setForRemoval=!1),e&&this._fetchNamespace(e).insertNode(t,n),r&&this.collectEnterElement(t)}},e.prototype.collectEnterElement=function(e){this.collectedEnterElements.push(e)},e.prototype.markElementAsDisabled=function(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),Do(e,Ym)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),Io(e,Ym))},e.prototype.removeNode=function(e,t,n){if(So(t)){var r=e?this._fetchNamespace(e):null;r?r.removeNode(t,n):this.markElementAsRemoved(e,t,!1,n)}else this._onRemovalComplete(t,n)},e.prototype.markElementAsRemoved=function(e,t,n,r){this.collectedLeaveElements.push(t),t[ng]={namespaceId:e,setForRemoval:r,hasAnimation:n,removedBeforeQueried:!1}},e.prototype.listen=function(e,t,n,r,i){return So(t)?this._fetchNamespace(e).listen(t,n,r,i):function(){}},e.prototype._buildInstruction=function(e,t,n,r){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,n,r,e.fromState.options,e.toState.options,t)},e.prototype.destroyInnerAnimations=function(e){var t=this,n=this.driver.query(e,Em,!0);n.forEach(function(e){return t.destroyActiveAnimationsForElement(e)}),0!=this.playersByQueriedElement.size&&(n=this.driver.query(e,Sm,!0)).forEach(function(e){return t.finishActiveQueriedAnimationOnElement(e)})},e.prototype.destroyActiveAnimationsForElement=function(e){var t=this.playersByElement.get(e);t&&t.forEach(function(e){e.queued?e.markedForDestroy=!0:e.destroy()});var n=this.statesByElement.get(e);n&&Object.keys(n).forEach(function(e){return n[e]=og})},e.prototype.finishActiveQueriedAnimationOnElement=function(e){var t=this.playersByQueriedElement.get(e);t&&t.forEach(function(e){return e.finish()})},e.prototype.whenRenderingDone=function(){var e=this;return new Promise(function(t){if(e.players.length)return Gi(e.players).onDone(function(){return t()});t()})},e.prototype.processLeaveNode=function(e){var t=this,n=e[ng];if(n&&n.setForRemoval){if(e[ng]=eg,n.namespaceId){this.destroyInnerAnimations(e);var r=this._fetchNamespace(n.namespaceId);r&&r.clearElementCache(e)}this._onRemovalComplete(e,n.setForRemoval)}this.driver.matchesElement(e,Xm)&&this.markElementAsDisabled(e,!1),this.driver.query(e,Xm,!0).forEach(function(n){t.markElementAsDisabled(e,!1)})},e.prototype.flush=function(e){var t=this;void 0===e&&(e=-1);var n=[];if(this.newHostElements.size&&(this.newHostElements.forEach(function(e,n){return t._balanceNamespaceList(e,n)}),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(var r=0;r<this.collectedEnterElements.length;r++)Do(this.collectedEnterElements[r],"ng-star-inserted");if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){var i=[];try{n=this._flushAnimations(i,e)}finally{for(r=0;r<i.length;r++)i[r]()}}else for(r=0;r<this.collectedLeaveElements.length;r++)this.processLeaveNode(this.collectedLeaveElements[r]);if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(function(e){return e()}),this._flushFns=[],this._whenQuietFns.length){var o=this._whenQuietFns;this._whenQuietFns=[],n.length?Gi(n).onDone(function(){o.forEach(function(e){return e()})}):o.forEach(function(e){return e()})}},e.prototype.reportError=function(e){throw new Error("Unable to process animations due to the following failed trigger transitions\n "+e.join("\n"))},e.prototype._flushAnimations=function(e,t){var n=this,r=new Nm,i=[],o=new Map,l=[],a=new Map,s=new Map,u=new Map,c=new Set;this.disabledNodes.forEach(function(e){c.add(e);for(var t=n.driver.query(e,".ng-animate-queued",!0),r=0;r<t.length;r++)c.add(t[r])});var d=eo(),p=Array.from(this.statesByElement.keys()),f=ko(p,this.collectedEnterElements),h=new Map,m=0;f.forEach(function(e,t){var n="ng-enter"+m++;h.set(t,n),e.forEach(function(e){return Do(e,n)})});for(var g=[],y=new Set,v=new Set,b=0;b<this.collectedLeaveElements.length;b++)(L=(A=this.collectedLeaveElements[b])[ng])&&L.setForRemoval&&(g.push(A),y.add(A),L.hasAnimation?this.driver.query(A,".ng-star-inserted",!0).forEach(function(e){return y.add(e)}):v.add(A));var _=new Map,w=ko(p,Array.from(y));w.forEach(function(e,t){var n="ng-leave"+m++;_.set(t,n),e.forEach(function(e){return Do(e,n)})}),e.push(function(){f.forEach(function(e,t){var n=h.get(t);e.forEach(function(e){return Io(e,n)})}),w.forEach(function(e,t){var n=_.get(t);e.forEach(function(e){return Io(e,n)})}),g.forEach(function(e){n.processLeaveNode(e)})});for(var x=[],C=[],E=this._namespaceList.length-1;E>=0;E--)this._namespaceList[E].drainQueuedTransitions(t).forEach(function(e){var t=e.player;x.push(t);var o=e.element;if(d&&n.driver.containsElement(d,o)){var c=_.get(o),p=h.get(o),f=n._buildInstruction(e,r,p,c);if(f.errors&&f.errors.length)C.push(f);else{if(e.isFallbackTransition)return t.onStart(function(){return ao(o,f.fromStyles)}),t.onDestroy(function(){return lo(o,f.toStyles)}),void i.push(t);f.timelines.forEach(function(e){return e.stretchStartingKeyframe=!0}),r.append(o,f.timelines),l.push({instruction:f,player:t,element:o}),f.queriedElements.forEach(function(e){return Yi(a,e,[]).push(t)}),f.preStyleProps.forEach(function(e,t){var n=Object.keys(e);if(n.length){var r=s.get(t);r||s.set(t,r=new Set),n.forEach(function(e){return r.add(e)})}}),f.postStyleProps.forEach(function(e,t){var n=Object.keys(e),r=u.get(t);r||u.set(t,r=new Set),n.forEach(function(e){return r.add(e)})})}}else t.destroy()});if(C.length){var S=[];C.forEach(function(e){S.push("@"+e.triggerName+" has failed due to:\n"),e.errors.forEach(function(e){return S.push("- "+e+"\n")})}),x.forEach(function(e){return e.destroy()}),this.reportError(S)}var O=new Map,T=new Map;l.forEach(function(e){var t=e.element;r.has(t)&&(T.set(t,t),n._beforeAnimationBuild(e.player.namespaceId,e.instruction,O))}),i.forEach(function(e){var t=e.element;n._getPreviousPlayers(t,!1,e.namespaceId,e.triggerName,null).forEach(function(e){Yi(O,t,[]).push(e),e.destroy()})});var k=g.filter(function(e){return Mo(e,s,u)}),D=new Map;To(D,this.driver,v,u,Rs.AUTO_STYLE).forEach(function(e){Mo(e,s,u)&&k.push(e)});var I=new Map;f.forEach(function(e,t){To(I,n.driver,new Set(e),s,Rs["\u0275PRE_STYLE"])}),k.forEach(function(e){var t=D.get(e),n=I.get(e);D.set(e,Object(bl.__assign)({},t,n))});var R=[],M=[],P={};l.forEach(function(e){var t=e.element,l=e.player,a=e.instruction;if(r.has(t)){if(c.has(t))return l.onDestroy(function(){return lo(t,a.toStyles)}),void i.push(l);var s=P;if(T.size>1){for(var u=t,d=[];u=u.parentNode;){var p=T.get(u);if(p){s=p;break}d.push(u)}d.forEach(function(e){return T.set(e,s)})}var f=n._buildAnimation(l.namespaceId,a,O,o,I,D);if(l.setRealPlayer(f),s===P)R.push(l);else{var h=n.playersByElement.get(s);h&&h.length&&(l.parentPlayer=Gi(h)),i.push(l)}}else ao(t,a.fromStyles),l.onDestroy(function(){return lo(t,a.toStyles)}),M.push(l),c.has(t)&&i.push(l)}),M.forEach(function(e){var t=o.get(e.element);if(t&&t.length){var n=Gi(t);e.setRealPlayer(n)}}),i.forEach(function(e){e.parentPlayer?e.syncPlayerEvents(e.parentPlayer):e.destroy()});for(var N=0;N<g.length;N++){var A,L=(A=g[N])[ng];if(Io(A,"ng-leave"),!L||!L.hasAnimation){var F=[];if(a.size){var j=a.get(A);j&&j.length&&F.push.apply(F,j);for(var V=this.driver.query(A,Sm,!0),z=0;z<V.length;z++){var B=a.get(V[z]);B&&B.length&&F.push.apply(F,B)}}var H=F.filter(function(e){return!e.destroyed});H.length?function(e,t,n){Gi(H).onDone(function(){return e.processLeaveNode(t)})}(this,A):this.processLeaveNode(A)}}return g.length=0,R.forEach(function(e){n.players.push(e),e.onDone(function(){e.destroy();var t=n.players.indexOf(e);n.players.splice(t,1)}),e.play()}),R},e.prototype.elementContainsData=function(e,t){var n=!1,r=t[ng];return r&&r.setForRemoval&&(n=!0),this.playersByElement.has(t)&&(n=!0),this.playersByQueriedElement.has(t)&&(n=!0),this.statesByElement.has(t)&&(n=!0),this._fetchNamespace(e).elementContainsData(t)||n},e.prototype.afterFlush=function(e){this._flushFns.push(e)},e.prototype.afterFlushAnimationsDone=function(e){this._whenQuietFns.push(e)},e.prototype._getPreviousPlayers=function(e,t,n,r,i){var o=[];if(t){var l=this.playersByQueriedElement.get(e);l&&(o=l)}else{var a=this.playersByElement.get(e);if(a){var s=!i||"void"==i;a.forEach(function(e){e.queued||(s||e.triggerName==r)&&o.push(e)})}}return(n||r)&&(o=o.filter(function(e){return!(n&&n!=e.namespaceId||r&&r!=e.triggerName)})),o},e.prototype._beforeAnimationBuild=function(e,t,n){for(var r=t.element,i=t.isRemovalTransition?void 0:e,o=t.isRemovalTransition?void 0:t.triggerName,l=function(e){var l=e.element,s=l!==r,u=Yi(n,l,[]);a._getPreviousPlayers(l,s,i,o,t.toState).forEach(function(e){var t=e.getRealPlayer();t.beforeDestroy&&t.beforeDestroy(),e.destroy(),u.push(e)})},a=this,s=0,u=t.timelines;s<u.length;s++)l(u[s]);ao(r,t.fromStyles)},e.prototype._buildAnimation=function(e,t,n,r,i,o){var l=this,a=t.triggerName,s=t.element,u=[],c=new Set,d=new Set,p=t.timelines.map(function(t){var p=t.element;c.add(p);var f=p[ng];if(f&&f.removedBeforeQueried)return new Rs.NoopAnimationPlayer;var h=p!==s,m=function(e){var t=[];return Ro((n.get(p)||Jm).map(function(e){return e.getRealPlayer()}),t),t}().filter(function(e){return!!e.element&&e.element===p}),g=i.get(p),y=o.get(p),v=Ki(0,l._normalizer,0,t.keyframes,g,y),b=l._buildPlayer(t,v,m);if(t.subTimeline&&r&&d.add(p),h){var _=new sg(e,a,p);_.setRealPlayer(b),u.push(_)}return b});u.forEach(function(e){Yi(l.playersByQueriedElement,e.element,[]).push(e),e.onDone(function(){return function(e,t,n){var r;if(e instanceof Map){if(r=e.get(t)){if(r.length){var i=r.indexOf(n);r.splice(i,1)}0==r.length&&e.delete(t)}}else(r=e[t])&&(r.length&&(i=r.indexOf(n),r.splice(i,1)),0==r.length&&delete e[t]);return r}(l.playersByQueriedElement,e.element,e)})}),c.forEach(function(e){return Do(e,"ng-animating")});var f=Gi(p);return f.onDestroy(function(){c.forEach(function(e){return Io(e,"ng-animating")}),lo(s,t.toStyles)}),d.forEach(function(e){Yi(r,e,[]).push(f)}),f},e.prototype._buildPlayer=function(e,t,n){return t.length>0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,n):new Rs.NoopAnimationPlayer},e}(),sg=function(){function e(e,t,n){this.namespaceId=e,this.triggerName=t,this.element=n,this._player=new Rs.NoopAnimationPlayer,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1}return Object.defineProperty(e.prototype,"queued",{get:function(){return 0==this._containsRealPlayer},enumerable:!0,configurable:!0}),e.prototype.setRealPlayer=function(e){var t=this;this._containsRealPlayer||(this._player=e,Object.keys(this._queuedCallbacks).forEach(function(n){t._queuedCallbacks[n].forEach(function(t){return $i(e,n,void 0,t)})}),this._queuedCallbacks={},this._containsRealPlayer=!0)},e.prototype.getRealPlayer=function(){return this._player},e.prototype.syncPlayerEvents=function(e){var t=this,n=this._player;n.triggerCallback&&e.onStart(function(){return n.triggerCallback("start")}),e.onDone(function(){return t.finish()}),e.onDestroy(function(){return t.destroy()})},e.prototype._queueEvent=function(e,t){Yi(this._queuedCallbacks,e,[]).push(t)},e.prototype.onDone=function(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)},e.prototype.onStart=function(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)},e.prototype.onDestroy=function(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)},e.prototype.init=function(){this._player.init()},e.prototype.hasStarted=function(){return!this.queued&&this._player.hasStarted()},e.prototype.play=function(){!this.queued&&this._player.play()},e.prototype.pause=function(){!this.queued&&this._player.pause()},e.prototype.restart=function(){!this.queued&&this._player.restart()},e.prototype.finish=function(){this._player.finish()},e.prototype.destroy=function(){this.destroyed=!0,this._player.destroy()},e.prototype.reset=function(){!this.queued&&this._player.reset()},e.prototype.setPosition=function(e){this.queued||this._player.setPosition(e)},e.prototype.getPosition=function(){return this.queued?0:this._player.getPosition()},Object.defineProperty(e.prototype,"totalTime",{get:function(){return this._player.totalTime},enumerable:!0,configurable:!0}),e.prototype.triggerCallback=function(e){var t=this._player;t.triggerCallback&&t.triggerCallback(e)},e}(),ug="$$classes",cg=function(){function e(e,t){var n=this;this._driver=e,this._triggerCache={},this.onRemovalComplete=function(e,t){},this._transitionEngine=new ag(e,t),this._timelineEngine=new Qm(e,t),this._transitionEngine.onRemovalComplete=function(e,t){return n.onRemovalComplete(e,t)}}return e.prototype.registerTrigger=function(e,t,n,r,i){var o=e+"-"+r,l=this._triggerCache[o];if(!l){var a=[],s=go(this._driver,i,a);if(a.length)throw new Error('The animation trigger "'+r+'" has failed to build due to the following errors:\n - '+a.join("\n - "));l=new $m(r,s),this._triggerCache[o]=l}this._transitionEngine.registerTrigger(t,r,l)},e.prototype.register=function(e,t){this._transitionEngine.register(e,t)},e.prototype.destroy=function(e,t){this._transitionEngine.destroy(e,t)},e.prototype.onInsert=function(e,t,n,r){this._transitionEngine.insertNode(e,t,n,r)},e.prototype.onRemove=function(e,t,n){this._transitionEngine.removeNode(e,t,n)},e.prototype.disableAnimations=function(e,t){this._transitionEngine.markElementAsDisabled(e,t)},e.prototype.process=function(e,t,n,r){if("@"==n.charAt(0)){var i=Xi(n);this._timelineEngine.command(i[0],t,i[1],r)}else this._transitionEngine.trigger(e,t,n,r)},e.prototype.listen=function(e,t,n,r,i){if("@"==n.charAt(0)){var o=Xi(n);return this._timelineEngine.listen(o[0],t,o[1],i)}return this._transitionEngine.listen(e,t,n,r,i)},e.prototype.flush=function(e){void 0===e&&(e=-1),this._transitionEngine.flush(e)},Object.defineProperty(e.prototype,"players",{get:function(){return this._transitionEngine.players.concat(this._timelineEngine.players)},enumerable:!0,configurable:!0}),e.prototype.whenRenderingDone=function(){return this._transitionEngine.whenRenderingDone()},e}(),dg=function(){function e(e,t,n,r){void 0===r&&(r=[]);var i=this;this.element=e,this.keyframes=t,this.options=n,this.previousPlayers=r,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.previousStyles={},this.currentSnapshot={},this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay,function(e,t){return 0===e||0===t}(this._duration,this._delay)&&r.forEach(function(e){var t=e.currentSnapshot;Object.keys(t).forEach(function(e){return i.previousStyles[e]=t[e]})})}return e.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])},e.prototype.init=function(){this._buildPlayer(),this._preparePlayerBeforeStart()},e.prototype._buildPlayer=function(){var e=this;if(!this._initialized){this._initialized=!0;var t=this.keyframes.map(function(e){return oo(e,!1)}),n=Object.keys(this.previousStyles);if(n.length&&t.length){var r=t[0],i=[];if(n.forEach(function(t){r.hasOwnProperty(t)||i.push(t),r[t]=e.previousStyles[t]}),i.length)for(var o=this,l=function(){var e=t[a];i.forEach(function(t){e[t]=Po(o.element,t)})},a=1;a<t.length;a++)l()}this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:{},this.domPlayer.addEventListener("finish",function(){return e._onFinish()})}},e.prototype._preparePlayerBeforeStart=function(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()},e.prototype._triggerWebAnimation=function(e,t,n){return e.animate(t,n)},e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.play=function(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[],this._started=!0),this.domPlayer.play()},e.prototype.pause=function(){this.init(),this.domPlayer.pause()},e.prototype.finish=function(){this.init(),this._onFinish(),this.domPlayer.finish()},e.prototype.reset=function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1},e.prototype._resetDomPlayerState=function(){this.domPlayer&&this.domPlayer.cancel()},e.prototype.restart=function(){this.reset(),this.play()},e.prototype.hasStarted=function(){return this._started},e.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])},e.prototype.setPosition=function(e){this.domPlayer.currentTime=e*this.time},e.prototype.getPosition=function(){return this.domPlayer.currentTime/this.time},Object.defineProperty(e.prototype,"totalTime",{get:function(){return this._delay+this._duration},enumerable:!0,configurable:!0}),e.prototype.beforeDestroy=function(){var e=this,t={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(function(n){"offset"!=n&&(t[n]=e._finished?e._finalKeyframe[n]:Po(e.element,n))}),this.currentSnapshot=t},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(function(e){return e()}),t.length=0},e}(),pg=function(){function e(){}return e.prototype.validateStyleProperty=function(e){return Ji(e)},e.prototype.matchesElement=function(e,t){return ym(e,t)},e.prototype.containsElement=function(e,t){return vm(e,t)},e.prototype.query=function(e,t,n){return bm(e,t,n)},e.prototype.computeStyle=function(e,t,n){return window.getComputedStyle(e)[t]},e.prototype.animate=function(e,t,n,r,i,o){void 0===o&&(o=[]);var l={duration:n,delay:r,fill:0==r?"both":"forwards"};i&&(l.easing=i);var a=o.filter(function(e){return e instanceof dg});return new dg(e,t,l,a)},e}(),fg=function(e){function t(t,n){var r=e.call(this)||this;return r._nextAnimationId=0,r._renderer=t.createRenderer(n.body,{id:"0",encapsulation:al.ViewEncapsulation.None,styles:[],data:{animation:[]}}),r}return Object(bl.__extends)(t,e),t.prototype.build=function(e){var t=this._nextAnimationId.toString();this._nextAnimationId++;var n=Array.isArray(e)?Object(Rs.sequence)(e):e;return No(this._renderer,null,t,"register",[n]),new hg(t,this._renderer)},t}(Rs.AnimationBuilder),hg=function(e){function t(t,n){var r=e.call(this)||this;return r._id=t,r._renderer=n,r}return Object(bl.__extends)(t,e),t.prototype.create=function(e,t){return new mg(this._id,e,t||{},this._renderer)},t}(Rs.AnimationFactory),mg=function(){function e(e,t,n,r){this.id=e,this.element=t,this._renderer=r,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",n)}return e.prototype._listen=function(e,t){return this._renderer.listen(this.element,"@@"+this.id+":"+e,t)},e.prototype._command=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return No(this._renderer,this.element,this.id,e,t)},e.prototype.onDone=function(e){this._listen("done",e)},e.prototype.onStart=function(e){this._listen("start",e)},e.prototype.onDestroy=function(e){this._listen("destroy",e)},e.prototype.init=function(){this._command("init")},e.prototype.hasStarted=function(){return this._started},e.prototype.play=function(){this._command("play"),this._started=!0},e.prototype.pause=function(){this._command("pause")},e.prototype.restart=function(){this._command("restart")},e.prototype.finish=function(){this._command("finish")},e.prototype.destroy=function(){this._command("destroy")},e.prototype.reset=function(){this._command("reset")},e.prototype.setPosition=function(e){this._command("setPosition",e)},e.prototype.getPosition=function(){return 0},e}(),gg=function(){function e(e,t,n){this.delegate=e,this.engine=t,this._zone=n,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,t.onRemovalComplete=function(e,t){t&&t.parentNode(e)&&t.removeChild(e.parentNode,e)}}return e.prototype.createRenderer=function(e,t){var n=this,r=this.delegate.createRenderer(e,t);if(!(e&&t&&t.data&&t.data.animation)){var i=this._rendererCache.get(r);return i||(i=new yg("",r,this.engine),this._rendererCache.set(r,i)),i}var o=t.id,l=t.id+"-"+this._currentId;return this._currentId++,this.engine.register(l,e),t.data.animation.forEach(function(t){return n.engine.registerTrigger(o,l,e,t.name,t)}),new vg(this,l,r,this.engine)},e.prototype.begin=function(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()},e.prototype._scheduleCountTask=function(){var e=this;Zone.current.scheduleMicroTask("incremenet the animation microtask",function(){return e._microtaskId++})},e.prototype.scheduleListenerCallback=function(e,t,n){var r=this;e>=0&&e<this._microtaskId?this._zone.run(function(){return t(n)}):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(function(){r._zone.run(function(){r._animationCallbacksBuffer.forEach(function(e){(0,e[0])(e[1])}),r._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([t,n]))},e.prototype.end=function(){var e=this;this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(function(){e._scheduleCountTask(),e.engine.flush(e._microtaskId)}),this.delegate.end&&this.delegate.end()},e.prototype.whenRenderingDone=function(){return this.engine.whenRenderingDone()},e}(),yg=function(){function e(e,t,n){this.namespaceId=e,this.delegate=t,this.engine=n,this.destroyNode=this.delegate.destroyNode?function(e){return t.destroyNode(e)}:null}return Object.defineProperty(e.prototype,"data",{get:function(){return this.delegate.data},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()},e.prototype.createElement=function(e,t){return this.delegate.createElement(e,t)},e.prototype.createComment=function(e){return this.delegate.createComment(e)},e.prototype.createText=function(e){return this.delegate.createText(e)},e.prototype.appendChild=function(e,t){this.delegate.appendChild(e,t),this.engine.onInsert(this.namespaceId,t,e,!1)},e.prototype.insertBefore=function(e,t,n){this.delegate.insertBefore(e,t,n),this.engine.onInsert(this.namespaceId,t,e,!0)},e.prototype.removeChild=function(e,t){this.engine.onRemove(this.namespaceId,t,this.delegate)},e.prototype.selectRootElement=function(e){return this.delegate.selectRootElement(e)},e.prototype.parentNode=function(e){return this.delegate.parentNode(e)},e.prototype.nextSibling=function(e){return this.delegate.nextSibling(e)},e.prototype.setAttribute=function(e,t,n,r){this.delegate.setAttribute(e,t,n,r)},e.prototype.removeAttribute=function(e,t,n){this.delegate.removeAttribute(e,t,n)},e.prototype.addClass=function(e,t){this.delegate.addClass(e,t)},e.prototype.removeClass=function(e,t){this.delegate.removeClass(e,t)},e.prototype.setStyle=function(e,t,n,r){this.delegate.setStyle(e,t,n,r)},e.prototype.removeStyle=function(e,t,n){this.delegate.removeStyle(e,t,n)},e.prototype.setProperty=function(e,t,n){"@"==t.charAt(0)&&"@.disabled"==t?this.disableAnimations(e,!!n):this.delegate.setProperty(e,t,n)},e.prototype.setValue=function(e,t){this.delegate.setValue(e,t)},e.prototype.listen=function(e,t,n){return this.delegate.listen(e,t,n)},e.prototype.disableAnimations=function(e,t){this.engine.disableAnimations(e,t)},e}(),vg=function(e){function t(t,n,r,i){var o=e.call(this,n,r,i)||this;return o.factory=t,o.namespaceId=n,o}return Object(bl.__extends)(t,e),t.prototype.setProperty=function(e,t,n){"@"==t.charAt(0)?"."==t.charAt(1)&&"@.disabled"==t?this.disableAnimations(e,n=void 0===n||!!n):this.engine.process(this.namespaceId,e,t.substr(1),n):this.delegate.setProperty(e,t,n)},t.prototype.listen=function(e,t,n){var r=this;if("@"==t.charAt(0)){var i=function(e){switch(e){case"body":return document.body;case"document":return document;case"window":return window;default:return e}}(e),o=t.substr(1),l="";return"@"!=o.charAt(0)&&(o=(a=function(e){var t=e.indexOf(".");return[e.substring(0,t),e.substr(t+1)]}(o))[0],l=a[1]),this.engine.listen(this.namespaceId,i,o,l,function(e){r.factory.scheduleListenerCallback(e._data||-1,n,e)})}return this.delegate.listen(e,t,n);var a},t}(yg),bg=function(e){function t(t,n){return e.call(this,t,n)||this}return Object(bl.__extends)(t,e),t}(cg),_g=function(){},wg="success",xg=new al.InjectionToken("IndexedDBBackend"),Cg=new al.InjectionToken("IDB_SCHEMA"),Eg=function(){function e(e,t){this.changes=new ml.Subject,this._schema=t,this._idb=e}return e.prototype._mapRecord=function(e){return function(t){return e.primaryKey||(t.record.$key=t.$key),t.record}},e.prototype._upgradeDB=function(e,t){for(var n in this._schema.stores)t.objectStoreNames.contains(n)&&t.deleteObjectStore(n),this._createObjectStore(t,n,this._schema.stores[n]);e.next(t),e.complete()},e.prototype._createObjectStore=function(e,t,n){e.createObjectStore(t,{autoIncrement:!0,keyPath:n.primaryKey})},e.prototype.open=function(e,t,n){var r=this;void 0===t&&(t=1);var i=this._idb;return gl.a.create(function(t){var n=i.open(e,r._schema.version),o=function(e){t.next(e.target.result),t.complete()},l=function(e){console.log(e),t.error(e)},a=function(e){r._upgradeDB(t,e.target.result)};return n.addEventListener(wg,o),n.addEventListener("error",l),n.addEventListener("upgradeneeded",a),function(){n.removeEventListener(wg,o),n.removeEventListener("error",l),n.removeEventListener("upgradeneeded",a)}})},e.prototype.deleteDatabase=function(e){var t=this;return new gl.a(function(n){var r=t._idb.deleteDatabase(e),i=function(e){n.next(null),n.complete()},o=function(e){return n.error(e)};return r.addEventListener(wg,i),r.addEventListener("error",o),function(){r.removeEventListener(wg,i),r.removeEventListener("error",o)}})},e.prototype.insert=function(e,t,n){var r=this;void 0===n&&(n=!0);var i=this.executeWrite(e,"put",t);return function(e,t,n){return x(e,t,n)(this)}.call(i,function(e){return n?r.changes.next({type:"DB_INSERT",payload:e}):{}})},e.prototype.get=function(e,t){var n=this,r=this.open(this._schema.name);return jo.call(r,function(r){return new gl.a(function(i){n._mapRecord(n._schema.stores[e]);var o=r.transaction([e],"readonly"),l=o.objectStore(e).get(t),a=function(e){return i.error(e)},s=function(){return i.complete()},u=function(e){return i.next(l.result)};return o.addEventListener("complete",s),o.addEventListener("error",a),l.addEventListener(wg,u),l.addEventListener("error",a),function(){l.removeEventListener(wg,u),l.removeEventListener("error",a),o.removeEventListener("complete",s),o.removeEventListener("error",a)}})})},e.prototype.query=function(e,t){var n=this.open(this._schema.name);return jo.call(n,function(n){return new gl.a(function(r){var i=n.transaction([e],"readonly"),o=i.objectStore(e).openCursor(),l=function(e){return r.error(e)},a=function(e){var n=e.target.result;n?(t?t(n.value)&&r.next(n.value):r.next(n.value),n.continue()):r.complete()};return i.addEventListener("error",l),o.addEventListener(wg,a),o.addEventListener("error",l),function(){o.removeEventListener(wg,a),o.removeEventListener("error",l),i.removeEventListener("error",l)}})})},e.prototype.executeWrite=function(e,t,n){var r=this,i=this.open(this._schema.name);return jo.call(i,function(i){return new gl.a(function(o){var l=r._schema.stores[e],a=r._mapRecord(l),s=i.transaction([e],"readwrite"),u=s.objectStore(e),c=function(e){return o.error(e)},d=function(){return o.complete()};s.addEventListener("complete",d),s.addEventListener("error",c);var p=jo.call(Ds(n),function(e){return new gl.a(function(n){var r;if(l.primaryKey)r=u[t](e);else{var i=e.$key,o=Object.assign({},e);delete o.key,r=u[t](o,i)}r.addEventListener(wg,function(){n.next(a({$key:r.result,record:e}))}),r.addEventListener("error",function(e){n.error(e)})})}).subscribe(o);return function(){p.unsubscribe(),s.removeEventListener("complete",d),s.removeEventListener("error",c)}})})},e.prototype.compare=function(e,t){return this._idb.cmp(e,t)},e}(),Sg=function(){function e(){}return e.provideDB=function(t){return{ngModule:e,providers:[{provide:Cg,useValue:t}]}},e}(),Og=(n("5jKg"),n("PAZ8")),Tg=new al.InjectionToken("mat-autocomplete-scroll-strategy"),kg=function(){},Dg=new al.InjectionToken("mat-menu-default-options"),Ig=new al.InjectionToken("mat-menu-scroll-strategy"),Rg=function(){},Mg=new al.InjectionToken("mat-select-scroll-strategy"),Pg=function(){},Ng=function(){return function(){this.changes=new ml.Subject,this.itemsPerPageLabel="Items per page:",this.nextPageLabel="Next page",this.previousPageLabel="Previous page",this.getRangeLabel=function(e,t,n){if(0==n||0==t)return"0 of "+n;var r=e*t;return r+1+" - "+(r<(n=Math.max(n,0))?Math.min(r+t,n):r+t)+" of "+n}}}(),Ag=function(){},Lg=function(){return function(){this.changes=new ml.Subject,this.sortButtonLabel=function(e){return"Change sorting for "+e},this.sortDescriptionLabel=function(e,t){return"Sorted by "+e+" "+("asc"==t?"ascending":"descending")}}}(),Fg=function(){},jg=function(){},Vg=function(){return function(){this.changes=new ml.Subject,this.optionalLabel="Optional"}}(),zg=function(){},Bg=n("uIf7"),Hg=n("PR+T"),Wg=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new qg(e))},e}(),qg=function(e){function t(){e.apply(this,arguments)}return Object(bl.__extends)(t,e),t.prototype._next=function(e){Object(Hg.a)()},t}(Yl.a),Ug=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new Gg(e))},e}(),Gg=function(e){function t(t){e.call(this,t)}return Object(bl.__extends)(t,e),t.prototype._next=function(e){this.destination.next(Og.a.createNext(e))},t.prototype._error=function(e){var t=this.destination;t.next(Og.a.createError(e)),t.complete()},t.prototype._complete=function(){var e=this.destination;e.next(Og.a.createComplete()),e.complete()},t}(Yl.a),Kg=function(){function e(){this.size=0,this._values=[],this._keys=[]}return e.prototype.get=function(e){var t=this._keys.indexOf(e);return-1===t?void 0:this._values[t]},e.prototype.set=function(e,t){var n=this._keys.indexOf(e);return-1===n?(this._keys.push(e),this._values.push(t),this.size++):this._values[n]=t,this},e.prototype.delete=function(e){var t=this._keys.indexOf(e);return-1!==t&&(this._values.splice(t,1),this._keys.splice(t,1),this.size--,!0)},e.prototype.clear=function(){this._keys.length=0,this._values.length=0,this.size=0},e.prototype.forEach=function(e,t){for(var n=0;n<this.size;n++)e.call(t,this._values[n],this._keys[n])},e}(),$g=_s.a.Map||function(){return Kg}(),Zg=function(){function e(){this.values={}}return e.prototype.delete=function(e){return this.values[e]=null,!0},e.prototype.set=function(e,t){return this.values[e]=t,this},e.prototype.get=function(e){return this.values[e]},e.prototype.forEach=function(e,t){var n=this.values;for(var r in n)n.hasOwnProperty(r)&&null!==n[r]&&e.call(t,n[r],r)},e.prototype.clear=function(){this.values={}},e}(),Qg=function(){function e(e,t,n,r){this.keySelector=e,this.elementSelector=t,this.durationSelector=n,this.subjectSelector=r}return e.prototype.call=function(e,t){return t.subscribe(new Yg(e,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))},e}(),Yg=function(e){function t(t,n,r,i,o){e.call(this,t),this.keySelector=n,this.elementSelector=r,this.durationSelector=i,this.subjectSelector=o,this.groups=null,this.attemptedToUnsubscribe=!1,this.count=0}return Object(bl.__extends)(t,e),t.prototype._next=function(e){var t;try{t=this.keySelector(e)}catch(e){return void this.error(e)}this._group(e,t)},t.prototype._group=function(e,t){var n=this.groups;n||(n=this.groups="string"==typeof t?new Zg:new $g);var r,i=n.get(t);if(this.elementSelector)try{r=this.elementSelector(e)}catch(e){this.error(e)}else r=e;if(!i){i=this.subjectSelector?this.subjectSelector():new ml.Subject,n.set(t,i);var o=new Jg(t,i,this);if(this.destination.next(o),this.durationSelector){var l=void 0;try{l=this.durationSelector(new Jg(t,i))}catch(e){return void this.error(e)}this.add(l.subscribe(new Xg(t,i,this)))}}i.closed||i.next(r)},t.prototype._error=function(e){var t=this.groups;t&&(t.forEach(function(t,n){t.error(e)}),t.clear()),this.destination.error(e)},t.prototype._complete=function(){var e=this.groups;e&&(e.forEach(function(e,t){e.complete()}),e.clear()),this.destination.complete()},t.prototype.removeGroup=function(e){this.groups.delete(e)},t.prototype.unsubscribe=function(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&e.prototype.unsubscribe.call(this))},t}(Yl.a),Xg=function(e){function t(t,n,r){e.call(this,n),this.key=t,this.group=n,this.parent=r}return Object(bl.__extends)(t,e),t.prototype._next=function(e){this.complete()},t.prototype._unsubscribe=function(){var e=this.parent,t=this.key;this.key=this.parent=null,e&&e.removeGroup(t)},t}(Yl.a),Jg=function(e){function t(t,n,r){e.call(this),this.key=t,this.groupSubject=n,this.refCountSubscription=r}return Object(bl.__extends)(t,e),t.prototype._subscribe=function(e){var t=new Cl.a,n=this.refCountSubscription,r=this.groupSubject;return n&&!n.closed&&t.add(new ey(n)),t.add(r.subscribe(e)),t},t}(gl.a),ey=function(e){function t(t){e.call(this),this.parent=t,t.count++}return Object(bl.__extends)(t,e),t.prototype.unsubscribe=function(){var t=this.parent;t.closed||this.closed||(e.prototype.unsubscribe.call(this),t.count-=1,0===t.count&&t.attemptedToUnsubscribe&&t.unsubscribe())},t}(Cl.a),ty=function(){function e(e,t){this.project=e,this.resultSelector=t}return e.prototype.call=function(e,t){return t.subscribe(new ny(e,this.project,this.resultSelector))},e}(),ny=function(e){function t(t,n,r){e.call(this,t),this.project=n,this.resultSelector=r,this.hasSubscription=!1,this.hasCompleted=!1,this.index=0}return Object(bl.__extends)(t,e),t.prototype._next=function(e){this.hasSubscription||this.tryNext(e)},t.prototype.tryNext=function(e){var t=this.index++,n=this.destination;try{var r=this.project(e,t);this.hasSubscription=!0,this.add(Object(Dl.a)(this,r,e,t))}catch(e){n.error(e)}},t.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete()},t.prototype.notifyNext=function(e,t,n,r,i){var o=this.destination;this.resultSelector?this.trySelectResult(e,t,n,r):o.next(t)},t.prototype.trySelectResult=function(e,t,n,r){var i=this.resultSelector,o=this.destination;try{var l=i(e,t,n,r);o.next(l)}catch(e){o.error(e)}},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(e){this.remove(e),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},t}(kl.a),ry=function(){function e(){}return e.prototype.call=function(e,t){return t.subscribe(new iy(e))},e}(),iy=function(e){function t(t){e.call(this,t)}return Object(bl.__extends)(t,e),t.prototype._next=function(e){e.observe(this.destination)},t}(Yl.a),oy=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),ly="__@ngrx/effects__",ay=Object(Yp.x)(function(e){return e.constructor[ly]||[]},Go),sy="ngrxOnRunEffects",uy=function(e){function t(t){var n=e.call(this)||this;return t&&(n.source=t),n}return oy(t,e),t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.ofType=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return ru.a.call(this,function(t){return e.some(function(e){return e===t.type})})},t}(gl.a),cy=(new al.InjectionToken("ngrx/effects: Immediate Effects"),new al.InjectionToken("ngrx/effects: Root Effects")),dy=(new al.InjectionToken("ngrx/effects: Feature Effects"),new al.InjectionToken("Browser Console")),py=function(){function e(e){this.console=e}return e.prototype.report=function(e,t){this.console.group(e);for(var n in t)this.console.error(n+":",t[n]);this.console.groupEnd()},e}(),fy=function(e){function t(t){var n=e.call(this)||this;return n.errorReporter=t,n}return oy(t,e),t.prototype.addEffects=function(e){this.next(e)},t.prototype.toActions=function(){var e=this;return jo.call(function(e,t,n,r){return function(e,t,n,r){return function(i){return i.lift(new Qg(e,t,n,r))}}(e,t,n,r)(this)}.call(this,Go),function(t){return function(){return function(e){return e.lift(new ry)}(this)}.call(ru.a.call(iu.a.call(function(e,t){return function(e,t){return function(n){return n.lift(new ty(e,t))}}(e,t)(this)}.call(t,Ko),function(t){return function(e,t){!function(e,t){if("E"===e.notification.kind){var n="Effect "+$o(e)+" threw an error";t.report(n,{Source:e.sourceInstance,Effect:e.effect,Error:e.notification.error,Notification:e.notification})}}(e,t),function(e,t){if("N"===e.notification.kind){var n=e.notification.value;if(!n||!n.type||"string"!=typeof n.type){var r="Effect "+$o(e)+" dispatched an invalid action";t.report(r,{Source:e.sourceInstance,Effect:e.effect,Dispatched:n,Notification:e.notification})}}}(e,t)}(t,e.errorReporter),t.notification}),function(e){return"N"===e.kind}))})},t}(ml.Subject),hy=function(){function e(e,t){this.effectSources=e,this.store=t,this.effectsSubscription=null}return e.prototype.start=function(){this.effectsSubscription||(this.effectsSubscription=this.effectSources.toActions().subscribe(this.store))},e.prototype.ngOnDestroy=function(){this.effectsSubscription&&(this.effectsSubscription.unsubscribe(),this.effectsSubscription=null)},e}(),my="@ngrx/effects/init",gy=function(){function e(e,t,n,r,i){this.sources=e,t.start(),r.forEach(function(t){return e.addEffects(t)}),n.dispatch({type:my})}return e.prototype.addEffects=function(e){this.sources.addEffects(e)},e}(),yy={loaded:!1,loading:!1,dataverses:[],createDataverse:[],createDataverseName:"",createDataverseError:[],createDataverseSuccess:!1,createDataverseFailed:!1,dropDataverse:[],dropDataverseName:"",dropDataverseError:[],dropDataverseSuccess:!1,dropDataverseFailed:!1},vy={loaded:!1,loading:!1,datasets:[],createDataset:[],createDatasetError:[],createDatasetSuccess:!1,createDatasetFailed:!1,dropDataset:[],dropDatasetError:[],dropDatasetSuccess:!1,dropDatasetFailed:!1,guideSelectsDataset:""},by={loaded:!1,loading:!1,datatypes:[],createDatatype:[],createDatatypeError:[],createDatatypeSuccess:!1,createDatatypeFailed:!1,dropDatatype:[],dropDatatypeError:[],dropDatatypeSuccess:!1,dropDatatypeFailed:!1},_y={loaded:!1,loading:!1,indexes:[],createIndex:[],createIndexError:[],createIndexSuccess:!1,createIndexFailed:!1,dropIndex:[],dropIndexError:[],dropIndexSuccess:!1,dropIndexFailed:!1},wy={loading:!1,loaded:!1,success:!1,sqlQueryString:"",sqlQueryResult:[],sqlQueryError:[]},xy={loading:!1,loaded:!1,success:!1,sqlQueryMetadataString:"",sqlQueryMetadataResult:[],sqlQueryMetadataError:[]},Cy={tree:[],loading:!1,loaded:!1};gl.a.from=Ds;var Ey=function(){function e(e,t){var n=this;this.store=e,this.ref=t,this.dv=[],this.ds=[],this.dt=[],this.idx=[],this.store.select(function(e){return e.dataverse.dataverses}).subscribe(function(e){if(e.results){n.dv=[];for(var t=0;t<e.results.length;t++){var r={id:0,DataverseName:"",Datasets:[]};r.id=t,r.DataverseName=e.results[t].DataverseName,n.dv.push(r)}n.updateMetadataTree()}}),this.store.select(function(e){return e.dataset.datasets}).subscribe(function(e){e.results&&(n.ds=e.results,n.updateMetadataTree())}),this.store.select(function(e){return e.datatype.datatypes}).subscribe(function(e){e.results&&(n.dt=e.results,n.updateMetadataTree())}),this.store.select(function(e){return e.index.indexes}).subscribe(function(e){e.results&&(n.idx=e.results,n.updateMetadataTree())})}return e.prototype.getMetadataTree=function(){return gl.a.from(this.dv)},e.prototype.updateMetadataTree=function(){for(var e=0;e<this.dv.length;e++){this.dv[e].Datasets=[];for(var t=0;t<this.ds.length;t++)if(this.ds[t].DataverseName===this.dv[e].DataverseName){this.ds[t].Datatype=[];for(var n=0;n<this.dt.length;n++)this.dt[n].DatatypeName===this.ds[t].DatatypeName&&(this.ds[t].Datatype=this.dt[n]);this.ds[t].Indexes=[];for(var r=0;r<this.idx.length;r++)this.idx[r].DatasetName===this.ds[t].DatasetName&&this.ds[t].Indexes.push(this.idx[r]);this.dv[e].Datasets.push(this.ds[t])}}this.store.dispatch(new Jh)},e}(),Sy=n("GpNi");gl.a.prototype.switchMap=Sy.a,gl.a.prototype.catch=il,gl.a.prototype._catch=il;var Oy=function(){function e(e,t){var n=this;this.actions=e,this.metadataService=t,this.calculateDBTree$=this.actions.ofType(Yh).switchMap(function(){return n.metadataService.getMetadataTree().map(function(e){return new em(e)})})}return Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"calculateDBTree$",void 0),e}(),Ty=function(){function e(e){this.http=e}return e.prototype.selectDataverses=function(){return this.executeSQLQuery("SELECT VALUE dv FROM Metadata.`Dataverse` dv")},e.prototype.selectDatasets=function(){return this.executeSQLQuery("SELECT VALUE ds FROM Metadata.`Dataset` ds")},e.prototype.selectDatatypes=function(){return this.executeSQLQuery("SELECT VALUE dt FROM Metadata.`Datatype` dt")},e.prototype.selectIndexes=function(){return this.executeSQLQuery("SELECT VALUE ix FROM Metadata.`Index` ix")},e.prototype.createDataverse=function(e){return this.executeDDLSQLQuery("CREATE DATAVERSE "+e+";")},e.prototype.dropDataverse=function(e){return this.executeDDLSQLQuery("DROP DATAVERSE "+e)},e.prototype.createDataset=function(e){return this.executeDDLSQLQuery("CREATE DATASET "+e+";")},e.prototype.dropDataset=function(e){return this.executeDDLSQLQuery("DROP DATASET "+e)},e.prototype.createDatatype=function(e){return this.executeDDLSQLQuery("CREATE DATATYPE "+e+";")},e.prototype.dropDatatype=function(e){return this.executeDDLSQLQuery("DROP TYPE "+e)},e.prototype.createIndex=function(e){return this.executeDDLSQLQuery("CREATE INDEX "+e+";")},e.prototype.dropIndex=function(e){return this.executeDDLSQLQuery("DROP INDEX "+e)},e.prototype.executeDDLSQLQuery=function(e){var t=this;return this.http.post("http://localhost:19002/query/service",{statement:e}).map(function(e){return e}).catch(function(e){return t.handleExecuteQueryError(e)})},e.prototype.executeSQLQuery=function(e){var t=this;return this.http.post("http://localhost:19002/query/service",{statement:e}).map(function(e){return e}).catch(function(e){return t.handleExecuteQueryError(e)})},e.prototype.handleExecuteQueryError=function(e){return console.log(e),Promise.reject(e.error||e)},e}(),ky=function(){function e(e,t){var n=this;this.actions=e,this.sqlService=t,this.selectDataverses$=this.actions.ofType(Ad).switchMap(function(e){return n.sqlService.selectDataverses().map(function(e){return new qd(e)}).catch(function(e){return vl(new Ud(e))})}),this.createDataverses$=this.actions.ofType(Fd).switchMap(function(e){return n.sqlService.createDataverse(e.payload).map(function(e){return new Kd(e)}).catch(function(e){return vl(new $d(e))})}),this.dropDataverses$=this.actions.ofType(zd).switchMap(function(e){return n.sqlService.dropDataverse(e.payload).map(function(e){return new Qd(e)}).catch(function(e){return vl(new Yd(e))})})}return Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"selectDataverses$",void 0),Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"createDataverses$",void 0),Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"dropDataverses$",void 0),e}(),Dy=function(){function e(e,t){var n=this;this.actions=e,this.sqlService=t,this.selectDatasets$=this.actions.ofType(Xd).switchMap(function(e){return n.sqlService.selectDatasets().map(function(e){return new up(e)}).catch(function(e){return vl(new cp(e))})}),this.createDatasets$=this.actions.ofType(ep).switchMap(function(e){return n.sqlService.createDataset(e.payload).map(function(e){return new pp(e)}).catch(function(e){return vl(new fp(e))})}),this.dropDatasets$=this.actions.ofType(rp).switchMap(function(e){return console.log(e.payload),n.sqlService.dropDataset(e.payload).map(function(e){return new mp(e)}).catch(function(e){return vl(new gp(e))})})}return Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"selectDatasets$",void 0),Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"createDatasets$",void 0),Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"dropDatasets$",void 0),e}(),Iy=function(){function e(e,t){var n=this;this.actions=e,this.sqlService=t,this.selectDatatypes$=this.actions.ofType(yp).switchMap(function(e){return n.sqlService.selectDatatypes().map(function(e){return new Op(e)}).catch(function(e){return vl(new Tp(e))})}),this.createDatatypes$=this.actions.ofType(bp).switchMap(function(e){return n.sqlService.createDatatype(e.payload).map(function(e){return new Dp(e)}).catch(function(e){return vl(new Ip(e))})}),this.dropDatatypes$=this.actions.ofType(xp).switchMap(function(e){return n.sqlService.dropDatatype(e.payload).map(function(e){return new Mp(e)}).catch(function(e){return vl(new Pp(e))})})}return Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"selectDatatypes$",void 0),Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"createDatatypes$",void 0),Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"dropDatatypes$",void 0),e}(),Ry=function(){function e(e,t){var n=this;this.actions=e,this.sqlService=t,this.selectIndexes$=this.actions.ofType(Np).switchMap(function(e){return n.sqlService.selectIndexes().map(function(e){return new Hp(e)}).catch(function(e){return vl(new Wp(e))})}),this.createIndexes$=this.actions.ofType(Lp).switchMap(function(e){return n.sqlService.createIndex(e.payload).map(function(e){return new Up(e)}).catch(function(e){return vl(new Gp(e))})}),this.dropIndexes$=this.actions.ofType(jp).switchMap(function(e){return n.sqlService.dropIndex(e.payload).map(function(e){return new $p(e)}).catch(function(e){return vl(new Zp(e))})})}return Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"selectIndexes$",void 0),Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"createIndexes$",void 0),Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"dropIndexes$",void 0),e}(),My=function(){function e(e,t){var n=this;this.actions=e,this.sqlService=t,this.executeQuery$=this.actions.ofType(Cd).switchMap(function(e){return n.sqlService.executeSQLQuery(e.payload).map(function(e){return new Id(e)}).catch(function(e){return vl(new Rd(e))})}),this.executeMetadataQuery$=this.actions.ofType(Od).switchMap(function(e){return n.sqlService.executeSQLQuery(e.payload).map(function(e){return new Pd(e)}).catch(function(e){return vl(new Nd(e))})})}return Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"executeQuery$",void 0),Object(bl.__decorate)([Uo(),Object(bl.__metadata)("design:type",gl.a)],e.prototype,"executeMetadataQuery$",void 0),e}(),Py=function(){},Ny=function(){},Ay=function(){},Ly=function(){},Fy=function(){},jy=function(){},Vy=function(){},zy=function(){},By=function(){},Hy=new al.InjectionToken("MAT_DRAWER_DEFAULT_AUTOSIZE"),Wy=function(){},qy=function(){},Uy=function(){},Gy=function(){},Ky=al["\u0275cmf"](sl,[ul],function(e){return al["\u0275mod"]([al["\u0275mpd"](512,al.ComponentFactoryResolver,al["\u0275CodegenComponentFactoryResolver"],[[8,[Us,sc,gc,Pc,Ac,uf,df,bf,wf,Df,Rf,Vf,Bf,um]],[3,al.ComponentFactoryResolver],al.NgModuleRef]),al["\u0275mpd"](5120,al.LOCALE_ID,al["\u0275m"],[[3,al.LOCALE_ID]]),al["\u0275mpd"](4608,cl.NgLocalization,cl.NgLocaleLocalization,[al.LOCALE_ID,[2,cl["\u0275a"]]]),al["\u0275mpd"](4608,Fu["\u0275i"],Fu["\u0275i"],[]),al["\u0275mpd"](4608,al.Compiler,al.Compiler,[]),al["\u0275mpd"](5120,al.APP_ID,al["\u0275f"],[]),al["\u0275mpd"](5120,al.IterableDiffers,al["\u0275k"],[]),al["\u0275mpd"](5120,al.KeyValueDiffers,al["\u0275l"],[]),al["\u0275mpd"](4608,Va.c,Va.r,[cl.DOCUMENT]),al["\u0275mpd"](6144,al.Sanitizer,null,[Va.c]),al["\u0275mpd"](4608,Va.f,ns,[[2,ts],[2,Ba]]),al["\u0275mpd"](5120,Va.d,function(e,t,n,r,i){return[new Va.k(e,t),new Va.o(n),new Va.n(r,i)]},[cl.DOCUMENT,al.NgZone,cl.DOCUMENT,cl.DOCUMENT,Va.f]),al["\u0275mpd"](4608,Va.e,Va.e,[Va.d,al.NgZone]),al["\u0275mpd"](135680,Va.m,Va.m,[cl.DOCUMENT]),al["\u0275mpd"](4608,Va.l,Va.l,[Va.e,Va.m]),al["\u0275mpd"](5120,wm,Ao,[]),al["\u0275mpd"](5120,Hm,Lo,[]),al["\u0275mpd"](4608,cg,bg,[wm,Hm]),al["\u0275mpd"](5120,al.RendererFactory2,Fo,[Va.l,cg,al.NgZone]),al["\u0275mpd"](6144,Va.p,null,[Va.m]),al["\u0275mpd"](4608,al.Testability,al.Testability,[al.NgZone]),al["\u0275mpd"](4608,Va.h,Va.h,[cl.DOCUMENT]),al["\u0275mpd"](4608,Va.i,Va.i,[cl.DOCUMENT]),al["\u0275mpd"](4608,Rs.AnimationBuilder,fg,[al.RendererFactory2,Va.b]),al["\u0275mpd"](5120,xg,Vo,[]),al["\u0275mpd"](4608,Eg,Eg,[xg,Cg]),al["\u0275mpd"](6144,zl,null,[cl.DOCUMENT]),al["\u0275mpd"](4608,Bl,Bl,[[2,zl]]),al["\u0275mpd"](4608,pl,pl,[]),al["\u0275mpd"](5120,Fl,l,[[3,Fl],al.NgZone,pl]),al["\u0275mpd"](5120,jl,a,[[3,jl],pl,al.NgZone]),al["\u0275mpd"](4608,aa,aa,[Fl,jl,al.NgZone]),al["\u0275mpd"](5120,fa,v,[[3,fa],cl.DOCUMENT]),al["\u0275mpd"](4608,da,da,[jl,cl.DOCUMENT]),al["\u0275mpd"](5120,pa,y,[[3,pa],cl.DOCUMENT]),al["\u0275mpd"](4608,ga,ga,[aa,fa,al.ComponentFactoryResolver,da,pa,al.ApplicationRef,al.Injector,al.NgZone,cl.DOCUMENT]),al["\u0275mpd"](5120,ya,b,[ga]),al["\u0275mpd"](5120,Tg,zo,[ga]),al["\u0275mpd"](4608,Ea,Ea,[pl]),al["\u0275mpd"](4608,Oa,Oa,[Ea,al.NgZone,cl.DOCUMENT]),al["\u0275mpd"](136192,Pa,O,[[3,Pa],cl.DOCUMENT]),al["\u0275mpd"](5120,Aa,T,[[3,Aa],[2,Na],cl.DOCUMENT]),al["\u0275mpd"](5120,La,k,[[3,La],al.NgZone,pl]),al["\u0275mpd"](5120,Vc,xe,[[3,Vc]]),al["\u0275mpd"](4608,qf,qf,[]),al["\u0275mpd"](4608,es,es,[]),al["\u0275mpd"](5120,Ls,A,[ga]),al["\u0275mpd"](4608,Fs,Fs,[ga,al.Injector,[2,cl.Location],Ls,[3,Fs]]),al["\u0275mpd"](5120,Nu,K,[[3,Nu],[2,gu],Va.c]),al["\u0275mpd"](4608,Ku,Ku,[]),al["\u0275mpd"](5120,Ju,X,[ga]),al["\u0275mpd"](5120,Ig,Bo,[ga]),al["\u0275mpd"](5120,Mg,Ho,[ga]),al["\u0275mpd"](5120,pc,he,[ga]),al["\u0275mpd"](5120,Ng,Wo,[[3,Ng]]),al["\u0275mpd"](4608,xc,xc,[pl]),al["\u0275mpd"](135680,Cc,Cc,[xc,al.NgZone]),al["\u0275mpd"](4608,Ic,Ic,[ga,Aa,al.Injector,Cc,[3,Ic]]),al["\u0275mpd"](5120,Lg,qo,[[3,Lg]]),al["\u0275mpd"](4608,Vg,Vg,[]),al["\u0275mpd"](6144,Ha,null,[al.LOCALE_ID]),al["\u0275mpd"](4608,Wa,Qa,[[2,Ha]]),al["\u0275mpd"](135680,Yp.k,Yp.k,[Yp.a,Yp.i,Yp.j,Yp.d]),al["\u0275mpd"](5120,Bg.c,Bg.d,[Bg.k,Bg.i]),al["\u0275mpd"](4608,am,am,[Yp.m]),al["\u0275mpd"](512,cl.CommonModule,cl.CommonModule,[]),al["\u0275mpd"](512,ah.SharedModule,ah.SharedModule,[]),al["\u0275mpd"](512,lh.TreeModule,lh.TreeModule,[]),al["\u0275mpd"](512,Oh.DropdownModule,Oh.DropdownModule,[]),al["\u0275mpd"](512,Fu["\u0275ba"],Fu["\u0275ba"],[]),al["\u0275mpd"](512,Fu.FormsModule,Fu.FormsModule,[]),al["\u0275mpd"](512,Th.PaginatorModule,Th.PaginatorModule,[]),al["\u0275mpd"](512,Sh.DataTableModule,Sh.DataTableModule,[]),al["\u0275mpd"](1024,al.ErrorHandler,Va.q,[]),al["\u0275mpd"](1024,al.APP_INITIALIZER,function(e){return[Va.t(e)]},[[2,al.NgProbeToken]]),al["\u0275mpd"](512,al.ApplicationInitStatus,al.ApplicationInitStatus,[[2,al.APP_INITIALIZER]]),al["\u0275mpd"](131584,al.ApplicationRef,al.ApplicationRef,[al.NgZone,al["\u0275Console"],al.Injector,al.ErrorHandler,al.ComponentFactoryResolver,al.ApplicationInitStatus]),al["\u0275mpd"](512,al.ApplicationModule,al.ApplicationModule,[al.ApplicationRef]),al["\u0275mpd"](512,Va.a,Va.a,[[3,Va.a]]),al["\u0275mpd"](512,_g,_g,[]),al["\u0275mpd"](512,Sg,Sg,[]),al["\u0275mpd"](1024,dy,Qo,[]),al["\u0275mpd"](512,py,py,[dy]),al["\u0275mpd"](512,fy,fy,[py]),al["\u0275mpd"](131584,Bg.h,Bg.h,[]),al["\u0275mpd"](131584,Yp.a,Yp.a,[]),al["\u0275mpd"](2048,Yp.h,null,[Bg.h]),al["\u0275mpd"](256,Yp.r,void 0,[]),al["\u0275mpd"](1024,Yp.d,Yp.v,[Yp.r]),al["\u0275mpd"](256,Yp.q,{dataverse:Yo,dataset:Xo,datatype:Jo,index:el,sqlQuery:tl,sqlMetadataQuery:nl,metadata:rl},[]),al["\u0275mpd"](2048,Yp.t,null,[Yp.q]),al["\u0275mpd"](1024,Yp.c,Yp.u,[al.Injector,Yp.q,Yp.t]),al["\u0275mpd"](256,Yp.s,Yp.w,[]),al["\u0275mpd"](256,Yp.e,[],[]),al["\u0275mpd"](1024,Yp.f,Yp.y,[Yp.s,Yp.e]),al["\u0275mpd"](131584,Yp.g,Yp.g,[Yp.h,Yp.d,Yp.c,Yp.f]),al["\u0275mpd"](2048,Yp.i,null,[Yp.g]),al["\u0275mpd"](1024,Bg.k,Bg.e,[]),al["\u0275mpd"](512,Bg.l,Bg.l,[Bg.k]),al["\u0275mpd"](131584,Yp.j,Yp.j,[]),al["\u0275mpd"](256,Bg.j,{maxAge:10},[]),al["\u0275mpd"](1024,Bg.i,Bg.g,[Bg.j]),al["\u0275mpd"](512,Bg.a,Bg.a,[Bg.h,Yp.a,Yp.i,Bg.l,Yp.j,Yp.d,Bg.i]),al["\u0275mpd"](1024,Yp.l,Bg.f,[Bg.a]),al["\u0275mpd"](512,Yp.m,Yp.m,[Yp.l,Yp.a,Yp.g]),al["\u0275mpd"](131584,hy,hy,[fy,Yp.m]),al["\u0275mpd"](512,uy,uy,[Yp.j]),al["\u0275mpd"](512,Ey,Ey,[Yp.m,al.ApplicationRef]),al["\u0275mpd"](512,Oy,Oy,[uy,Ey]),al["\u0275mpd"](512,xu,xu,[]),al["\u0275mpd"](2048,wu,null,[xu]),al["\u0275mpd"](512,Cu,Cu,[wu]),al["\u0275mpd"](2048,lu,null,[Cu]),al["\u0275mpd"](256,Eu,"XSRF-TOKEN",[]),al["\u0275mpd"](512,Ou,Tu,[cl.DOCUMENT,al.PLATFORM_ID,Eu]),al["\u0275mpd"](256,Su,"X-XSRF-TOKEN",[]),al["\u0275mpd"](512,ku,ku,[Ou,Su]),al["\u0275mpd"](1024,vu,function(e){return[e]},[ku]),al["\u0275mpd"](1024,ou,q,[lu,[2,vu]]),al["\u0275mpd"](512,gu,gu,[ou]),al["\u0275mpd"](512,Ty,Ty,[gu]),al["\u0275mpd"](512,ky,ky,[uy,Ty]),al["\u0275mpd"](512,Dy,Dy,[uy,Ty]),al["\u0275mpd"](512,Iy,Iy,[uy,Ty]),al["\u0275mpd"](512,Ry,Ry,[uy,Ty]),al["\u0275mpd"](512,My,My,[uy,Ty]),al["\u0275mpd"](1024,cy,Zo,[Oy,ky,Dy,Iy,Ry,My]),al["\u0275mpd"](512,gy,gy,[fy,hy,Yp.m,cy,[2,Yp.n]]),al["\u0275mpd"](512,Du,Du,[]),al["\u0275mpd"](512,Iu,Iu,[]),al["\u0275mpd"](512,Hl,Hl,[]),al["\u0275mpd"](256,za,!0,[]),al["\u0275mpd"](512,Ba,Ba,[[2,za]]),al["\u0275mpd"](512,hl,hl,[]),al["\u0275mpd"](512,us,us,[]),al["\u0275mpd"](512,cs,cs,[]),al["\u0275mpd"](512,ds,ds,[]),al["\u0275mpd"](512,Zl,Zl,[]),al["\u0275mpd"](512,Vl,Vl,[]),al["\u0275mpd"](512,va,va,[]),al["\u0275mpd"](512,kg,kg,[]),al["\u0275mpd"](512,ja,ja,[]),al["\u0275mpd"](512,Qs,Qs,[]),al["\u0275mpd"](512,Gh,Gh,[]),al["\u0275mpd"](512,md,md,[]),al["\u0275mpd"](512,Gf,Gf,[]),al["\u0275mpd"](512,Py,Py,[]),al["\u0275mpd"](512,Ny,Ny,[]),al["\u0275mpd"](512,Yc,Yc,[]),al["\u0275mpd"](512,sd,sd,[]),al["\u0275mpd"](512,Ws,Ws,[]),al["\u0275mpd"](512,Lu,Lu,[]),al["\u0275mpd"](512,tc,tc,[]),al["\u0275mpd"](512,Ay,Ay,[]),al["\u0275mpd"](512,Ly,Ly,[]),al["\u0275mpd"](512,Bu,Bu,[]),al["\u0275mpd"](512,rs,rs,[]),al["\u0275mpd"](512,Fy,Fy,[]),al["\u0275mpd"](512,Gu,Gu,[]),al["\u0275mpd"](512,jy,jy,[]),al["\u0275mpd"](512,Rg,Rg,[]),al["\u0275mpd"](512,Pg,Pg,[]),al["\u0275mpd"](512,hc,hc,[]),al["\u0275mpd"](512,Ag,Ag,[]),al["\u0275mpd"](512,Vy,Vy,[]),al["\u0275mpd"](512,zy,zy,[]),al["\u0275mpd"](512,By,By,[]),al["\u0275mpd"](512,Wy,Wy,[]),al["\u0275mpd"](512,qy,qy,[]),al["\u0275mpd"](512,Uy,Uy,[]),al["\u0275mpd"](512,Ec,Ec,[]),al["\u0275mpd"](512,Rc,Rc,[]),al["\u0275mpd"](512,Fg,Fg,[]),al["\u0275mpd"](512,jg,jg,[]),al["\u0275mpd"](512,zg,zg,[]),al["\u0275mpd"](512,th,th,[]),al["\u0275mpd"](512,vd,vd,[]),al["\u0275mpd"](512,Xa,Xa,[]),al["\u0275mpd"](512,Ja,Ja,[]),al["\u0275mpd"](512,Gy,Gy,[]),al["\u0275mpd"](512,Yp.o,Yp.o,[Yp.a,Yp.i,Yp.j]),al["\u0275mpd"](512,Bg.b,Bg.b,[]),al["\u0275mpd"](512,sl,sl,[]),al["\u0275mpd"](256,Cg,{version:1,name:"asterixDB_app",stores:{}},[]),al["\u0275mpd"](256,Dg,{overlapTrigger:!0,xPosition:"after",yPosition:"below"},[]),al["\u0275mpd"](256,Hy,!1,[]),al["\u0275mpd"](256,qa,Ya,[])])});Object(al.enableProdMode)(),Va.j().bootstrapModuleFactory(Ky).catch(function(e){return console.log(e)})},"cpZ/":function(e,t,n){"use strict";var r=n("ptrv"),i=n("CDXM"),o=n("lfBE"),l=n("pBmS"),a=n("xI8H"),s=n("p/bR"),u=n("Lcie"),c=n("JXkd"),d=n("umMR"),p=n("UlVq"),f=n("P6IN"),h=n("Ula3");e.exports=function(e,t,n,m,g,y){var v=r[e],b=v,_=g?"set":"add",w=b&&b.prototype,x={},C=function(e){var t=w[e];o(w,e,"delete"==e?function(e){return!(y&&!c(e))&&t.call(this,0===e?0:e)}:"has"==e?function(e){return!(y&&!c(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return y&&!c(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})};if("function"==typeof b&&(y||w.forEach&&!d(function(){(new b).entries().next()}))){var E=new b,S=E[_](y?{}:-0,1)!=E,O=d(function(){E.has(1)}),T=p(function(e){new b(e)}),k=!y&&d(function(){for(var e=new b,t=5;t--;)e[_](t,t);return!e.has(-0)});T||((b=t(function(t,n){u(t,b,e);var r=h(new v,t,b);return void 0!=n&&s(n,g,r[_],r),r})).prototype=w,w.constructor=b),(O||k)&&(C("delete"),C("has"),g&&C("get")),(k||S)&&C(_),y&&w.clear&&delete w.clear}else b=m.getConstructor(t,e,g,_),l(b.prototype,n),a.NEED=!0;return f(b,e),x[e]=b,i(i.G+i.W+i.F*(b!=v),x),y||m.setStrong(b,e,g),b}},"dXJ/":function(e,t,n){var r=n("VceJ"),i=n("3r0D")("toStringTag"),o="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,l;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:o?r(t):"Object"==(l=r(t))&&"function"==typeof t.callee?"Arguments":l}},"dmC+":function(e,t,n){"use strict";t.a=function(e,t){return Object(r.a)(e,t)(this)};var r=n("qqDE")},eFQL:function(e,t,n){(function(e){!function(){"use strict";function t(e,t){for(var n=e.length-1;n>=0;n--)typeof e[n]===v&&(e[n]=Zone.current.wrap(e[n],t+"_"+n));return e}function n(e){return!e||!1!==e.writable&&(typeof e.get!==v||typeof e.set!==b)}function r(e,t,n){var r=Object.getOwnPropertyDescriptor(e,t);if(!r&&n&&Object.getOwnPropertyDescriptor(n,t)&&(r={enumerable:!0,configurable:!0}),r&&r.configurable){delete r.writable,delete r.value;var i=r.get,o=t.substr(2),l=S[o];l||(l=S[o]=g("ON_PROPERTY"+o)),r.set=function(t){var n=this;n||e!==y||(n=y),n&&(n[l]&&n.removeEventListener(o,O),"function"==typeof t?(n[l]=t,n.addEventListener(o,O,!1)):n[l]=null)},r.get=function(){var n=this;if(n||e!==y||(n=y),!n)return null;var o=n[l];if(o)return o;if(i){var a=i&&i.apply(this);if(a)return r.set.apply(this,[a]),typeof n[_]===v&&n.removeAttribute(t),a}return null},Object.defineProperty(e,t,r)}}function i(e,t,n){if(t)for(var i=0;i<t.length;i++)r(e,"on"+t[i],n);else{var o=[];for(var l in e)"on"==l.substr(0,2)&&o.push(l);for(var a=0;a<o.length;a++)r(e,o[a],n)}}function o(e){var n=y[e];if(n){y[g(e)]=n,y[e]=function(){var r=t(arguments,e);switch(r.length){case 0:this[T]=new n;break;case 1:this[T]=new n(r[0]);break;case 2:this[T]=new n(r[0],r[1]);break;case 3:this[T]=new n(r[0],r[1],r[2]);break;case 4:this[T]=new n(r[0],r[1],r[2],r[3]);break;default:throw new Error("Arg list too long.")}},a(y[e],n);var r,i=new n(function(){});for(r in i)"XMLHttpRequest"===e&&"responseBlob"===r||function(t){"function"==typeof i[t]?y[e].prototype[t]=function(){return this[T][t].apply(this[T],arguments)}:Object.defineProperty(y[e].prototype,t,{set:function(n){"function"==typeof n?(this[T][t]=Zone.current.wrap(n,e+"."+t),a(this[T][t],n)):this[T][t]=n},get:function(){return this[T][t]}})}(r);for(r in n)"prototype"!==r&&n.hasOwnProperty(r)&&(y[e][r]=n[r])}}function l(e,t,r){for(var i=e;i&&!i.hasOwnProperty(t);)i=Object.getPrototypeOf(i);!i&&e[t]&&(i=e);var o,l=g(t);if(i&&!(o=i[l])&&(o=i[l]=i[t],n(i&&Object.getOwnPropertyDescriptor(i,t)))){var s=r(o,l,t);i[t]=function(){return s(this,arguments)},a(i[t],o)}return o}function a(e,t){e[g("OriginalDelegate")]=t}function s(e,t,n){function r(t,n){if(!t)return!1;var r=!0;n&&void 0!==n.useGlobalCallback&&(r=n.useGlobalCallback);var h=n&&n.validateHandler,v=!0;n&&void 0!==n.checkDuplicate&&(v=n.checkDuplicate);var b=!1;n&&void 0!==n.returnTarget&&(b=n.returnTarget);for(var _=t;_&&!_.hasOwnProperty(i);)_=Object.getPrototypeOf(_);if(!_&&t[i]&&(_=t),!_)return!1;if(_[c])return!1;var w,x={},C=_[c]=_[i],E=_[g(o)]=_[o],S=_[g(l)]=_[l],O=_[g(s)]=_[s];n&&n.prependEventListenerFnName&&(w=_[g(n.prependEventListenerFnName)]=_[n.prependEventListenerFnName]);var T=r?function(e){if(!e.isRemoved){var t=A[e.eventName],n=void 0;t&&(n=t[e.capture?M:P]);var r=n&&e.target[n];if(r)for(var i=0;i<r.length;i++)if(r[i]===e){r.splice(i,1),e.isRemoved=!0,0===r.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.apply(e.target,[e.eventName,e.capture?y:m,e.options])}:function(e){return E.apply(e.target,[e.eventName,e.invoke,e.options])},k=n&&n.compareTaskCallbackVsDelegate?n.compareTaskCallbackVsDelegate:function(e,t){var n=typeof t;return n===j&&e.callback===t||n===V&&e.originalDelegate===t},D=function(t,n,i,o,l,a){return void 0===l&&(l=!1),void 0===a&&(a=!1),function(){var s=this||e,u=(Zone,arguments[1]);if(!u)return t.apply(this,arguments);var c=!1;if(typeof u!==j){if(!u.handleEvent)return t.apply(this,arguments);c=!0}if(!h||h(t,u,s,arguments)){var d,p=arguments[0],f=arguments[2],m=!1;void 0===f?d=!1:!0===f?d=!0:!1===f?d=!1:(d=!!f&&!!f.capture,m=!!f&&!!f.once);var g,y=Zone.current,b=A[p];if(b)g=b[d?M:P];else{var _=z+(p+P),w=z+(p+M);A[p]={},A[p][P]=_,A[p][M]=w,g=d?w:_}var C=s[g],E=!1;if(C){if(E=!0,v)for(var S=0;S<C.length;S++)if(k(C[S],u))return}else C=s[g]=[];var O,T=s.constructor[F],D=L[T];D&&(O=D[p]),O||(O=T+n+p),x.options=f,m&&(x.options.once=!1),x.target=s,x.capture=d,x.eventName=p,x.isExisting=E;var I=y.scheduleEventTask(O,u,r?N:null,i,o);return m&&(f.once=!0),I.options=f,I.target=s,I.capture=d,I.eventName=p,c&&(I.originalDelegate=u),a?C.unshift(I):C.push(I),l?s:void 0}}};return _[i]=D(C,d,r?function(e){if(!x.isExisting)return C.apply(x.target,[x.eventName,x.capture?y:m,x.options])}:function(e){return C.apply(x.target,[x.eventName,e.invoke,x.options])},T,b),w&&(_[p]=D(w,f,function(e){return w.apply(x.target,[x.eventName,e.invoke,x.options])},T,b,!0)),_[o]=function(){var t,n=this||e,r=arguments[0],i=arguments[2];t=void 0!==i&&(!0===i||!1!==i&&!!i&&!!i.capture);var o=arguments[1];if(!o)return E.apply(this,arguments);if(!h||h(E,o,n,arguments)){var l,a=A[r];a&&(l=a[t?M:P]);var s=l&&n[l];if(s)for(var u=0;u<s.length;u++){var c=s[u];if(k(c,o))return s.splice(u,1),c.isRemoved=!0,0===s.length&&(c.allRemoved=!0,n[l]=null),void c.zone.cancelTask(c)}}},_[l]=function(){for(var t=[],n=u(this||e,arguments[0]),r=0;r<n.length;r++){var i=n[r];t.push(i.originalDelegate?i.originalDelegate:i.callback)}return t},_[s]=function(){var t=this||e,n=arguments[0];if(n){var r=A[n];if(r){var i=t[r[P]],l=t[r[M]];if(i){var a=R(i);for(d=0;d<a.length;d++)this[o].apply(this,[n,(u=a[d]).originalDelegate?u.originalDelegate:u.callback,u.options])}if(l)for(a=R(l),d=0;d<a.length;d++){var u;this[o].apply(this,[n,(u=a[d]).originalDelegate?u.originalDelegate:u.callback,u.options])}}}else{for(var c=Object.keys(t),d=0;d<c.length;d++){var p=B.exec(c[d]),f=p&&p[1];f&&"removeListener"!==f&&this[s].apply(this,[f])}this[s].apply(this,["removeListener"])}},a(_[i],C),a(_[o],E),O&&a(_[s],O),S&&a(_[l],S),!0}for(var i=n&&n.addEventListenerFnName||"addEventListener",o=n&&n.removeEventListenerFnName||"removeEventListener",l=n&&n.listenersFnName||"eventListeners",s=n&&n.removeAllFnName||"removeAllListeners",c=g(i),d="."+i+":",p="prependListener",f="."+p+":",h=function(e,t,n){if(!e.isRemoved){var r=e.callback;typeof r===V&&r.handleEvent&&(e.callback=function(e){return r.handleEvent(e)},e.originalDelegate=r),e.invoke(e,t,[n]);var i=e.options;i&&"object"==typeof i&&i.once&&t[o].apply(t,[n.type,e.originalDelegate?e.originalDelegate:e.callback,i])}},m=function(t){if(t=t||e.event){var n=this||t.target||e,r=n[A[t.type][P]];if(r)if(1===r.length)h(r[0],n,t);else for(var i=r.slice(),o=0;o<i.length&&(!t||!0!==t[H]);o++)h(i[o],n,t)}},y=function(t){if(t=t||e.event){var n=this||t.target||e,r=n[A[t.type][M]];if(r)if(1===r.length)h(r[0],n,t);else for(var i=r.slice(),o=0;o<i.length&&(!t||!0!==t[H]);o++)h(i[o],n,t)}},v=[],b=0;b<t.length;b++)v[b]=r(t[b],n);return v}function u(e,t){var n=[];for(var r in e){var i=B.exec(r),o=i&&i[1];if(o&&(!t||o===t)){var l=e[r];if(l)for(var a=0;a<l.length;a++)n.push(l[a])}}return n}function c(e,t,n,r){function i(t){var n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{typeof n.handleId===c?delete u[n.handleId]:n.handleId&&(n.handleId[W]=null)}},n.handleId=a.apply(e,n.args),t}function o(e){return s(e.data.handleId)}var a=null,s=null;n+=r;var u={},c="number";a=l(e,t+=r,function(n){return function(l,a){if("function"==typeof a[0]){var s=Zone.current.scheduleMacroTask(t,a[0],{handleId:null,isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?a[1]||0:null,args:a},i,o);if(!s)return s;var d=s.data.handleId;return typeof d===c?u[d]=s:d&&(d[W]=s),d&&d.ref&&d.unref&&"function"==typeof d.ref&&"function"==typeof d.unref&&(s.ref=d.ref.bind(d),s.unref=d.unref.bind(d)),typeof d===c||d?d:s}return n.apply(e,a)}}),s=l(e,n,function(t){return function(n,r){var i,o=r[0];typeof o===c?i=u[o]:(i=o&&o[W])||(i=o),i&&"string"==typeof i.type?"notScheduled"!==i.state&&(i.cancelFn&&i.data.isPeriodic||0===i.runCount)&&(typeof o===c?delete u[o]:o&&(o[W]=null),i.zone.cancelTask(i)):t.apply(e,r)}})}function d(e,t){return e&&e[K]&&e[K][t]}function p(e,t,n){return n.configurable=!0,n.configurable||(e[K]||q(e,K,{writable:!0,value:{}}),e[K][t]=!0),n}function f(e,t,n,r){try{return q(e,t,n)}catch(o){if(!n.configurable)throw o;typeof r==$?delete n.configurable:n.configurable=r;try{return q(e,t,n)}catch(r){var i=null;try{i=JSON.stringify(n)}catch(e){i=i.toString()}console.log("Attempting to configure '"+t+"' with descriptor '"+i+"' on object '"+e+"' and got error, giving up: "+r)}}}function h(e,t,n,r){i(e,function(e,t,n){if(!n)return t;var r=n.filter(function(t){return t.target===e});if(!r||0===r.length)return t;var i=r[0].ignoreProperties;return t.filter(function(e){return-1===i.indexOf(e)})}(e,t,n),r)}!function(e){function t(e){a&&a.mark&&a.mark(e)}function n(e,t){a&&a.measure&&a.measure(e,t)}function r(t){0===M&&0===g.length&&(u||e[h]&&(u=e[h].resolve(0)),u?u[m](i):e[f](i,0)),t&&g.push(t)}function i(){if(!y){for(y=!0;g.length;){var e=g;g=[];for(var t=0;t<e.length;t++){var n=e[t];try{n.zone.runTask(n,null,null)}catch(e){D.onUnhandledError(e)}}}l("ignoreConsoleErrorUncaughtError"),D.microtaskDrainDone(),y=!1}}function o(){}function l(e){return"__zone_symbol__"+e}var a=e.performance;if(t("Zone"),e.Zone)throw new Error("Zone already loaded.");var s=function(){function r(e,t){this._properties=null,this._parent=e,this._name=t?t.name||"unnamed":"<root>",this._properties=t&&t.properties||{},this._zoneDelegate=new d(this,this._parent&&this._parent._zoneDelegate,t)}return r.assertZonePatched=function(){if(e.Promise!==k.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(r,"root",{get:function(){for(var e=r.current;e.parent;)e=e.parent;return e},enumerable:!0,configurable:!0}),Object.defineProperty(r,"current",{get:function(){return I.zone},enumerable:!0,configurable:!0}),Object.defineProperty(r,"currentTask",{get:function(){return R},enumerable:!0,configurable:!0}),r.__load_patch=function(i,o){if(k.hasOwnProperty(i))throw Error("Already loaded patch: "+i);if(!e["__Zone_disable_"+i]){var l="Zone:"+i;t(l),k[i]=o(e,r,D),n(l,l)}},Object.defineProperty(r.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),r.prototype.get=function(e){var t=this.getZoneWith(e);if(t)return t._properties[e]},r.prototype.getZoneWith=function(e){for(var t=this;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null},r.prototype.fork=function(e){if(!e)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,e)},r.prototype.wrap=function(e,t){if("function"!=typeof e)throw new Error("Expecting function got: "+e);var n=this._zoneDelegate.intercept(this,e,t),r=this;return function(){return r.runGuarded(n,this,arguments,t)}},r.prototype.run=function(e,t,n,r){void 0===t&&(t=void 0),void 0===n&&(n=null),void 0===r&&(r=null),I={parent:I,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,r)}finally{I=I.parent}},r.prototype.runGuarded=function(e,t,n,r){void 0===t&&(t=null),void 0===n&&(n=null),void 0===r&&(r=null),I={parent:I,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,r)}catch(e){if(this._zoneDelegate.handleError(this,e))throw e}}finally{I=I.parent}},r.prototype.runTask=function(e,t,n){if(e.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(e.zone||v).name+"; Execution: "+this.name+")");if(e.state!==b||e.type!==T){var r=e.state!=x;r&&e._transitionTo(x,w),e.runCount++;var i=R;R=e,I={parent:I,zone:this};try{e.type==O&&e.data&&!e.data.isPeriodic&&(e.cancelFn=null);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(e){if(this._zoneDelegate.handleError(this,e))throw e}}finally{e.state!==b&&e.state!==E&&(e.type==T||e.data&&e.data.isPeriodic?r&&e._transitionTo(w,x):(e.runCount=0,this._updateTaskCount(e,-1),r&&e._transitionTo(b,x,b))),I=I.parent,R=i}}},r.prototype.scheduleTask=function(e){if(e.zone&&e.zone!==this)for(var t=this;t;){if(t===e.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+e.zone.name);t=t.parent}e._transitionTo(_,b);var n=[];e._zoneDelegates=n,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(t){throw e._transitionTo(E,_,b),this._zoneDelegate.handleError(this,t),t}return e._zoneDelegates===n&&this._updateTaskCount(e,1),e.state==_&&e._transitionTo(w,_),e},r.prototype.scheduleMicroTask=function(e,t,n,r){return this.scheduleTask(new p(S,e,t,n,r,null))},r.prototype.scheduleMacroTask=function(e,t,n,r,i){return this.scheduleTask(new p(O,e,t,n,r,i))},r.prototype.scheduleEventTask=function(e,t,n,r,i){return this.scheduleTask(new p(T,e,t,n,r,i))},r.prototype.cancelTask=function(e){if(e.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(e.zone||v).name+"; Execution: "+this.name+")");e._transitionTo(C,w,x);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(E,C),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(b,C),e.runCount=0,e},r.prototype._updateTaskCount=function(e,t){var n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(e.type,t)},r}();s.__symbol__=l;var u,c={name:"",onHasTask:function(e,t,n,r){return e.hasTask(n,r)},onScheduleTask:function(e,t,n,r){return e.scheduleTask(n,r)},onInvokeTask:function(e,t,n,r,i,o){return e.invokeTask(n,r,i,o)},onCancelTask:function(e,t,n,r){return e.cancelTask(n,r)}},d=function(){function e(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t.zone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t.zone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t.zone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t.zone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t.zone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t.zone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t.zone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var r=n&&n.onHasTask;(r||t&&t._hasTaskZS)&&(this._hasTaskZS=r?n:c,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}return e.prototype.fork=function(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new s(e,t)},e.prototype.intercept=function(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t},e.prototype.invoke=function(e,t,n,r,i){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,r,i):t.apply(n,r)},e.prototype.handleError=function(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)},e.prototype.scheduleTask=function(e,t){var n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t))||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=S)throw new Error("Task is missing scheduleFn.");r(t)}return n},e.prototype.invokeTask=function(e,t,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,r):t.callback.apply(n,r)},e.prototype.cancelTask=function(e,t){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");n=t.cancelFn(t)}return n},e.prototype.hasTask=function(e,t){try{return this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(t){this.handleError(e,t)}},e.prototype._updateTaskCount=function(e,t){var n=this._taskCounts,r=n[e],i=n[e]=r+t;if(i<0)throw new Error("More tasks executed then were scheduled.");0!=r&&0!=i||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})},e}(),p=function(){function t(n,r,i,o,l,a){this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=n,this.source=r,this.data=o,this.scheduleFn=l,this.cancelFn=a,this.callback=i;var s=this;this.invoke=n===T&&o&&o.isUsingGlobalCallback?t.invokeTask:function(){return t.invokeTask.apply(e,[s,this,arguments])}}return t.invokeTask=function(e,t,n){e||(e=this),M++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==M&&i(),M--}},Object.defineProperty(t.prototype,"zone",{get:function(){return this._zone},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"state",{get:function(){return this._state},enumerable:!0,configurable:!0}),t.prototype.cancelScheduleRequest=function(){this._transitionTo(b,_)},t.prototype._transitionTo=function(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(this.type+" '"+this.source+"': can not transition to '"+e+"', expecting state '"+t+"'"+(n?" or '"+n+"'":"")+", was '"+this._state+"'.");this._state=e,e==b&&(this._zoneDelegates=null)},t.prototype.toString=function(){return this.data&&void 0!==this.data.handleId?this.data.handleId:Object.prototype.toString.call(this)},t.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,invoke:this.invoke,scheduleFn:this.scheduleFn,cancelFn:this.cancelFn,runCount:this.runCount,callback:this.callback}},t}(),f=l("setTimeout"),h=l("Promise"),m=l("then"),g=[],y=!1,v={name:"NO ZONE"},b="notScheduled",_="scheduling",w="scheduled",x="running",C="canceling",E="unknown",S="microTask",O="macroTask",T="eventTask",k={},D={symbol:l,currentZoneFrame:function(){return I},onUnhandledError:o,microtaskDrainDone:o,scheduleMicroTask:r,showUncaughtError:function(){return!s[l("ignoreConsoleErrorUncaughtError")]},patchEventTarget:function(){return[]},patchOnProperties:o,patchMethod:function(){return o},setNativePromise:function(e){u=e.resolve(0)}},I={parent:null,zone:new s(null,null)},R=null,M=0;n("Zone","Zone"),e.Zone=s}("undefined"!=typeof window&&window||"undefined"!=typeof self&&self||e);var m=function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}};Zone.__load_patch("ZoneAwarePromise",function(e,t,n){function r(e){return e&&e.then}function i(e){return e}function o(e){return I.reject(e)}function l(e,t){return function(n){try{a(e,t,n)}catch(t){a(e,!1,t)}}}function a(e,r,i){var o=E();if(e===i)throw new TypeError(S);if(e[y]===_){var c=null;try{typeof i!==O&&typeof i!==T||(c=i&&i.then)}catch(t){return o(function(){a(e,!1,t)})(),e}if(r!==x&&i instanceof I&&i.hasOwnProperty(y)&&i.hasOwnProperty(v)&&i[y]!==_)s(i),a(e,i[y],i[v]);else if(r!==x&&typeof c===T)try{c.apply(i,[o(l(e,r)),o(l(e,!1))])}catch(t){o(function(){a(e,!1,t)})()}else{e[y]=r;var d=e[v];e[v]=i,r===x&&i instanceof Error&&(i[k]=t.currentTask);for(var f=0;f<d.length;)u(e,d[f++],d[f++],d[f++],d[f++]);if(0==d.length&&r==x){e[y]=C;try{throw new Error("Uncaught (in promise): "+i+(i&&i.stack?"\n"+i.stack:""))}catch(r){var h=r;h.rejection=i,h.promise=e,h.zone=t.current,h.task=t.currentTask,p.push(h),n.scheduleMicroTask()}}}}return e}function s(e){if(e[y]===C){try{var n=t[D];n&&typeof n===T&&n.apply(this,[{rejection:e[v],promise:e}])}catch(e){}e[y]=x;for(var r=0;r<p.length;r++)e===p[r].promise&&p.splice(r,1)}}function u(e,t,n,r,l){s(e);var u=e[y]?typeof r===T?r:i:typeof l===T?l:o;t.scheduleMicroTask(b,function(){try{a(n,!0,t.run(u,void 0,[e[v]]))}catch(e){a(n,!1,e)}})}function c(e){var t=e.prototype,n=t.then;t[h]=n;var r=Object.getOwnPropertyDescriptor(e.prototype,"then");r&&!1===r.writable&&r.configurable&&Object.defineProperty(e.prototype,"then",{writable:!0}),e.prototype.then=function(e,t){var r=this;return new I(function(e,t){n.call(r,e,t)}).then(e,t)},e[N]=!0}var d=n.symbol,p=[],f=d("Promise"),h=d("then");n.onUnhandledError=function(e){if(n.showUncaughtError()){var t=e&&e.rejection;t?console.error("Unhandled Promise rejection:",t instanceof Error?t.message:t,"; Zone:",e.zone.name,"; Task:",e.task&&e.task.source,"; Value:",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=function(){for(;p.length;)for(var e=function(){var e=p.shift();try{e.zone.runGuarded(function(){throw e})}catch(e){!function(e){n.onUnhandledError(e);try{var r=t[g];r&&"function"==typeof r&&r.apply(this,[e])}catch(e){}}(e)}};p.length;)e()};var g=d("unhandledPromiseRejectionHandler"),y=d("state"),v=d("value"),b="Promise.then",_=null,w=!0,x=!1,C=0,E=function(){var e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}},S="Promise resolved with itself",O="object",T="function",k=d("currentTask"),D=d("rejectionHandledHandler"),I=function(){function e(t){if(!(this instanceof e))throw new Error("Must be an instanceof Promise.");this[y]=_,this[v]=[];try{t&&t(l(this,w),l(this,x))}catch(e){a(this,!1,e)}}return e.toString=function(){return"function ZoneAwarePromise() { [native code] }"},e.resolve=function(e){return a(new this(null),w,e)},e.reject=function(e){return a(new this(null),x,e)},e.race=function(e){function t(e){l&&(l=i(e))}function n(e){l&&(l=o(e))}var i,o,l=new this(function(e,t){n=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)l.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return l}([e,t],2),i=n[0],o=n[1];var n});try{for(var a=m(e),s=a.next();!s.done;s=a.next()){var u=s.value;r(u)||(u=this.resolve(u)),u.then(t,n)}}catch(e){c={error:e}}finally{try{s&&!s.done&&(d=a.return)&&d.call(a)}finally{if(c)throw c.error}}return l;var c,d},e.all=function(e){var t,n,i=new this(function(e,r){t=e,n=r}),o=0,l=[];try{for(var a=m(e),s=a.next();!s.done;s=a.next()){var u=s.value;r(u)||(u=this.resolve(u)),u.then(function(e){return function(n){l[e]=n,--o||t(l)}}(o),n),o++}}catch(e){c={error:e}}finally{try{s&&!s.done&&(d=a.return)&&d.call(a)}finally{if(c)throw c.error}}return o||t(l),i;var c,d},e.prototype.then=function(e,n){var r=new this.constructor(null),i=t.current;return this[y]==_?this[v].push(i,r,e,n):u(this,i,r,e,n),r},e.prototype.catch=function(e){return this.then(null,e)},e}();I.resolve=I.resolve,I.reject=I.reject,I.race=I.race,I.all=I.all;var R=e[f]=e.Promise,M=t.__symbol__("ZoneAwarePromise"),P=Object.getOwnPropertyDescriptor(e,"Promise");P&&!P.configurable||(P&&delete P.writable,P&&delete P.value,P||(P={configurable:!0,enumerable:!0}),P.get=function(){return e[M]?e[M]:e[f]},P.set=function(t){t===I?e[M]=t:(e[f]=t,t.prototype[h]||c(t),n.setNativePromise(t))},Object.defineProperty(e,"Promise",P)),e.Promise=I;var N=d("thenPatched");if(R){c(R);var A=e.fetch;typeof A==T&&(e.fetch=function(e){return function(){var t=e.apply(this,arguments);if(t instanceof I)return t;var n=t.constructor;return n[N]||c(n),t}}(A))}return Promise[t.__symbol__("uncaughtPromiseErrors")]=p,I});var g=Zone.__symbol__,y="object"==typeof window&&window||"object"==typeof self&&self||e,v="function",b="undefined",_="removeAttribute",w="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,x=!("nw"in y)&&void 0!==y.process&&"[object process]"==={}.toString.call(y.process),C=!x&&!w&&!("undefined"==typeof window||!window.HTMLElement),E=void 0!==y.process&&"[object process]"==={}.toString.call(y.process)&&!w&&!("undefined"==typeof window||!window.HTMLElement),S={},O=function(e){if(e=e||y.event){var t=S[e.type];t||(t=S[e.type]=g("ON_PROPERTY"+e.type));var n=(this||e.target||y)[t],r=n&&n.apply(this,arguments);return void 0==r||r||e.preventDefault(),r}},T=g("originalInstance"),k=!1,D=!1;Zone.__load_patch("toString",function(e,t,n){var r=t.__zone_symbol__originalToString=Function.prototype.toString,i=g("OriginalDelegate"),o=g("Promise"),l=g("Error");Function.prototype.toString=function(){if("function"==typeof this){var t=this[i];if(t)return"function"==typeof t?r.apply(this[i],arguments):Object.prototype.toString.call(t);if(this===Promise){var n=e[o];if(n)return r.apply(n,arguments)}if(this===Error){var a=e[l];if(a)return r.apply(a,arguments)}}return r.apply(this,arguments)};var a=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?"[object Promise]":a.apply(this,arguments)}});var I=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)l.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return l},R=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(I(arguments[t]));return e},M="true",P="false",N={isUsingGlobalCallback:!0},A={},L={},F="name",j="function",V="object",z="__zone_symbol__",B=/^__zone_symbol__(\w+)(true|false)$/,H="__zone_symbol__propagationStopped",W=g("zoneTask"),q=Object[g("defineProperty")]=Object.defineProperty,U=Object[g("getOwnPropertyDescriptor")]=Object.getOwnPropertyDescriptor,G=Object.create,K=g("unconfigurables"),$="undefined",Z=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplyconnected","vrdisplaydisconnected","vrdisplaypresentchange"],Q=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],Y=["load"],X=["blur","error","focus","load","resize","scroll","messageerror"],J=["bounce","finish","start"],ee=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],te=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],ne=["close","error","open","message"],re=["error","message"],ie=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange"],Z,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]),oe=g("unbound");Zone.__load_patch("util",function(e,t,n){n.patchOnProperties=i,n.patchMethod=l}),Zone.__load_patch("timers",function(e,t,n){c(e,"set","clear","Timeout"),c(e,"set","clear","Interval"),c(e,"set","clear","Immediate")}),Zone.__load_patch("requestAnimationFrame",function(e,t,n){c(e,"request","cancel","AnimationFrame"),c(e,"mozRequest","mozCancel","AnimationFrame"),c(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",function(e,t,n){for(var r=["alert","prompt","confirm"],i=0;i<r.length;i++)l(e,r[i],function(n,r,i){return function(r,o){return t.current.run(n,e,o,i)}})}),Zone.__load_patch("EventTarget",function(e,t,n){(function(e,t){!function(n,r){var i=e.Event;i&&i.prototype&&t.patchMethod(i.prototype,"stopImmediatePropagation",function(e){return function(e,t){e[H]=!0}})}()})(e,n),function(e,t){var n="Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video",r="ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket".split(","),i=[],o=e.wtf,l=n.split(",");o?i=l.map(function(e){return"HTML"+e+"Element"}).concat(r):e.EventTarget?i.push("EventTarget"):i=r;for(var a=e.__Zone_disable_IE_check||!1,u=e.__Zone_enable_cross_context_check||!1,c=function(){if(k)return D;k=!0;try{var e=window.navigator.userAgent;return e.indexOf("MSIE "),-1===e.indexOf("MSIE ")&&-1===e.indexOf("Trident/")&&-1===e.indexOf("Edge/")||(D=!0),D}catch(e){}}(),d="[object FunctionWrapper]",p="function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }",f=0;f<ie.length;f++){var h=z+((b=ie[f])+P),m=z+(b+M);A[b]={},A[b][P]=h,A[b][M]=m}for(f=0;f<n.length;f++)for(var g=l[f],y=L[g]={},v=0;v<ie.length;v++){var b;y[b=ie[v]]=g+".addEventListener:"+b}var _=[];for(f=0;f<i.length;f++){var w=e[i[f]];_.push(w&&w.prototype)}s(e,_,{validateHandler:function(e,t,n,r){if(!a&&c)if(u)try{if((i=t.toString())===d||i==p)return e.apply(n,r),!1}catch(t){return e.apply(n,r),!1}else{var i;if((i=t.toString())===d||i==p)return e.apply(n,r),!1}else if(u)try{t.toString()}catch(t){return e.apply(n,r),!1}return!0}}),t.patchEventTarget=s}(e,n);var r=e.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(e,[r.prototype]),o("MutationObserver"),o("WebKitMutationObserver"),o("IntersectionObserver"),o("FileReader")}),Zone.__load_patch("on_property",function(e,t,n){(function(e,t){if(!x||E){var n="undefined"!=typeof WebSocket;if(function(){if((C||E)&&!Object.getOwnPropertyDescriptor(HTMLElement.prototype,"onclick")&&"undefined"!=typeof Element){var e=Object.getOwnPropertyDescriptor(Element.prototype,"onclick");if(e&&!e.configurable)return!1}var t=Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype,"onreadystatechange");if(t){Object.defineProperty(XMLHttpRequest.prototype,"onreadystatechange",{enumerable:!0,configurable:!0,get:function(){return!0}});var n=!!(i=new XMLHttpRequest).onreadystatechange;return Object.defineProperty(XMLHttpRequest.prototype,"onreadystatechange",t||{}),n}var r=g("fakeonreadystatechange");Object.defineProperty(XMLHttpRequest.prototype,"onreadystatechange",{enumerable:!0,configurable:!0,get:function(){return this[r]},set:function(e){this[r]=e}});var i,o=function(){};(i=new XMLHttpRequest).onreadystatechange=o;n=i[r]===o;return i.onreadystatechange=null,n}()){var r=t.__Zone_ignore_on_properties;if(C){h(window,ie.concat(["messageerror"]),r,Object.getPrototypeOf(window)),h(Document.prototype,ie,r),void 0!==window.SVGElement&&h(window.SVGElement.prototype,ie,r),h(Element.prototype,ie,r),h(HTMLElement.prototype,ie,r),h(HTMLMediaElement.prototype,Q,r),h(HTMLFrameSetElement.prototype,Z.concat(X),r),h(HTMLBodyElement.prototype,Z.concat(X),r),h(HTMLFrameElement.prototype,Y,r),h(HTMLIFrameElement.prototype,Y,r);var l=window.HTMLMarqueeElement;l&&h(l.prototype,J,r);var a=window.Worker;a&&h(a.prototype,re,r)}h(XMLHttpRequest.prototype,ee,r);var u=t.XMLHttpRequestEventTarget;u&&h(u&&u.prototype,ee,r),"undefined"!=typeof IDBIndex&&(h(IDBIndex.prototype,te,r),h(IDBRequest.prototype,te,r),h(IDBOpenDBRequest.prototype,te,r),h(IDBDatabase.prototype,te,r),h(IDBTransaction.prototype,te,r),h(IDBCursor.prototype,te,r)),n&&h(WebSocket.prototype,ne,r)}else!function(){for(var e=function(e){var t=ie[e],n="on"+t;self.addEventListener(t,function(e){var t,r,i=e.target;for(r=i?i.constructor.name+"."+n:"unknown."+n;i;)i[n]&&!i[n][oe]&&((t=Zone.current.wrap(i[n],r))[oe]=i[n],i[n]=t),i=i.parentElement},!0)},t=0;t<ie.length;t++)e(t)}(),o("XMLHttpRequest"),n&&function(e,t){var n=t.WebSocket;t.EventTarget||s(t,[n.prototype]),t.WebSocket=function(e,t){var r,o,l=arguments.length>1?new n(e,t):new n(e),a=Object.getOwnPropertyDescriptor(l,"onmessage");return a&&!1===a.configurable?(r=Object.create(l),o=l,["addEventListener","removeEventListener","send","close"].forEach(function(e){r[e]=function(){var t=Array.prototype.slice.call(arguments);if("addEventListener"===e||"removeEventListener"===e){var n=t.length>0?t[0]:void 0;if(n){var i=Zone.__symbol__("ON_PROPERTY"+n);l[i]=r[i]}}return l[e].apply(l,t)}})):r=l,i(r,["close","error","message","open"],o),r};var r=t.WebSocket;for(var o in n)r[o]=n[o]}(0,t)}})(0,e),Object.defineProperty=function(e,t,n){if(d(e,t))throw new TypeError("Cannot assign to read only property '"+t+"' of "+e);var r=n.configurable;return"prototype"!==t&&(n=p(e,t,n)),f(e,t,n,r)},Object.defineProperties=function(e,t){return Object.keys(t).forEach(function(n){Object.defineProperty(e,n,t[n])}),e},Object.create=function(e,t){return"object"!=typeof t||Object.isFrozen(t)||Object.keys(t).forEach(function(n){t[n]=p(e,n,t[n])}),G(e,t)},Object.getOwnPropertyDescriptor=function(e,t){var n=U(e,t);return d(e,t)&&(n.configurable=!1),n},function(t){if((C||E)&&"registerElement"in e.document){var n=document.registerElement,r=["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"];document.registerElement=function(e,t){return t&&t.prototype&&r.forEach(function(e){var n="Document.registerElement::"+e;if(t.prototype.hasOwnProperty(e)){var r=Object.getOwnPropertyDescriptor(t.prototype,e);r&&r.value?(r.value=Zone.current.wrap(r.value,n),function(t,n,r){var i=r.configurable;f(t,e,r=p(t,e,r),i)}(t.prototype,0,r)):t.prototype[e]=Zone.current.wrap(t.prototype[e],n)}else t.prototype[e]&&(t.prototype[e]=Zone.current.wrap(t.prototype[e],n))}),n.apply(document,[e,t])},a(document.registerElement,n)}}()}),Zone.__load_patch("canvas",function(e,t,n){var r=e.HTMLCanvasElement;void 0!==r&&r.prototype&&r.prototype.toBlob&&function(e,t,n){function i(e){var t=e.data;return t.args[t.callbackIndex]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}var o=null;o=l(r.prototype,"toBlob",function(e){return function(t,n){var r={name:"HTMLCanvasElement.toBlob",target:t,callbackIndex:0,args:n};return r.callbackIndex>=0&&"function"==typeof n[r.callbackIndex]?Zone.current.scheduleMacroTask(r.name,n[r.callbackIndex],r,i,null):e.apply(t,n)}})}()}),Zone.__load_patch("XHR",function(e,t,n){!function(e){function n(e){XMLHttpRequest[a]=!1;var t=e.data,n=t.target,i=n[o];f||(f=n[d],h=n[p]),i&&h.apply(n,[y,i]);var l=n[o]=function(){n.readyState===n.DONE&&!t.aborted&&XMLHttpRequest[a]&&e.state===v&&e.invoke()};return f.apply(n,[y,l]),n[r]||(n[r]=e),_.apply(n,t.args),XMLHttpRequest[a]=!0,e}function u(){}function c(e){var t=e.data;return t.aborted=!0,w.apply(t.target,t.args)}var d=g("addEventListener"),p=g("removeEventListener"),f=XMLHttpRequest.prototype[d],h=XMLHttpRequest.prototype[p];if(!f){var m=e.XMLHttpRequestEventTarget;m&&(f=m.prototype[d],h=m.prototype[p])}var y="readystatechange",v="scheduled",b=l(e.XMLHttpRequest.prototype,"open",function(){return function(e,t){return e[i]=0==t[2],e[s]=t[1],b.apply(e,t)}}),_=l(e.XMLHttpRequest.prototype,"send",function(){return function(e,r){var o=t.current;return e[i]?_.apply(e,r):o.scheduleMacroTask("XMLHttpRequest.send",u,{target:e,url:e[s],isPeriodic:!1,delay:null,args:r,aborted:!1},n,c)}}),w=l(e.XMLHttpRequest.prototype,"abort",function(e){return function(e,t){var n=e[r];if(n&&"string"==typeof n.type){if(null==n.cancelFn||n.data&&n.data.aborted)return;n.zone.cancelTask(n)}}})}(e);var r=g("xhrTask"),i=g("xhrSync"),o=g("xhrListener"),a=g("xhrScheduled"),s=g("xhrURL")}),Zone.__load_patch("geolocation",function(e,r,i){e.navigator&&e.navigator.geolocation&&function(e,r){for(var i=e.constructor.name,o=function(o){var l=r[o],s=e[l];if(s){if(!n(Object.getOwnPropertyDescriptor(e,l)))return"continue";e[l]=function(e){var n=function(){return e.apply(this,t(arguments,i+"."+l))};return a(n,e),n}(s)}},l=0;l<r.length;l++)o(l)}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",function(e,t,n){function r(t){return function(n){u(e,t).forEach(function(r){var i=e.PromiseRejectionEvent;if(i){var o=new i(t,{promise:n.promise,reason:n.rejection});r.invoke(o)}})}}e.PromiseRejectionEvent&&(t[g("unhandledPromiseRejectionHandler")]=r("unhandledrejection"),t[g("rejectionHandledHandler")]=r("rejectionhandled"))})}()}).call(t,n("fRUx"))},eIqN:function(e,t,n){"use strict";function r(){return function(e){return e.lift(new c(e))}}function i(){return new l.Subject}var o=n("6Xbx"),l=n("TO51"),a=n("AP4T"),s=n("E9/g"),u=n("qLnt"),c=function(){function e(e){this.connectable=e}return e.prototype.call=function(e,t){var n=this.connectable;n._refCount++;var r=new d(e,n),i=t.subscribe(r);return r.closed||(r.connection=n.connect()),i},e}(),d=function(e){function t(t,n){e.call(this,t),this.connectable=n}return Object(o.__extends)(t,e),t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._refCount;if(t<=0)this.connection=null;else if(e._refCount=t-1,t>1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},t}(s.a),p=function(e){function t(t,n){e.call(this),this.source=t,this.subjectFactory=n,this._refCount=0,this._isComplete=!1}return Object(o.__extends)(t,e),t.prototype._subscribe=function(e){return this.getSubject().subscribe(e)},t.prototype.getSubject=function(){var e=this._subject;return e&&!e.isStopped||(this._subject=this.subjectFactory()),this._subject},t.prototype.connect=function(){var e=this._connection;return e||(this._isComplete=!1,(e=this._connection=new u.a).add(this.source.subscribe(new h(this.getSubject(),this))),e.closed?(this._connection=null,e=u.a.EMPTY):this._connection=e),e},t.prototype.refCount=function(){return r()(this)},t}(a.a).prototype,f={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:p._subscribe},_isComplete:{value:p._isComplete,writable:!0},getSubject:{value:p.getSubject},connect:{value:p.connect},refCount:{value:p.refCount}},h=function(e){function t(t,n){e.call(this,t),this.connectable=n}return Object(o.__extends)(t,e),t.prototype._error=function(t){this._unsubscribe(),e.prototype._error.call(this,t)},t.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),e.prototype._complete.call(this)},t.prototype._unsubscribe=function(){var e=this.connectable;if(e){this.connectable=null;var t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}},t}(l.SubjectSubscriber);t.a=function(){return function(e){return r()(function(e,t){return function(t){var n;n="function"==typeof e?e:function(){return e};var r=Object.create(t,f);return r.source=t,r.subjectFactory=n,r}}(i)(e))}}},eoFs:function(e,t,n){"use strict";n.d(t,"a",function(){return l});var r=n("6Xbx"),i=n("TO51"),o=n("Upor"),l=function(e){function t(t){e.call(this),this._value=t}return Object(r.__extends)(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),t.prototype._subscribe=function(t){var n=e.prototype._subscribe.call(this,t);return n&&!n.closed&&t.next(this._value),n},t.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new o.a;return this._value},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(i.Subject)},ewdp:function(e,t,n){var r=n("tose"),i=n("+pQw"),o=n("2Fuj");e.exports=n("V+0c")?Object.defineProperties:function(e,t){i(e);for(var n,l=o(t),a=l.length,s=0;a>s;)r.f(e,n=l[s++],t[n]);return e}},f8Ud:function(e,t){(function(t){e.exports=t}).call(t,{})},fAeS:function(e,t,n){"use strict";function r(e,t){return{type:7,name:e,definitions:t,options:{}}}function i(e,t){return void 0===t&&(t=null),{type:4,styles:t,timings:e}}function o(e,t){return void 0===t&&(t=null),{type:3,steps:e,options:t}}function l(e,t){return void 0===t&&(t=null),{type:2,steps:e,options:t}}function a(e){return{type:6,styles:e,offset:null}}function s(e,t,n){return{type:0,name:e,styles:t,options:n}}function u(e){return{type:5,steps:e}}function c(e,t,n){return void 0===n&&(n=null),{type:1,expr:e,animation:t,options:n}}function d(e,t){return void 0===t&&(t=null),{type:8,animation:e,options:t}}function p(e){return void 0===e&&(e=null),{type:9,options:e}}function f(e,t){return void 0===t&&(t=null),{type:10,animation:e,options:t}}function h(e,t,n){return void 0===n&&(n=null),{type:11,selector:e,animation:t,options:n}}function m(e,t){return{type:12,timings:e,animation:t}}function g(e){Promise.resolve(null).then(e)}Object.defineProperty(t,"__esModule",{value:!0}),n.d(t,"AnimationBuilder",function(){return y}),n.d(t,"AnimationFactory",function(){return v}),n.d(t,"AUTO_STYLE",function(){return b}),n.d(t,"animate",function(){return i}),n.d(t,"animateChild",function(){return p}),n.d(t,"animation",function(){return d}),n.d(t,"group",function(){return o}),n.d(t,"keyframes",function(){return u}),n.d(t,"query",function(){return h}),n.d(t,"sequence",function(){return l}),n.d(t,"stagger",function(){return m}),n.d(t,"state",function(){return s}),n.d(t,"style",function(){return a}),n.d(t,"transition",function(){return c}),n.d(t,"trigger",function(){return r}),n.d(t,"useAnimation",function(){return f}),n.d(t,"NoopAnimationPlayer",function(){return _}),n.d(t,"\u0275AnimationGroupPlayer",function(){return w}),n.d(t,"\u0275PRE_STYLE",function(){return x});var y=function(){},v=function(){},b="*",_=function(){function e(){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=0}return e.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])},e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.hasStarted=function(){return this._started},e.prototype.init=function(){},e.prototype.play=function(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0},e.prototype.triggerMicrotask=function(){var e=this;g(function(){return e._onFinish()})},e.prototype._onStart=function(){this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[]},e.prototype.pause=function(){},e.prototype.restart=function(){},e.prototype.finish=function(){this._onFinish()},e.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])},e.prototype.reset=function(){},e.prototype.setPosition=function(e){},e.prototype.getPosition=function(){return 0},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(function(e){return e()}),t.length=0},e}(),w=function(){function e(e){var t=this;this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=e;var n=0,r=0,i=0,o=this.players.length;0==o?g(function(){return t._onFinish()}):this.players.forEach(function(e){e.onDone(function(){++n>=o&&t._onFinish()}),e.onDestroy(function(){++r>=o&&t._onDestroy()}),e.onStart(function(){++i>=o&&t._onStart()})}),this.totalTime=this.players.reduce(function(e,t){return Math.max(e,t.totalTime)},0)}return e.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])},e.prototype.init=function(){this.players.forEach(function(e){return e.init()})},e.prototype.onStart=function(e){this._onStartFns.push(e)},e.prototype._onStart=function(){this.hasStarted()||(this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[],this._started=!0)},e.prototype.onDone=function(e){this._onDoneFns.push(e)},e.prototype.onDestroy=function(e){this._onDestroyFns.push(e)},e.prototype.hasStarted=function(){return this._started},e.prototype.play=function(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(function(e){return e.play()})},e.prototype.pause=function(){this.players.forEach(function(e){return e.pause()})},e.prototype.restart=function(){this.players.forEach(function(e){return e.restart()})},e.prototype.finish=function(){this._onFinish(),this.players.forEach(function(e){return e.finish()})},e.prototype.destroy=function(){this._onDestroy()},e.prototype._onDestroy=function(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(function(e){return e.destroy()}),this._onDestroyFns.forEach(function(e){return e()}),this._onDestroyFns=[])},e.prototype.reset=function(){this.players.forEach(function(e){return e.reset()}),this._destroyed=!1,this._finished=!1,this._started=!1},e.prototype.setPosition=function(e){var t=e*this.totalTime;this.players.forEach(function(e){var n=e.totalTime?Math.min(1,t/e.totalTime):1;e.setPosition(n)})},e.prototype.getPosition=function(){var e=0;return this.players.forEach(function(t){var n=t.getPosition();e=Math.min(n,e)}),e},e.prototype.beforeDestroy=function(){this.players.forEach(function(e){e.beforeDestroy&&e.beforeDestroy()})},e.prototype.triggerCallback=function(e){var t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(function(e){return e()}),t.length=0},e}(),x="!"},fC8q:function(e,t,n){var r=n("dXJ/"),i=n("3r0D")("iterator"),o=n("lexG");e.exports=n("b4gG").getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},fHxy:function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=r.key,l=r.set;r.exp({defineMetadata:function(e,t,n,r){l(e,t,i(n),o(r))}})},fRUx:function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},gBtn:function(e,t,n){var r=n("ZI9W"),i=n("CDXM"),o=n("Iclu")("metadata"),l=o.store||(o.store=new(n("QZhw"))),a=function(e,t,n){var i=l.get(e);if(!i){if(!n)return;l.set(e,i=new r)}var o=i.get(t);if(!o){if(!n)return;i.set(t,o=new r)}return o};e.exports={store:l,map:a,has:function(e,t,n){var r=a(t,n,!1);return void 0!==r&&r.has(e)},get:function(e,t,n){var r=a(t,n,!1);return void 0===r?void 0:r.get(e)},set:function(e,t,n,r){a(n,r,!0).set(e,t)},keys:function(e,t){var n=a(e,t,!1),r=[];return n&&n.forEach(function(e,t){r.push(t)}),r},key:function(e){return void 0===e||"symbol"==typeof e?e:String(e)},exp:function(e){i(i.S,"Reflect",e)}}},gNkH:function(e,t,n){e.exports=!n("V+0c")&&!n("umMR")(function(){return 7!=Object.defineProperty(n("BQSv")("div"),"a",{get:function(){return 7}}).a})},grVA:function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r={closed:!0,next:function(e){},error:function(e){throw e},complete:function(){}}},gxdV:function(e,t,n){var r=n("tose"),i=n("piOq");e.exports=n("V+0c")?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},gy58:function(e,t,n){"use strict";t.a=function(e){return Object(r.a)(e)(this)};var r=n("5O0w")},jaVc:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("6Xbx"),i=function(e){function t(t,n){e.call(this),this.subject=t,this.subscriber=n,this.closed=!1}return Object(r.__extends)(t,e),t.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);-1!==n&&t.splice(n,1)}}},t}(n("qLnt").a)},kQVV:function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(e){return e&&"number"==typeof e.length}},lI6h:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("6Xbx"),i=function(e){function t(){e.apply(this,arguments)}return Object(r.__extends)(t,e),t.prototype.notifyNext=function(e,t,n,r,i){this.destination.next(t)},t.prototype.notifyError=function(e,t){this.destination.error(e)},t.prototype.notifyComplete=function(e){this.destination.complete()},t}(n("E9/g").a)},lexG:function(e,t){e.exports={}},lfBE:function(e,t,n){var r=n("ptrv"),i=n("gxdV"),o=n("rMsi"),l=n("c09d")("src"),a=Function.toString,s=(""+a).split("toString");n("b4gG").inspectSource=function(e){return a.call(e)},(e.exports=function(e,t,n,a){var u="function"==typeof n;u&&(o(n,"name")||i(n,"name",t)),e[t]!==n&&(u&&(o(n,l)||i(n,l,e[t]?""+e[t]:s.join(String(t)))),e===r?e[t]=n:a?e[t]?e[t]=n:i(e,t,n):(delete e[t],i(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[l]||a.call(this)})},lzDK:function(e,t){t.f=Object.getOwnPropertySymbols},mHG6:function(e,t,n){"use strict";t.a=function(e){return e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}},mz3w:function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=function(e){var t,r=n("xIGM").a.Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}()},ncNB:function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=r.get,l=r.key;r.exp({getOwnMetadata:function(e,t){return o(e,i(t),arguments.length<3?void 0:l(arguments[2]))}})},oiK7:function(e,t,n){e.exports=function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function n(e,n){return t(e).appendChild(n)}function r(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,n,i){var o=r(e,t,n,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function l(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function a(t,n){var r=t.className;e(n).test(r)||(t.className+=(r?" ":"")+n)}function s(t,n){for(var r=t.split(" "),i=0;i<r.length;i++)r[i]&&!e(r[i]).test(n)&&(n+=" "+r[i]);return n}function u(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function c(e,t,n){t||(t={});for(var r in e)!e.hasOwnProperty(r)||!1===n&&t.hasOwnProperty(r)||(t[r]=e[r]);return t}function d(e,t,n,r,i){null==t&&-1==(t=e.search(/[^\s\u00a0]/))&&(t=e.length);for(var o=r||0,l=i||0;;){var a=e.indexOf("\t",o);if(a<0||a>=t)return l+(t-o);l+=a-o,l+=n-l%n,o=a+1}}function p(e,t){for(var n=0;n<e.length;++n)if(e[n]==t)return n;return-1}function f(e,t,n){for(var r=0,i=0;;){var o=e.indexOf("\t",r);-1==o&&(o=e.length);var l=o-r;if(o==e.length||i+l>=t)return r+Math.min(l,t-i);if(i+=o-r,i+=n-i%n,r=o+1,i>=t)return r}}function h(e){for(;go.length<=e;)go.push(m(go)+" ");return go[e]}function m(e){return e[e.length-1]}function g(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r);return n}function y(){}function v(e,t){var n;return Object.create?n=Object.create(e):(y.prototype=e,n=new y),t&&c(t,n),n}function b(e){return/\w/.test(e)||e>"\x80"&&(e.toUpperCase()!=e.toLowerCase()||yo.test(e))}function _(e,t){return t?!!(t.source.indexOf("\\w")>-1&&b(e))||t.test(e):b(e)}function w(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function x(e){return e.charCodeAt(0)>=768&&vo.test(e)}function C(e,t,n){for(;(n<0?t>0:t<e.length)&&x(e.charAt(t));)t+=n;return t}function E(e,t,n){for(var r=t>n?-1:1;;){if(t==n)return t;var i=(t+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:n;e(o)?n=o:t=o+r}}function S(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t<o){n=i;break}t-=o}return n.lines[t]}function O(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){var o=e.text;i==n.line&&(o=o.slice(0,n.ch)),i==t.line&&(o=o.slice(t.ch)),r.push(o),++i}),r}function T(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function k(e,t){var n=t-e.height;if(n)for(var r=e;r;r=r.parent)r.height+=n}function D(e){if(null==e.parent)return null;for(var t=e.parent,n=p(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function I(e,t){var n=e.first;e:do{for(var r=0;r<e.children.length;++r){var i=e.children[r],o=i.height;if(t<o){e=i;continue e}t-=o,n+=i.chunkSize()}return n}while(!e.lines);for(var l=0;l<e.lines.length;++l){var a=e.lines[l].height;if(t<a)break;t-=a}return n+l}function R(e,t){return t>=e.first&&t<e.first+e.size}function M(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function P(e,t,n){if(void 0===n&&(n=null),!(this instanceof P))return new P(e,t,n);this.line=e,this.ch=t,this.sticky=n}function N(e,t){return e.line-t.line||e.ch-t.ch}function A(e,t){return e.sticky==t.sticky&&0==N(e,t)}function L(e){return P(e.line,e.ch)}function F(e,t){return N(e,t)<0?t:e}function j(e,t){return N(e,t)<0?e:t}function V(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function z(e,t){if(t.line<e.first)return P(e.first,0);var n=e.first+e.size-1;return t.line>n?P(n,S(e,n).text.length):function(e,t){var n=e.ch;return null==n||n>t?P(e.line,t):n<0?P(e.line,0):e}(t,S(e,t.line).text.length)}function B(e,t){for(var n=[],r=0;r<t.length;r++)n[r]=z(e,t[r]);return n}function H(e,t,n){this.marker=e,this.from=t,this.to=n}function W(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker==t)return r}}function q(e,t){for(var n,r=0;r<e.length;++r)e[r]!=t&&(n||(n=[])).push(e[r]);return n}function U(e,t){if(t.full)return null;var n=R(e,t.from.line)&&S(e,t.from.line).markedSpans,r=R(e,t.to.line)&&S(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,l=0==N(t.from,t.to),a=function(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o=e[i],l=o.marker;null!=o.from&&!(l.inclusiveLeft?o.from<=t:o.from<t)&&(o.from!=t||"bookmark"!=l.type||n&&o.marker.insertLeft)||(r||(r=[])).push(new H(l,o.from,null==o.to||(l.inclusiveRight?o.to>=t:o.to>t)?null:o.to))}return r}(n,i,l),s=function(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o=e[i],l=o.marker;(null==o.to||(l.inclusiveRight?o.to>=t:o.to>t)||o.from==t&&"bookmark"==l.type&&(!n||o.marker.insertLeft))&&(r||(r=[])).push(new H(l,null==o.from||(l.inclusiveLeft?o.from<=t:o.from<t)?null:o.from-t,null==o.to?null:o.to-t))}return r}(r,o,l),u=1==t.text.length,c=m(t.text).length+(u?i:0);if(a)for(var d=0;d<a.length;++d){var p=a[d];if(null==p.to){var f=W(s,p.marker);f?u&&(p.to=null==f.to?null:f.to+c):p.to=i}}if(s)for(var h=0;h<s.length;++h){var g=s[h];null!=g.to&&(g.to+=c),null==g.from?W(a,g.marker)||(g.from=c,u&&(a||(a=[])).push(g)):(g.from+=c,u&&(a||(a=[])).push(g))}a&&(a=G(a)),s&&s!=a&&(s=G(s));var y=[a];if(!u){var v,b=t.text.length-2;if(b>0&&a)for(var _=0;_<a.length;++_)null==a[_].to&&(v||(v=[])).push(new H(a[_].marker,null,null));for(var w=0;w<b;++w)y.push(v);y.push(s)}return y}function G(e){for(var t=0;t<e.length;++t){var n=e[t];null!=n.from&&n.from==n.to&&!1!==n.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function K(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function $(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function Z(e){return e.inclusiveLeft?-1:0}function Q(e){return e.inclusiveRight?1:0}function Y(e,t){var n=e.lines.length-t.lines.length;if(0!=n)return n;var r=e.find(),i=t.find(),o=N(r.from,i.from)||Z(e)-Z(t);if(o)return-o;return N(r.to,i.to)||Q(e)-Q(t)||t.id-e.id}function X(e,t){var n,r=_o&&e.markedSpans;if(r)for(var i=void 0,o=0;o<r.length;++o)(i=r[o]).marker.collapsed&&null==(t?i.from:i.to)&&(!n||Y(n,i.marker)<0)&&(n=i.marker);return n}function J(e){return X(e,!0)}function ee(e){return X(e,!1)}function te(e,t,n,r,i){var o=S(e,t),l=_o&&o.markedSpans;if(l)for(var a=0;a<l.length;++a){var s=l[a];if(s.marker.collapsed){var u=s.marker.find(0),c=N(u.from,n)||Z(s.marker)-Z(i),d=N(u.to,r)||Q(s.marker)-Q(i);if(!(c>=0&&d<=0||c<=0&&d>=0)&&(c<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?N(u.to,n)>=0:N(u.to,n)>0)||c>=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?N(u.from,r)<=0:N(u.from,r)<0)))return!0}}}function ne(e){for(var t;t=J(e);)e=t.find(-1,!0).line;return e}function re(e,t){var n=S(e,t),r=ne(n);return n==r?t:D(r)}function ie(e,t){if(t>e.lastLine())return t;var n,r=S(e,t);if(!oe(e,r))return t;for(;n=ee(r);)r=n.find(1,!0).line;return D(r)+1}function oe(e,t){var n=_o&&t.markedSpans;if(n)for(var r=void 0,i=0;i<n.length;++i)if((r=n[i]).marker.collapsed){if(null==r.from)return!0;if(!r.marker.widgetNode&&0==r.from&&r.marker.inclusiveLeft&&le(e,t,r))return!0}}function le(e,t,n){if(null==n.to){var r=n.marker.find(1,!0);return le(e,r.line,W(r.line.markedSpans,n.marker))}if(n.marker.inclusiveRight&&n.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if((i=t.markedSpans[o]).marker.collapsed&&!i.marker.widgetNode&&i.from==n.to&&(null==i.to||i.to!=n.from)&&(i.marker.inclusiveLeft||n.marker.inclusiveRight)&&le(e,t,i))return!0}function ae(e){for(var t=0,n=(e=ne(e)).parent,r=0;r<n.lines.length;++r){var i=n.lines[r];if(i==e)break;t+=i.height}for(var o=n.parent;o;n=o,o=n.parent)for(var l=0;l<o.children.length;++l){var a=o.children[l];if(a==n)break;t+=a.height}return t}function se(e){if(0==e.height)return 0;for(var t,n=e.text.length,r=e;t=J(r);){var i=t.find(0,!0);r=i.from.line,n+=i.from.ch-i.to.ch}for(r=e;t=ee(r);){var o=t.find(0,!0);n-=r.text.length-o.from.ch,n+=(r=o.to.line).text.length-o.to.ch}return n}function ue(e){var t=e.display,n=e.doc;t.maxLine=S(n,n.first),t.maxLineLength=se(t.maxLine),t.maxLineChanged=!0,n.iter(function(e){var n=se(e);n>t.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}function ce(e,t,n){var r;wo=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&"before"==n?r=i:wo=i),o.from==t&&(o.from!=o.to&&"before"!=n?r=i:wo=i)}return null!=r?r:wo}function de(e,t){var n=e.order;return null==n&&(n=e.order=xo(e.text,t)),n}function pe(e,t){return e._handlers&&e._handlers[t]||Co}function fe(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else{var r=e._handlers,i=r&&r[t];if(i){var o=p(i,n);o>-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function he(e,t){var n=pe(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)}function me(e,t,n){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),he(e,n||t.type,e,t),we(t)||t.codemirrorIgnore}function ge(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var n=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),r=0;r<t.length;++r)-1==p(n,t[r])&&n.push(t[r])}function ye(e,t){return pe(e,t).length>0}function ve(e){e.prototype.on=function(e,t){Eo(this,e,t)},e.prototype.off=function(e,t){fe(this,e,t)}}function be(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function _e(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function we(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function xe(e){be(e),_e(e)}function Ce(e){return e.target||e.srcElement}function Ee(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Xi&&e.ctrlKey&&1==t&&(t=3),t}function Se(e){if(null==so){var t=r("span","\u200b");n(e,r("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(so=t.offsetWidth<=1&&t.offsetHeight>2&&!(zi&&Bi<8))}var i=so?r("span","\u200b"):r("span","\xa0",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function Oe(e){if(null!=uo)return uo;var r=n(e,document.createTextNode("A\u062eA")),i=no(r,0,1).getBoundingClientRect(),o=no(r,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(uo=o.right-i.right<3)}function Te(e){if("string"==typeof e&&Ro.hasOwnProperty(e))e=Ro[e];else if(e&&"string"==typeof e.name&&Ro.hasOwnProperty(e.name)){var t=Ro[e.name];"string"==typeof t&&(t={name:t}),(e=v(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Te("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Te("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function ke(e,t){t=Te(t);var n=Io[t.name];if(!n)return ke(e,"text/plain");var r=n(e,t);if(Mo.hasOwnProperty(t.name)){var i=Mo[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)r[l]=t.modeProps[l];return r}function De(e,t){c(t,Mo.hasOwnProperty(e)?Mo[e]:Mo[e]={})}function Ie(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Re(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Me(e,t,n){return!e.startState||e.startState(t,n)}function Pe(e,t,n,r){var i=[e.state.modeGen],o={};Be(e,t.text,e.doc.mode,n,function(e,t){return i.push(e,t)},o,r);for(var l=n.state,a=function(r){n.baseTokens=i;var a=e.state.overlays[r],s=1,u=0;n.state=!0,Be(e,t.text,a.mode,n,function(e,t){for(var n=s;u<e;){var r=i[s];r>e&&i.splice(s,1,e,i[s+1],r),s+=2,u=Math.min(e,r)}if(t)if(a.opaque)i.splice(n,s-n,e,"overlay "+t),s=n+2;else for(;n<s;n+=2){var o=i[n+1];i[n+1]=(o?o+" ":"")+"overlay "+t}},o),n.state=l,n.baseTokens=null,n.baseTokenPos=1},s=0;s<e.state.overlays.length;++s)a(s);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Ne(e,t,n){if(!t.styles||t.styles[0]!=e.state.modeGen){var r=Ae(e,D(t)),i=t.text.length>e.options.maxHighlightLength&&Ie(e.doc.mode,r.state),o=Pe(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function Ae(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new Ao(r,!0,t);var o=function(e,n,r){for(var i,o,l=e.doc,a=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>a;--s){if(s<=l.first)return l.first;var u=S(l,s-1),c=u.stateAfter;if(c&&(!r||s+(c instanceof No?c.lookAhead:0)<=l.modeFrontier))return s;var p=d(u.text,null,e.options.tabSize);(null==o||i>p)&&(o=s-1,i=p)}return o}(e,0,n),l=o>r.first&&S(r,o-1).stateAfter,a=l?Ao.fromSaved(r,l,o):new Ao(r,Me(r.mode),o);return r.iter(o,t,function(n){Le(e,n.text,a);var r=a.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&r<i.viewTo?a.save():null,a.nextLine()}),n&&(r.modeFrontier=a.line),a}function Le(e,t,n,r){var i=e.doc.mode,o=new Po(t,e.options.tabSize,n);for(o.start=o.pos=r||0,""==t&&Fe(i,n.state);!o.eol();)je(i,o,n.state),o.start=o.pos}function Fe(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var n=Re(e,t);return n.mode.blankLine?n.mode.blankLine(n.state):void 0}}function je(e,t,n,r){for(var i=0;i<10;i++){r&&(r[0]=Re(e,n).mode);var o=e.token(t,n);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function Ve(e,t,n,r){var i,o,l=e.doc,a=l.mode,s=S(l,(t=z(l,t)).line),u=Ae(e,t.line,n),c=new Po(s.text,e.options.tabSize,u);for(r&&(o=[]);(r||c.pos<t.ch)&&!c.eol();)c.start=c.pos,i=je(a,c,u.state),r&&o.push(new Lo(c,i,Ie(l.mode,u.state)));return r?o:new Lo(c,i,u.state)}function ze(e,t){if(e)for(;;){var n=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!n)break;e=e.slice(0,n.index)+e.slice(n.index+n[0].length);var r=n[1]?"bgClass":"textClass";null==t[r]?t[r]=n[2]:new RegExp("(?:^|s)"+n[2]+"(?:$|s)").test(t[r])||(t[r]+=" "+n[2])}return e}function Be(e,t,n,r,i,o,l){var a=n.flattenSpans;null==a&&(a=e.options.flattenSpans);var s,u=0,c=null,d=new Po(t,e.options.tabSize,r),p=e.options.addModeClass&&[null];for(""==t&&ze(Fe(n,r.state),o);!d.eol();){if(d.pos>e.options.maxHighlightLength?(a=!1,l&&Le(e,t,r,d.pos),d.pos=t.length,s=null):s=ze(je(n,d,r.state,p),o),p){var f=p[0].name;f&&(s="m-"+(s?f+" "+s:f))}if(!a||c!=s){for(;u<d.start;)i(u=Math.min(d.start,u+5e3),c);c=s}d.start=d.pos}for(;u<d.pos;){var h=Math.min(d.pos,u+5e3);i(h,c),u=h}}function He(e){e.parent=null,K(e)}function We(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?zo:Vo;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function qe(e,t){var n=i("span",null,null,Hi?"padding-right: .1px":null),r={pre:i("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(zi||Hi)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var l=o?t.rest[o-1]:t.line,a=void 0;r.pos=0,r.addToken=Ge,Oe(e.display.measure)&&(a=de(l,e.doc.direction))&&(r.addToken=function(e,t){return function(n,r,i,o,l,a,s){i=i?i+" cm-force-border":"cm-force-border";for(var u=n.pos,c=u+r.length;;){for(var d=void 0,p=0;p<t.length&&!((d=t[p]).to>u&&d.from<=u);p++);if(d.to>=c)return e(n,r,i,o,l,a,s);e(n,r.slice(0,d.to-u),i,o,null,a,s),o=null,r=r.slice(d.to-u),u=d.to}}}(r.addToken,a)),r.map=[],function(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var l,a,s,u,c,d,p,f=i.length,h=0,m=1,g="",y=0;;){if(y==h){s=u=c=d=a="",p=null,y=1/0;for(var v=[],b=void 0,_=0;_<r.length;++_){var w=r[_],x=w.marker;"bookmark"==x.type&&w.from==h&&x.widgetNode?v.push(x):w.from<=h&&(null==w.to||w.to>h||x.collapsed&&w.to==h&&w.from==h)?(null!=w.to&&w.to!=h&&y>w.to&&(y=w.to,u=""),x.className&&(s+=" "+x.className),x.css&&(a=(a?a+";":"")+x.css),x.startStyle&&w.from==h&&(c+=" "+x.startStyle),x.endStyle&&w.to==y&&(b||(b=[])).push(x.endStyle,w.to),x.title&&!d&&(d=x.title),x.collapsed&&(!p||Y(p.marker,x)<0)&&(p=w)):w.from>h&&y>w.from&&(y=w.from)}if(b)for(var C=0;C<b.length;C+=2)b[C+1]==y&&(u+=" "+b[C]);if(!p||p.from==h)for(var E=0;E<v.length;++E)Ke(t,0,v[E]);if(p&&(p.from||0)==h){if(Ke(t,(null==p.to?f+1:p.to)-h,p.marker,null==p.from),null==p.to)return;p.to==h&&(p=!1)}}if(h>=f)break;for(var S=Math.min(f,y);;){if(g){var O=h+g.length;if(!p){var T=O>S?g.slice(0,S-h):g;t.addToken(t,T,l?l+s:s,c,h+T.length==y?u:"",d,a)}if(O>=S){g=g.slice(S-h),h=S;break}h=O,c=""}g=i.slice(o,o=n[m++]),l=We(n[m++],t.cm.options)}}else for(var k=1;k<n.length;k+=2)t.addToken(t,i.slice(o,o=n[k]),We(n[k+1],t.cm.options))}(l,r,Ne(e,l,t!=e.display.externalMeasured&&D(l))),l.styleClasses&&(l.styleClasses.bgClass&&(r.bgClass=s(l.styleClasses.bgClass,r.bgClass||"")),l.styleClasses.textClass&&(r.textClass=s(l.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Se(e.display.measure))),0==o?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(Hi){var u=r.content.lastChild;(/\bcm-tab\b/.test(u.className)||u.querySelector&&u.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return he(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=s(r.pre.className,r.textClass||"")),r}function Ue(e){var t=r("span","\u2022","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Ge(e,t,n,i,o,l,a){if(t){var s,u=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!n||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o="\xa0"),r+=o,n=" "==o}return r}(t,e.trailingSpace):t,c=e.cm.state.specialChars,d=!1;if(c.test(t)){s=document.createDocumentFragment();for(var p=0;;){c.lastIndex=p;var f=c.exec(t),m=f?f.index-p:t.length-p;if(m){var g=document.createTextNode(u.slice(p,p+m));s.appendChild(zi&&Bi<9?r("span",[g]):g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!f)break;p+=m+1;var y=void 0;if("\t"==f[0]){var v=e.cm.options.tabSize,b=v-e.col%v;(y=s.appendChild(r("span",h(b),"cm-tab"))).setAttribute("role","presentation"),y.setAttribute("cm-text","\t"),e.col+=b}else"\r"==f[0]||"\n"==f[0]?((y=s.appendChild(r("span","\r"==f[0]?"\u240d":"\u2424","cm-invalidchar"))).setAttribute("cm-text",f[0]),e.col+=1):((y=e.cm.options.specialCharPlaceholder(f[0])).setAttribute("cm-text",f[0]),s.appendChild(zi&&Bi<9?r("span",[y]):y),e.col+=1);e.map.push(e.pos,e.pos+1,y),e.pos++}}else e.col+=t.length,s=document.createTextNode(u),e.map.push(e.pos,e.pos+t.length,s),zi&&Bi<9&&(d=!0),e.pos+=t.length;if(e.trailingSpace=32==u.charCodeAt(t.length-1),n||i||o||d||a){var _=n||"";i&&(_+=i),o&&(_+=o);var w=r("span",[s],_,a);return l&&(w.title=l),e.content.appendChild(w)}e.content.appendChild(s)}}function Ke(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function $e(e,t,n){this.line=t,this.rest=function(e){for(var t,n;t=ee(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}(t),this.size=this.rest?D(m(this.rest))-n+1:1,this.node=this.text=null,this.hidden=oe(e,t)}function Ze(e,t,n){for(var r,i=[],o=t;o<n;o=r){var l=new $e(e.doc,S(e.doc,o),o);r=o+l.size,i.push(l)}return i}function Qe(e,t){var n=pe(e,t);if(n.length){var r,i=Array.prototype.slice.call(arguments,2);Bo?r=Bo.delayedCallbacks:Ho?r=Ho:(r=Ho=[],setTimeout(Ye,0));for(var o=function(e){r.push(function(){return n[e].apply(null,i)})},l=0;l<n.length;++l)o(l)}}function Ye(){var e=Ho;Ho=null;for(var t=0;t<e.length;++t)e[t]()}function Xe(e,t,n,r){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?function(e,t){var n=t.text.className,r=et(e,t);t.text==t.node&&(t.node=r.pre),t.text.parentNode.replaceChild(r.pre,t.text),t.text=r.pre,r.bgClass!=t.bgClass||r.textClass!=t.textClass?(t.bgClass=r.bgClass,t.textClass=r.textClass,tt(e,t)):n&&(t.text.className=n)}(e,t):"gutter"==o?nt(e,t,n,r):"class"==o?tt(e,t):"widget"==o&&function(e,t,n){t.alignable&&(t.alignable=null);for(var r=t.node.firstChild,i=void 0;r;r=i)i=r.nextSibling,"CodeMirror-linewidget"==r.className&&t.node.removeChild(r);it(e,t,n)}(e,t,r)}t.changes=null}function Je(e){return e.node==e.text&&(e.node=r("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),zi&&Bi<8&&(e.node.style.zIndex=2)),e.node}function et(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):qe(e,t)}function tt(e,t){!function(e,t){var n=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(n&&(n+=" CodeMirror-linebackground"),t.background)n?t.background.className=n:(t.background.parentNode.removeChild(t.background),t.background=null);else if(n){var i=Je(t);t.background=i.insertBefore(r("div",null,n),i.firstChild),e.display.input.setUneditable(t.background)}}(e,t),t.line.wrapClass?Je(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className=""),t.text.className=(t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass)||""}function nt(e,t,n,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=Je(t);t.gutterBackground=r("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var l=t.line.gutterMarkers;if(e.options.lineNumbers||l){var a=Je(t),s=t.gutter=r("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(s),a.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=" "+t.line.gutterClass),!e.options.lineNumbers||l&&l["CodeMirror-linenumbers"]||(t.lineNumber=s.appendChild(r("div",M(e.options,n),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),l)for(var u=0;u<e.options.gutters.length;++u){var c=e.options.gutters[u],d=l.hasOwnProperty(c)&&l[c];d&&s.appendChild(r("div",[d],"CodeMirror-gutter-elt","left: "+i.gutterLeft[c]+"px; width: "+i.gutterWidth[c]+"px"))}}}function rt(e,t,n,r){var i=et(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),tt(e,t),nt(e,t,n,r),it(e,t,r),t.node}function it(e,t,n){if(ot(e,t.line,t,n,!0),t.rest)for(var r=0;r<t.rest.length;r++)ot(e,t.rest[r],t,n,!1)}function ot(e,t,n,i,o){if(t.widgets)for(var l=Je(n),a=0,s=t.widgets;a<s.length;++a){var u=s[a],c=r("div",[u.node],"CodeMirror-linewidget");u.handleMouseEvents||c.setAttribute("cm-ignore-events","true"),function(e,t,r,i){if(e.noHScroll){(n.alignable||(n.alignable=[])).push(t);var o=i.wrapperWidth;t.style.left=i.fixedPos+"px",e.coverGutter||(o-=i.gutterTotalWidth,t.style.paddingLeft=i.gutterTotalWidth+"px"),t.style.width=o+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-i.gutterTotalWidth+"px"))}(u,c,0,i),e.display.input.setUneditable(c),o&&u.above?l.insertBefore(c,n.gutter||n.text):l.appendChild(c),Qe(u,"redraw")}}function lt(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),n(t.display.measure,r("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function at(e,t){for(var n=Ce(t);n!=e.wrapper;n=n.parentNode)if(!n||1==n.nodeType&&"true"==n.getAttribute("cm-ignore-events")||n.parentNode==e.sizer&&n!=e.mover)return!0}function st(e){return e.lineSpace.offsetTop}function ut(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function ct(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=n(e.measure,r("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function dt(e){return co-e.display.nativeBarWidth}function pt(e){return e.display.scroller.clientWidth-dt(e)-e.display.barWidth}function ft(e){return e.display.scroller.clientHeight-dt(e)-e.display.barHeight}function ht(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var r=0;r<e.rest.length;r++)if(e.rest[r]==t)return{map:e.measure.maps[r],cache:e.measure.caches[r]};for(var i=0;i<e.rest.length;i++)if(D(e.rest[i])>n)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function mt(e,t,n,r){return vt(e,yt(e,t),n,r)}function gt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Wt(e,t)];var n=e.display.externalMeasured;return n&&t>=n.lineN&&t<n.lineN+n.size?n:void 0}function yt(e,t){var r=D(t),i=gt(e,r);i&&!i.text?i=null:i&&i.changes&&(Xe(e,i,r,jt(e)),e.curOp.forceUpdate=!0),i||(i=function(e,t){var r=D(t=ne(t)),i=e.display.externalMeasured=new $e(e.doc,t,r);i.lineN=r;var o=i.built=qe(e,i);return i.text=o.pre,n(e.display.lineMeasure,o.pre),i}(e,t));var o=ht(i,t,r);return{line:t,view:i,rect:null,map:o.map,cache:o.cache,before:o.before,hasHeights:!1}}function vt(e,t,i,o,l){t.before&&(i=-1);var a,s=i+(o||"");return t.cache.hasOwnProperty(s)?a=t.cache[s]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(function(t,n,r){var i=e.options.lineWrapping,o=i&&pt(e);if(!n.measure.heights||i&&n.measure.width!=o){var l=n.measure.heights=[];if(i){n.measure.width=o;for(var a=n.text.firstChild.getClientRects(),s=0;s<a.length-1;s++){var u=a[s],c=a[s+1];Math.abs(u.bottom-c.bottom)>2&&l.push((u.bottom+c.top)/2-r.top)}}l.push(r.bottom-r.top)}}(0,t.view,t.rect),t.hasHeights=!0),(a=function(e,t,o,l){var a,s=bt(t.map,i,l),u=s.node,c=s.start,d=s.end,p=s.collapse;if(3==u.nodeType){for(var f=0;f<4;f++){for(;c&&x(t.line.text.charAt(s.coverStart+c));)--c;for(;s.coverStart+d<s.coverEnd&&x(t.line.text.charAt(s.coverStart+d));)++d;if((a=zi&&Bi<9&&0==c&&d==s.coverEnd-s.coverStart?u.parentNode.getBoundingClientRect():function(e,t){var n=Wo;if("left"==l)for(var r=0;r<e.length&&(n=e[r]).left==n.right;r++);else for(var i=e.length-1;i>=0&&(n=e[i]).left==n.right;i--);return n}(no(u,c,d).getClientRects())).left||a.right||0==c)break;d=c,c-=1,p="right"}zi&&Bi<11&&(a=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=Do)return Do;var t=n(e,r("span","x")),i=t.getBoundingClientRect(),o=no(t,0,1).getBoundingClientRect();return Do=Math.abs(i.left-o.left)>1}(e))return t;var i=screen.logicalXDPI/screen.deviceXDPI,o=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*i,right:t.right*i,top:t.top*o,bottom:t.bottom*o}}(e.display.measure,a))}else{c>0&&(p=l="right");var h;a=e.options.lineWrapping&&(h=u.getClientRects()).length>1?h["right"==l?h.length-1:0]:u.getBoundingClientRect()}if(zi&&Bi<9&&!c&&(!a||!a.left&&!a.right)){var m=u.parentNode.getClientRects()[0];a=m?{left:m.left,right:m.left+Ft(e.display),top:m.top,bottom:m.bottom}:Wo}for(var g=a.top-t.rect.top,y=a.bottom-t.rect.top,v=(g+y)/2,b=t.view.measure.heights,_=0;_<b.length-1&&!(v<b[_]);_++);var w={left:("right"==p?a.right:a.left)-t.rect.left,right:("left"==p?a.left:a.right)-t.rect.left,top:_?b[_-1]:0,bottom:b[_]};return a.left||a.right||(w.bogus=!0),e.options.singleCursorHeightPerLine||(w.rtop=g,w.rbottom=y),w}(e,t,0,o)).bogus||(t.cache[s]=a)),{left:a.left,right:a.right,top:l?a.rtop:a.top,bottom:l?a.rbottom:a.bottom}}function bt(e,t,n){for(var r,i,o,l,a,s,u=0;u<e.length;u+=3)if(a=e[u],s=e[u+1],t<a?(i=0,o=1,l="left"):t<s?o=1+(i=t-a):(u==e.length-3||t==s&&e[u+3]>t)&&(i=(o=s-a)-1,t>=s&&(l="right")),null!=i){if(r=e[u+2],a==s&&n==(r.insertLeft?"left":"right")&&(l=n),"left"==n&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)r=e[2+(u-=3)],l="left";if("right"==n&&i==s-a)for(;u<e.length-3&&e[u+3]==e[u+4]&&!e[u+5].insertLeft;)r=e[(u+=3)+2],l="right";break}return{node:r,start:i,end:o,collapse:l,coverStart:a,coverEnd:s}}function _t(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function wt(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var n=0;n<e.display.view.length;n++)_t(e.display.view[n])}function xt(e){wt(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function Ct(){return qi&&Qi?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function Et(){return qi&&Qi?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function St(e){var t=0;if(e.widgets)for(var n=0;n<e.widgets.length;++n)e.widgets[n].above&&(t+=lt(e.widgets[n]));return t}function Ot(e,t,n,r,i){if(!i){var o=St(t);n.top+=o,n.bottom+=o}if("line"==r)return n;r||(r="local");var l=ae(t);if("local"==r?l+=st(e.display):l-=e.display.viewOffset,"page"==r||"window"==r){var a=e.display.lineSpace.getBoundingClientRect();l+=a.top+("window"==r?0:Et());var s=a.left+("window"==r?0:Ct());n.left+=s,n.right+=s}return n.top+=l,n.bottom+=l,n}function Tt(e,t,n){if("div"==n)return t;var r=t.left,i=t.top;if("page"==n)r-=Ct(),i-=Et();else if("local"==n||!n){var o=e.display.sizer.getBoundingClientRect();r+=o.left,i+=o.top}var l=e.display.lineSpace.getBoundingClientRect();return{left:r-l.left,top:i-l.top}}function kt(e,t,n,r,i){return r||(r=S(e.doc,t.line)),Ot(e,r,mt(e,r,t.ch,i),n)}function Dt(e,t,n,r,i,o){function l(t,l){var a=vt(e,i,t,l?"right":"left",o);return l?a.left=a.right:a.right=a.left,Ot(e,r,a,n)}function a(e,t,n){return l(n?e-1:e,1==s[t].level!=n)}r=r||S(e.doc,t.line),i||(i=yt(e,r));var s=de(r,e.doc.direction),u=t.ch,c=t.sticky;if(u>=r.text.length?(u=r.text.length,c="before"):u<=0&&(u=0,c="after"),!s)return l("before"==c?u-1:u,"before"==c);var d=ce(s,u,c),p=wo,f=a(u,d,"before"==c);return null!=p&&(f.other=a(u,p,"before"!=c)),f}function It(e,t){var n=0;t=z(e.doc,t),e.options.lineWrapping||(n=Ft(e.display)*t.ch);var r=S(e.doc,t.line),i=ae(r)+st(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function Rt(e,t,n,r,i){var o=P(e,t,n);return o.xRel=i,r&&(o.outside=!0),o}function Mt(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return Rt(r.first,0,null,!0,-1);var i=I(r,n),o=r.first+r.size-1;if(i>o)return Rt(r.first+r.size-1,S(r,o).text.length,null,!0,1);t<0&&(t=0);for(var l=S(r,i);;){var a=function(e,t,n,r,i){i-=ae(t);var o=yt(e,t),l=St(t),a=0,s=t.text.length,u=!0,c=de(t,e.doc.direction);if(c){var d=(e.options.lineWrapping?function(e,t,n,r,i,o,l){var a=Pt(e,t,r,l),s=a.begin,u=a.end;/\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,d=null,p=0;p<i.length;p++){var f=i[p];if(!(f.from>=u||f.to<=s)){var h=vt(e,r,1!=f.level?Math.min(u,f.to)-1:Math.max(s,f.from)).right,m=h<o?o-h+1e9:h-o;(!c||d>m)&&(c=f,d=m)}}return c||(c=i[i.length-1]),c.from<s&&(c={from:s,to:c.to,level:c.level}),c.to>u&&(c={from:c.from,to:u,level:c.level}),c}:function(e,t,n,r,i,o,l){var a=E(function(a){var s=i[a],u=1!=s.level;return At(Dt(e,P(n,u?s.to:s.from,u?"before":"after"),"line",t,r),o,l,!0)},0,i.length-1),s=i[a];if(a>0){var u=1!=s.level,c=Dt(e,P(n,u?s.from:s.to,u?"after":"before"),"line",t,r);At(c,o,l,!0)&&c.top>l&&(s=i[a-1])}return s})(e,t,n,o,c,r,i);a=(u=1!=d.level)?d.from:d.to-1,s=u?d.to:d.from-1}var p,f,h=null,m=null,g=E(function(t){var n=vt(e,o,t);return n.top+=l,n.bottom+=l,!!At(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(h=t,m=n),!0)},a,s),y=!1;if(m){var v=r-m.left<m.right-r,b=v==u;g=h+(b?0:1),f=b?"after":"before",p=v?m.left:m.right}else{u||g!=s&&g!=a||g++,f=0==g?"after":g==t.text.length?"before":vt(e,o,g-(u?1:0)).bottom+l<=i==u?"after":"before";var _=Dt(e,P(n,g,f),"line",t,o);p=_.left,y=i<_.top||i>=_.bottom}return g=C(t.text,g,1),Rt(n,g,f,y,r-p)}(e,l,i,t,n),s=ee(l),u=s&&s.find(0,!0);if(!s||!(a.ch>u.from.ch||a.ch==u.from.ch&&a.xRel>0))return a;i=D(l=u.to.line)}}function Pt(e,t,n,r){r-=St(t);var i=t.text.length,o=E(function(t){return vt(e,n,t-1).bottom<=r},i,0);return i=E(function(t){return vt(e,n,t).top>r},o,i),{begin:o,end:i}}function Nt(e,t,n,r){return n||(n=yt(e,t)),Pt(e,t,n,Ot(e,t,vt(e,n,r),"line").top)}function At(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function Lt(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==jo){jo=r("pre");for(var i=0;i<49;++i)jo.appendChild(document.createTextNode("x")),jo.appendChild(r("br"));jo.appendChild(document.createTextNode("x"))}n(e.measure,jo);var o=jo.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function Ft(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=r("span","xxxxxxxxxx"),i=r("pre",[t]);n(e.measure,i);var o=t.getBoundingClientRect(),l=(o.right-o.left)/10;return l>2&&(e.cachedCharWidth=l),l||10}function jt(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l)n[e.options.gutters[l]]=o.offsetLeft+o.clientLeft+i,r[e.options.gutters[l]]=o.clientWidth;return{fixedPos:Vt(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function Vt(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function zt(e){var t=Lt(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/Ft(e.display)-3);return function(i){if(oe(e.doc,i))return 0;var o=0;if(i.widgets)for(var l=0;l<i.widgets.length;l++)i.widgets[l].height&&(o+=i.widgets[l].height);return n?o+(Math.ceil(i.text.length/r)||1)*t:o+t}}function Bt(e){var t=e.doc,n=zt(e);t.iter(function(e){var t=n(e);t!=e.height&&k(e,t)})}function Ht(e,t,n,r){var i=e.display;if(!n&&"true"==Ce(t).getAttribute("cm-not-content"))return null;var o,l,a=i.lineSpace.getBoundingClientRect();try{o=t.clientX-a.left,l=t.clientY-a.top}catch(t){return null}var s,u=Mt(e,o,l);if(r&&1==u.xRel&&(s=S(e.doc,u.line).text).length==u.ch){var c=d(s,s.length,e.options.tabSize)-s.length;u=P(u.line,Math.max(0,Math.round((o-ct(e.display).left)/Ft(e.display))-c))}return u}function Wt(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;r<n.length;r++)if((t-=n[r].size)<0)return r}function qt(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Ut(e,t){void 0===t&&(t=!0);for(var n=e.doc,i={},o=i.cursors=document.createDocumentFragment(),l=i.selection=document.createDocumentFragment(),a=0;a<n.sel.ranges.length;a++)if(t||a!=n.sel.primIndex){var s=n.sel.ranges[a];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var u=s.empty();(u||e.options.showCursorWhenSelecting)&&Gt(e,s.head,o),u||function(e,t,n){function i(e,t,n,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),s.appendChild(r("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==n?d-e:n)+"px;\n height: "+(i-t)+"px"))}function o(t,n,r){function o(n,r){return kt(e,P(t,n),"div",f,r)}function l(t,n,r){var i=Nt(e,f,null,t),l="ltr"==n==("after"==r)?"left":"right";return o("after"==r?i.begin:i.end-(/\s/.test(f.text.charAt(i.end-1))?2:1),l)[l]}var s,u,f=S(a,t),h=f.text.length,m=de(f,a.direction);return function(e,t,n,r){if(!e)return r(t,n,"ltr",0);for(var i=!1,o=0;o<e.length;++o){var l=e[o];(l.from<n&&l.to>t||t==n&&l.to==t)&&(r(Math.max(l.from,t),Math.min(l.to,n),1==l.level?"rtl":"ltr",o),i=!0)}i||r(t,n,"ltr")}(m,n||0,null==r?h:r,function(e,t,a,f){var g="ltr"==a,y=o(e,g?"left":"right"),v=o(t-1,g?"right":"left"),b=null==n&&0==e,_=null==r&&t==h,w=0==f,x=!m||f==m.length-1;if(v.top-y.top<=3){var C=(p?b:_)&&w?c:(g?y:v).left;i(C,y.top,((p?_:b)&&x?d:(g?v:y).right)-C,y.bottom)}else{var E,S,O,T;g?(E=p&&b&&w?c:y.left,S=p?d:l(e,a,"before"),O=p?c:l(t,a,"after"),T=p&&_&&x?d:v.right):(E=p?l(e,a,"before"):c,S=!p&&b&&w?d:y.right,O=!p&&_&&x?c:v.left,T=p?l(t,a,"after"):d),i(E,y.top,S-E,y.bottom),y.bottom<v.top&&i(c,y.bottom,null,v.top),i(O,v.top,T-O,v.bottom)}(!s||Kt(y,s)<0)&&(s=y),Kt(v,s)<0&&(s=v),(!u||Kt(y,u)<0)&&(u=y),Kt(v,u)<0&&(u=v)}),{start:s,end:u}}var l=e.display,a=e.doc,s=document.createDocumentFragment(),u=ct(e.display),c=u.left,d=Math.max(l.sizerWidth,pt(e)-l.sizer.offsetLeft)-u.right,p="ltr"==a.direction,f=t.from(),h=t.to();if(f.line==h.line)o(f.line,f.ch,h.ch);else{var m=S(a,f.line),g=S(a,h.line),y=ne(m)==ne(g),v=o(f.line,f.ch,y?m.text.length+1:null).end,b=o(h.line,y?0:null,h.ch).start;y&&(v.top<b.top-2?(i(v.right,v.top,null,v.bottom),i(c,b.top,b.left,b.bottom)):i(v.right,v.top,b.left-v.right,v.bottom)),v.bottom<b.top&&i(c,v.bottom,null,b.top)}n.appendChild(s)}(e,s,l)}}return i}function Gt(e,t,n){var i=Dt(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=n.appendChild(r("div","\xa0","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var l=n.appendChild(r("div","\xa0","CodeMirror-cursor CodeMirror-secondarycursor"));l.style.display="",l.style.left=i.other.left+"px",l.style.top=i.other.top+"px",l.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function Kt(e,t){return e.top-t.top||e.left-t.left}function $t(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var n=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Zt(e){e.state.focused||(e.display.input.focus(),Yt(e))}function Qt(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Xt(e))},100)}function Yt(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(he(e,"focus",e,t),e.state.focused=!0,a(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),Hi&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),$t(e))}function Xt(e,t){e.state.delayingBlurEvent||(e.state.focused&&(he(e,"blur",e,t),e.state.focused=!1,oo(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Jt(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r<t.view.length;r++){var i=t.view[r],o=void 0;if(!i.hidden){if(zi&&Bi<8){var l=i.node.offsetTop+i.node.offsetHeight;o=l-n,n=l}else{var a=i.node.getBoundingClientRect();o=a.bottom-a.top}var s=i.line.height-o;if(o<2&&(o=Lt(t)),(s>.005||s<-.005)&&(k(i.line,o),en(i.line),i.rest))for(var u=0;u<i.rest.length;u++)en(i.rest[u])}}}function en(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var n=e.widgets[t],r=n.node.parentNode;r&&(n.height=r.offsetHeight)}}function tn(e,t,n){var r=n&&null!=n.top?Math.max(0,n.top):e.scroller.scrollTop;r=Math.floor(r-st(e));var i=n&&null!=n.bottom?n.bottom:r+e.wrapper.clientHeight,o=I(t,r),l=I(t,i);if(n&&n.ensure){var a=n.ensure.from.line,s=n.ensure.to.line;a<o?(o=a,l=I(t,ae(S(t,a))+e.wrapper.clientHeight)):Math.min(s,t.lastLine())>=l&&(o=I(t,ae(S(t,s))-e.wrapper.clientHeight),l=s)}return{from:o,to:Math.max(l,o+1)}}function nn(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=Vt(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",l=0;l<n.length;l++)if(!n[l].hidden){e.options.fixedGutter&&(n[l].gutter&&(n[l].gutter.style.left=o),n[l].gutterBackground&&(n[l].gutterBackground.style.left=o));var a=n[l].alignable;if(a)for(var s=0;s<a.length;s++)a[s].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=r+i+"px")}}function rn(e){if(!e.options.lineNumbers)return!1;var t=e.doc,n=M(e.options,t.first+t.size-1),i=e.display;if(n.length!=i.lineNumChars){var o=i.measure.appendChild(r("div",[r("div",n)],"CodeMirror-linenumber CodeMirror-gutter-elt")),l=o.firstChild.offsetWidth,a=o.offsetWidth-l;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(l,i.lineGutter.offsetWidth-a)+1,i.lineNumWidth=i.lineNumInnerWidth+a,i.lineNumChars=i.lineNumInnerWidth?n.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",Nn(e),!0}return!1}function on(e,t){var n=e.display,r=Lt(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=ft(e),l={};t.bottom-t.top>o&&(t.bottom=t.top+o);var a=e.doc.height+ut(n),s=t.bottom>a-r;if(t.top<i)l.scrollTop=t.top<r?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(s?a:t.bottom)-o);u!=i&&(l.scrollTop=u)}var c=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft,d=pt(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0),p=t.right-t.left>d;return p&&(t.right=t.left+d),t.left<10?l.scrollLeft=0:t.left<c?l.scrollLeft=Math.max(0,t.left-(p?0:10)):t.right>d+c-3&&(l.scrollLeft=t.right+(p?0:10)-d),l}function ln(e,t){null!=t&&(un(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function an(e){un(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function sn(e,t,n){null==t&&null==n||un(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function un(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,cn(e,It(e,t.from),It(e,t.to),t.margin))}function cn(e,t,n,r){var i=on(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});sn(e,i.scrollLeft,i.scrollTop)}function dn(e,t){Math.abs(e.doc.scrollTop-t)<2||(Li||Pn(e,{top:t}),pn(e,t,!0),Li&&Pn(e),Dn(e,100))}function pn(e,t,n){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function fn(e,t,n,r){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,nn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function hn(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+ut(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+dt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}function mn(e,t){t||(t=hn(e));var n=e.display.barWidth,r=e.display.barHeight;gn(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&Jt(e),gn(e,hn(e)),n=e.display.barWidth,r=e.display.barHeight}function gn(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}function yn(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&oo(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Go[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Eo(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,n){"horizontal"==n?fn(e,t):dn(e,t)},e),e.display.scrollbars.addClass&&a(e.display.wrapper,e.display.scrollbars.addClass)}function vn(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Ko},function(e){Bo?Bo.ops.push(e):e.ownsGroup=Bo={ops:[e],delayedCallbacks:[]}}(e.curOp)}function bn(e){!function(t,n){var i=e.curOp.ownsGroup;if(i)try{!function(e){var t=e.delayedCallbacks,n=0;do{for(;n<t.length;n++)t[n].call(null);for(var r=0;r<e.ops.length;r++){var i=e.ops[r];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(n<t.length)}(i)}finally{Bo=null,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;!function(t){for(var n=e.ops,i=0;i<n.length;i++)!function(e){var t=e.cm,n=t.display;(function(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=dt(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=dt(e)+"px",t.scrollbarsClipped=!0)})(t),e.updateMaxLine&&ue(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<n.viewFrom||e.scrollToPos.to.line>=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new $o(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}(n[i]);for(var o=0;o<n.length;o++)!function(e){e.updatedDisplay=e.mustUpdate&&Rn(e.cm,e.update)}(n[o]);for(var a=0;a<n.length;a++)!function(e){var t=e.cm,n=t.display;e.updatedDisplay&&Jt(t),e.barMeasure=hn(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=mt(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+dt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-pt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}(n[a]);for(var s=0;s<n.length;s++)!function(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&fn(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var n=e.focus&&e.focus==l();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,n),(e.updatedDisplay||e.startHeight!=t.doc.height)&&mn(t,e.barMeasure),e.updatedDisplay&&An(t,e.barMeasure),e.selectionChanged&&$t(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),n&&Zt(e.cm)}(n[s]);for(var u=0;u<n.length;u++)!function(e){var t=e.cm,n=t.display,i=t.doc;if(e.updatedDisplay&&Mn(t,e.update),null==n.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(n.wheelStartX=n.wheelStartY=null),null!=e.scrollTop&&pn(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&fn(t,e.scrollLeft,!0,!0),e.scrollToPos){!function(e,t){if(!me(e,"scrollCursorIntoView")){var n=e.display,i=n.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!$i){var l=r("div","\u200b",null,"position: absolute;\n top: "+(t.top-n.viewOffset-st(e.display))+"px;\n height: "+(t.bottom-t.top+dt(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(l),l.scrollIntoView(o),e.display.lineSpace.removeChild(l)}}}(t,function(e,t,n,r){null==r&&(r=0);var i;e.options.lineWrapping||t!=n||(n="before"==(t=t.ch?P(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?P(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var l=!1,a=Dt(e,t),s=n&&n!=t?Dt(e,n):a,u=on(e,i={left:Math.min(a.left,s.left),top:Math.min(a.top,s.top)-r,right:Math.max(a.left,s.left),bottom:Math.max(a.bottom,s.bottom)+r}),c=e.doc.scrollTop,d=e.doc.scrollLeft;if(null!=u.scrollTop&&(dn(e,u.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(l=!0)),null!=u.scrollLeft&&(fn(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(l=!0)),!l)break}return i}(t,z(i,e.scrollToPos.from),z(i,e.scrollToPos.to),e.scrollToPos.margin))}var o=e.maybeHiddenMarkers,l=e.maybeUnhiddenMarkers;if(o)for(var a=0;a<o.length;++a)o[a].lines.length||he(o[a],"hide");if(l)for(var s=0;s<l.length;++s)l[s].lines.length&&he(l[s],"unhide");n.wrapper.offsetHeight&&(i.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&he(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}(n[u])}()}(i)}}()}function _n(e,t){if(e.curOp)return t();vn(e);try{return t()}finally{bn(e)}}function wn(e,t){return function(){if(e.curOp)return t.apply(e,arguments);vn(e);try{return t.apply(e,arguments)}finally{bn(e)}}}function xn(e){return function(){if(this.curOp)return e.apply(this,arguments);vn(this);try{return e.apply(this,arguments)}finally{bn(this)}}}function Cn(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);vn(t);try{return e.apply(this,arguments)}finally{bn(t)}}}function En(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),r||(r=0);var i=e.display;if(r&&n<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)_o&&re(e.doc,t)<i.viewTo&&On(e);else if(n<=i.viewFrom)_o&&ie(e.doc,n+r)>i.viewFrom?On(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)On(e);else if(t<=i.viewFrom){var o=Tn(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):On(e)}else if(n>=i.viewTo){var l=Tn(e,t,t,-1);l?(i.view=i.view.slice(0,l.index),i.viewTo=l.lineN):On(e)}else{var a=Tn(e,t,t,-1),s=Tn(e,n,n+r,1);a&&s?(i.view=i.view.slice(0,a.index).concat(Ze(e,a.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=r):On(e)}var u=i.externalMeasured;u&&(n<u.lineN?u.lineN+=r:t<u.lineN+u.size&&(i.externalMeasured=null))}function Sn(e,t,n){e.curOp.viewChanged=!0;var r=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(r.externalMeasured=null),!(t<r.viewFrom||t>=r.viewTo)){var o=r.view[Wt(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);-1==p(l,n)&&l.push(n)}}}function On(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Tn(e,t,n,r){var i,o=Wt(e,t),l=e.display.view;if(!_o||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var a=e.display.viewFrom,s=0;s<o;s++)a+=l[s].size;if(a!=t){if(r>0){if(o==l.length-1)return null;i=a+l[o].size-t,o++}else i=a-t;t+=i,n+=i}for(;re(e.doc,n)!=n;){if(o==(r<0?0:l.length-1))return null;n+=r*l[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function kn(e){for(var t=e.display.view,n=0,r=0;r<t.length;r++){var i=t[r];i.hidden||i.node&&!i.changes||++n}return n}function Dn(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,u(In,e))}function In(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var n=+new Date+e.options.workTime,r=Ae(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(r.line>=e.display.viewFrom){var l=o.styles,a=o.text.length>e.options.maxHighlightLength?Ie(t.mode,r.state):null,s=Pe(e,o,r,!0);a&&(r.state=a),o.styles=s.styles;var u=o.styleClasses,c=s.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var d=!l||l.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),p=0;!d&&p<l.length;++p)d=l[p]!=o.styles[p];d&&i.push(r.line),o.stateAfter=r.save(),r.nextLine()}else o.text.length<=e.options.maxHighlightLength&&Le(e,o.text,r),o.stateAfter=r.line%5==0?r.save():null,r.nextLine();if(+new Date>n)return Dn(e,e.options.workDelay),!0}),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&_n(e,function(){for(var t=0;t<i.length;t++)Sn(e,i[t],"text")})}}function Rn(e,n){var r=e.display,i=e.doc;if(n.editorIsHidden)return On(e),!1;if(!n.force&&n.visible.from>=r.viewFrom&&n.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==kn(e))return!1;rn(e)&&(On(e),n.dims=jt(e));var a=i.first+i.size,s=Math.max(n.visible.from-e.options.viewportMargin,i.first),u=Math.min(a,n.visible.to+e.options.viewportMargin);r.viewFrom<s&&s-r.viewFrom<20&&(s=Math.max(i.first,r.viewFrom)),r.viewTo>u&&r.viewTo-u<20&&(u=Math.min(a,r.viewTo)),_o&&(s=re(e.doc,s),u=ie(e.doc,u));var c=s!=r.viewFrom||u!=r.viewTo||r.lastWrapHeight!=n.wrapperHeight||r.lastWrapWidth!=n.wrapperWidth;!function(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=Ze(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=Ze(e,t,r.viewFrom).concat(r.view):r.viewFrom<t&&(r.view=r.view.slice(Wt(e,t))),r.viewFrom=t,r.viewTo<n?r.view=r.view.concat(Ze(e,r.viewTo,n)):r.viewTo>n&&(r.view=r.view.slice(0,Wt(e,n)))),r.viewTo=n}(e,s,u),r.viewOffset=ae(S(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var d=kn(e);if(!c&&0==d&&!n.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var f=function(e){if(e.hasFocus())return null;var t=l();if(!t||!o(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=window.getSelection();r.anchorNode&&r.extend&&o(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}(e);return d>4&&(r.lineDiv.style.display="none"),function(e,n,r){function i(t){var n=t.nextSibling;return Hi&&Xi&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var o=e.display,l=e.options.lineNumbers,a=o.lineDiv,s=a.firstChild,u=o.view,c=o.viewFrom,d=0;d<u.length;d++){var f=u[d];if(f.hidden);else if(f.node&&f.node.parentNode==a){for(;s!=f.node;)s=i(s);var h=l&&null!=n&&n<=c&&f.lineNumber;f.changes&&(p(f.changes,"gutter")>-1&&(h=!1),Xe(e,f,c,r)),h&&(t(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(M(e.options,c)))),s=f.node.nextSibling}else{var m=rt(e,f,c,r);a.insertBefore(m,s)}c+=f.size}for(;s;)s=i(s)}(e,r.updateLineNumbers,n.dims),d>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,function(e){if(e&&e.activeElt&&e.activeElt!=l()&&(e.activeElt.focus(),e.anchorNode&&o(document.body,e.anchorNode)&&o(document.body,e.focusNode))){var t=window.getSelection(),n=document.createRange();n.setEnd(e.anchorNode,e.anchorOffset),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t.extend(e.focusNode,e.focusOffset)}}(f),t(r.cursorDiv),t(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,c&&(r.lastWrapHeight=n.wrapperHeight,r.lastWrapWidth=n.wrapperWidth,Dn(e,400)),r.updateLineNumbers=null,!0}function Mn(e,t){for(var n=t.viewport,r=!0;(r&&e.options.lineWrapping&&t.oldDisplayWidth!=pt(e)||(n&&null!=n.top&&(n={top:Math.min(e.doc.height+ut(e.display)-ft(e),n.top)}),t.visible=tn(e.display,e.doc,n),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&Rn(e,t);r=!1){Jt(e);var i=hn(e);qt(e),mn(e,i),An(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Pn(e,t){var n=new $o(e,t);if(Rn(e,n)){Jt(e),Mn(e,n);var r=hn(e);qt(e),mn(e,r),An(e,r),n.finish()}}function Nn(e){e.display.sizer.style.marginLeft=e.display.gutters.offsetWidth+"px"}function An(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+dt(e)+"px"}function Ln(e){var n=e.display.gutters,i=e.options.gutters;t(n);for(var o=0;o<i.length;++o){var l=i[o],a=n.appendChild(r("div",null,"CodeMirror-gutter "+l));"CodeMirror-linenumbers"==l&&(e.display.lineGutter=a,a.style.width=(e.display.lineNumWidth||1)+"px")}n.style.display=o?"":"none",Nn(e)}function Fn(e){var t=p(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function jn(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}}function Vn(e){var t=jn(e);return t.x*=Qo,t.y*=Qo,t}function zn(e,t){var n=jn(t),r=n.x,i=n.y,o=e.display,l=o.scroller,a=l.scrollHeight>l.clientHeight;if(r&&l.scrollWidth>l.clientWidth||i&&a){if(i&&Xi&&Hi)e:for(var s=t.target,u=o.view;s!=l;s=s.parentNode)for(var c=0;c<u.length;c++)if(u[c].node==s){e.display.currentWheelTarget=s;break e}if(r&&!Li&&!Ui&&null!=Qo)return i&&a&&dn(e,Math.max(0,l.scrollTop+i*Qo)),fn(e,Math.max(0,l.scrollLeft+r*Qo)),(!i||i&&a)&&be(t),void(o.wheelStartX=null);if(i&&null!=Qo){var d=i*Qo,p=e.doc.scrollTop,f=p+o.wrapper.clientHeight;d<0?p=Math.max(0,p+d-50):f=Math.min(e.doc.height,f+d+50),Pn(e,{top:p,bottom:f})}Zo<20&&(null==o.wheelStartX?(o.wheelStartX=l.scrollLeft,o.wheelStartY=l.scrollTop,o.wheelDX=r,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=l.scrollLeft-o.wheelStartX,t=l.scrollTop-o.wheelStartY,n=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,n&&(Qo=(Qo*Zo+n)/(Zo+1),++Zo)}},200)):(o.wheelDX+=r,o.wheelDY+=i))}}function Bn(e,t){var n=e[t];e.sort(function(e,t){return N(e.from(),t.from())}),t=p(e,n);for(var r=1;r<e.length;r++){var i=e[r],o=e[r-1];if(N(o.to(),i.from())>=0){var l=j(o.from(),i.from()),a=F(o.to(),i.to()),s=o.empty()?i.from()==i.head:o.from()==o.head;r<=t&&--t,e.splice(--r,2,new Xo(s?a:l,s?l:a))}}return new Yo(e,t)}function Hn(e,t){return new Yo([new Xo(e,t||e)],0)}function Wn(e){return e.text?P(e.from.line+e.text.length-1,m(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function qn(e,t){if(N(e,t.from)<0)return e;if(N(e,t.to)<=0)return Wn(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Wn(t).ch-t.to.ch),P(n,r)}function Un(e,t){for(var n=[],r=0;r<e.sel.ranges.length;r++){var i=e.sel.ranges[r];n.push(new Xo(qn(i.anchor,t),qn(i.head,t)))}return Bn(n,e.sel.primIndex)}function Gn(e,t,n){return e.line==t.line?P(n.line,e.ch-t.ch+n.ch):P(n.line+(e.line-t.line),e.ch)}function Kn(e){e.doc.mode=ke(e.options,e.doc.modeOption),$n(e)}function $n(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,Dn(e,100),e.state.modeGen++,e.curOp&&En(e)}function Zn(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Qn(e,t,n,r){function i(e){return n?n[e]:null}function o(e,n,i){!function(e,t,r,i){e.text=n,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),K(e),$(e,r);var o=i?i(e):1;o!=e.height&&k(e,o)}(e,0,i,r),Qe(e,"change",e,t)}function l(e,t){for(var n=[],o=e;o<t;++o)n.push(new Fo(u[o],i(o),r));return n}var a=t.from,s=t.to,u=t.text,c=S(e,a.line),d=S(e,s.line),p=m(u),f=i(u.length-1),h=s.line-a.line;if(t.full)e.insert(0,l(0,u.length)),e.remove(u.length,e.size-u.length);else if(Zn(e,t)){var g=l(0,u.length-1);o(d,d.text,f),h&&e.remove(a.line,h),g.length&&e.insert(a.line,g)}else if(c==d)if(1==u.length)o(c,c.text.slice(0,a.ch)+p+c.text.slice(s.ch),f);else{var y=l(1,u.length-1);y.push(new Fo(p+c.text.slice(s.ch),f,r)),o(c,c.text.slice(0,a.ch)+u[0],i(0)),e.insert(a.line+1,y)}else if(1==u.length)o(c,c.text.slice(0,a.ch)+u[0]+d.text.slice(s.ch),i(0)),e.remove(a.line+1,h);else{o(c,c.text.slice(0,a.ch)+u[0],i(0)),o(d,p+d.text.slice(s.ch),f);var v=l(1,u.length-1);h>1&&e.remove(a.line+1,h-1),e.insert(a.line+1,v)}Qe(e,"change",e,t)}function Yn(e,t,n){function r(e,i,o){if(e.linked)for(var l=0;l<e.linked.length;++l){var a=e.linked[l];if(a.doc!=i){var s=o&&a.sharedHist;n&&!s||(t(a.doc,s),r(a.doc,e,s))}}}r(e,null,!0)}function Xn(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,Bt(e),Kn(e),Jn(e),e.options.lineWrapping||ue(e),e.options.mode=t.modeOption,En(e)}function Jn(e){("rtl"==e.doc.direction?a:oo)(e.display.lineDiv,"CodeMirror-rtl")}function er(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function tr(e,t){var n={from:L(t.from),to:Wn(t),text:O(e,t.from,t.to)};return or(e,n,t.from.line,t.to.line+1),Yn(e,function(e){return or(e,n,t.from.line,t.to.line+1)},!0),n}function nr(e){for(;e.length&&m(e).ranges;)e.pop()}function rr(e,t,n,r){var i=e.history;i.undone.length=0;var o,l,a=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>a-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=function(e,t){return i.lastOp==r?(nr(e.done),m(e.done)):e.done.length&&!m(e.done).ranges?m(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),m(e.done)):void 0}(i)))l=m(o.changes),0==N(t.from,t.to)&&0==N(t.from,l.to)?l.to=Wn(t):o.changes.push(tr(e,t));else{var s=m(i.done);for(s&&s.ranges||ir(e.sel,i.done),o={changes:[tr(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=a,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,l||he(e,"historyAdded")}function ir(e,t){var n=m(t);n&&n.ranges&&n.equals(e)||t.push(e)}function or(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function lr(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t||(t=e.slice(0,n)):t&&t.push(e[n]);return t?t.length?t:null:e}function ar(e,t){var n=function(t,n){var r=n["spans_"+e.id];if(!r)return null;for(var i=[],o=0;o<n.text.length;++o)i.push(lr(r[o]));return i}(0,t),r=U(e,t);if(!n)return r;if(!r)return n;for(var i=0;i<n.length;++i){var o=n[i],l=r[i];if(o&&l)e:for(var a=0;a<l.length;++a){for(var s=l[a],u=0;u<o.length;++u)if(o[u].marker==s.marker)continue e;o.push(s)}else l&&(n[i]=l)}return n}function sr(e,t,n){for(var r=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)r.push(n?Yo.prototype.deepCopy.call(o):o);else{var l=o.changes,a=[];r.push({changes:a});for(var s=0;s<l.length;++s){var u=l[s],c=void 0;if(a.push({from:u.from,to:u.to,text:u.text}),t)for(var d in u)(c=d.match(/^spans_(\d+)$/))&&p(t,Number(c[1]))>-1&&(m(a)[d]=u[d],delete u[d])}}}return r}function ur(e,t,n,r){if(r){var i=e.anchor;if(n){var o=N(t,i)<0;o!=N(n,i)<0?(i=t,t=n):o!=N(t,n)<0&&(t=n)}return new Xo(i,t)}return new Xo(n||t,t)}function cr(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),mr(e,new Yo([ur(e.sel.primary(),t,n,i)],0),r)}function dr(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)r[o]=ur(e.sel.ranges[o],t[o],null,i);mr(e,Bn(r,e.sel.primIndex),n)}function pr(e,t,n,r){var i=e.sel.ranges.slice(0);i[t]=n,mr(e,Bn(i,e.sel.primIndex),r)}function fr(e,t,n,r){mr(e,Hn(t,n),r)}function hr(e,t,n){var r=e.history.done,i=m(r);i&&i.ranges?(r[r.length-1]=t,gr(e,t,n)):mr(e,t,n)}function mr(e,t,n){gr(e,t,n),function(t,n,r,i){var o=e.history,l=i&&i.origin;r==o.lastSelOp||l&&o.lastSelOrigin==l&&(o.lastModTime==o.lastSelTime&&o.lastOrigin==l||function(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,l,m(o.done),n))?o.done[o.done.length-1]=n:ir(n,o.done),o.lastSelTime=+new Date,o.lastSelOrigin=l,o.lastSelOp=r,i&&!1!==i.clearRedo&&nr(o.undone)}(0,e.sel,e.cm?e.cm.curOp.id:NaN,n)}function gr(e,t,n){(ye(e,"beforeSelectionChange")||e.cm&&ye(e.cm,"beforeSelectionChange"))&&(t=function(e,t,r){var i={ranges:t.ranges,update:function(t){this.ranges=[];for(var n=0;n<t.length;n++)this.ranges[n]=new Xo(z(e,t[n].anchor),z(e,t[n].head))},origin:n&&n.origin};return he(e,"beforeSelectionChange",e,i),e.cm&&he(e.cm,"beforeSelectionChange",e.cm,i),i.ranges!=t.ranges?Bn(i.ranges,i.ranges.length-1):t}(e,t)),yr(e,br(e,t,n&&n.bias||(N(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),n&&!1===n.scroll||!e.cm||an(e.cm)}function yr(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,ge(e.cm)),Qe(e,"cursorActivity",e))}function vr(e){yr(e,br(e,e.sel,null,!1))}function br(e,t,n,r){for(var i,o=0;o<t.ranges.length;o++){var l=t.ranges[o],a=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],s=wr(e,l.anchor,a&&a.anchor,n,r),u=wr(e,l.head,a&&a.head,n,r);(i||s!=l.anchor||u!=l.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new Xo(s,u))}return i?Bn(i,t.primIndex):t}function _r(e,t,n,r,i){var o=S(e,t.line);if(o.markedSpans)for(var l=0;l<o.markedSpans.length;++l){var a=o.markedSpans[l],s=a.marker;if((null==a.from||(s.inclusiveLeft?a.from<=t.ch:a.from<t.ch))&&(null==a.to||(s.inclusiveRight?a.to>=t.ch:a.to>t.ch))){if(i&&(he(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!s.atomic)continue;if(n){var u=s.find(r<0?1:-1),c=void 0;if((r<0?s.inclusiveRight:s.inclusiveLeft)&&(u=xr(e,u,-r,u&&u.line==t.line?o:null)),u&&u.line==t.line&&(c=N(u,n))&&(r<0?c<0:c>0))return _r(e,u,t,r,i)}var d=s.find(r<0?-1:1);return(r<0?s.inclusiveLeft:s.inclusiveRight)&&(d=xr(e,d,r,d.line==t.line?o:null)),d?_r(e,d,t,r,i):null}}return t}function wr(e,t,n,r,i){var o=r||1;return _r(e,t,n,o,i)||!i&&_r(e,t,n,o,!0)||_r(e,t,n,-o,i)||!i&&_r(e,t,n,-o,!0)||(e.cantEdit=!0,P(e.first,0))}function xr(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?z(e,P(t.line-1)):null:n>0&&t.ch==(r||S(e,t.line)).text.length?t.line<e.first+e.size-1?P(t.line+1,0):null:new P(t.line,t.ch+n)}function Cr(e){e.setSelection(P(e.firstLine(),0),P(e.lastLine()),fo)}function Er(e,t,n){var r={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return r.canceled=!0}};return n&&(r.update=function(t,n,i,o){t&&(r.from=z(e,t)),n&&(r.to=z(e,n)),i&&(r.text=i),void 0!==o&&(r.origin=o)}),he(e,"beforeChange",e,r),e.cm&&he(e.cm,"beforeChange",e.cm,r),r.canceled?null:{from:r.from,to:r.to,text:r.text,origin:r.origin}}function Sr(e,t,n){if(e.cm){if(!e.cm.curOp)return wn(e.cm,Sr)(e,t,n);if(e.cm.state.suppressEdits)return}if(!(ye(e,"beforeChange")||e.cm&&ye(e.cm,"beforeChange"))||(t=Er(e,t,!0))){var r=bo&&!n&&function(t,n,r){var i=null;if(e.iter(n.line,r.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||i&&-1!=p(i,n)||(i||(i=[])).push(n)}}),!i)return null;for(var o=[{from:n,to:r}],l=0;l<i.length;++l)for(var a=i[l],s=a.find(0),u=0;u<o.length;++u){var c=o[u];if(!(N(c.to,s.from)<0||N(c.from,s.to)>0)){var d=[u,1],f=N(c.from,s.from),h=N(c.to,s.to);(f<0||!a.inclusiveLeft&&!f)&&d.push({from:c.from,to:s.from}),(h>0||!a.inclusiveRight&&!h)&&d.push({from:s.to,to:c.to}),o.splice.apply(o,d),u+=d.length-3}}return o}(0,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)Or(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else Or(e,t)}}function Or(e,t){if(1!=t.text.length||""!=t.text[0]||0!=N(t.from,t.to)){var n=Un(e,t);rr(e,t,n,e.cm?e.cm.curOp.id:NaN),Dr(e,t,n,U(e,t));var r=[];Yn(e,function(e,n){n||-1!=p(r,e.history)||(Pr(e.history,t),r.push(e.history)),Dr(e,t,null,U(e,t))})}}function Tr(e,t,n){if(!e.cm||!e.cm.state.suppressEdits||n){for(var r,i=e.history,o=e.sel,l="undo"==t?i.done:i.undone,a="undo"==t?i.undone:i.done,s=0;s<l.length&&(r=l[s],n?!r.ranges||r.equals(e.sel):r.ranges);s++);if(s!=l.length){for(i.lastOrigin=i.lastSelOrigin=null;(r=l.pop()).ranges;){if(ir(r,a),n&&!r.equals(e.sel))return void mr(e,r,{clearRedo:!1});o=r}var u=[];ir(o,a),a.push({changes:u,generation:i.generation}),i.generation=r.generation||++i.maxGeneration;for(var c=ye(e,"beforeChange")||e.cm&&ye(e.cm,"beforeChange"),d=function(n){var i=r.changes[n];if(i.origin=t,c&&!Er(e,i,!1))return l.length=0,{};u.push(tr(e,i));var o=n?Un(e,i):m(l);Dr(e,i,o,ar(e,i)),!n&&e.cm&&e.cm.scrollIntoView({from:i.from,to:Wn(i)});var a=[];Yn(e,function(e,t){t||-1!=p(a,e.history)||(Pr(e.history,i),a.push(e.history)),Dr(e,i,null,ar(e,i))})},f=r.changes.length-1;f>=0;--f){var h=d(f);if(h)return h.v}}}}function kr(e,t){if(0!=t&&(e.first+=t,e.sel=new Yo(g(e.sel.ranges,function(e){return new Xo(P(e.anchor.line+t,e.anchor.ch),P(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){En(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;r<n.viewTo;r++)Sn(e.cm,r,"gutter")}}function Dr(e,t,n,r){if(e.cm&&!e.cm.curOp)return wn(e.cm,Dr)(e,t,n,r);if(t.to.line<e.first)kr(e,t.text.length-1-(t.to.line-t.from.line));else if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);kr(e,i),t={from:P(e.first,0),to:P(t.to.line+i,t.to.ch),text:[m(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:P(o,S(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=O(e,t.from,t.to),n||(n=Un(e,t)),e.cm?function(e,t,n){var r=e.doc,i=e.display,o=t.from,l=t.to,a=!1,s=o.line;e.options.lineWrapping||(s=D(ne(S(r,o.line))),r.iter(s,l.line+1,function(e){if(e==i.maxLine)return a=!0,!0})),r.sel.contains(t.from,t.to)>-1&&ge(e),Qn(r,t,n,zt(e)),e.options.lineWrapping||(r.iter(s,o.line+t.text.length,function(e){var t=se(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,a=!1)}),a&&(e.curOp.updateMaxLine=!0)),function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var n=e.first,r=t-1;r>n;r--){var i=S(e,r).stateAfter;if(i&&(!(i instanceof No)||r+i.lookAhead<t)){n=r+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,n)}}(r,o.line),Dn(e,400);var u=t.text.length-(l.line-o.line)-1;t.full?En(e):o.line!=l.line||1!=t.text.length||Zn(e.doc,t)?En(e,o.line,l.line+1,u):Sn(e,o.line,"text");var c=ye(e,"changes"),d=ye(e,"change");if(d||c){var p={from:o,to:l,text:t.text,removed:t.removed,origin:t.origin};d&&Qe(e,"change",e,p),c&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(p)}e.display.selForContextMenu=null}(e.cm,t,r):Qn(e,t,r),gr(e,n,fo)}}function Ir(e,t,n,r,i){if(r||(r=n),N(r,n)<0){var o;n=(o=[r,n])[0],r=o[1]}"string"==typeof t&&(t=e.splitLines(t)),Sr(e,{from:n,to:r,text:t,origin:i})}function Rr(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function Mr(e,t,n,r){for(var i=0;i<e.length;++i){var o=e[i],l=!0;if(o.ranges){o.copied||((o=e[i]=o.deepCopy()).copied=!0);for(var a=0;a<o.ranges.length;a++)Rr(o.ranges[a].anchor,t,n,r),Rr(o.ranges[a].head,t,n,r)}else{for(var s=0;s<o.changes.length;++s){var u=o.changes[s];if(n<u.from.line)u.from=P(u.from.line+r,u.from.ch),u.to=P(u.to.line+r,u.to.ch);else if(t<=u.to.line){l=!1;break}}l||(e.splice(0,i+1),i=0)}}}function Pr(e,t){var n=t.from.line,r=t.to.line,i=t.text.length-(r-n)-1;Mr(e.done,n,r,i),Mr(e.undone,n,r,i)}function Nr(e,t,n,r){var i=t,o=t;return"number"==typeof t?o=S(e,V(e,t)):i=D(t),null==i?null:(r(o,i)&&e.cm&&Sn(e.cm,i,n),o)}function Ar(e){this.lines=e,this.parent=null;for(var t=0,n=0;n<e.length;++n)e[n].parent=this,t+=e[n].height;this.height=t}function Lr(e){this.children=e;for(var t=0,n=0,r=0;r<e.length;++r){var i=e[r];t+=i.chunkSize(),n+=i.height,i.parent=this}this.size=t,this.height=n,this.parent=null}function Fr(e,t,n){ae(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&ln(e,n)}function jr(e,t,n,r,o){if(r&&r.shared)return function(e,t,n,r,i){(r=c(r)).shared=!1;var o=[jr(e,t,n,r,i)],l=o[0],a=r.widgetNode;return Yn(e,function(e){a&&(r.widgetNode=a.cloneNode(!0)),o.push(jr(e,z(e,t),z(e,n),r,i));for(var s=0;s<e.linked.length;++s)if(e.linked[s].isParent)return;l=m(o)}),new nl(o,l)}(e,t,n,r,o);if(e.cm&&!e.cm.curOp)return wn(e.cm,jr)(e,t,n,r,o);var l=new tl(e,o),a=N(t,n);if(r&&c(r,l,!1),a>0||0==a&&!1!==l.clearWhenEmpty)return l;if(l.replacedWith&&(l.collapsed=!0,l.widgetNode=i("span",[l.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||l.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(l.widgetNode.insertLeft=!0)),l.collapsed){if(te(e,t.line,t,n,l)||t.line!=n.line&&te(e,n.line,t,n,l))throw new Error("Inserting collapsed marker partially overlapping an existing one");_o=!0}l.addToHistory&&rr(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var s,u=t.line,d=e.cm;if(e.iter(u,n.line+1,function(e){d&&l.collapsed&&!d.options.lineWrapping&&ne(e)==d.display.maxLine&&(s=!0),l.collapsed&&u!=t.line&&k(e,0),function(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}(e,new H(l,u==t.line?t.ch:null,u==n.line?n.ch:null)),++u}),l.collapsed&&e.iter(t.line,n.line+1,function(t){oe(e,t)&&k(t,0)}),l.clearOnEnter&&Eo(l,"beforeCursorEnter",function(){return l.clear()}),l.readOnly&&(bo=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),l.collapsed&&(l.id=++el,l.atomic=!0),d){if(s&&(d.curOp.updateMaxLine=!0),l.collapsed)En(d,t.line,n.line+1);else if(l.className||l.title||l.startStyle||l.endStyle||l.css)for(var p=t.line;p<=n.line;p++)Sn(d,p,"text");l.atomic&&vr(d.doc),Qe(d,"markerAdded",d,l)}return l}function Vr(e){return e.findMarks(P(e.first,0),e.clipPos(P(e.lastLine())),function(e){return e.parent})}function zr(e){for(var t=function(t){var n=e[t],r=[n.primary.doc];Yn(n.primary.doc,function(e){return r.push(e)});for(var i=0;i<n.markers.length;i++){var o=n.markers[i];-1==p(r,o.doc)&&(o.parent=null,n.markers.splice(i--,1))}},n=0;n<e.length;n++)t(n)}function Br(e){var t=this;if(Hr(t),!me(t,e)&&!at(t.display,e)){be(e),zi&&(ol=+new Date);var n=Ht(t,e,!0),r=e.dataTransfer.files;if(n&&!t.isReadOnly())if(r&&r.length&&window.FileReader&&window.File)for(var i=r.length,o=Array(i),l=0,a=function(e,r){if(!t.options.allowDropFileTypes||-1!=p(t.options.allowDropFileTypes,e.type)){var a=new FileReader;a.onload=wn(t,function(){var e=a.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[r]=e,++l==i){var s={from:n=z(t.doc,n),to:n,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Sr(t.doc,s),hr(t.doc,Hn(n,Wn(s)))}}),a.readAsText(e)}},s=0;s<i;++s)a(r[s],s);else{if(t.state.draggingText&&t.doc.sel.contains(n)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var u=e.dataTransfer.getData("Text");if(u){var c;if(t.state.draggingText&&!t.state.draggingText.copy&&(c=t.listSelections()),gr(t.doc,Hn(n,n)),c)for(var d=0;d<c.length;++d)Ir(t.doc,"",c[d].anchor,c[d].head,"drag");t.replaceSelection(u,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Hr(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Wr(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),n=0;n<t.length;n++){var r=t[n].CodeMirror;r&&e(r)}}function qr(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function Ur(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var n,r,i,o,l=0;l<t.length-1;l++){var a=t[l];if(/^(cmd|meta|m)$/i.test(a))o=!0;else if(/^a(lt)?$/i.test(a))n=!0;else if(/^(c|ctrl|control)$/i.test(a))r=!0;else{if(!/^s(hift)?$/i.test(a))throw new Error("Unrecognized modifier name: "+a);i=!0}}return n&&(e="Alt-"+e),r&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function Gr(e){var t={};for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];if(/^(name|fallthrough|(de|at)tach)$/.test(n))continue;if("..."==r){delete e[n];continue}for(var i=g(n.split(" "),Ur),o=0;o<i.length;o++){var l=void 0,a=void 0;o==i.length-1?(a=i.join(" "),l=r):(a=i.slice(0,o+1).join(" "),l="...");var s=t[a];if(s){if(s!=l)throw new Error("Inconsistent bindings for "+a)}else t[a]=l}delete e[n]}for(var u in t)e[u]=t[u];return e}function Kr(e,t,n,r){var i=(t=Yr(t)).call?t.call(e,r):t[e];if(!1===i)return"nothing";if("..."===i)return"multi";if(null!=i&&n(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return Kr(e,t.fallthrough,n,r);for(var o=0;o<t.fallthrough.length;o++){var l=Kr(e,t.fallthrough[o],n,r);if(l)return l}}}function $r(e){var t="string"==typeof e?e:al[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function Zr(e,t,n){var r=e;return t.altKey&&"Alt"!=r&&(e="Alt-"+e),(ro?t.metaKey:t.ctrlKey)&&"Ctrl"!=r&&(e="Ctrl-"+e),(ro?t.ctrlKey:t.metaKey)&&"Cmd"!=r&&(e="Cmd-"+e),!n&&t.shiftKey&&"Shift"!=r&&(e="Shift-"+e),e}function Qr(e,t){if(Ui&&34==e.keyCode&&e.char)return!1;var n=al[e.keyCode];return null!=n&&!e.altGraphKey&&Zr(n,e,t)}function Yr(e){return"string"==typeof e?dl[e]:e}function Xr(e,t){for(var n=e.doc.sel.ranges,r=[],i=0;i<n.length;i++){for(var o=t(n[i]);r.length&&N(o.from,m(r).to)<=0;){var l=r.pop();if(N(l.from,o.from)<0){o.from=l.from;break}}r.push(o)}_n(e,function(){for(var t=r.length-1;t>=0;t--)Ir(e.doc,"",r[t].from,r[t].to,"+delete");an(e)})}function Jr(e,t,n){var r=C(e.text,t+n,n);return r<0||r>e.text.length?null:r}function ei(e,t,n){var r=Jr(e,t.ch,n);return null==r?null:new P(t.line,r,n<0?"after":"before")}function ti(e,t,n,r,i){if(e){var o=de(n,t.doc.direction);if(o){var l,a=i<0?m(o):o[0],s=i<0==(1==a.level)?"after":"before";if(a.level>0||"rtl"==t.doc.direction){var u=yt(t,n),c=vt(t,u,l=i<0?n.text.length-1:0).top;l=E(function(e){return vt(t,u,e).top==c},i<0==(1==a.level)?a.from:a.to-1,l),"before"==s&&(l=Jr(n,l,1))}else l=i<0?a.to:a.from;return new P(r,l,s)}}return new P(r,i<0?n.text.length:0,i<0?"before":"after")}function ni(e,t){var n=S(e.doc,t),r=ne(n);return r!=n&&(t=D(r)),ti(!0,e,r,t,1)}function ri(e,t){var n=ni(e,t.line),r=S(e.doc,n.line),i=de(r,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,r.text.search(/\S/));return P(n.line,t.line==n.line&&t.ch<=o&&t.ch?0:o,n.sticky)}return n}function ii(e,t,n){if("string"==typeof t&&!(t=pl[t]))return!1;e.display.input.ensurePolled();var r=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),i=t(e)!=po}finally{e.display.shift=r,e.state.suppressEdits=!1}return i}function oi(e,t,n,r){var i=e.state.keySeq;if(i){if($r(t))return"handled";if(/\'$/.test(t)?e.state.keySeq=null:fl.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),li(e,i+" "+t,n,r))return!0}return li(e,t,n,r)}function li(e,t,n,r){var i=function(e,t,n){for(var r=0;r<e.state.keyMaps.length;r++){var i=Kr(t,e.state.keyMaps[r],n,e);if(i)return i}return e.options.extraKeys&&Kr(t,e.options.extraKeys,n,e)||Kr(t,e.options.keyMap,n,e)}(e,t,r);return"multi"==i&&(e.state.keySeq=t),"handled"==i&&Qe(e,"keyHandled",e,t,n),"handled"!=i&&"multi"!=i||(be(n),$t(e)),!!i}function ai(e,t){var n=Qr(t,!0);return!!n&&(t.shiftKey&&!e.state.keySeq?oi(e,"Shift-"+n,t,function(t){return ii(e,t,!0)})||oi(e,n,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return ii(e,t)}):oi(e,n,t,function(t){return ii(e,t)}))}function si(e){if(this.curOp.focus=l(),!me(this,e)){zi&&Bi<11&&27==e.keyCode&&(e.returnValue=!1);var t=e.keyCode;this.display.shift=16==t||e.shiftKey;var n=ai(this,e);Ui&&(hl=n?t:null,!n&&88==t&&!ko&&(Xi?e.metaKey:e.ctrlKey)&&this.replaceSelection("",null,"cut")),18!=t||/\bCodeMirror-crosshair\b/.test(this.display.lineDiv.className)||function(e){function t(e){18!=e.keyCode&&e.altKey||(oo(n,"CodeMirror-crosshair"),fe(document,"keyup",t),fe(document,"mouseover",t))}var n=e.display.lineDiv;a(n,"CodeMirror-crosshair"),Eo(document,"keyup",t),Eo(document,"mouseover",t)}(this)}}function ui(e){16==e.keyCode&&(this.doc.sel.shift=!1),me(this,e)}function ci(e){if(!(at(this.display,e)||me(this,e)||e.ctrlKey&&!e.altKey||Xi&&e.metaKey)){var t=e.keyCode,n=e.charCode;if(Ui&&t==hl)return hl=null,void be(e);if(!Ui||e.which&&!(e.which<10)||!ai(this,e)){var r=String.fromCharCode(null==n?t:n);"\b"!=r&&(function(t,n,i){return oi(t,"'"+r+"'",e,function(e){return ii(t,e,!0)})}(this)||this.display.input.onKeyPress(e))}}}function di(e){var t=this.display;if(!(me(this,e)||t.activeTouch&&t.input.supportsTouch()))if(t.input.ensurePolled(),t.shift=e.shiftKey,at(t,e))Hi||(t.scroller.draggable=!1,setTimeout(function(){return t.scroller.draggable=!0},100));else if(!hi(this,e)){var n=Ht(this,e),r=Ee(e),i=n?function(e,t){var n=+new Date;return yl&&yl.compare(n,e,t)?(gl=yl=null,"triple"):gl&&gl.compare(n,e,t)?(yl=new ml(n,e,t),gl=null,"double"):(gl=new ml(n,e,t),yl=null,"single")}(n,r):"single";window.focus(),1==r&&this.state.selectingText&&this.state.selectingText(e),n&&function(e,t,n,o,l){var a="Click";return"double"==i?a="Double"+a:"triple"==i&&(a="Triple"+a),a=(1==r?"Left":2==r?"Middle":"Right")+a,oi(e,Zr(a,l),l,function(t){if("string"==typeof t&&(t=pl[t]),!t)return!1;var r=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r=t(e,n)!=po}finally{e.state.suppressEdits=!1}return r})}(this,0,n,0,e)||(1==r?n?function(e,t,n,r){zi?setTimeout(u(Zt,e),0):e.curOp.focus=l();var i,o=function(e,t,n){var r=e.getOption("configureMouse"),i=r?r(e,t,n):{};if(null==i.unit){i.unit=(Ji?n.shiftKey&&n.metaKey:n.altKey)?"rectangle":"single"==t?"char":"double"==t?"word":"line"}return(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||n.shiftKey),null==i.addNew&&(i.addNew=Xi?n.metaKey:n.ctrlKey),null==i.moveOnDrag&&(i.moveOnDrag=!(Xi?n.altKey:n.ctrlKey)),i}(e,n,r),a=e.doc.sel;e.options.dragDrop&&So&&!e.isReadOnly()&&"single"==n&&(i=a.contains(t))>-1&&(N((i=a.ranges[i]).from(),t)<0||t.xRel>0)&&(N(i.to(),t)>0||t.xRel<0)?function(e,t,n,r){var i=e.display,o=!1,l=wn(e,function(t){Hi&&(i.scroller.draggable=!1),e.state.draggingText=!1,fe(document,"mouseup",l),fe(document,"mousemove",a),fe(i.scroller,"dragstart",s),fe(i.scroller,"drop",l),o||(be(t),r.addNew||cr(e.doc,n,null,null,r.extend),Hi||zi&&9==Bi?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())}),a=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},s=function(){return o=!0};Hi&&(i.scroller.draggable=!0),e.state.draggingText=l,l.copy=!r.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),Eo(document,"mouseup",l),Eo(document,"mousemove",a),Eo(i.scroller,"dragstart",s),Eo(i.scroller,"drop",l),Qt(e),setTimeout(function(){return i.input.focus()},20)}(e,r,t,o):function(e,t,n,r){function i(t){var o=++v,h=Ht(e,t,!0,"rectangle"==r.unit);if(h)if(0!=N(h,g)){e.curOp.focus=l(),function(t){if(0!=N(g,t))if(g=t,"rectangle"==r.unit){for(var i=[],o=e.options.tabSize,l=d(S(s,n.line).text,n.ch,o),a=d(S(s,t.line).text,t.ch,o),h=Math.min(l,a),m=Math.max(l,a),y=Math.min(n.line,t.line),v=Math.min(e.lastLine(),Math.max(n.line,t.line));y<=v;y++){var b=S(s,y).text,_=f(b,h,o);h==m?i.push(new Xo(P(y,_),P(y,_))):b.length>_&&i.push(new Xo(P(y,_),P(y,f(b,m,o))))}i.length||i.push(new Xo(n,n)),mr(s,Bn(p.ranges.slice(0,c).concat(i),c),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var w,x=u,C=pi(e,t,r.unit),E=x.anchor;N(C.anchor,E)>0?(w=C.head,E=j(x.from(),C.anchor)):(w=C.anchor,E=F(x.to(),C.head));var O=p.ranges.slice(0);O[c]=function(e,t){var n=t.anchor,r=t.head,i=S(e.doc,n.line);if(0==N(n,r)&&n.sticky==r.sticky)return t;var o=de(i);if(!o)return t;var l=ce(o,n.ch,n.sticky),a=o[l];if(a.from!=n.ch&&a.to!=n.ch)return t;var s=l+(a.from==n.ch==(1!=a.level)?0:1);if(0==s||s==o.length)return t;var u;if(r.line!=n.line)u=(r.line-n.line)*("ltr"==e.doc.direction?1:-1)>0;else{var c=ce(o,r.ch,r.sticky),d=c-l||(r.ch-n.ch)*(1==a.level?-1:1);u=c==s-1||c==s?d<0:d>0}var p=o[s+(u?-1:0)],f=u==(1==p.level),h=f?p.from:p.to,m=f?"after":"before";return n.ch==h&&n.sticky==m?t:new Xo(new P(n.line,h,m),r)}(e,new Xo(z(s,E),w)),mr(s,Bn(O,c),ho)}}(h);var m=tn(a,s);(h.line>=m.to||h.line<m.from)&&setTimeout(wn(e,function(){v==o&&i(t)}),150)}else{var b=t.clientY<y.top?-20:t.clientY>y.bottom?20:0;b&&setTimeout(wn(e,function(){v==o&&(a.scroller.scrollTop+=b,i(t))}),50)}}function o(t){e.state.selectingText=!1,v=1/0,be(t),a.input.focus(),fe(document,"mousemove",b),fe(document,"mouseup",_),s.history.lastSelOrigin=null}var a=e.display,s=e.doc;be(t);var u,c,p=s.sel,h=p.ranges;if(r.addNew&&!r.extend?(c=s.sel.contains(n),u=c>-1?h[c]:new Xo(n,n)):(u=s.sel.primary(),c=s.sel.primIndex),"rectangle"==r.unit)r.addNew||(u=new Xo(n,n)),n=Ht(e,t,!0,!0),c=-1;else{var m=pi(e,n,r.unit);u=r.extend?ur(u,m.anchor,m.head,r.extend):m}r.addNew?-1==c?(c=h.length,mr(s,Bn(h.concat([u]),c),{scroll:!1,origin:"*mouse"})):h.length>1&&h[c].empty()&&"char"==r.unit&&!r.extend?(mr(s,Bn(h.slice(0,c).concat(h.slice(c+1)),0),{scroll:!1,origin:"*mouse"}),p=s.sel):pr(s,c,u,ho):(c=0,mr(s,new Yo([u],0),ho),p=s.sel);var g=n,y=a.wrapper.getBoundingClientRect(),v=0,b=wn(e,function(e){Ee(e)?i(e):o(e)}),_=wn(e,o);e.state.selectingText=_,Eo(document,"mousemove",b),Eo(document,"mouseup",_)}(e,r,t,o)}(this,n,i,e):Ce(e)==t.scroller&&be(e):2==r?(n&&cr(this.doc,n),setTimeout(function(){return t.input.focus()},20)):3==r&&(io?mi(this,e):Qt(this)))}}function pi(e,t,n){if("char"==n)return new Xo(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new Xo(P(t.line,0),z(e.doc,P(t.line+1,0)));var r=n(e,t);return new Xo(r.from,r.to)}function fi(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&be(t);var l=e.display,a=l.lineDiv.getBoundingClientRect();if(o>a.bottom||!ye(e,n))return we(t);o-=a.top-l.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var u=l.gutters.childNodes[s];if(u&&u.getBoundingClientRect().right>=i)return he(e,n,e,I(e.doc,o),e.options.gutters[s],t),we(t)}}function hi(e,t){return fi(e,t,"gutterClick",!0)}function mi(e,t){at(e.display,t)||function(e,t){return!!ye(e,"gutterContextMenu")&&fi(e,t,"gutterContextMenu",!1)}(e,t)||me(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function gi(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),xt(e)}function yi(e){Ln(e),En(e),nn(e)}function vi(e,t,n){if(!t!=!(n&&n!=vl)){var r=e.display.dragFunctions,i=t?Eo:fe;i(e.display.scroller,"dragstart",r.start),i(e.display.scroller,"dragenter",r.enter),i(e.display.scroller,"dragover",r.over),i(e.display.scroller,"dragleave",r.leave),i(e.display.scroller,"drop",r.drop)}}function bi(e){e.options.lineWrapping?(a(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(oo(e.display.wrapper,"CodeMirror-wrap"),ue(e)),Bt(e),En(e),xt(e),setTimeout(function(){return mn(e)},100)}function _i(e,t){var o=this;if(!(this instanceof _i))return new _i(e,t);this.options=t=t?c(t):{},c(bl,t,!1),Fn(t);var l=t.value;"string"==typeof l&&(l=new il(l,t.mode,null,t.lineSeparator,t.direction)),this.doc=l;var a=new _i.inputStyles[t.inputStyle](this),s=this.display=new function(e,t,n){this.input=n,this.scrollbarFiller=r("div",null,"CodeMirror-scrollbar-filler"),this.scrollbarFiller.setAttribute("cm-not-content","true"),this.gutterFiller=r("div",null,"CodeMirror-gutter-filler"),this.gutterFiller.setAttribute("cm-not-content","true"),this.lineDiv=i("div",null,"CodeMirror-code"),this.selectionDiv=r("div",null,null,"position: relative; z-index: 1"),this.cursorDiv=r("div",null,"CodeMirror-cursors"),this.measure=r("div",null,"CodeMirror-measure"),this.lineMeasure=r("div",null,"CodeMirror-measure"),this.lineSpace=i("div",[this.measure,this.lineMeasure,this.selectionDiv,this.cursorDiv,this.lineDiv],null,"position: relative; outline: none");var o=i("div",[this.lineSpace],"CodeMirror-lines");this.mover=r("div",[o],null,"position: relative"),this.sizer=r("div",[this.mover],"CodeMirror-sizer"),this.sizerWidth=null,this.heightForcer=r("div",null,null,"position: absolute; height: "+co+"px; width: 1px;"),this.gutters=r("div",null,"CodeMirror-gutters"),this.lineGutter=null,this.scroller=r("div",[this.sizer,this.heightForcer,this.gutters],"CodeMirror-scroll"),this.scroller.setAttribute("tabIndex","-1"),this.wrapper=r("div",[this.scrollbarFiller,this.gutterFiller,this.scroller],"CodeMirror"),zi&&Bi<8&&(this.gutters.style.zIndex=-1,this.scroller.style.paddingRight=0),Hi||Li&&Yi||(this.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(this.wrapper):e(this.wrapper)),this.viewFrom=this.viewTo=t.first,this.reportedViewFrom=this.reportedViewTo=t.first,this.view=[],this.renderedView=null,this.externalMeasured=null,this.viewOffset=0,this.lastWrapHeight=this.lastWrapWidth=0,this.updateLineNumbers=null,this.nativeBarWidth=this.barHeight=this.barWidth=0,this.scrollbarsClipped=!1,this.lineNumWidth=this.lineNumInnerWidth=this.lineNumChars=null,this.alignWidgets=!1,this.cachedCharWidth=this.cachedTextHeight=this.cachedPaddingH=null,this.maxLine=null,this.maxLineLength=0,this.maxLineChanged=!1,this.wheelDX=this.wheelDY=this.wheelStartX=this.wheelStartY=null,this.shift=!1,this.selForContextMenu=null,this.activeTouch=null,n.init(this)}(e,l,a);s.wrapper.CodeMirror=this,Ln(this),gi(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),yn(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new ao,keySeq:null,specialChars:null},t.autofocus&&!Yi&&s.input.focus(),zi&&Bi<11&&setTimeout(function(){return o.display.input.reset(!0)},20),function(e){function t(){o.activeTouch&&(l=setTimeout(function(){return o.activeTouch=null},1e3),(a=o.activeTouch).end=+new Date)}function i(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}var o=e.display;Eo(o.scroller,"mousedown",wn(e,di)),Eo(o.scroller,"dblclick",zi&&Bi<11?wn(e,function(t){if(!me(e,t)){var n=Ht(e,t);if(n&&!hi(e,t)&&!at(e.display,t)){be(t);var r=e.findWordAt(n);cr(e.doc,r.anchor,r.head)}}}):function(t){return me(e,t)||be(t)}),io||Eo(o.scroller,"contextmenu",function(t){return mi(e,t)});var l,a={end:0};Eo(o.scroller,"touchstart",function(t){if(!me(e,t)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(t)&&!hi(e,t)){o.input.ensurePolled(),clearTimeout(l);var n=+new Date;o.activeTouch={start:n,moved:!1,prev:n-a.end<=300?a:null},1==t.touches.length&&(o.activeTouch.left=t.touches[0].pageX,o.activeTouch.top=t.touches[0].pageY)}}),Eo(o.scroller,"touchmove",function(){o.activeTouch&&(o.activeTouch.moved=!0)}),Eo(o.scroller,"touchend",function(n){var r=o.activeTouch;if(r&&!at(o,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var l,a=e.coordsChar(o.activeTouch,"page");l=!r.prev||i(r,r.prev)?new Xo(a,a):!r.prev.prev||i(r,r.prev.prev)?e.findWordAt(a):new Xo(P(a.line,0),z(e.doc,P(a.line+1,0))),e.setSelection(l.anchor,l.head),e.focus(),be(n)}t()}),Eo(o.scroller,"touchcancel",t),Eo(o.scroller,"scroll",function(){o.scroller.clientHeight&&(dn(e,o.scroller.scrollTop),fn(e,o.scroller.scrollLeft,!0),he(e,"scroll",e))}),Eo(o.scroller,"mousewheel",function(t){return zn(e,t)}),Eo(o.scroller,"DOMMouseScroll",function(t){return zn(e,t)}),Eo(o.wrapper,"scroll",function(){return o.wrapper.scrollTop=o.wrapper.scrollLeft=0}),o.dragFunctions={enter:function(t){me(e,t)||xe(t)},over:function(t){me(e,t)||(function(e,i){var o=Ht(e,t);if(o){var l=document.createDocumentFragment();Gt(e,o,l),e.display.dragCursor||(e.display.dragCursor=r("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),n(e.display.dragCursor,l)}}(e),xe(t))},start:function(t){return function(e,t){if(zi&&(!e.state.draggingText||+new Date-ol<100))xe(t);else if(!me(e,t)&&!at(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!Gi)){var n=r("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",Ui&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),Ui&&n.parentNode.removeChild(n)}}(e,t)},drop:wn(e,Br),leave:function(t){me(e,t)||Hr(e)}};var s=o.input.getField();Eo(s,"keyup",function(t){return ui.call(e,t)}),Eo(s,"keydown",wn(e,si)),Eo(s,"keypress",wn(e,ci)),Eo(s,"focus",function(t){return Yt(e,t)}),Eo(s,"blur",function(t){return Xt(e,t)})}(this),ll||(function(){var e;Eo(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Wr(qr)},100))}),Eo(window,"blur",function(){return Wr(Xt)})}(),ll=!0),vn(this),this.curOp.forceUpdate=!0,Xn(this,l),t.autofocus&&!Yi||this.hasFocus()?setTimeout(u(Yt,this),20):Xt(this);for(var d in _l)_l.hasOwnProperty(d)&&_l[d](o,t[d],vl);rn(this),t.finishInit&&t.finishInit(this);for(var p=0;p<wl.length;++p)wl[p](o);bn(this),Hi&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(s.lineDiv).textRendering&&(s.lineDiv.style.textRendering="auto")}function wi(e,t,n,r){var i,o=e.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=Ae(e,t).state:n="prev");var l=e.options.tabSize,a=S(o,t),s=d(a.text,null,l);a.stateAfter&&(a.stateAfter=null);var u,c=a.text.match(/^\s*/)[0];if(r||/\S/.test(a.text)){if("smart"==n&&((u=o.mode.indent(i,a.text.slice(c.length),a.text))==po||u>150)){if(!r)return;n="prev"}}else u=0,n="not";"prev"==n?u=t>o.first?d(S(o,t-1).text,null,l):0:"add"==n?u=s+e.options.indentUnit:"subtract"==n?u=s-e.options.indentUnit:"number"==typeof n&&(u=s+n),u=Math.max(0,u);var p="",f=0;if(e.options.indentWithTabs)for(var m=Math.floor(u/l);m;--m)f+=l,p+="\t";if(f<u&&(p+=h(u-f)),p!=c)return Ir(o,p,P(t,0),P(t,c.length),"+input"),a.stateAfter=null,!0;for(var g=0;g<o.sel.ranges.length;g++){var y=o.sel.ranges[g];if(y.head.line==t&&y.head.ch<c.length){var v=P(t,c.length);pr(o,g,new Xo(v,v));break}}}function xi(e){xl=e}function Ci(e,t,n,r,i){var o=e.doc;e.display.shift=!1,r||(r=o.sel);var l=e.state.pasteIncoming||"paste"==i,a=Oo(t),s=null;if(l&&r.ranges.length>1)if(xl&&xl.text.join("\n")==t){if(r.ranges.length%xl.text.length==0){s=[];for(var u=0;u<xl.text.length;u++)s.push(o.splitLines(xl.text[u]))}}else a.length==r.ranges.length&&e.options.pasteLinesPerSelection&&(s=g(a,function(e){return[e]}));for(var c,d=r.ranges.length-1;d>=0;d--){var p=r.ranges[d],f=p.from(),h=p.to();p.empty()&&(n&&n>0?f=P(f.line,f.ch-n):e.state.overwrite&&!l?h=P(h.line,Math.min(S(o,h.line).text.length,h.ch+m(a).length)):xl&&xl.lineWise&&xl.text.join("\n")==t&&(f=h=P(f.line,0))),c=e.curOp.updateInput;var y={from:f,to:h,text:s?s[d%s.length]:a,origin:i||(l?"paste":e.state.cutIncoming?"cut":"+input")};Sr(e.doc,y),Qe(e,"inputRead",e,y)}t&&!l&&Si(e,t),an(e),e.curOp.updateInput=c,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Ei(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||_n(t,function(){return Ci(t,n,0,null,"paste")}),!0}function Si(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var a=0;a<o.electricChars.length;a++)if(t.indexOf(o.electricChars.charAt(a))>-1){l=wi(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(S(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=wi(e,i.head.line,"smart"));l&&Qe(e,"electricInput",e,i.head.line)}}}function Oi(e){for(var t=[],n=[],r=0;r<e.doc.sel.ranges.length;r++){var i=e.doc.sel.ranges[r].head.line,o={anchor:P(i,0),head:P(i+1,0)};n.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:n}}function Ti(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function ki(){var e=r("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=r("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return Hi?e.style.width="1000px":e.setAttribute("wrap","off"),Zi&&(e.style.border="1px solid black"),Ti(e),t}function Di(e,t,n,r,i){function o(r){var o;if(null==(o=i?function(e,t,n,r){var i=de(t,e.doc.direction);if(!i)return ei(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=ce(i,n.ch,n.sticky),l=i[o];if("ltr"==e.doc.direction&&l.level%2==0&&(r>0?l.to>n.ch:l.from<n.ch))return ei(t,n,r);var a,s=function(e,n){return Jr(t,e instanceof P?e.ch:e,n)},u=function(n){return e.options.lineWrapping?(a=a||yt(e,t),Nt(e,t,a,n)):{begin:0,end:t.text.length}},c=u("before"==n.sticky?s(n,-1):n.ch);if("rtl"==e.doc.direction||1==l.level){var d=1==l.level==r<0,p=s(n,d?1:-1);if(null!=p&&(d?p<=l.to&&p<=c.end:p>=l.from&&p>=c.begin))return new P(n.line,p,d?"before":"after")}var f=function(e,t,r){for(var o=function(e,t){return t?new P(n.line,s(e,1),"before"):new P(n.line,e,"after")};e>=0&&e<i.length;e+=t){var l=i[e],a=t>0==(1!=l.level),u=a?r.begin:s(r.end,-1);if(l.from<=u&&u<l.to)return o(u,a);if(u=a?l.from:s(l.to,-1),r.begin<=u&&u<r.end)return o(u,a)}},h=f(o+r,r,c);if(h)return h;var m=r>0?c.end:s(c.begin,-1);return null==m||r>0&&m==t.text.length||!(h=f(r>0?0:i.length-1,r,u(m)))?null:h}(e.cm,s,t,n):ei(s,t,n))){if(r||!function(){var r=t.line+n;return!(r<e.first||r>=e.first+e.size)&&(t=new P(r,t.ch,t.sticky),s=S(e,r))}())return!1;t=ti(i,e.cm,s,t.line,n)}else t=o;return!0}var l=t,a=n,s=S(e,t.line);if("char"==r)o();else if("column"==r)o(!0);else if("word"==r||"group"==r)for(var u=null,c="group"==r,d=e.cm&&e.cm.getHelper(t,"wordChars"),p=!0;!(n<0)||o(!p);p=!1){var f=s.text.charAt(t.ch)||"\n",h=_(f,d)?"w":c&&"\n"==f?"n":!c||/\s/.test(f)?null:"p";if(!c||p||h||(h="s"),u&&u!=h){n<0&&(n=1,o(),t.sticky="after");break}if(h&&(u=h),n>0&&!o(!p))break}var m=wr(e,t,l,a,!0);return A(l,m)&&(m.hitSide=!0),m}function Ii(e,t,n,r){var i,o=e.doc,l=t.left;if("page"==r){var a=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),s=Math.max(a-.5*Lt(e.display),3);i=(n>0?t.bottom:t.top)+n*s}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(var u;(u=Mt(e,l,i)).outside;){if(n<0?i<=0:i>=o.height){u.hitSide=!0;break}i+=5*n}return u}function Ri(e,t){var n=gt(e,t.line);if(!n||n.hidden)return null;var r=S(e.doc,t.line),i=ht(n,r,t.line),o=de(r,e.doc.direction),l="left";o&&(l=ce(o,t.ch)%2?"right":"left");var a=bt(i.map,t.ch,l);return a.offset="right"==a.collapse?a.end:a.start,a}function Mi(e,t){return t&&(e.bad=!0),e}function Pi(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return Mi(e.clipPos(P(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var l=e.display.view[i];if(l.node==r)return function(e,t,n){function r(t,n,r){for(var i=-1;i<(d?d.length:0);i++)for(var o=i<0?c.map:d[i],l=0;l<o.length;l+=3){var a=o[l+2];if(a==t||a==n){var s=D(i<0?e.line:e.rest[i]),u=o[l]+r;return(r<0||a!=t)&&(u=o[l+(r?1:0)]),P(s,u)}}}var i=e.text.firstChild,l=!1;if(!t||!o(i,t))return Mi(P(D(e.line),0),!0);if(t==i&&(l=!0,t=i.childNodes[n],n=0,!t)){var a=e.rest?m(e.rest):e.line;return Mi(P(D(a),a.text.length),l)}var s=3==t.nodeType?t:null,u=t;for(s||1!=t.childNodes.length||3!=t.firstChild.nodeType||(s=t.firstChild,n&&(n=s.nodeValue.length));u.parentNode!=i;)u=u.parentNode;var c=e.measure,d=c.maps,p=r(s,u,n);if(p)return Mi(p,l);for(var f=u.nextSibling,h=s?s.nodeValue.length-n:0;f;f=f.nextSibling){if(p=r(f,f.firstChild,0))return Mi(P(p.line,p.ch-h),l);h+=f.textContent.length}for(var g=u.previousSibling,y=n;g;g=g.previousSibling){if(p=r(g,g.firstChild,-1))return Mi(P(p.line,p.ch+y),l);y+=g.textContent.length}}(l,t,n)}}var Ni=navigator.userAgent,Ai=navigator.platform,Li=/gecko\/\d/i.test(Ni),Fi=/MSIE \d/.test(Ni),ji=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Ni),Vi=/Edge\/(\d+)/.exec(Ni),zi=Fi||ji||Vi,Bi=zi&&(Fi?document.documentMode||6:+(Vi||ji)[1]),Hi=!Vi&&/WebKit\//.test(Ni),Wi=Hi&&/Qt\/\d+\.\d+/.test(Ni),qi=!Vi&&/Chrome\//.test(Ni),Ui=/Opera\//.test(Ni),Gi=/Apple Computer/.test(navigator.vendor),Ki=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(Ni),$i=/PhantomJS/.test(Ni),Zi=!Vi&&/AppleWebKit/.test(Ni)&&/Mobile\/\w+/.test(Ni),Qi=/Android/.test(Ni),Yi=Zi||Qi||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(Ni),Xi=Zi||/Mac/.test(Ai),Ji=/\bCrOS\b/.test(Ni),eo=/win/i.test(Ai),to=Ui&&Ni.match(/Version\/(\d*\.\d*)/);to&&(to=Number(to[1])),to&&to>=15&&(Ui=!1,Hi=!0);var no,ro=Xi&&(Wi||Ui&&(null==to||to<12.11)),io=Li||zi&&Bi>=9,oo=function(t,n){var r=t.className,i=e(n).exec(r);if(i){var o=r.slice(i.index+i[0].length);t.className=r.slice(0,i.index)+(o?i[1]+o:"")}};no=document.createRange?function(e,t,n,r){var i=document.createRange();return i.setEnd(r||e,n),i.setStart(e,t),i}:function(e,t,n){var r=document.body.createTextRange();try{r.moveToElementText(e.parentNode)}catch(e){return r}return r.collapse(!0),r.moveEnd("character",n),r.moveStart("character",t),r};var lo=function(e){e.select()};Zi?lo=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:zi&&(lo=function(e){try{e.select()}catch(e){}});var ao=function(){this.id=null};ao.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var so,uo,co=30,po={toString:function(){return"CodeMirror.Pass"}},fo={scroll:!1},ho={origin:"*mouse"},mo={origin:"+move"},go=[""],yo=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,vo=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,bo=!1,_o=!1,wo=null,xo=function(){function e(e){return e<=247?n.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?r.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,n){this.level=e,this.from=t,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,l=/[LRr]/,a=/[Lb1n]/,s=/[1n]/;return function(n,r){var u="ltr"==r?"L":"R";if(0==n.length||"ltr"==r&&!i.test(n))return!1;for(var c=n.length,d=[],p=0;p<c;++p)d.push(e(n.charCodeAt(p)));for(var f=0,h=u;f<c;++f){var g=d[f];"m"==g?d[f]=h:h=g}for(var y=0,v=u;y<c;++y){var b=d[y];"1"==b&&"r"==v?d[y]="n":l.test(b)&&(v=b,"r"==b&&(d[y]="R"))}for(var _=1,w=d[0];_<c-1;++_){var x=d[_];"+"==x&&"1"==w&&"1"==d[_+1]?d[_]="1":","!=x||w!=d[_+1]||"1"!=w&&"n"!=w||(d[_]=w),w=x}for(var C=0;C<c;++C){var E=d[C];if(","==E)d[C]="N";else if("%"==E){var S=void 0;for(S=C+1;S<c&&"%"==d[S];++S);for(var O=C&&"!"==d[C-1]||S<c&&"1"==d[S]?"1":"N",T=C;T<S;++T)d[T]=O;C=S-1}}for(var k=0,D=u;k<c;++k){var I=d[k];"L"==D&&"1"==I?d[k]="L":l.test(I)&&(D=I)}for(var R=0;R<c;++R)if(o.test(d[R])){var M=void 0;for(M=R+1;M<c&&o.test(d[M]);++M);for(var P="L"==(R?d[R-1]:u),N=P==("L"==(M<c?d[M]:u))?P?"L":"R":u,A=R;A<M;++A)d[A]=N;R=M-1}for(var L,F=[],j=0;j<c;)if(a.test(d[j])){var V=j;for(++j;j<c&&a.test(d[j]);++j);F.push(new t(0,V,j))}else{var z=j,B=F.length;for(++j;j<c&&"L"!=d[j];++j);for(var H=z;H<j;)if(s.test(d[H])){z<H&&F.splice(B,0,new t(1,z,H));var W=H;for(++H;H<j&&s.test(d[H]);++H);F.splice(B,0,new t(2,W,H)),z=H}else++H;z<j&&F.splice(B,0,new t(1,z,j))}return"ltr"==r&&(1==F[0].level&&(L=n.match(/^\s+/))&&(F[0].from=L[0].length,F.unshift(new t(0,0,L[0].length))),1==m(F).level&&(L=n.match(/\s+$/))&&(m(F).to-=L[0].length,F.push(new t(0,c-L[0].length,c)))),"rtl"==r?F.reverse():F}}(),Co=[],Eo=function(e,t,n){if(e.addEventListener)e.addEventListener(t,n,!1);else if(e.attachEvent)e.attachEvent("on"+t,n);else{var r=e._handlers||(e._handlers={});r[t]=(r[t]||Co).concat(n)}},So=function(){if(zi&&Bi<9)return!1;var e=r("div");return"draggable"in e||"dragDrop"in e}(),Oo=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),l=o.indexOf("\r");-1!=l?(n.push(o.slice(0,l)),t+=l+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},To=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},ko=function(){var e=r("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Do=null,Io={},Ro={},Mo={},Po=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};Po.prototype.eol=function(){return this.pos>=this.string.length},Po.prototype.sol=function(){return this.pos==this.lineStart},Po.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Po.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},Po.prototype.eat=function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},Po.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},Po.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Po.prototype.skipToEnd=function(){this.pos=this.string.length},Po.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},Po.prototype.backUp=function(e){this.pos-=e},Po.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=d(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},Po.prototype.indentation=function(){return d(this.string,null,this.tabSize)-(this.lineStart?d(this.string,this.lineStart,this.tabSize):0)},Po.prototype.match=function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},Po.prototype.current=function(){return this.string.slice(this.start,this.pos)},Po.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Po.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Po.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var No=function(e,t){this.state=e,this.lookAhead=t},Ao=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};Ao.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},Ao.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},Ao.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Ao.fromSaved=function(e,t,n){return t instanceof No?new Ao(e,Ie(e.mode,t.state),n,t.lookAhead):new Ao(e,Ie(e.mode,t),n)},Ao.prototype.save=function(e){var t=!1!==e?Ie(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new No(t,this.maxLookAhead):t};var Lo=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n},Fo=function(e,t,n){this.text=e,$(this,t),this.height=n?n(this):1};Fo.prototype.lineNo=function(){return D(this)},ve(Fo);var jo,Vo={},zo={},Bo=null,Ho=null,Wo={left:0,right:0,top:0,bottom:0},qo=function(e,t,n){this.cm=n;var i=this.vert=r("div",[r("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=r("div",[r("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),Eo(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),Eo(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,zi&&Bi<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};qo.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},qo.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},qo.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},qo.prototype.zeroWidthHack=function(){this.horiz.style.height=this.vert.style.width=Xi&&!Ki?"12px":"18px",this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new ao,this.disableVert=new ao},qo.prototype.enableZeroWidthBar=function(e,t,n){function r(){var i=e.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,r)}e.style.pointerEvents="auto",t.set(1e3,r)},qo.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Uo=function(){};Uo.prototype.update=function(){return{bottom:0,right:0}},Uo.prototype.setScrollLeft=function(){},Uo.prototype.setScrollTop=function(){},Uo.prototype.clear=function(){};var Go={native:qo,null:Uo},Ko=0,$o=function(e,t,n){var r=e.display;this.viewport=t,this.visible=tn(r,e.doc,t),this.editorIsHidden=!r.wrapper.offsetWidth,this.wrapperHeight=r.wrapper.clientHeight,this.wrapperWidth=r.wrapper.clientWidth,this.oldDisplayWidth=pt(e),this.force=n,this.dims=jt(e),this.events=[]};$o.prototype.signal=function(e,t){ye(e,t)&&this.events.push(arguments)},$o.prototype.finish=function(){for(var e=0;e<this.events.length;e++)he.apply(null,this.events[e])};var Zo=0,Qo=null;zi?Qo=-.53:Li?Qo=15:qi?Qo=-.7:Gi&&(Qo=-1/3);var Yo=function(e,t){this.ranges=e,this.primIndex=t};Yo.prototype.primary=function(){return this.ranges[this.primIndex]},Yo.prototype.equals=function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var n=this.ranges[t],r=e.ranges[t];if(!A(n.anchor,r.anchor)||!A(n.head,r.head))return!1}return!0},Yo.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new Xo(L(this.ranges[t].anchor),L(this.ranges[t].head));return new Yo(e,this.primIndex)},Yo.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},Yo.prototype.contains=function(e,t){t||(t=e);for(var n=0;n<this.ranges.length;n++){var r=this.ranges[n];if(N(t,r.from())>=0&&N(e,r.to())<=0)return n}return-1};var Xo=function(e,t){this.anchor=e,this.head=t};Xo.prototype.from=function(){return j(this.anchor,this.head)},Xo.prototype.to=function(){return F(this.anchor,this.head)},Xo.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Ar.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=e,r=e+t;n<r;++n){var i=this.lines[n];this.height-=i.height,He(i),Qe(i,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,n){this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var r=0;r<t.length;++r)t[r].parent=this},iterN:function(e,t,n){for(var r=e+t;e<r;++e)if(n(this.lines[e]))return!0}},Lr.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var n=0;n<this.children.length;++n){var r=this.children[n],i=r.chunkSize();if(e<i){var o=Math.min(t,i-e),l=r.height;if(r.removeInner(e,o),this.height-=l-r.height,i==o&&(this.children.splice(n--,1),r.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof Ar))){var a=[];this.collapse(a),this.children=[new Ar(a)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,n){this.size+=t.length,this.height+=n;for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(e<=o){if(i.insertInner(e,t,n),i.lines&&i.lines.length>50){for(var l=i.lines.length%25+25,a=l;a<i.lines.length;){var s=new Ar(i.lines.slice(a,a+=25));i.height-=s.height,this.children.splice(++r,0,s),s.parent=this}i.lines=i.lines.slice(0,l),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=new Lr(e.children.splice(e.children.length-5,5));if(e.parent){e.size-=t.size,e.height-=t.height;var n=p(e.parent.children,e);e.parent.children.splice(n+1,0,t)}else{var r=new Lr(e.children);r.parent=e,e.children=[r,t],e=r}t.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(e<o){var l=Math.min(t,o-e);if(i.iterN(e,l,n))return!0;if(0==(t-=l))break;e=0}else e-=o}}};var Jo=function(e,t,n){if(n)for(var r in n)n.hasOwnProperty(r)&&(this[r]=n[r]);this.doc=e,this.node=t};Jo.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,n=this.line,r=D(n);if(null!=r&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(n.widgets=null);var o=lt(this);k(n,Math.max(0,n.height-o)),e&&(_n(e,function(){Fr(e,n,-o),Sn(e,r,"widget")}),Qe(e,"lineWidgetCleared",e,this,r))}},Jo.prototype.changed=function(){var e=this,t=this.height,n=this.doc.cm,r=this.line;this.height=null;var i=lt(this)-t;i&&(k(r,r.height+i),n&&_n(n,function(){n.curOp.forceUpdate=!0,Fr(n,r,i),Qe(n,"lineWidgetChanged",n,e,D(r))}))},ve(Jo);var el=0,tl=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++el};tl.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&vn(e),ye(this,"clear")){var n=this.find();n&&Qe(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;o<this.lines.length;++o){var l=this.lines[o],a=W(l.markedSpans,this);e&&!this.collapsed?Sn(e,D(l),"text"):e&&(null!=a.to&&(i=D(l)),null!=a.from&&(r=D(l))),l.markedSpans=q(l.markedSpans,a),null==a.from&&this.collapsed&&!oe(this.doc,l)&&e&&k(l,Lt(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(var s=0;s<this.lines.length;++s){var u=ne(this.lines[s]),c=se(u);c>e.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&En(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&vr(e.doc)),e&&Qe(e,"markerCleared",e,this,r,i),t&&bn(e),this.parent&&this.parent.clear()}},tl.prototype.find=function(e,t){null==e&&"bookmark"==this.type&&(e=1);for(var n,r,i=0;i<this.lines.length;++i){var o=this.lines[i],l=W(o.markedSpans,this);if(null!=l.from&&(n=P(t?o:D(o),l.from),-1==e))return n;if(null!=l.to&&(r=P(t?o:D(o),l.to),1==e))return r}return n&&{from:n,to:r}},tl.prototype.changed=function(){var e=this,t=this.find(-1,!0),n=this,r=this.doc.cm;t&&r&&_n(r,function(){var i=t.line,o=D(t.line),l=gt(r,o);if(l&&(_t(l),r.curOp.selectionChanged=r.curOp.forceUpdate=!0),r.curOp.updateMaxLine=!0,!oe(n.doc,i)&&null!=n.height){var a=n.height;n.height=null;var s=lt(n)-a;s&&k(i,i.height+s)}Qe(r,"markerChanged",r,e)})},tl.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=p(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},tl.prototype.detachLine=function(e){if(this.lines.splice(p(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},ve(tl);var nl=function(e,t){this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=this};nl.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();Qe(this,"clear")}},nl.prototype.find=function(e,t){return this.primary.find(e,t)},ve(nl);var rl=0,il=function(e,t,n,r,i){if(!(this instanceof il))return new il(e,t,n,r,i);null==n&&(n=0),Lr.call(this,[new Ar([new Fo("",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=n;var o=P(n,0);this.sel=Hn(o),this.history=new er(null),this.id=++rl,this.modeOption=t,this.lineSep=r,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Qn(this,{from:o,to:o,text:e}),mr(this,Hn(o),fo)};il.prototype=v(Lr.prototype,{constructor:il,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0;r<t.length;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=T(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:Cn(function(e){var t=P(this.first,0),n=this.first+this.size-1;Sr(this,{from:t,to:P(n,S(this,n).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&sn(this.cm,0,0),mr(this,Hn(t),fo)}),replaceRange:function(e,t,n,r){Ir(this,e,t=z(this,t),n=n?z(this,n):t,r)},getRange:function(e,t,n){var r=O(this,z(this,e),z(this,t));return!1===n?r:r.join(n||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(R(this,e))return S(this,e)},getLineNumber:function(e){return D(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=S(this,e)),ne(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return z(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:Cn(function(e,t,n){fr(this,z(this,"number"==typeof e?P(e,t||0):e),null,n)}),setSelection:Cn(function(e,t,n){fr(this,z(this,e),z(this,t||e),n)}),extendSelection:Cn(function(e,t,n){cr(this,z(this,e),t&&z(this,t),n)}),extendSelections:Cn(function(e,t){dr(this,B(this,e),t)}),extendSelectionsBy:Cn(function(e,t){dr(this,B(this,g(this.sel.ranges,e)),t)}),setSelections:Cn(function(e,t,n){if(e.length){for(var r=[],i=0;i<e.length;i++)r[i]=new Xo(z(this,e[i].anchor),z(this,e[i].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),mr(this,Bn(r,t),n)}}),addSelection:Cn(function(e,t,n){var r=this.sel.ranges.slice(0);r.push(new Xo(z(this,e),z(this,t||e))),mr(this,Bn(r,r.length-1),n)}),getSelection:function(e){for(var t,n=this.sel.ranges,r=0;r<n.length;r++){var i=O(this,n[r].from(),n[r].to());t=t?t.concat(i):i}return!1===e?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],n=this.sel.ranges,r=0;r<n.length;r++){var i=O(this,n[r].from(),n[r].to());!1!==e&&(i=i.join(e||this.lineSeparator())),t[r]=i}return t},replaceSelection:function(e,t,n){for(var r=[],i=0;i<this.sel.ranges.length;i++)r[i]=e;this.replaceSelections(r,t,n||"+input")},replaceSelections:Cn(function(e,t,n){for(var r=[],i=this.sel,o=0;o<i.ranges.length;o++){var l=i.ranges[o];r[o]={from:l.from(),to:l.to(),text:this.splitLines(e[o]),origin:n}}for(var a=t&&"end"!=t&&function(e,t,n){for(var r=[],i=P(e.first,0),o=i,l=0;l<t.length;l++){var a=t[l],s=Gn(a.from,i,o),u=Gn(Wn(a),i,o);if(i=a.to,o=u,"around"==n){var c=e.sel.ranges[l],d=N(c.head,c.anchor)<0;r[l]=new Xo(d?u:s,d?s:u)}else r[l]=new Xo(s,s)}return new Yo(r,e.sel.primIndex)}(this,r,t),s=r.length-1;s>=0;s--)Sr(this,r[s]);a?hr(this,a):this.cm&&an(this.cm)}),undo:Cn(function(){Tr(this,"undo")}),redo:Cn(function(){Tr(this,"redo")}),undoSelection:Cn(function(){Tr(this,"undo",!0)}),redoSelection:Cn(function(){Tr(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r<e.done.length;r++)e.done[r].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++n;return{undo:t,redo:n}},clearHistory:function(){this.history=new er(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:sr(this.history.done),undone:sr(this.history.undone)}},setHistory:function(e){var t=this.history=new er(this.history.maxGeneration);t.done=sr(e.done.slice(0),null,!0),t.undone=sr(e.undone.slice(0),null,!0)},setGutterMarker:Cn(function(e,t,n){return Nr(this,e,"gutter",function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=n,!n&&w(r)&&(e.gutterMarkers=null),!0})}),clearGutter:Cn(function(e){var t=this;this.iter(function(n){n.gutterMarkers&&n.gutterMarkers[e]&&Nr(t,n,"gutter",function(){return n.gutterMarkers[e]=null,w(n.gutterMarkers)&&(n.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!R(this,e))return null;if(t=e,!(e=S(this,e)))return null}else if(null==(t=D(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:Cn(function(t,n,r){return Nr(this,t,"gutter"==n?"gutter":"class",function(t){var i="text"==n?"textClass":"background"==n?"bgClass":"gutter"==n?"gutterClass":"wrapClass";if(t[i]){if(e(r).test(t[i]))return!1;t[i]+=" "+r}else t[i]=r;return!0})}),removeLineClass:Cn(function(t,n,r){return Nr(this,t,"gutter"==n?"gutter":"class",function(t){var i="text"==n?"textClass":"background"==n?"bgClass":"gutter"==n?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==r)t[i]=null;else{var l=o.match(e(r));if(!l)return!1;var a=l.index+l[0].length;t[i]=o.slice(0,l.index)+(l.index&&a!=o.length?" ":"")+o.slice(a)||null}return!0})}),addLineWidget:Cn(function(e,t,n){return function(e,r,i,o){var l=new Jo(e,t,n),a=e.cm;return a&&l.noHScroll&&(a.display.alignWidgets=!0),Nr(e,r,"widget",function(t){var n=t.widgets||(t.widgets=[]);if(null==l.insertAt?n.push(l):n.splice(Math.min(n.length-1,Math.max(0,l.insertAt)),0,l),l.line=t,a&&!oe(e,t)){var r=ae(t)<e.scrollTop;k(t,t.height+lt(l)),r&&ln(a,l.height),a.curOp.forceUpdate=!0}return!0}),Qe(a,"lineWidgetAdded",a,l,"number"==typeof r?r:D(r)),l}(this,e)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,n){return jr(this,z(this,e),z(this,t),n,n&&n.type||"range")},setBookmark:function(e,t){var n={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return e=z(this,e),jr(this,e,e,n,"bookmark")},findMarksAt:function(e){var t=[],n=S(this,(e=z(this,e)).line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=z(this,e),t=z(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var l=o.markedSpans;if(l)for(var a=0;a<l.length;a++){var s=l[a];null!=s.to&&i==e.line&&e.ch>=s.to||null==s.from&&i!=e.line||null!=s.from&&i==t.line&&s.from>=t.ch||n&&!n(s.marker)||r.push(s.marker.parent||s.marker)}++i}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;r<n.length;++r)null!=n[r].from&&e.push(n[r].marker)}),e},posFromIndex:function(e){var t,n=this.first,r=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+r;if(o>e)return t=e,!0;e-=o,++n}),z(this,P(n,t))},indexFromPos:function(e){var t=(e=z(this,e)).ch;if(e.line<this.first||e.ch<0)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+n}),t},copy:function(e){var t=new il(T(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);var r=new il(T(this,t,n),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(r.history=this.history),(this.linked||(this.linked=[])).push({doc:r,sharedHist:e.sharedHist}),r.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=r.find(),o=e.clipPos(i.from),l=e.clipPos(i.to);if(N(o,l)){var a=jr(e,o,l,r.primary,r.primary.type);r.markers.push(a),a.parent=r}}}(r,Vr(this)),r},unlinkDoc:function(e){if(e instanceof _i&&(e=e.doc),this.linked)for(var t=0;t<this.linked.length;++t)if(this.linked[t].doc==e){this.linked.splice(t,1),e.unlinkDoc(this),zr(Vr(this));break}if(e.history==this.history){var n=[e.id];Yn(e,function(e){return n.push(e.id)},!0),e.history=new er(null),e.history.done=sr(this.history.done,n),e.history.undone=sr(this.history.undone,n)}},iterLinkedDocs:function(e){Yn(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):Oo(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:Cn(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&function(e){_n(e,function(){Jn(e),En(e)})}(this.cm))})}),il.prototype.eachLine=il.prototype.iter;for(var ol=0,ll=!1,al={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},sl=0;sl<10;sl++)al[sl+48]=al[sl+96]=String(sl);for(var ul=65;ul<=90;ul++)al[ul]=String.fromCharCode(ul);for(var cl=1;cl<=12;cl++)al[cl+111]=al[cl+63235]="F"+cl;var dl={};dl.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},dl.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},dl.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},dl.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},dl.default=Xi?dl.macDefault:dl.pcDefault;var pl={selectAll:Cr,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),fo)},killLine:function(e){return Xr(e,function(t){if(t.empty()){var n=S(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line<e.lastLine()?{from:t.head,to:P(t.head.line+1,0)}:{from:t.head,to:P(t.head.line,n)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return Xr(e,function(t){return{from:P(t.from().line,0),to:z(e.doc,P(t.to().line+1,0))}})},delLineLeft:function(e){return Xr(e,function(e){return{from:P(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return Xr(e,function(t){var n=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:n},"div"),to:t.from()}})},delWrappedLineRight:function(e){return Xr(e,function(t){var n=e.charCoords(t.head,"div").top+5,r=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div");return{from:t.from(),to:r}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(P(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(P(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return ni(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return ri(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return function(e,t){var n=S(e.doc,t),r=function(e){for(var t;t=ee(e);)e=t.find(1,!0).line;return e}(n);return r!=n&&(t=D(r)),ti(!0,e,n,t,-1)}(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div")},mo)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:n},"div")},mo)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5,r=e.coordsChar({left:0,top:n},"div");return r.ch<e.getLine(r.line).search(/\S/)?ri(e,t.head):r},mo)},goLineUp:function(e){return e.moveV(-1,"line")},goLineDown:function(e){return e.moveV(1,"line")},goPageUp:function(e){return e.moveV(-1,"page")},goPageDown:function(e){return e.moveV(1,"page")},goCharLeft:function(e){return e.moveH(-1,"char")},goCharRight:function(e){return e.moveH(1,"char")},goColumnLeft:function(e){return e.moveH(-1,"column")},goColumnRight:function(e){return e.moveH(1,"column")},goWordLeft:function(e){return e.moveH(-1,"word")},goGroupRight:function(e){return e.moveH(1,"group")},goGroupLeft:function(e){return e.moveH(-1,"group")},goWordRight:function(e){return e.moveH(1,"word")},delCharBefore:function(e){return e.deleteH(-1,"char")},delCharAfter:function(e){return e.deleteH(1,"char")},delWordBefore:function(e){return e.deleteH(-1,"word")},delWordAfter:function(e){return e.deleteH(1,"word")},delGroupBefore:function(e){return e.deleteH(-1,"group")},delGroupAfter:function(e){return e.deleteH(1,"group")},indentAuto:function(e){return e.indentSelection("smart")},indentMore:function(e){return e.indentSelection("add")},indentLess:function(e){return e.indentSelection("subtract")},insertTab:function(e){return e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],n=e.listSelections(),r=e.options.tabSize,i=0;i<n.length;i++){var o=n[i].from(),l=d(e.getLine(o.line),o.ch,r);t.push(h(r-l%r))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return _n(e,function(){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++)if(t[r].empty()){var i=t[r].head,o=S(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new P(i.line,i.ch-1)),i.ch>0)i=new P(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),P(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var l=S(e.doc,i.line-1).text;l&&(i=new P(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),P(i.line-1,l.length-1),i,"+transpose"))}n.push(new Xo(i,i))}e.setSelections(n)})},newlineAndIndent:function(e){return _n(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r<t.length;r++)e.indentLine(t[r].from().line,null,!0);an(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},fl=new ao,hl=null,ml=function(e,t,n){this.time=e,this.pos=t,this.button=n};ml.prototype.compare=function(e,t,n){return this.time+400>e&&0==N(t,this.pos)&&n==this.button};var gl,yl,vl={toString:function(){return"CodeMirror.Init"}},bl={},_l={};_i.defaults=bl,_i.optionHandlers=_l;var wl=[];_i.defineInitHook=function(e){return wl.push(e)};var xl=null,Cl=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new ao,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Cl.prototype.init=function(e){function t(e){if(!me(i,e)){if(i.somethingSelected())xi({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=Oi(i);xi({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,fo),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var n=xl.text.join("\n");if(e.clipboardData.setData("Text",n),e.clipboardData.getData("Text")==n)return void e.preventDefault()}var l=ki(),a=l.firstChild;i.display.lineSpace.insertBefore(l,i.display.lineSpace.firstChild),a.value=xl.text.join("\n");var s=document.activeElement;lo(a),setTimeout(function(){i.display.lineSpace.removeChild(l),s.focus(),s==o&&r.showPrimarySelection()},50)}}var n=this,r=this,i=r.cm,o=r.div=e.lineDiv;Ti(o,i.options.spellcheck),Eo(o,"paste",function(e){me(i,e)||Ei(e,i)||Bi<=11&&setTimeout(wn(i,function(){return n.updateFromDOM()}),20)}),Eo(o,"compositionstart",function(e){n.composing={data:e.data,done:!1}}),Eo(o,"compositionupdate",function(e){n.composing||(n.composing={data:e.data,done:!1})}),Eo(o,"compositionend",function(e){n.composing&&(e.data!=n.composing.data&&n.readFromDOMSoon(),n.composing.done=!0)}),Eo(o,"touchstart",function(){return r.forceCompositionEnd()}),Eo(o,"input",function(){n.composing||n.readFromDOMSoon()}),Eo(o,"copy",t),Eo(o,"cut",t)},Cl.prototype.prepareSelection=function(){var e=Ut(this.cm,!1);return e.focus=this.cm.state.focused,e},Cl.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Cl.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,n=t.doc.sel.primary(),r=n.from(),i=n.to();if(t.display.viewTo==t.display.viewFrom||r.line>=t.display.viewTo||i.line<t.display.viewFrom)e.removeAllRanges();else{var o=Pi(t,e.anchorNode,e.anchorOffset),l=Pi(t,e.focusNode,e.focusOffset);if(!o||o.bad||!l||l.bad||0!=N(j(o,l),r)||0!=N(F(o,l),i)){var a=t.display.view,s=r.line>=t.display.viewFrom&&Ri(t,r)||{node:a[0].measure.map[2],offset:0},u=i.line<t.display.viewTo&&Ri(t,i);if(!u){var c=a[a.length-1].measure,d=c.maps?c.maps[c.maps.length-1]:c.map;u={node:d[d.length-1],offset:d[d.length-2]-d[d.length-3]}}if(s&&u){var p,f=e.rangeCount&&e.getRangeAt(0);try{p=no(s.node,s.offset,u.offset,u.node)}catch(e){}p&&(!Li&&t.state.focused?(e.collapse(s.node,s.offset),p.collapsed||(e.removeAllRanges(),e.addRange(p))):(e.removeAllRanges(),e.addRange(p)),f&&null==e.anchorNode?e.addRange(f):Li&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},Cl.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},Cl.prototype.showMultipleSelections=function(e){n(this.cm.display.cursorDiv,e.cursors),n(this.cm.display.selectionDiv,e.selection)},Cl.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Cl.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},Cl.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Cl.prototype.blur=function(){this.div.blur()},Cl.prototype.getField=function(){return this.div},Cl.prototype.supportsTouch=function(){return!0},Cl.prototype.receivedFocus=function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():_n(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},Cl.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Cl.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(Qi&&qi&&this.cm.options.gutters.length&&function(t){for(var n=e.anchorNode;n;n=n.parentNode)if(/CodeMirror-gutter-wrapper/.test(n.className))return!0;return!1}())return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var n=Pi(t,e.anchorNode,e.anchorOffset),r=Pi(t,e.focusNode,e.focusOffset);n&&r&&_n(t,function(){mr(t.doc,Hn(n,r),fo),(n.bad||r.bad)&&(t.curOp.selectionChanged=!0)})}}},Cl.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,n=e.doc.sel.primary(),r=n.from(),i=n.to();if(0==r.ch&&r.line>e.firstLine()&&(r=P(r.line-1,S(e.doc,r.line-1).length)),i.ch==S(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=P(i.line+1,0)),r.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,l,a;r.line==t.viewFrom||0==(o=Wt(e,r.line))?(l=D(t.view[0].line),a=t.view[0].node):(l=D(t.view[o].line),a=t.view[o-1].node.nextSibling);var s,u,c=Wt(e,i.line);if(c==t.view.length-1?(s=t.viewTo-1,u=t.lineDiv.lastChild):(s=D(t.view[c+1].line)-1,u=t.view[c+1].node.previousSibling),!a)return!1;for(var d=e.doc.splitLines(function(e,t,n,r,i){function o(){u&&(s+=c,u=!1)}function l(e){e&&(o(),s+=e)}function a(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(null!=n)return void l(n||t.textContent.replace(/\u200b/g,""));var s,d=t.getAttribute("cm-marker");if(d){var p=e.findMarks(P(r,0),P(i+1,0),function(e){return function(t){return t.id==e}}(+d));return void(p.length&&(s=p[0].find(0))&&l(O(e.doc,s.from,s.to).join(c)))}if("false"==t.getAttribute("contenteditable"))return;var f=/^(pre|div|p)$/i.test(t.nodeName);f&&o();for(var h=0;h<t.childNodes.length;h++)a(t.childNodes[h]);f&&(u=!0)}else 3==t.nodeType&&l(t.nodeValue)}for(var s="",u=!1,c=e.doc.lineSeparator();a(t),t!=n;)t=t.nextSibling;return s}(e,a,u,l,s)),p=O(e.doc,P(l,0),P(s,S(e.doc,s).text.length));d.length>1&&p.length>1;)if(m(d)==m(p))d.pop(),p.pop(),s--;else{if(d[0]!=p[0])break;d.shift(),p.shift(),l++}for(var f=0,h=0,g=d[0],y=p[0],v=Math.min(g.length,y.length);f<v&&g.charCodeAt(f)==y.charCodeAt(f);)++f;for(var b=m(d),_=m(p),w=Math.min(b.length-(1==d.length?f:0),_.length-(1==p.length?f:0));h<w&&b.charCodeAt(b.length-h-1)==_.charCodeAt(_.length-h-1);)++h;if(1==d.length&&1==p.length&&l==r.line)for(;f&&f>r.ch&&b.charCodeAt(b.length-h-1)==_.charCodeAt(_.length-h-1);)f--,h++;d[d.length-1]=b.slice(0,b.length-h).replace(/^\u200b+/,""),d[0]=d[0].slice(f).replace(/\u200b+$/,"");var x=P(l,f),C=P(s,p.length?m(p).length-h:0);return d.length>1||d[0]||N(x,C)?(Ir(e.doc,d,x,C,"+input"),!0):void 0},Cl.prototype.ensurePolled=function(){this.forceCompositionEnd()},Cl.prototype.reset=function(){this.forceCompositionEnd()},Cl.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Cl.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},Cl.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||_n(this.cm,function(){return En(e.cm)})},Cl.prototype.setUneditable=function(e){e.contentEditable="false"},Cl.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||wn(this.cm,Ci)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Cl.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Cl.prototype.onContextMenu=function(){},Cl.prototype.resetPosition=function(){},Cl.prototype.needsContentAttribute=!0;var El=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new ao,this.hasSelection=!1,this.composing=null};El.prototype.init=function(e){function t(e){if(!me(i,e)){if(i.somethingSelected())xi({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=Oi(i);xi({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,fo):(r.prevInput="",l.value=t.text.join("\n"),lo(l))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var n=this,r=this,i=this.cm,o=this.wrapper=ki(),l=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),Zi&&(l.style.width="0px"),Eo(l,"input",function(){zi&&Bi>=9&&n.hasSelection&&(n.hasSelection=null),r.poll()}),Eo(l,"paste",function(e){me(i,e)||Ei(e,i)||(i.state.pasteIncoming=!0,r.fastPoll())}),Eo(l,"cut",t),Eo(l,"copy",t),Eo(e.scroller,"paste",function(t){at(e,t)||me(i,t)||(i.state.pasteIncoming=!0,r.focus())}),Eo(e.lineSpace,"selectstart",function(t){at(e,t)||be(t)}),Eo(l,"compositionstart",function(){var e=i.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),Eo(l,"compositionend",function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)})},El.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=Ut(e);if(e.options.moveInputWithCursor){var i=Dt(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return r},El.prototype.showSelection=function(e){var t=this.cm.display;n(t.cursorDiv,e.cursors),n(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},El.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&lo(this.textarea),zi&&Bi>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",zi&&Bi>=9&&(this.hasSelection=null))}},El.prototype.getField=function(){return this.textarea},El.prototype.supportsTouch=function(){return!1},El.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!Yi||l()!=this.textarea))try{this.textarea.focus()}catch(e){}},El.prototype.blur=function(){this.textarea.blur()},El.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},El.prototype.receivedFocus=function(){this.slowPoll()},El.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},El.prototype.fastPoll=function(){function e(){n.poll()||t?(n.pollingFast=!1,n.slowPoll()):(t=!0,n.polling.set(60,e))}var t=!1,n=this;n.pollingFast=!0,n.polling.set(20,e)},El.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||To(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(zi&&Bi>=9&&this.hasSelection===i||Xi&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="\u200b"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,a=Math.min(r.length,i.length);l<a&&r.charCodeAt(l)==i.charCodeAt(l);)++l;return _n(t,function(){Ci(t,i.slice(l),r.length-l,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},El.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},El.prototype.onKeyPress=function(){zi&&Bi>=9&&(this.hasSelection=null),this.fastPoll()},El.prototype.onContextMenu=function(e){function t(){if(null!=l.selectionStart){var e=i.somethingSelected(),t="\u200b"+(e?l.value:"");l.value="\u21da",l.value=t,r.prevInput=e?"":"\u200b",l.selectionStart=1,l.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function n(){if(r.contextMenuPending=!1,r.wrapper.style.cssText=c,l.style.cssText=u,zi&&Bi<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=s),null!=l.selectionStart){(!zi||zi&&Bi<9)&&t();var e=0,n=function(){o.selForContextMenu==i.doc.sel&&0==l.selectionStart&&l.selectionEnd>0&&"\u200b"==r.prevInput?wn(i,Cr)(i):e++<10?o.detectingSelectAll=setTimeout(n,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(n,200)}}var r=this,i=r.cm,o=i.display,l=r.textarea,a=Ht(i,e),s=o.scroller.scrollTop;if(a&&!Ui){i.options.resetSelectionOnContextMenu&&-1==i.doc.sel.contains(a)&&wn(i,mr)(i.doc,Hn(a),fo);var u=l.style.cssText,c=r.wrapper.style.cssText;r.wrapper.style.cssText="position: absolute";var d=r.wrapper.getBoundingClientRect();l.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-d.top-5)+"px; left: "+(e.clientX-d.left-5)+"px;\n z-index: 1000; background: "+(zi?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var p;if(Hi&&(p=window.scrollY),o.input.focus(),Hi&&window.scrollTo(null,p),o.input.reset(),i.somethingSelected()||(l.value=r.prevInput=" "),r.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),zi&&Bi>=9&&t(),io){xe(e);var f=function(){fe(window,"mouseup",f),setTimeout(n,20)};Eo(window,"mouseup",f)}else setTimeout(n,50)}},El.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},El.prototype.setUneditable=function(){},El.prototype.needsContentAttribute=!1,function(e){function t(t,r,i,o){e.defaults[t]=r,i&&(n[t]=o?function(e,t,n){n!=vl&&i(e,t,n)}:i)}var n=e.optionHandlers;e.defineOption=t,e.Init=vl,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Kn(e)},!0),t("indentUnit",2,Kn,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){$n(e),xt(e),En(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(P(r,o))}r++});for(var i=n.length-1;i>=0;i--)Ir(e.doc,t,n[i],P(n[i].line,n[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=vl&&e.refresh()}),t("specialCharPlaceholder",Ue,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",Yi?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!eo),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){gi(e),yi(e)},!0),t("keyMap","default",function(e,t,n){var r=Yr(t),i=n!=vl&&Yr(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,bi,!0),t("gutters",[],function(e){Fn(e.options),yi(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?Vt(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return mn(e)},!0),t("scrollbarStyle","native",function(e){yn(e),mn(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Fn(e.options),yi(e)},!0),t("firstLineNumber",1,yi,!0),t("lineNumberFormatter",function(e){return e},yi,!0),t("showCursorWhenSelecting",!1,qt,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Xt(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,vi),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,qt,!0),t("singleCursorHeightPerLine",!0,qt,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,$n,!0),t("addModeClass",!1,$n,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,$n,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null),t("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(_i),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,i=r[e];r[e]==n&&"mode"!=e||(r[e]=n,t.hasOwnProperty(e)&&wn(this,t[e])(this,n,i),he(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Yr(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(t[n]==e||t[n].name==e)return t.splice(n,1),!0},addOverlay:xn(function(t,n){var r=t.token?t:e.getMode(this.options,t);if(r.startState)throw new Error("Overlays may not be stateful.");!function(e,t,n){for(var r=0,i=n(t);r<e.length&&n(e[r])<=i;)r++;e.splice(r,0,t)}(this.state.overlays,{mode:r,modeSpec:t,opaque:n&&n.opaque,priority:n&&n.priority||0},function(e){return e.priority}),this.state.modeGen++,En(this)}),removeOverlay:xn(function(e){for(var t=this.state.overlays,n=0;n<t.length;++n){var r=t[n].modeSpec;if(r==e||"string"==typeof e&&r.name==e)return t.splice(n,1),this.state.modeGen++,void En(this)}}),indentLine:xn(function(e,t,n){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),R(this.doc,e)&&wi(this,e,t,n)}),indentSelection:xn(function(e){for(var t=this.doc.sel.ranges,n=-1,r=0;r<t.length;r++){var i=t[r];if(i.empty())i.head.line>n&&(wi(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&an(this));else{var o=i.from(),l=i.to(),a=Math.max(n,o.line);n=Math.min(this.lastLine(),l.line-(l.ch?0:1))+1;for(var s=a;s<n;++s)wi(this,s,e);var u=this.doc.sel.ranges;0==o.ch&&t.length==u.length&&u[r].from().ch>0&&pr(this.doc,r,new Xo(o,u[r].to()),fo)}}}),getTokenAt:function(e,t){return Ve(this,e,t)},getLineTokens:function(e,t){return Ve(this,P(e),t,!0)},getTokenTypeAt:function(e){e=z(this.doc,e);var t,n=Ne(this,S(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var l=r+i>>1;if((l?n[2*l-1]:0)>=o)i=l;else{if(!(n[2*l+1]<o)){t=n[2*l+2];break}r=l+1}}var a=t?t.indexOf("overlay "):-1;return a<0?t:0==a?null:t.slice(0,a-1)},getModeAt:function(t){var n=this.doc.mode;return n.innerMode?e.innerMode(n,this.getTokenAt(t).state).mode:n},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var r=[];if(!n.hasOwnProperty(t))return r;var i=n[t],o=this.getModeAt(e);if("string"==typeof o[t])i[o[t]]&&r.push(i[o[t]]);else if(o[t])for(var l=0;l<o[t].length;l++){var a=i[o[t][l]];a&&r.push(a)}else o.helperType&&i[o.helperType]?r.push(i[o.helperType]):i[o.name]&&r.push(i[o.name]);for(var s=0;s<i._global.length;s++){var u=i._global[s];u.pred(o,this)&&-1==p(r,u.val)&&r.push(u.val)}return r},getStateAfter:function(e,t){var n=this.doc;return e=V(n,null==e?n.first+n.size-1:e),Ae(this,e+1,t).state},cursorCoords:function(e,t){var n,r=this.doc.sel.primary();return n=null==e?r.head:"object"==typeof e?z(this.doc,e):e?r.from():r.to(),Dt(this,n,t||"page")},charCoords:function(e,t){return kt(this,z(this.doc,e),t||"page")},coordsChar:function(e,t){return e=Tt(this,e,t||"page"),Mt(this,e.left,e.top)},lineAtHeight:function(e,t){return e=Tt(this,{top:e,left:0},t||"page").top,I(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,n){var r,i=!1;if("number"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),r=S(this.doc,e)}else r=e;return Ot(this,r,{top:0,left:0},t||"page",n||i).top+(i?this.doc.height-ae(r):0)},defaultTextHeight:function(){return Lt(this.display)},defaultCharWidth:function(){return Ft(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display,l=(e=Dt(this,z(this.doc,e))).bottom,a=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==r)l=e.top;else if("above"==r||"near"==r){var s=Math.max(o.wrapper.clientHeight,this.doc.height),u=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>s)&&e.top>t.offsetHeight?l=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=s&&(l=e.bottom),a+t.offsetWidth>u&&(a=u-t.offsetWidth)}t.style.top=l+"px",t.style.left=t.style.right="","right"==i?(a=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?a=0:"middle"==i&&(a=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=a+"px"),n&&function(e,n){var r=on(e,{left:a,top:l,right:a+t.offsetWidth,bottom:l+t.offsetHeight});null!=r.scrollTop&&dn(e,r.scrollTop),null!=r.scrollLeft&&fn(e,r.scrollLeft)}(this)},triggerOnKeyDown:xn(si),triggerOnKeyPress:xn(ci),triggerOnKeyUp:ui,triggerOnMouseDown:xn(di),execCommand:function(e){if(pl.hasOwnProperty(e))return pl[e].call(null,this)},triggerElectric:xn(function(e){Si(this,e)}),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=z(this.doc,e),l=0;l<t&&!(o=Di(this.doc,o,i,n,r)).hitSide;++l);return o},moveH:xn(function(e,t){var n=this;this.extendSelectionsBy(function(r){return n.display.shift||n.doc.extend||r.empty()?Di(n.doc,r.head,e,t,n.options.rtlMoveVisually):e<0?r.from():r.to()},mo)}),deleteH:xn(function(e,t){var n=this.doc;this.doc.sel.somethingSelected()?n.replaceSelection("",null,"+delete"):Xr(this,function(r){var i=Di(n,r.head,e,t,!1);return e<0?{from:i,to:r.head}:{from:r.head,to:i}})}),findPosV:function(e,t,n,r){var i=1,o=r;t<0&&(i=-1,t=-t);for(var l=z(this.doc,e),a=0;a<t;++a){var s=Dt(this,l,"div");if(null==o?o=s.left:s.left=o,(l=Ii(this,s,i,n)).hitSide)break}return l},moveV:xn(function(e,t){var n=this,r=this.doc,i=[],o=!this.display.shift&&!r.extend&&r.sel.somethingSelected();if(r.extendSelectionsBy(function(l){if(o)return e<0?l.from():l.to();var a=Dt(n,l.head,"div");null!=l.goalColumn&&(a.left=l.goalColumn),i.push(a.left);var s=Ii(n,a,e,t);return"page"==t&&l==r.sel.primary()&&ln(n,kt(n,s,"div").top-a.top),s},mo),i.length)for(var l=0;l<r.sel.ranges.length;l++)r.sel.ranges[l].goalColumn=i[l]}),findWordAt:function(e){var t=S(this.doc,e.line).text,n=e.ch,r=e.ch;if(t){var i=this.getHelper(e,"wordChars");"before"!=e.sticky&&r!=t.length||!n?++r:--n;for(var o=t.charAt(n),l=_(o,i)?function(e){return _(e,i)}:/\s/.test(o)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!_(e)};n>0&&l(t.charAt(n-1));)--n;for(;r<t.length&&l(t.charAt(r));)++r}return new Xo(P(e.line,n),P(e.line,r))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?a(this.display.cursorDiv,"CodeMirror-overwrite"):oo(this.display.cursorDiv,"CodeMirror-overwrite"),he(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==l()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:xn(function(e,t){sn(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-dt(this)-this.display.barHeight,width:e.scrollWidth-dt(this)-this.display.barWidth,clientHeight:ft(this),clientWidth:pt(this)}},scrollIntoView:xn(function(e,t){null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:P(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?function(e,t){un(e),e.curOp.scrollToPos=t}(this,e):cn(this,e.from,e.to,e.margin)}),setSize:xn(function(e,t){var n=this,r=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=r(e)),null!=t&&(this.display.wrapper.style.height=r(t)),this.options.lineWrapping&&wt(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){Sn(n,i,"widget");break}++i}),this.curOp.forceUpdate=!0,he(this,"refresh",this)}),operation:function(e){return _n(this,e)},startOperation:function(){return vn(this)},endOperation:function(){return bn(this)},refresh:xn(function(){var e=this.display.cachedTextHeight;En(this),this.curOp.forceUpdate=!0,xt(this),sn(this,this.doc.scrollLeft,this.doc.scrollTop),Nn(this),(null==e||Math.abs(e-Lt(this.display))>.5)&&Bt(this),he(this,"refresh",this)}),swapDoc:xn(function(e){var t=this.doc;return t.cm=null,Xn(this,e),xt(this),this.display.input.reset(),sn(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Qe(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},ve(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}(_i);var Sl="iter insert remove copy getEditor constructor".split(" ");for(var Ol in il.prototype)il.prototype.hasOwnProperty(Ol)&&p(Sl,Ol)<0&&(_i.prototype[Ol]=function(e){return function(){return e.apply(this.doc,arguments)}}(il.prototype[Ol]));return ve(il),_i.inputStyles={textarea:El,contenteditable:Cl},_i.defineMode=function(e){_i.defaults.mode||"null"==e||(_i.defaults.mode=e),function(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Io[e]=t}.apply(this,arguments)},_i.defineMIME=function(e,t){Ro[e]=t},_i.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),_i.defineMIME("text/plain","null"),_i.defineExtension=function(e,t){_i.prototype[e]=t},_i.defineDocExtension=function(e,t){il.prototype[e]=t},_i.fromTextArea=function(e,t){function n(){e.value=s.getValue()}if(t=t?c(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=l();t.autofocus=r==e||null!=e.getAttribute("autofocus")&&r==document.body}var i;if(e.form&&(Eo(e.form,"submit",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var a=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=a}}catch(e){}}t.finishInit=function(t){t.save=n,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,n(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(fe(e.form,"submit",n),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var s=_i(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s},function(e){e.off=fe,e.on=Eo,e.wheelEventPixels=Vn,e.Doc=il,e.splitLines=Oo,e.countColumn=d,e.findColumn=f,e.isWordChar=b,e.Pass=po,e.signal=he,e.Line=Fo,e.changeEnd=Wn,e.scrollbarModel=Go,e.Pos=P,e.cmpPos=N,e.modes=Io,e.mimeModes=Ro,e.resolveMode=Te,e.getMode=ke,e.modeExtensions=Mo,e.extendMode=De,e.copyState=Ie,e.startState=Me,e.innerMode=Re,e.commands=pl,e.keyMap=dl,e.keyName=Qr,e.isModifierKey=$r,e.lookupKey=Kr,e.normalizeKeyMap=Gr,e.StringStream=Po,e.SharedTextMarker=nl,e.TextMarker=tl,e.LineWidget=Jo,e.e_preventDefault=be,e.e_stopPropagation=_e,e.e_stop=xe,e.addClass=a,e.contains=o,e.rmClass=oo,e.keyNames=al}(_i),_i.version="5.32.0",_i}()},ozyc:function(e,t,n){"use strict";t.a=function(e,t){return void 0===t&&(t=0),Object(r.b)(e,t)(this)};var r=n("YRqN")},"p/bR":function(e,t,n){var r=n("pa70"),i=n("ULWX"),o=n("KpI+"),l=n("+pQw"),a=n("rppw"),s=n("fC8q"),u={},c={};(t=e.exports=function(e,t,n,d,p){var f,h,m,g,y=p?function(){return e}:s(e),v=r(n,d,t?2:1),b=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(o(y)){for(f=a(e.length);f>b;b++)if((g=t?v(l(h=e[b])[0],h[1]):v(e[b]))===u||g===c)return g}else for(m=y.call(e);!(h=m.next()).done;)if((g=i(m,v,h.value,t))===u||g===c)return g}).BREAK=u,t.RETURN=c},pBmS:function(e,t,n){var r=n("lfBE");e.exports=function(e,t,n){for(var i in t)r(e,i,t[i],n);return e}},pQo2:function(e,t,n){"use strict";var r=n("6Xbx").__decorate,i=n("6Xbx").__metadata,o=n("6Xbx").__param;Object.defineProperty(t,"__esModule",{value:!0});var l=n("LMZF"),a=n("Un6q"),s=n("0nO6"),u=n("/zAi"),c=n("Rs3a"),d=n("/zAi"),p=n("4cOY"),f=n("P0cP"),h=function(){function e(){this.onClick=new l.EventEmitter}return e.prototype.handleClick=function(e){this.onClick.emit(e)},e}();r([l.Input(),i("design:type",Boolean)],h.prototype,"checked",void 0),r([l.Output(),i("design:type",l.EventEmitter)],h.prototype,"onClick",void 0),h=r([l.Component({selector:"p-dtRadioButton",template:'\n <div class="ui-radiobutton ui-widget">\n <div class="ui-helper-hidden-accessible">\n <input type="radio" [checked]="checked">\n </div>\n <div class="ui-radiobutton-box ui-widget ui-radiobutton-relative ui-state-default" (click)="handleClick($event)"\n (mouseenter)="hover=true" (mouseleave)="hover=false"\n [ngClass]="{\'ui-state-hover\':hover,\'ui-state-active\':checked}">\n <span class="ui-radiobutton-icon ui-clickable" [ngClass]="{\'fa fa-circle\':checked}"></span>\n </div>\n </div>\n '})],h),t.DTRadioButton=h;var m=function(){function e(){this.onChange=new l.EventEmitter}return e.prototype.handleClick=function(e){this.disabled||this.onChange.emit({originalEvent:e,checked:!this.checked})},e}();r([l.Input(),i("design:type",Boolean)],m.prototype,"checked",void 0),r([l.Input(),i("design:type",Boolean)],m.prototype,"disabled",void 0),r([l.Output(),i("design:type",l.EventEmitter)],m.prototype,"onChange",void 0),m=r([l.Component({selector:"p-dtCheckbox",template:'\n <div class="ui-chkbox ui-widget">\n <div class="ui-helper-hidden-accessible">\n <input type="checkbox" [checked]="checked">\n </div>\n <div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default" (click)="handleClick($event)"\n (mouseover)="hover=true" (mouseout)="hover=false"\n [ngClass]="{\'ui-state-hover\':hover&&!disabled,\'ui-state-active\':checked&&!disabled,\'ui-state-disabled\':disabled}">\n <span class="ui-chkbox-icon ui-clickable" [ngClass]="{\'fa fa-check\':checked}"></span>\n </div>\n </div>\n '})],m),t.DTCheckbox=m;var g=function(){function e(e){this.viewContainer=e}return e.prototype.ngOnInit=function(){this.view=this.viewContainer.createEmbeddedView(this.template,{$implicit:this.rowData,rowIndex:this.rowIndex})},e.prototype.ngOnDestroy=function(){this.view.destroy()},e}();r([l.Input(),i("design:type",l.TemplateRef)],g.prototype,"template",void 0),r([l.Input(),i("design:type",Object)],g.prototype,"rowData",void 0),r([l.Input(),i("design:type",Object)],g.prototype,"rowIndex",void 0),g=r([l.Component({selector:"p-rowExpansionLoader",template:""})],g),t.RowExpansionLoader=g;var y=function(e){this.dt=e};r([l.Input("pColumnHeaders"),i("design:type",Array)],y.prototype,"columns",void 0),y=r([l.Component({selector:"[pColumnHeaders]",template:'\n <ng-template ngFor let-col [ngForOf]="columns" let-lastCol="last">\n <th #headerCell [attr.id]="col.colId" [ngStyle]="col.headerStyle||col.style" [class]="col.headerStyleClass||col.styleClass" (click)="dt.sort($event,col)" [attr.colspan]="col.colspan" [attr.rowspan]="col.rowspan"\n [ngClass]="{\'ui-state-default ui-unselectable-text\':true, \'ui-sortable-column\': col.sortable, \'ui-state-active\': dt.isSorted(col), \'ui-resizable-column\': dt.resizableColumns, \'ui-selection-column\':col.selectionMode,\n \'ui-helper-hidden\': col.hidden}"\n (dragstart)="dt.onColumnDragStart($event)" (dragleave)="dt.onColumnDragleave($event)" (drop)="dt.onColumnDrop($event)" (mousedown)="dt.onHeaderMousedown($event,headerCell)"\n [attr.tabindex]="col.sortable ? tabindex : null" (keydown)="dt.onHeaderKeydown($event,col)"\n [attr.scope]="col.scope||(col.colspan ? \'colgroup\' : \'col\')">\n <span class="ui-column-resizer ui-clickable" *ngIf="dt.resizableColumns && ((dt.columnResizeMode == \'fit\' && !lastCol) || dt.columnResizeMode == \'expand\')" (mousedown)="dt.initColumnResize($event)"></span>\n <span class="ui-column-title" *ngIf="!col.selectionMode&&!col.headerTemplate">{{col.header}}</span>\n <span class="ui-column-title" *ngIf="col.headerTemplate">\n <p-columnHeaderTemplateLoader [column]="col"></p-columnHeaderTemplateLoader>\n </span>\n <span class="ui-sortable-column-icon fa fa-fw fa-sort" *ngIf="col.sortable"\n [ngClass]="{\'fa-sort-desc\': (dt.getSortOrder(col) == -1),\'fa-sort-asc\': (dt.getSortOrder(col) == 1)}"></span>\n <input [attr.type]="col.filterType" class="ui-column-filter ui-inputtext ui-widget ui-state-default ui-corner-all" [attr.maxlength]="col.filterMaxlength" [attr.placeholder]="col.filterPlaceholder" *ngIf="col.filter&&!col.filterTemplate" [value]="dt.filters[col.filterField||col.field] ? dt.filters[col.filterField||col.field].value : \'\'"\n (click)="dt.onFilterInputClick($event)" (input)="dt.onFilterKeyup($event.target.value, col.filterField||col.field, col.filterMatchMode)"/>\n <p-columnFilterTemplateLoader [column]="col" *ngIf="col.filter&&col.filterTemplate"></p-columnFilterTemplateLoader>\n <p-dtCheckbox *ngIf="col.selectionMode==\'multiple\' && dt.showHeaderCheckbox === true" (onChange)="dt.toggleRowsWithCheckbox($event)" [checked]="dt.allSelected" [disabled]="dt.isEmpty()"></p-dtCheckbox>\n </th>\n </ng-template>\n '}),o(0,l.Inject(l.forwardRef(function(){return w})))],y),t.ColumnHeaders=y;var v=function(e){this.dt=e};r([l.Input("pColumnFooters"),i("design:type",Array)],v.prototype,"columns",void 0),v=r([l.Component({selector:"[pColumnFooters]",template:'\n <td *ngFor="let col of columns" [ngStyle]="col.footerStyle||col.style" [class]="col.footerStyleClass||col.styleClass"\n [attr.colspan]="col.colspan" [attr.rowspan]="col.rowspan"\n [ngClass]="{\'ui-state-default\':true, \'ui-helper-hidden\': col.hidden}">\n <span class="ui-column-footer" *ngIf="!col.footerTemplate">{{col.footer}}</span>\n <span class="ui-column-footer" *ngIf="col.footerTemplate">\n <p-columnFooterTemplateLoader [column]="col"></p-columnFooterTemplateLoader>\n </span>\n </td>\n '}),o(0,l.Inject(l.forwardRef(function(){return w})))],v),t.ColumnFooters=v;var b=function(){function e(e){this.dt=e}return e.prototype.visibleColumns=function(){return this.columns?this.columns.filter(function(e){return!e.hidden}):[]},e}();r([l.Input("pTableBody"),i("design:type",Array)],b.prototype,"columns",void 0),r([l.Input(),i("design:type",Array)],b.prototype,"data",void 0),b=r([l.Component({selector:"[pTableBody]",template:'\n <ng-template ngFor let-rowData [ngForOf]="data" let-even="even" let-odd="odd" let-rowIndex="index" [ngForTrackBy]="dt.rowTrackBy">\n <tr #rowGroupElement class="ui-widget-header ui-rowgroup-header"\n *ngIf="dt.rowGroupMode==\'subheader\' && (rowIndex === 0||(dt.resolveFieldData(rowData,dt.groupField) !== dt.resolveFieldData(dt.dataToRender[rowIndex - 1], dt.groupField)))"\n (click)="dt.onRowGroupClick($event)" [ngStyle]="{\'cursor\': dt.sortableRowGroup ? \'pointer\' : \'auto\'}">\n <td [attr.colspan]="dt.visibleColumns().length">\n <a href="#" *ngIf="dt.expandableRowGroups" (click)="dt.toggleRowGroup($event,rowData)">\n <span class="fa fa-fw" [ngClass]="dt.isRowGroupExpanded(rowData) ? dt.expandedIcon : dt.collapsedIcon"></span>\n </a>\n <span class="ui-rowgroup-header-name">\n <p-templateLoader [template]="dt.rowGroupHeaderTemplate" [data]="rowData"></p-templateLoader>\n </span>\n </td>\n </tr>\n <tr #rowElement *ngIf="!dt.expandableRowGroups||dt.isRowGroupExpanded(rowData)"\n (click)="dt.handleRowClick($event, rowData, rowIndex)" (dblclick)="dt.rowDblclick($event,rowData)" (contextmenu)="dt.onRowRightClick($event,rowData)" (touchend)="dt.handleRowTouchEnd($event)"\n [ngClass]="[even&&dt.rowGroupMode!=\'rowspan\'? \'ui-datatable-even\':\'\',\n odd&&dt.rowGroupMode!=\'rowspan\'?\'ui-datatable-odd\':\'\',\n dt.isSelected(rowData)? \'ui-state-highlight\': \'\',\n dt.isRowExpanded(rowData) ? \'ui-expanded-row\': \'\',\n dt.getRowStyleClass(rowData,rowIndex)]">\n <ng-template ngFor let-col [ngForOf]="columns" let-colIndex="index">\n <td #cell *ngIf="!dt.rowGroupMode || (dt.rowGroupMode == \'subheader\') ||\n (dt.rowGroupMode==\'rowspan\' && ((dt.sortField==col.field && dt.rowGroupMetadata[dt.resolveFieldData(rowData,dt.sortField)].index == rowIndex) || (dt.sortField!=col.field)))"\n [ngStyle]="col.bodyStyle||col.style" [class]="col.bodyStyleClass||col.styleClass" (click)="dt.switchCellToEditMode(cell,col,rowData)"\n [ngClass]="{\'ui-editable-column\':col.editable,\'ui-selection-column\':col.selectionMode, \'ui-helper-hidden\': col.hidden}"\n [attr.rowspan]="(dt.rowGroupMode==\'rowspan\' && dt.sortField == col.field && dt.rowGroupMetadata[dt.resolveFieldData(rowData,dt.sortField)].index == rowIndex) ? dt.rowGroupMetadata[dt.resolveFieldData(rowData,dt.sortField)].size : null">\n <span class="ui-column-title" *ngIf="dt.responsive">{{col.header}}</span>\n <span class="ui-cell-data" *ngIf="!col.bodyTemplate && !col.expander && !col.selectionMode">{{dt.resolveFieldData(rowData,col.field)}}</span>\n <span class="ui-cell-data" *ngIf="col.bodyTemplate">\n <p-columnBodyTemplateLoader [column]="col" [rowData]="rowData" [rowIndex]="rowIndex + dt.first"></p-columnBodyTemplateLoader>\n </span>\n <div class="ui-cell-editor" *ngIf="col.editable">\n <input *ngIf="!col.editorTemplate" type="text" [(ngModel)]="rowData[col.field]"\n (keydown)="dt.onCellEditorKeydown($event, col, rowData, rowIndex)" (blur)="dt.onCellEditorBlur($event, col, rowData, rowIndex)"\n (input)="dt.onCellEditorInput($event, col, rowData, rowIndex)" (change)="dt.onCellEditorChange($event, col, rowData, rowIndex)"\n class="ui-inputtext ui-widget ui-state-default ui-corner-all"/>\n <a *ngIf="col.editorTemplate" class="ui-cell-editor-proxy-focus" href="#" (focus)="dt.onCustomEditorFocusPrev($event, colIndex)"></a>\n <p-columnEditorTemplateLoader *ngIf="col.editorTemplate" [column]="col" [rowData]="rowData" [rowIndex]="rowIndex"></p-columnEditorTemplateLoader>\n <a *ngIf="col.editorTemplate" class="ui-cell-editor-proxy-focus" href="#" (focus)="dt.onCustomEditorFocusNext($event, colIndex)"></a>\n </div>\n <a href="#" *ngIf="col.expander" (click)="dt.toggleRow(rowData,$event)">\n <span class="ui-row-toggler fa fa-fw ui-clickable" [ngClass]="dt.isRowExpanded(rowData) ? dt.expandedIcon : dt.collapsedIcon"></span>\n </a>\n <p-dtRadioButton *ngIf="col.selectionMode==\'single\'" (onClick)="dt.selectRowWithRadio($event, rowData)" [checked]="dt.isSelected(rowData)"></p-dtRadioButton>\n <p-dtCheckbox *ngIf="col.selectionMode==\'multiple\'" (onChange)="dt.toggleRowWithCheckbox($event,rowData)" [checked]="dt.isSelected(rowData)"></p-dtCheckbox>\n </td>\n </ng-template>\n </tr>\n <tr *ngIf="dt.expandableRows && dt.isRowExpanded(rowData)" class="ui-expanded-row-content">\n <td [attr.colspan]="dt.visibleColumns().length">\n <p-rowExpansionLoader [rowData]="rowData" [rowIndex]="rowIndex" [template]="dt.rowExpansionTemplate"></p-rowExpansionLoader>\n </td>\n </tr>\n <tr class="ui-widget-header ui-rowgroup-footer" *ngIf="dt.rowGroupFooterTemplate && dt.rowGroupMode==\'subheader\' && ((rowIndex === dt.dataToRender.length - 1)||(dt.resolveFieldData(rowData,dt.groupField) !== dt.resolveFieldData(dt.dataToRender[rowIndex + 1],dt.groupField))) && (!dt.expandableRowGroups || dt.isRowGroupExpanded(rowData))">\n <p-templateLoader class="ui-helper-hidden" [data]="rowData" [template]="dt.rowGroupFooterTemplate"></p-templateLoader>\n </tr>\n </ng-template>\n\n <tr *ngIf="dt.isEmpty()" class="ui-widget-content ui-datatable-emptymessage-row" [style.visibility]="dt.loading ? \'hidden\' : \'visible\'">\n <td [attr.colspan]="dt.visibleColumns().length" class="ui-datatable-emptymessage">\n <span *ngIf="!dt.emptyMessageTemplate">{{dt.emptyMessage}}</span>\n <p-templateLoader [template]="dt.emptyMessageTemplate"></p-templateLoader>\n </td>\n </tr>\n '}),o(0,l.Inject(l.forwardRef(function(){return w})))],b),t.TableBody=b;var _=function(){function e(e,t,n,r,i){this.dt=e,this.domHandler=t,this.el=n,this.renderer=r,this.zone=i,this.onVirtualScroll=new l.EventEmitter}return e.prototype.ngAfterViewInit=function(){this.initScrolling()},e.prototype.ngAfterViewChecked=function(){var e=this;if(this.virtualScroll&&!this.rowHeight){var t=this.domHandler.findSingle(this.scrollTable,"tr.ui-widget-content:not(.ui-datatable-emptymessage-row)");t&&(this.rowHeight=this.domHandler.getOuterHeight(t))}this.frozen||this.zone.runOutsideAngular(function(){setTimeout(function(){e.alignScrollBar()},1)})},e.prototype.initScrolling=function(){var e=this;this.scrollHeader=this.scrollHeaderViewChild.nativeElement,this.scrollHeaderBox=this.scrollHeaderBoxViewChild.nativeElement,this.scrollBody=this.scrollBodyViewChild.nativeElement,this.scrollTable=this.scrollTableViewChild.nativeElement,this.scrollTableWrapper=this.scrollTableWrapperViewChild.nativeElement,this.scrollFooter=this.scrollFooterViewChild?this.scrollFooterViewChild.nativeElement:null,this.scrollFooterBox=this.scrollFooterBoxViewChild?this.scrollFooterBoxViewChild.nativeElement:null,this.setScrollHeight(),this.frozen||this.zone.runOutsideAngular(function(){e.scrollHeader.addEventListener("scroll",e.onHeaderScroll.bind(e)),e.scrollBody.addEventListener("scroll",e.onBodyScroll.bind(e))}),this.frozen?this.scrollBody.style.paddingBottom=this.domHandler.calculateScrollbarWidth()+"px":this.alignScrollBar()},e.prototype.onBodyScroll=function(e){var t=this,n=this.el.nativeElement.previousElementSibling;if(n)var r=this.domHandler.findSingle(n,".ui-datatable-scrollable-body");if(this.scrollHeaderBox.style.marginLeft=-1*this.scrollBody.scrollLeft+"px",this.scrollFooterBox&&(this.scrollFooterBox.style.marginLeft=-1*this.scrollBody.scrollLeft+"px"),r&&(r.scrollTop=this.scrollBody.scrollTop),this.virtualScroll){var i=this.domHandler.getOuterHeight(this.scrollBody),o=this.domHandler.getOuterHeight(this.scrollTable),l=this.rowHeight*this.dt.rows,a=this.domHandler.getOuterHeight(this.scrollTableWrapper)/l||1;if(this.scrollBody.scrollTop+i>parseFloat(this.scrollTable.style.top)+o||this.scrollBody.scrollTop<parseFloat(this.scrollTable.style.top)){var s=Math.floor(this.scrollBody.scrollTop*a/this.scrollBody.scrollHeight)+1;this.onVirtualScroll.emit({page:s,callback:function(){t.scrollTable.style.top=(s-1)*l+"px"}})}}},e.prototype.setScrollHeight=function(){if(this.dt.scrollHeight)if(-1!==this.dt.scrollHeight.indexOf("%")){this.scrollBody.style.visibility="hidden",this.scrollBody.style.height="100px";var e=this.domHandler.getOuterHeight(this.dt.el.nativeElement.children[0]),t=this.domHandler.getOuterHeight(this.dt.el.nativeElement.parentElement)*parseInt(this.dt.scrollHeight)/100-(e-100);this.scrollBody.style.height="auto",this.scrollBody.style.maxHeight=t+"px",this.scrollBody.style.visibility="visible"}else this.scrollBody.style.maxHeight=this.dt.scrollHeight},e.prototype.onHeaderScroll=function(e){this.scrollHeader.scrollLeft=0},e.prototype.hasVerticalOverflow=function(){return this.domHandler.getOuterHeight(this.scrollTable)>this.domHandler.getOuterHeight(this.scrollBody)},e.prototype.alignScrollBar=function(){var e=this.hasVerticalOverflow()?this.domHandler.calculateScrollbarWidth():0;this.scrollHeaderBox.style.marginRight=e+"px",this.scrollFooterBox&&(this.scrollFooterBox.style.marginRight=e+"px")},e.prototype.ngOnDestroy=function(){this.scrollHeader.removeEventListener("scroll",this.onHeaderScroll),this.scrollBody.removeEventListener("scroll",this.onBodyScroll)},e}();r([l.Input("pScrollableView"),i("design:type",Array)],_.prototype,"columns",void 0),r([l.Input(),i("design:type",d.HeaderColumnGroup)],_.prototype,"headerColumnGroup",void 0),r([l.Input(),i("design:type",d.HeaderColumnGroup)],_.prototype,"footerColumnGroup",void 0),r([l.ViewChild("scrollHeader"),i("design:type",l.ElementRef)],_.prototype,"scrollHeaderViewChild",void 0),r([l.ViewChild("scrollHeaderBox"),i("design:type",l.ElementRef)],_.prototype,"scrollHeaderBoxViewChild",void 0),r([l.ViewChild("scrollBody"),i("design:type",l.ElementRef)],_.prototype,"scrollBodyViewChild",void 0),r([l.ViewChild("scrollTable"),i("design:type",l.ElementRef)],_.prototype,"scrollTableViewChild",void 0),r([l.ViewChild("scrollTableWrapper"),i("design:type",l.ElementRef)],_.prototype,"scrollTableWrapperViewChild",void 0),r([l.ViewChild("scrollFooter"),i("design:type",l.ElementRef)],_.prototype,"scrollFooterViewChild",void 0),r([l.ViewChild("scrollFooterBox"),i("design:type",l.ElementRef)],_.prototype,"scrollFooterBoxViewChild",void 0),r([l.Input(),i("design:type",Boolean)],_.prototype,"frozen",void 0),r([l.Input(),i("design:type",String)],_.prototype,"width",void 0),r([l.Input(),i("design:type",Boolean)],_.prototype,"virtualScroll",void 0),r([l.Output(),i("design:type",l.EventEmitter)],_.prototype,"onVirtualScroll",void 0),_=r([l.Component({selector:"[pScrollableView]",template:'\n <div #scrollHeader class="ui-widget-header ui-datatable-scrollable-header" [ngStyle]="{\'width\': width}">\n <div #scrollHeaderBox class="ui-datatable-scrollable-header-box">\n <table [ngClass]="dt.tableStyleClass" [ngStyle]="dt.tableStyle">\n <thead class="ui-datatable-thead">\n <tr *ngIf="!headerColumnGroup" class="ui-state-default" [pColumnHeaders]="columns"></tr>\n <ng-template [ngIf]="headerColumnGroup">\n <tr *ngFor="let headerRow of headerColumnGroup.rows" class="ui-state-default" [pColumnHeaders]="headerRow.columns"></tr>\n </ng-template>\n </thead>\n <tbody *ngIf="dt.frozenValue" [ngClass]="{\'ui-datatable-data ui-widget-content\': true, \'ui-datatable-hoverable-rows\': (dt.rowHover||dt.selectionMode)}" [pTableBody]="columns" [data]="dt.frozenValue"></tbody>\n </table>\n </div>\n </div>\n <div #scrollBody class="ui-datatable-scrollable-body" [ngStyle]="{\'width\': width}">\n <div #scrollTableWrapper class="ui-datatable-scrollable-table-wrapper" style="position:relative">\n <table #scrollTable [class]="dt.tableStyleClass" [ngStyle]="dt.tableStyle" [ngClass]="{\'ui-datatable-virtual-table\':virtualScroll}" style="top:0px">\n <colgroup class="ui-datatable-scrollable-colgroup">\n <col *ngFor="let col of columns" [ngStyle]="col.headerStyle||col.style" [ngClass]="{\'ui-helper-hidden\': col.hidden}"/>\n </colgroup>\n <tbody [ngClass]="{\'ui-datatable-data ui-widget-content\': true, \'ui-datatable-hoverable-rows\': (dt.rowHover||dt.selectionMode)}" [pTableBody]="columns" [data]="dt.dataToRender"></tbody>\n </table>\n </div>\n </div>\n <div #scrollFooter class="ui-widget-header ui-datatable-scrollable-footer" [ngStyle]="{\'width\': width}" *ngIf="dt.hasFooter()">\n <div #scrollFooterBox class="ui-datatable-scrollable-footer-box">\n <table [ngClass]="dt.tableStyleClass" [ngStyle]="dt.tableStyle">\n <tfoot class="ui-datatable-tfoot">\n <tr *ngIf="!footerColumnGroup" [pColumnFooters]="columns" class="ui-state-default"></tr>\n <ng-template [ngIf]="footerColumnGroup">\n <tr *ngFor="let footerRow of footerColumnGroup.rows" class="ui-state-default" [pColumnFooters]="footerRow.columns"></tr>\n </ng-template>\n </tfoot>\n </table>\n </div>\n </div>\n '}),o(0,l.Inject(l.forwardRef(function(){return w})))],_),t.ScrollableView=_;var w=function(){function e(e,t,n,r,i,o,a){this.el=e,this.domHandler=t,this.differs=n,this.renderer=r,this.changeDetector=i,this.objectUtils=o,this.zone=a,this.pageLinks=5,this.selectionChange=new l.EventEmitter,this.showHeaderCheckbox=!0,this.onRowClick=new l.EventEmitter,this.onRowSelect=new l.EventEmitter,this.onRowUnselect=new l.EventEmitter,this.onRowDblclick=new l.EventEmitter,this.onHeaderCheckboxToggle=new l.EventEmitter,this.onContextMenuSelect=new l.EventEmitter,this.filterDelay=300,this.onLazyLoad=new l.EventEmitter,this.columnResizeMode="fit",this.onColResize=new l.EventEmitter,this.onColReorder=new l.EventEmitter,this.sortMode="single",this.defaultSortOrder=1,this.csvSeparator=",",this.exportFilename="download",this.emptyMessage="No records found",this.paginatorPosition="bottom",this.alwaysShowPaginator=!0,this.metaKeySelection=!0,this.rowTrackBy=function(e,t){return t},this.immutable=!0,this.compareSelectionBy="deepEquals",this.onEditInit=new l.EventEmitter,this.onEditComplete=new l.EventEmitter,this.onEdit=new l.EventEmitter,this.onEditCancel=new l.EventEmitter,this.onPage=new l.EventEmitter,this.onSort=new l.EventEmitter,this.onFilter=new l.EventEmitter,this.rowExpandMode="multiple",this.expandedIcon="fa-chevron-circle-down",this.collapsedIcon="fa-chevron-circle-right",this.tabindex=1,this.sortableRowGroup=!0,this.filters={},this.loadingIcon="fa-circle-o-notch",this.virtualScrollDelay=500,this.rowGroupExpandMode="multiple",this.valueChange=new l.EventEmitter,this.firstChange=new l.EventEmitter,this.onRowExpand=new l.EventEmitter,this.onRowCollapse=new l.EventEmitter,this.onRowGroupExpand=new l.EventEmitter,this.onRowGroupCollapse=new l.EventEmitter,this.page=0,this.columnsChanged=!1,this._first=0,this._sortOrder=1,this.filterConstraints={startsWith:function(e,t){if(void 0===t||null===t||""===t.trim())return!0;if(void 0===e||null===e)return!1;var n=t.toLowerCase();return e.toString().toLowerCase().slice(0,n.length)===n},contains:function(e,t){return void 0===t||null===t||"string"==typeof t&&""===t.trim()||void 0!==e&&null!==e&&-1!==e.toString().toLowerCase().indexOf(t.toLowerCase())},endsWith:function(e,t){if(void 0===t||null===t||""===t.trim())return!0;if(void 0===e||null===e)return!1;var n=t.toString().toLowerCase();return-1!==e.toString().toLowerCase().indexOf(n,e.toString().length-n.length)},equals:function(e,t){return void 0===t||null===t||"string"==typeof t&&""===t.trim()||void 0!==e&&null!==e&&e.toString().toLowerCase()==t.toString().toLowerCase()},notEquals:function(e,t){return!(void 0===t||null===t||"string"==typeof t&&""===t.trim()||void 0!==e&&null!==e&&e.toString().toLowerCase()==t.toString().toLowerCase())},in:function(e,t){if(void 0===t||null===t||0===t.length)return!0;if(void 0===e||null===e)return!1;for(var n=0;n<t.length;n++)if(t[n]===e)return!0;return!1}},this.differ=n.find([]).create(null)}return e.prototype.ngOnInit=function(){this.lazy&&this.onLazyLoad.emit(this.createLazyLoadMetadata())},e.prototype.ngAfterContentInit=function(){var e=this;this.initColumns(),this.initColumnGroups(),this.columnsSubscription=this.cols.changes.subscribe(function(t){e.initColumns(),e.changeDetector.markForCheck()}),this.templates.forEach(function(t){switch(t.getType()){case"rowexpansion":e.rowExpansionTemplate=t.template;break;case"rowgroupheader":e.rowGroupHeaderTemplate=t.template;break;case"rowgroupfooter":e.rowGroupFooterTemplate=t.template;break;case"emptymessage":e.emptyMessageTemplate=t.template}})},e.prototype.ngAfterViewChecked=function(){if(this.columnsChanged&&this.el.nativeElement.offsetParent&&(this.resizableColumns&&this.initResizableColumns(),this.reorderableColumns&&this.initColumnReordering(),this.columnsChanged=!1),this.totalRecordsChanged&&this.virtualScroll&&this.virtualScrollableTableWrapper&&this.virtualScrollableTableWrapper.offsetParent){var e=this.domHandler.findSingle(this.virtualScrollableTableWrapper,"tr.ui-widget-content"),t=this.domHandler.getOuterHeight(e);this.virtualTableHeight=this._totalRecords*t,this.virtualScrollableTableWrapper.style.height=this.virtualTableHeight+"px",this.totalRecordsChanged=!1}},e.prototype.ngAfterViewInit=function(){var e=this;this.globalFilter&&(this.globalFilterFunction=this.renderer.listen(this.globalFilter,"keyup",function(){e.filterTimeout&&clearTimeout(e.filterTimeout),e.filterTimeout=setTimeout(function(){e._filter(),e.filterTimeout=null},e.filterDelay)})),this.virtualScrollableTableWrapper=this.domHandler.findSingle(this.el.nativeElement,"div.ui-datatable-scrollable-table-wrapper"),this.initialized=!0},Object.defineProperty(e.prototype,"multiSortMeta",{get:function(){return this._multiSortMeta},set:function(e){this._multiSortMeta=e,"multiple"===this.sortMode&&this.sortMultiple()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sortField",{get:function(){return this._sortField},set:function(e){this._sortField=e,"single"===this.sortMode&&this.sortSingle()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"sortOrder",{get:function(){return this._sortOrder},set:function(e){this._sortOrder=e,"single"===this.sortMode&&this.sortSingle()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this.immutable?(this._value=e?e.slice():null,this.handleDataChange()):this._value=e,this.valueChange.emit(this.value)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"first",{get:function(){return this._first},set:function(e){var t=this.initialized&&this._first!==e;this._first=e,t&&this.paginate()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"totalRecords",{get:function(){return this._totalRecords},set:function(e){this._totalRecords=e,this.totalRecordsChanged=!0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selection",{get:function(){return this._selection},set:function(e){if(this._selection=e,this.dataKey&&!this.preventSelectionKeysPropagation&&(this.selectionKeys={},this._selection))if(Array.isArray(this._selection))for(var t=0,n=this._selection;t<n.length;t++){var r=n[t];this.selectionKeys[String(this.objectUtils.resolveFieldData(r,this.dataKey))]=1}else this.selectionKeys[String(this.objectUtils.resolveFieldData(this._selection,this.dataKey))]=1;this.preventSelectionKeysPropagation=!1},enumerable:!0,configurable:!0}),e.prototype.ngDoCheck=function(){this.immutable||this.differ.diff(this.value)&&this.handleDataChange()},e.prototype.handleDataChange=function(){var e=this;this.paginator&&this.updatePaginator(),this.virtualScroll&&this.virtualScrollCallback&&this.virtualScrollCallback(),this.lazy||(this.hasFilter()&&this._filter(),this.preventSortPropagation?this.preventSortPropagation=!1:(this.sortField||this.multiSortMeta)&&(!this.sortColumn&&this.columns&&(this.sortColumn=this.columns.find(function(t){return t.field===e.sortField&&"custom"===t.sortable})),"single"==this.sortMode?this.sortSingle():"multiple"==this.sortMode&&this.sortMultiple())),this.updateDataToRender(this.filteredValue||this.value)},e.prototype.initColumns=function(){this.columns=this.cols.toArray(),this.initScrollableColumns(),this.columnsChanged=!0},e.prototype.initScrollableColumns=function(){this.scrollableColumns=[],this.frozenColumns=[];for(var e=0,t=this.columns;e<t.length;e++){var n=t[e];n.frozen?this.frozenColumns.push(n):this.scrollableColumns.push(n)}},e.prototype.initColumnGroups=function(){for(var e=this.headerColumnGroups.toArray(),t=this.footerColumnGroups.toArray(),n=0,r=e;n<r.length;n++)(l=r[n]).frozen?this.frozenHeaderColumnGroup=l:this.scrollableHeaderColumnGroup=l;for(var i=0,o=t;i<o.length;i++){var l;(l=o[i]).frozen?this.frozenFooterColumnGroup=l:this.scrollableFooterColumnGroup=l}},e.prototype.resolveFieldData=function(e,t){return this.objectUtils.resolveFieldData(e,t)},e.prototype.updateRowGroupMetadata=function(){if(this.rowGroupMetadata={},this.dataToRender)for(var e=0;e<this.dataToRender.length;e++){var t=this.resolveFieldData(this.dataToRender[e],this.sortField);0==e?this.rowGroupMetadata[t]={index:0,size:1}:t===this.resolveFieldData(this.dataToRender[e-1],this.sortField)?this.rowGroupMetadata[t].size++:this.rowGroupMetadata[t]={index:e,size:1}}},e.prototype.updatePaginator=function(){if(this.updateTotalRecords(),this.totalRecords&&this.first>=this.totalRecords){var e=Math.ceil(this.totalRecords/this.rows);this._first=Math.max((e-1)*this.rows,0)}},e.prototype.updateTotalRecords=function(){this.totalRecords=this.lazy?this.totalRecords:this.value?this.value.length:0},e.prototype.onPageChange=function(e){this._first=e.first,this.firstChange.emit(this.first),this.rows=e.rows,this.paginate()},e.prototype.paginate=function(){this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.updateDataToRender(this.filteredValue||this.value),this.onPage.emit({first:this.first,rows:this.rows})},e.prototype.updateDataToRender=function(e){if((this.paginator||this.virtualScroll)&&e){this.dataToRender=[];for(var t=this.lazy?0:this.first,n=this.virtualScroll?this.first+2*this.rows:t+this.rows,r=t;r<n&&!(r>=e.length);r++)this.dataToRender.push(e[r])}else this.dataToRender=e;this.rowGroupMode&&this.updateRowGroupMetadata()},e.prototype.onVirtualScroll=function(e){var t=this;this._first=(e.page-1)*this.rows,this.virtualScrollCallback=e.callback,this.zone.run(function(){t.virtualScrollTimer&&clearTimeout(t.virtualScrollTimer),t.virtualScrollTimer=setTimeout(function(){t.lazy?t.onLazyLoad.emit(t.createLazyLoadMetadata()):t.updateDataToRender(t.filteredValue||t.value)},t.virtualScrollDelay)})},e.prototype.onHeaderKeydown=function(e,t){13==e.keyCode&&(this.sort(e,t),e.preventDefault())},e.prototype.onHeaderMousedown=function(e,t){this.reorderableColumns&&("INPUT"!==e.target.nodeName?t.draggable=!0:"INPUT"===e.target.nodeName&&(t.draggable=!1))},e.prototype.sort=function(e,t){if(t.sortable){var n=e.target.nodeName;if("TH"==n&&this.domHandler.hasClass(e.target,"ui-sortable-column")||("SPAN"==n||"DIV"==n)&&!this.domHandler.hasClass(e.target,"ui-clickable")){this.immutable||(this.preventSortPropagation=!0);var r=t.sortField||t.field;this._sortOrder=this.sortField===r?-1*this.sortOrder:this.defaultSortOrder,this._sortField=r,this.sortColumn=t,"multiple"==this.sortMode&&(this.multiSortMeta&&(e.metaKey||e.ctrlKey)||(this._multiSortMeta=[]),this.addSortMeta({field:this.sortField,order:this.sortOrder})),this.lazy?(this._first=0,this.onLazyLoad.emit(this.createLazyLoadMetadata())):"multiple"==this.sortMode?this.sortMultiple():this.sortSingle(),this.onSort.emit({field:this.sortField,order:this.sortOrder,multisortmeta:this.multiSortMeta})}this.updateDataToRender(this.filteredValue||this.value)}},e.prototype.sortSingle=function(){var e=this;this.value&&(this.sortColumn&&"custom"===this.sortColumn.sortable?(this.preventSortPropagation=!0,this.sortColumn.sortFunction.emit({field:this.sortField,order:this.sortOrder})):this.value.sort(function(t,n){var r=e.resolveFieldData(t,e.sortField),i=e.resolveFieldData(n,e.sortField),o=null;return o=null==r&&null!=i?-1:null!=r&&null==i?1:null==r&&null==i?0:"string"==typeof r&&"string"==typeof i?r.localeCompare(i):r<i?-1:r>i?1:0,e.sortOrder*o}),this._first=0,this.hasFilter()&&this._filter())},e.prototype.sortMultiple=function(){var e=this;this.value&&(this.value.sort(function(t,n){return e.multisortField(t,n,e.multiSortMeta,0)}),this.hasFilter()&&this._filter())},e.prototype.multisortField=function(e,t,n,r){var i=this.resolveFieldData(e,n[r].field),o=this.resolveFieldData(t,n[r].field),l=null;if("string"==typeof i||i instanceof String){if(i.localeCompare&&i!=o)return n[r].order*i.localeCompare(o)}else l=i<o?-1:1;return i==o?n.length-1>r?this.multisortField(e,t,n,r+1):0:n[r].order*l},e.prototype.addSortMeta=function(e){for(var t=-1,n=0;n<this.multiSortMeta.length;n++)if(this.multiSortMeta[n].field===e.field){t=n;break}t>=0?this.multiSortMeta[t]=e:this.multiSortMeta.push(e)},e.prototype.isSorted=function(e){if(!e.sortable)return!1;var t=e.sortField||e.field;if("single"===this.sortMode)return this.sortField&&t===this.sortField;if("multiple"===this.sortMode){var n=!1;if(this.multiSortMeta)for(var r=0;r<this.multiSortMeta.length;r++)if(this.multiSortMeta[r].field==t){n=!0;break}return n}},e.prototype.getSortOrder=function(e){var t=0,n=e.sortField||e.field;if("single"===this.sortMode)this.sortField&&n===this.sortField&&(t=this.sortOrder);else if("multiple"===this.sortMode&&this.multiSortMeta)for(var r=0;r<this.multiSortMeta.length;r++)if(this.multiSortMeta[r].field==n){t=this.multiSortMeta[r].order;break}return t},e.prototype.onRowGroupClick=function(e){if(this.rowGroupToggleClick)this.rowGroupToggleClick=!1;else if(this.sortableRowGroup){var t=e.target.nodeName;("TD"==t||"SPAN"==t&&!this.domHandler.hasClass(e.target,"ui-clickable"))&&(this.sortField!=this.groupField?(this._sortField=this.groupField,this.sortSingle()):(this._sortOrder=-1*this.sortOrder,this.sortSingle()))}},e.prototype.clearSelectionRange=function(){var e,t;this.rangeRowIndex>this.anchorRowIndex?(e=this.anchorRowIndex,t=this.rangeRowIndex):this.rangeRowIndex<this.anchorRowIndex?(e=this.rangeRowIndex,t=this.anchorRowIndex):(e=this.rangeRowIndex,t=this.rangeRowIndex);for(var n=function(e){var t=r.dataToRender[e],n=r.findIndexInSelection(t);r._selection=r.selection.filter(function(e,t){return t!=n});var i=r.dataKey?String(r.resolveFieldData(t,r.dataKey)):null;i&&delete r.selectionKeys[i],r.onRowUnselect.emit({originalEvent:event,data:t,type:"row"})},r=this,i=e;i<=t;i++)n(i)},e.prototype.selectRange=function(e){var t,n;this.anchorRowIndex>e?(t=e,n=this.anchorRowIndex):this.anchorRowIndex<e?(t=this.anchorRowIndex,n=e):(t=e,n=e);for(var r=t;r<=n;r++){var i=this.dataToRender[r];this._selection=this.selection.concat([i]),this.selectionChange.emit(this.selection);var o=this.dataKey?String(this.resolveFieldData(i,this.dataKey)):null;o&&(this.selectionKeys[o]=1),this.onRowSelect.emit({originalEvent:event,data:i,type:"row"})}},e.prototype.handleRowClick=function(e,t,n){if(this.preventRowClickPropagation)this.preventRowClickPropagation=!1;else{var r=e.target.nodeName;if("INPUT"!=r&&"BUTTON"!=r&&"A"!=r&&!this.domHandler.hasClass(e.target,"ui-clickable")){if(this.onRowClick.next({originalEvent:e,data:t}),this.selectionMode){if(this.isMultipleSelectionMode()&&e.shiftKey&&null!=this.anchorRowIndex)this.domHandler.clearSelection(),null!=this.rangeRowIndex&&this.clearSelectionRange(),this.rangeRowIndex=n,this.selectRange(n);else{var i=this.isSelected(t),o=!this.rowTouched&&this.metaKeySelection,l=this.dataKey?String(this.resolveFieldData(t,this.dataKey)):null;if(this.anchorRowIndex=n,this.rangeRowIndex=n,o){var a=e.metaKey||e.ctrlKey;if(i&&a){if(this.isSingleSelectionMode())this._selection=null,this.selectionKeys={},this.selectionChange.emit(null);else{var s=this.findIndexInSelection(t);this._selection=this.selection.filter(function(e,t){return t!=s}),this.selectionChange.emit(this.selection),l&&delete this.selectionKeys[l]}this.onRowUnselect.emit({originalEvent:e,data:t,type:"row"})}else this.isSingleSelectionMode()?(this._selection=t,this.selectionChange.emit(t),l&&(this.selectionKeys={},this.selectionKeys[l]=1)):this.isMultipleSelectionMode()&&(a?this._selection=this.selection||[]:(this._selection=[],this.selectionKeys={}),this._selection=this.selection.concat([t]),this.selectionChange.emit(this.selection),l&&(this.selectionKeys[l]=1)),this.onRowSelect.emit({originalEvent:e,data:t,type:"row"})}else if(this.isSingleSelectionMode())i?(this._selection=null,this.selectionKeys={},this.onRowUnselect.emit({originalEvent:e,data:t,type:"row"})):(this._selection=t,this.onRowSelect.emit({originalEvent:e,data:t,type:"row"}),l&&(this.selectionKeys={},this.selectionKeys[l]=1));else if(i){var u=this.findIndexInSelection(t);this._selection=this.selection.filter(function(e,t){return t!=u}),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:e,data:t,type:"row"}),l&&delete this.selectionKeys[l]}else this._selection=(this.selection||[]).concat([t]),this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:e,data:t,type:"row"}),l&&(this.selectionKeys[l]=1)}this.preventSelectionKeysPropagation=!0}this.rowTouched=!1}}},e.prototype.handleRowTouchEnd=function(e){this.rowTouched=!0},e.prototype.selectRowWithRadio=function(e,t){this.selection!=t?(this._selection=t,this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:e,data:t,type:"radiobutton"}),this.dataKey&&(this.selectionKeys={},this.selectionKeys[String(this.resolveFieldData(t,this.dataKey))]=1)):(this._selection=null,this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:e,data:t,type:"radiobutton"})),this.preventSelectionKeysPropagation=!0,this.preventRowClickPropagation=!0},e.prototype.toggleRowWithCheckbox=function(e,t){var n=this.findIndexInSelection(t);this.selection=this.selection||[];var r=this.dataKey?String(this.resolveFieldData(t,this.dataKey)):null;-1!=n?(this._selection=this.selection.filter(function(e,t){return t!=n}),this.selectionChange.emit(this.selection),this.onRowUnselect.emit({originalEvent:e,data:t,type:"checkbox"}),r&&delete this.selectionKeys[r]):(this._selection=this.selection.concat([t]),this.selectionChange.emit(this.selection),this.onRowSelect.emit({originalEvent:e,data:t,type:"checkbox"}),r&&(this.selectionKeys[r]=1)),this.preventSelectionKeysPropagation=!0,this.preventRowClickPropagation=!0},e.prototype.toggleRowsWithCheckbox=function(e){this.selection=e.checked?this.headerCheckboxToggleAllPages?this.value.slice():this.dataToRender.slice():[],this.selectionChange.emit(this.selection),this.onHeaderCheckboxToggle.emit({originalEvent:e,checked:e.checked})},e.prototype.onRowRightClick=function(e,t){if(this.contextMenu){var n=-1!=this.findIndexInSelection(t);this.dataKey&&String(this.resolveFieldData(t,this.dataKey)),n||(this.isSingleSelectionMode()?(this.selection=t,this.selectionChange.emit(t)):this.isMultipleSelectionMode()&&(this.selection=[t],this.selectionChange.emit(this.selection)),this.dataKey&&(this.selectionKeys[String(this.resolveFieldData(t,this.dataKey))]=1,this.preventSelectionKeysPropagation=!0)),this.contextMenu.show(e),this.onContextMenuSelect.emit({originalEvent:e,data:t})}},e.prototype.rowDblclick=function(e,t){this.onRowDblclick.emit({originalEvent:e,data:t})},e.prototype.isSingleSelectionMode=function(){return"single"===this.selectionMode},e.prototype.isMultipleSelectionMode=function(){return"multiple"===this.selectionMode},e.prototype.findIndexInSelection=function(e){var t=-1;if(this.selection)for(var n=0;n<this.selection.length;n++)if(this.equals(e,this.selection[n])){t=n;break}return t},e.prototype.isSelected=function(e){return!(!e||!this.selection)&&(this.dataKey?void 0!==this.selectionKeys[this.objectUtils.resolveFieldData(e,this.dataKey)]:this.selection instanceof Array?this.findIndexInSelection(e)>-1:this.equals(e,this.selection))},e.prototype.equals=function(e,t){return"equals"===this.compareSelectionBy?e===t:this.objectUtils.equals(e,t,this.dataKey)},Object.defineProperty(e.prototype,"allSelected",{get:function(){if(this.headerCheckboxToggleAllPages)return this.selection&&this.value&&this.selection.length===this.value.length;var e=!0;if(this.dataToRender&&this.selection&&this.dataToRender.length<=this.selection.length){for(var t=0,n=this.dataToRender;t<n.length;t++)if(!this.isSelected(n[t])){e=!1;break}}else e=!1;return e},enumerable:!0,configurable:!0}),e.prototype.onFilterKeyup=function(e,t,n){var r=this;this.filterTimeout&&clearTimeout(this.filterTimeout),this.filterTimeout=setTimeout(function(){r.filter(e,t,n),r.filterTimeout=null},this.filterDelay)},e.prototype.filter=function(e,t,n){this.isFilterBlank(e)?this.filters[t]&&delete this.filters[t]:this.filters[t]={value:e,matchMode:n},this._filter()},e.prototype.isFilterBlank=function(e){return null===e||void 0===e||"string"==typeof e&&0==e.trim().length||e instanceof Array&&0==e.length},e.prototype._filter=function(){if(this._first=0,this.lazy)this.onLazyLoad.emit(this.createLazyLoadMetadata());else{if(!this.value||!this.columns)return;this.filteredValue=[];for(var e=0;e<this.value.length;e++){for(var t=!0,n=!1,r=0;r<this.columns.length;r++){var i=this.columns[r],o=this.filters[i.filterField||i.field];if(o){var l=o.value,a=o.matchMode||"startsWith",s=this.resolveFieldData(this.value[e],i.filterField||i.field);if((0,this.filterConstraints[a])(s,l)||(t=!1),!t)break}i.excludeGlobalFilter||!this.globalFilter||n||(n=this.filterConstraints.contains(this.resolveFieldData(this.value[e],i.filterField||i.field),this.globalFilter.value))}var u=t;this.globalFilter&&(u=t&&n),u&&this.filteredValue.push(this.value[e])}this.filteredValue.length===this.value.length&&(this.filteredValue=null),this.paginator&&(this.totalRecords=this.filteredValue?this.filteredValue.length:this.value?this.value.length:0),this.updateDataToRender(this.filteredValue||this.value)}this.onFilter.emit({filters:this.filters,filteredValue:this.filteredValue||this.value})},e.prototype.hasFilter=function(){var e=!0;for(var t in this.filters)if(this.filters.hasOwnProperty(t)){e=!1;break}return!e||this.globalFilter&&this.globalFilter.value&&this.globalFilter.value.trim().length},e.prototype.onFilterInputClick=function(e){e.stopPropagation()},e.prototype.switchCellToEditMode=function(e,t,n){var r=this;if(!this.selectionMode&&this.editable&&t.editable&&(this.editorClick=!0,this.bindDocumentEditListener(),e!=this.editingCell)){this.editingCell&&0==this.domHandler.find(this.editingCell,".ng-invalid.ng-dirty").length&&this.domHandler.removeClass(this.editingCell,"ui-cell-editing"),this.editingCell=e,this.onEditInit.emit({column:t,data:n}),this.domHandler.addClass(e,"ui-cell-editing");var i=this.domHandler.findSingle(e,".ui-cell-editor input");i&&setTimeout(function(){return r.domHandler.invokeElementMethod(i,"focus")},50)}},e.prototype.switchCellToViewMode=function(e){this.editingCell=null;var t=this.findCell(e);this.domHandler.removeClass(t,"ui-cell-editing"),this.unbindDocumentEditListener()},e.prototype.closeCell=function(){this.editingCell&&(this.domHandler.removeClass(this.editingCell,"ui-cell-editing"),this.editingCell=null,this.unbindDocumentEditListener())},e.prototype.bindDocumentEditListener=function(){var e=this;this.documentEditListener||(this.documentEditListener=this.renderer.listen("document","click",function(t){e.editorClick||e.closeCell(),e.editorClick=!1}))},e.prototype.unbindDocumentEditListener=function(){this.documentEditListener&&(this.documentEditListener(),this.documentEditListener=null)},e.prototype.onCellEditorKeydown=function(e,t,n,r){this.editable&&(13==e.keyCode?0==this.domHandler.find(this.editingCell,".ng-invalid.ng-dirty").length&&(this.switchCellToViewMode(e.target),e.preventDefault()):27==e.keyCode?(this.switchCellToViewMode(e.target),e.preventDefault()):9==e.keyCode&&(e.shiftKey?this.moveToPreviousCell(e):this.moveToNextCell(e)))},e.prototype.onCellEditorInput=function(e,t,n,r){this.editable&&this.onEdit.emit({originalEvent:e,column:t,data:n,index:r})},e.prototype.onCellEditorChange=function(e,t,n,r){this.editable&&(this.editChanged=!0,this.onEditComplete.emit({column:t,data:n,index:r}))},e.prototype.onCellEditorBlur=function(e,t,n,r){this.editable&&(this.editChanged?this.editChanged=!1:this.onEditCancel.emit({column:t,data:n,index:r}))},e.prototype.moveToPreviousCell=function(e){var t=this.findCell(e.target),n=this.findPreviousEditableColumn(t);n&&(this.domHandler.invokeElementMethod(n,"click"),e.preventDefault())},e.prototype.moveToNextCell=function(e){var t=this.findCell(e.target),n=this.findNextEditableColumn(t);n&&(this.domHandler.invokeElementMethod(n,"click"),e.preventDefault())},e.prototype.findPreviousEditableColumn=function(e){var t=e.previousElementSibling;if(!t){var n=e.parentElement.previousElementSibling;n&&(t=n.lastElementChild)}return t?this.domHandler.hasClass(t,"ui-editable-column")?t:this.findPreviousEditableColumn(t):null},e.prototype.findNextEditableColumn=function(e){var t=e.nextElementSibling;if(!t){var n=e.parentElement.nextElementSibling;n&&(t=n.firstElementChild)}return t?this.domHandler.hasClass(t,"ui-editable-column")?t:this.findNextEditableColumn(t):null},e.prototype.onCustomEditorFocusPrev=function(e){this.moveToPreviousCell(e)},e.prototype.onCustomEditorFocusNext=function(e){this.moveToNextCell(e)},e.prototype.findCell=function(e){if(e){for(var t=e;t&&"TD"!=t.tagName;)t=t.parentElement;return t}return null},e.prototype.initResizableColumns=function(){this.tbody=this.domHandler.findSingle(this.el.nativeElement,"tbody.ui-datatable-data"),this.resizerHelper=this.domHandler.findSingle(this.el.nativeElement,"div.ui-column-resizer-helper"),this.fixColumnWidths()},e.prototype.onDocumentMouseMove=function(e){this.columnResizing&&this.onColumnResize(e)},e.prototype.onDocumentMouseUp=function(e){this.columnResizing&&(this.columnResizing=!1,this.onColumnResizeEnd(e))},e.prototype.bindColumnResizeEvents=function(){var e=this;this.zone.runOutsideAngular(function(){window.document.addEventListener("mousemove",e.onDocumentMouseMove.bind(e))}),this.documentColumnResizeEndListener=this.renderer.listen("document","mouseup",function(t){e.columnResizing&&(e.columnResizing=!1,e.onColumnResizeEnd(t))})},e.prototype.unbindColumnResizeEvents=function(){window.document.removeEventListener("mousemove",this.onDocumentMouseMove),this.documentColumnResizeEndListener&&(this.documentColumnResizeEndListener(),this.documentColumnResizeEndListener=null)},e.prototype.initColumnResize=function(e){this.bindColumnResizeEvents();var t=this.el.nativeElement.children[0],n=this.domHandler.getOffset(t).left;this.resizeColumn=e.target.parentElement,this.columnResizing=!0,this.lastResizerHelperX=e.pageX-n+t.scrollLeft},e.prototype.onColumnResize=function(e){var t=this.el.nativeElement.children[0],n=this.domHandler.getOffset(t).left;this.domHandler.addClass(t,"ui-unselectable-text"),this.resizerHelper.style.height=t.offsetHeight+"px",this.resizerHelper.style.top="0px",this.resizerHelper.style.left=e.pageX-n+t.scrollLeft+"px",this.resizerHelper.style.display="block"},e.prototype.onColumnResizeEnd=function(e){var t=this.resizerHelper.offsetLeft-this.lastResizerHelperX,n=this.resizeColumn.offsetWidth,r=n+t,i=this.resizeColumn.style.minWidth||15;if(n+t>parseInt(i)){if("fit"===this.columnResizeMode){var o=this.resizeColumn.nextElementSibling,l=o.offsetWidth-t;if(r>15&&l>15&&(this.resizeColumn.style.width=r+"px",o&&(o.style.width=l+"px"),this.scrollable)){var a=this.domHandler.findSingle(this.el.nativeElement,"colgroup.ui-datatable-scrollable-colgroup"),s=this.domHandler.index(this.resizeColumn);a.children[s].style.width=r+"px",o&&(a.children[s+1].style.width=l+"px")}}else if("expand"===this.columnResizeMode){this.tbody.parentElement.style.width=this.tbody.parentElement.offsetWidth+t+"px",this.resizeColumn.style.width=r+"px";var u=this.tbody.parentElement.style.width;this.scrollable?(this.domHandler.findSingle(this.el.nativeElement,".ui-datatable-scrollable-header-box").children[0].style.width=u,a=this.domHandler.findSingle(this.el.nativeElement,"colgroup.ui-datatable-scrollable-colgroup"),s=this.domHandler.index(this.resizeColumn),a.children[s].style.width=r+"px"):this.el.nativeElement.children[0].style.width=u}this.onColResize.emit({element:this.resizeColumn,delta:t})}this.resizerHelper.style.display="none",this.resizeColumn=null,this.domHandler.removeClass(this.el.nativeElement.children[0],"ui-unselectable-text"),this.unbindColumnResizeEvents()},e.prototype.fixColumnWidths=function(){for(var e,t=this.domHandler.find(this.el.nativeElement,"th.ui-resizable-column"),n=0;n<t.length;n++)t[n].style.width=t[n].offsetWidth+"px";if(this.scrollable&&(e=this.domHandler.findSingle(this.el.nativeElement,"colgroup.ui-datatable-scrollable-colgroup").children))for(n=0;n<t.length;n++)e[n].style.width=t[n].offsetWidth+"px"},e.prototype.onColumnDragStart=function(e){var t=this;this.columnResizing?e.preventDefault():(this.draggedColumn=this.findParentHeader(e.target),e.dataTransfer.setData("text","b"),this.zone.runOutsideAngular(function(){window.document.addEventListener("dragover",t.onColumnDragover.bind(t))}))},e.prototype.onColumnDragover=function(e){var t=this.findParentHeader(e.target);if(this.reorderableColumns&&this.draggedColumn&&t){e.preventDefault();var n=this.domHandler.getOffset(this.el.nativeElement.children[0]),r=this.domHandler.getOffset(t);if(this.draggedColumn!=t){var i=r.left-n.left,o=r.left+t.offsetWidth/2;this.reorderIndicatorUp.style.top=r.top-n.top-(this.iconHeight-1)+"px",this.reorderIndicatorDown.style.top=r.top-n.top+t.offsetHeight+"px",e.pageX>o?(this.reorderIndicatorUp.style.left=i+t.offsetWidth-Math.ceil(this.iconWidth/2)+"px",this.reorderIndicatorDown.style.left=i+t.offsetWidth-Math.ceil(this.iconWidth/2)+"px",this.dropPosition=1):(this.reorderIndicatorUp.style.left=i-Math.ceil(this.iconWidth/2)+"px",this.reorderIndicatorDown.style.left=i-Math.ceil(this.iconWidth/2)+"px",this.dropPosition=-1),this.reorderIndicatorUp.style.display="block",this.reorderIndicatorDown.style.display="block"}else e.dataTransfer.dropEffect="none"}},e.prototype.onColumnDragleave=function(e){this.reorderableColumns&&this.draggedColumn&&(e.preventDefault(),this.reorderIndicatorUp.style.display="none",this.reorderIndicatorDown.style.display="none",window.document.removeEventListener("dragover",this.onColumnDragover))},e.prototype.onColumnDrop=function(e){if(e.preventDefault(),this.draggedColumn){var t=this.domHandler.index(this.draggedColumn),n=this.domHandler.index(this.findParentHeader(e.target)),r=t!=n;r&&(n-t==1&&-1===this.dropPosition||t-n==1&&1===this.dropPosition)&&(r=!1),r&&(this.objectUtils.reorderArray(this.columns,t,n),this.scrollable&&this.initScrollableColumns(),this.onColReorder.emit({dragIndex:t,dropIndex:n,columns:this.columns})),this.reorderIndicatorUp.style.display="none",this.reorderIndicatorDown.style.display="none",this.draggedColumn.draggable=!1,this.draggedColumn=null,this.dropPosition=null}},e.prototype.initColumnReordering=function(){this.reorderIndicatorUp=this.domHandler.findSingle(this.el.nativeElement.children[0],"span.ui-datatable-reorder-indicator-up"),this.reorderIndicatorDown=this.domHandler.findSingle(this.el.nativeElement.children[0],"span.ui-datatable-reorder-indicator-down"),this.iconWidth=this.domHandler.getHiddenElementOuterWidth(this.reorderIndicatorUp),this.iconHeight=this.domHandler.getHiddenElementOuterHeight(this.reorderIndicatorUp)},e.prototype.findParentHeader=function(e){if("TH"==e.nodeName)return e;for(var t=e.parentElement;"TH"!=t.nodeName&&(t=t.parentElement););return t},e.prototype.hasFooter=function(){if(this.footerColumnGroups.first)return!0;if(this.columns)for(var e=0;e<this.columns.length;e++)if(this.columns[e].footer||this.columns[e].footerTemplate)return!0;return!1},e.prototype.isEmpty=function(){return!this.dataToRender||0==this.dataToRender.length},e.prototype.createLazyLoadMetadata=function(){return{first:this.first,rows:this.virtualScroll?2*this.rows:this.rows,sortField:this.sortField,sortOrder:this.sortOrder,filters:this.filters,globalFilter:this.globalFilter?this.globalFilter.value:null,multiSortMeta:this.multiSortMeta}},e.prototype.toggleRow=function(e,t){this.expandedRows||(this.expandedRows=[]);var n=this.findExpandedRowIndex(e);-1!=n?(this.expandedRows.splice(n,1),this.onRowCollapse.emit({originalEvent:t,data:e})):("single"===this.rowExpandMode&&(this.expandedRows=[]),this.expandedRows.push(e),this.onRowExpand.emit({originalEvent:t,data:e})),t&&t.preventDefault()},e.prototype.findExpandedRowIndex=function(e){var t=-1;if(this.expandedRows)for(var n=0;n<this.expandedRows.length;n++)if(this.expandedRows[n]==e){t=n;break}return t},e.prototype.isRowExpanded=function(e){return-1!=this.findExpandedRowIndex(e)},e.prototype.findExpandedRowGroupIndex=function(e){var t=-1;if(this.expandedRowsGroups&&this.expandedRowsGroups.length)for(var n=0;n<this.expandedRowsGroups.length;n++){var r=this.expandedRowsGroups[n];if(this.resolveFieldData(e,this.groupField)===r){t=n;break}}return t},e.prototype.isRowGroupExpanded=function(e){return-1!=this.findExpandedRowGroupIndex(e)},e.prototype.toggleRowGroup=function(e,t){this.expandedRowsGroups||(this.expandedRowsGroups=[]),this.rowGroupToggleClick=!0;var n=this.findExpandedRowGroupIndex(t),r=this.resolveFieldData(t,this.groupField);n>=0?(this.expandedRowsGroups.splice(n,1),this.onRowGroupCollapse.emit({originalEvent:e,group:r})):("single"===this.rowGroupExpandMode&&(this.expandedRowsGroups=[]),this.expandedRowsGroups.push(r),this.onRowGroupExpand.emit({originalEvent:e,group:r})),e.preventDefault()},e.prototype.reset=function(){this._sortField=null,this._sortOrder=1,this.filteredValue=null,this.filters={},this._first=0,this.firstChange.emit(this._first),this.updateTotalRecords(),this.lazy?this.onLazyLoad.emit(this.createLazyLoadMetadata()):this.updateDataToRender(this.value)},e.prototype.exportCSV=function(e){var t=this,n=this.filteredValue||this.value,r="\ufeff";e&&e.selectionOnly&&(n=this.selection||[]);for(var i=0;i<this.columns.length;i++){var o=this.columns[i];o.exportable&&o.field&&(r+='"'+(o.header||o.field)+'"',i<this.columns.length-1&&(r+=this.csvSeparator))}n.forEach(function(e,n){r+="\n";for(var i=0;i<t.columns.length;i++){var o=t.columns[i];o.exportable&&o.field&&(r+='"'+t.resolveFieldData(e,o.field)+'"',i<t.columns.length-1&&(r+=t.csvSeparator))}});var l=new Blob([r],{type:"text/csv;charset=utf-8;"});if(window.navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(l,this.exportFilename+".csv");else{var a=document.createElement("a");a.style.display="none",document.body.appendChild(a),void 0!==a.download?(a.setAttribute("href",URL.createObjectURL(l)),a.setAttribute("download",this.exportFilename+".csv"),a.click()):(r="data:text/csv;charset=utf-8,"+r,window.open(encodeURI(r))),document.body.removeChild(a)}},e.prototype.getBlockableElement=function(){return this.el.nativeElement.children[0]},e.prototype.getRowStyleClass=function(e,t){var n="ui-widget-content";if(this.rowStyleClass)(r=this.rowStyleClass.call(this,e,t))&&(n+=" "+r);else if(this.rowStyleMap&&this.dataKey){var r;(r=this.rowStyleMap[e[this.dataKey]])&&(n+=" "+r)}return n},e.prototype.visibleColumns=function(){return this.columns?this.columns.filter(function(e){return!e.hidden}):[]},Object.defineProperty(e.prototype,"containerWidth",{get:function(){return this.scrollable?this.scrollWidth?this.scrollWidth:this.frozenWidth&&this.unfrozenWidth?parseFloat(this.frozenWidth)+parseFloat(this.unfrozenWidth)+"px":void 0:this.style?this.style.width:null},enumerable:!0,configurable:!0}),e.prototype.hasFrozenColumns=function(){return this.frozenColumns&&this.frozenColumns.length>0},e.prototype.ngOnDestroy=function(){this.globalFilterFunction&&this.globalFilterFunction(),this.resizableColumns&&this.unbindColumnResizeEvents(),this.unbindDocumentEditListener(),this.columnsSubscription&&this.columnsSubscription.unsubscribe(),this.virtualScrollCallback&&(this.virtualScrollCallback=null)},e}();r([l.Input(),i("design:type",Boolean)],w.prototype,"paginator",void 0),r([l.Input(),i("design:type",Number)],w.prototype,"rows",void 0),r([l.Input(),i("design:type",Number)],w.prototype,"pageLinks",void 0),r([l.Input(),i("design:type",Array)],w.prototype,"rowsPerPageOptions",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"responsive",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"stacked",void 0),r([l.Input(),i("design:type",String)],w.prototype,"selectionMode",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"selectionChange",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"editable",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"showHeaderCheckbox",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onRowClick",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onRowSelect",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onRowUnselect",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onRowDblclick",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onHeaderCheckboxToggle",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"headerCheckboxToggleAllPages",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onContextMenuSelect",void 0),r([l.Input(),i("design:type",Number)],w.prototype,"filterDelay",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"lazy",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onLazyLoad",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"resizableColumns",void 0),r([l.Input(),i("design:type",String)],w.prototype,"columnResizeMode",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onColResize",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"reorderableColumns",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onColReorder",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"scrollable",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"virtualScroll",void 0),r([l.Input(),i("design:type",Object)],w.prototype,"scrollHeight",void 0),r([l.Input(),i("design:type",Object)],w.prototype,"scrollWidth",void 0),r([l.Input(),i("design:type",Object)],w.prototype,"frozenWidth",void 0),r([l.Input(),i("design:type",Object)],w.prototype,"unfrozenWidth",void 0),r([l.Input(),i("design:type",Object)],w.prototype,"style",void 0),r([l.Input(),i("design:type",String)],w.prototype,"styleClass",void 0),r([l.Input(),i("design:type",Object)],w.prototype,"tableStyle",void 0),r([l.Input(),i("design:type",String)],w.prototype,"tableStyleClass",void 0),r([l.Input(),i("design:type",Object)],w.prototype,"globalFilter",void 0),r([l.Input(),i("design:type",String)],w.prototype,"sortMode",void 0),r([l.Input(),i("design:type",Number)],w.prototype,"defaultSortOrder",void 0),r([l.Input(),i("design:type",String)],w.prototype,"groupField",void 0),r([l.Input(),i("design:type",Object)],w.prototype,"contextMenu",void 0),r([l.Input(),i("design:type",String)],w.prototype,"csvSeparator",void 0),r([l.Input(),i("design:type",String)],w.prototype,"exportFilename",void 0),r([l.Input(),i("design:type",String)],w.prototype,"emptyMessage",void 0),r([l.Input(),i("design:type",String)],w.prototype,"paginatorPosition",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"alwaysShowPaginator",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"metaKeySelection",void 0),r([l.Input(),i("design:type",Function)],w.prototype,"rowTrackBy",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"immutable",void 0),r([l.Input(),i("design:type",Array)],w.prototype,"frozenValue",void 0),r([l.Input(),i("design:type",String)],w.prototype,"compareSelectionBy",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onEditInit",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onEditComplete",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onEdit",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onEditCancel",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onPage",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onSort",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onFilter",void 0),r([l.ContentChild(d.Header),i("design:type",Object)],w.prototype,"header",void 0),r([l.ContentChild(d.Footer),i("design:type",Object)],w.prototype,"footer",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"expandableRows",void 0),r([l.Input(),i("design:type",Array)],w.prototype,"expandedRows",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"expandableRowGroups",void 0),r([l.Input(),i("design:type",String)],w.prototype,"rowExpandMode",void 0),r([l.Input(),i("design:type",Array)],w.prototype,"expandedRowsGroups",void 0),r([l.Input(),i("design:type",String)],w.prototype,"expandedIcon",void 0),r([l.Input(),i("design:type",String)],w.prototype,"collapsedIcon",void 0),r([l.Input(),i("design:type",Number)],w.prototype,"tabindex",void 0),r([l.Input(),i("design:type",Function)],w.prototype,"rowStyleClass",void 0),r([l.Input(),i("design:type",Object)],w.prototype,"rowStyleMap",void 0),r([l.Input(),i("design:type",String)],w.prototype,"rowGroupMode",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"sortableRowGroup",void 0),r([l.Input(),i("design:type",String)],w.prototype,"sortFile",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"rowHover",void 0),r([l.Input(),i("design:type",Object)],w.prototype,"filters",void 0),r([l.Input(),i("design:type",String)],w.prototype,"dataKey",void 0),r([l.Input(),i("design:type",Boolean)],w.prototype,"loading",void 0),r([l.Input(),i("design:type",String)],w.prototype,"loadingIcon",void 0),r([l.Input(),i("design:type",Number)],w.prototype,"virtualScrollDelay",void 0),r([l.Input(),i("design:type",String)],w.prototype,"rowGroupExpandMode",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"valueChange",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"firstChange",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onRowExpand",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onRowCollapse",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onRowGroupExpand",void 0),r([l.Output(),i("design:type",l.EventEmitter)],w.prototype,"onRowGroupCollapse",void 0),r([l.ContentChildren(d.PrimeTemplate),i("design:type",l.QueryList)],w.prototype,"templates",void 0),r([l.ContentChildren(d.Column),i("design:type",l.QueryList)],w.prototype,"cols",void 0),r([l.ContentChildren(d.HeaderColumnGroup),i("design:type",l.QueryList)],w.prototype,"headerColumnGroups",void 0),r([l.ContentChildren(d.FooterColumnGroup),i("design:type",l.QueryList)],w.prototype,"footerColumnGroups",void 0),r([l.Input(),i("design:type",Array),i("design:paramtypes",[Array])],w.prototype,"multiSortMeta",null),r([l.Input(),i("design:type",String),i("design:paramtypes",[String])],w.prototype,"sortField",null),r([l.Input(),i("design:type",Number),i("design:paramtypes",[Number])],w.prototype,"sortOrder",null),r([l.Input(),i("design:type",Array),i("design:paramtypes",[Array])],w.prototype,"value",null),r([l.Input(),i("design:type",Number),i("design:paramtypes",[Number])],w.prototype,"first",null),r([l.Input(),i("design:type",Number),i("design:paramtypes",[Number])],w.prototype,"totalRecords",null),r([l.Input(),i("design:type",Object),i("design:paramtypes",[Object])],w.prototype,"selection",null),w=r([l.Component({selector:"p-dataTable",template:'\n <div [ngStyle]="style" [class]="styleClass" [style.width]="containerWidth"\n [ngClass]="{\'ui-datatable ui-widget\':true,\'ui-datatable-reflow\':responsive,\'ui-datatable-stacked\':stacked,\'ui-datatable-resizable\':resizableColumns,\'ui-datatable-scrollable\':scrollable}">\n <div class="ui-datatable-loading ui-widget-overlay" *ngIf="loading"></div>\n <div class="ui-datatable-loading-content" *ngIf="loading">\n <i [class]="\'fa fa-spin fa-2x \' + loadingIcon"></i>\n </div>\n <div class="ui-datatable-header ui-widget-header" *ngIf="header">\n <ng-content select="p-header"></ng-content>\n </div>\n <p-paginator [rows]="rows" [first]="first" [totalRecords]="totalRecords" [pageLinkSize]="pageLinks" styleClass="ui-paginator-top" [alwaysShow]="alwaysShowPaginator"\n (onPageChange)="onPageChange($event)" [rowsPerPageOptions]="rowsPerPageOptions" *ngIf="paginator && (paginatorPosition === \'top\' || paginatorPosition ==\'both\')"></p-paginator>\n <div class="ui-datatable-tablewrapper" *ngIf="!scrollable">\n <table [ngClass]="tableStyleClass" [ngStyle]="tableStyle">\n <thead class="ui-datatable-thead">\n <tr *ngIf="!headerColumnGroups.first" class="ui-state-default" [pColumnHeaders]="columns"></tr>\n <ng-template [ngIf]="headerColumnGroups.first">\n <tr *ngFor="let headerRow of headerColumnGroups.first.rows" class="ui-state-default" [pColumnHeaders]="headerRow.columns"></tr>\n </ng-template>\n </thead>\n <tfoot *ngIf="hasFooter()" class="ui-datatable-tfoot">\n <tr *ngIf="!footerColumnGroups.first" class="ui-state-default" [pColumnFooters]="columns"></tr>\n <ng-template [ngIf]="footerColumnGroups.first">\n <tr *ngFor="let footerRow of footerColumnGroups.first.rows" class="ui-state-default" [pColumnFooters]="footerRow.columns"></tr>\n </ng-template>\n </tfoot>\n <tbody [ngClass]="{\'ui-datatable-data ui-widget-content\': true, \'ui-datatable-hoverable-rows\': (rowHover||selectionMode)}" [pTableBody]="columns" [data]="dataToRender"></tbody>\n </table>\n </div>\n \n <ng-template [ngIf]="scrollable">\n <div class="ui-datatable-scrollable-wrapper ui-helper-clearfix">\n <div *ngIf="hasFrozenColumns()" [pScrollableView]="frozenColumns" frozen="true"\n [headerColumnGroup]="frozenHeaderColumnGroup" [footerColumnGroup]="frozenFooterColumnGroup"\n [ngStyle]="{\'width\':this.frozenWidth}" class="ui-datatable-scrollable-view ui-datatable-frozen-view"></div>\n <div [pScrollableView]="scrollableColumns" [ngStyle]="{\'width\':this.unfrozenWidth, \'left\': this.frozenWidth}"\n [headerColumnGroup]="scrollableHeaderColumnGroup" [footerColumnGroup]="scrollableFooterColumnGroup"\n class="ui-datatable-scrollable-view" [virtualScroll]="virtualScroll" (onVirtualScroll)="onVirtualScroll($event)"\n [ngClass]="{\'ui-datatable-unfrozen-view\': hasFrozenColumns()}"></div>\n </div>\n </ng-template>\n \n <p-paginator [rows]="rows" [first]="first" [totalRecords]="totalRecords" [pageLinkSize]="pageLinks" styleClass="ui-paginator-bottom" [alwaysShow]="alwaysShowPaginator"\n (onPageChange)="onPageChange($event)" [rowsPerPageOptions]="rowsPerPageOptions" *ngIf="paginator && (paginatorPosition === \'bottom\' || paginatorPosition ==\'both\')"></p-paginator>\n <div class="ui-datatable-footer ui-widget-header" *ngIf="footer">\n <ng-content select="p-footer"></ng-content>\n </div>\n \n <div class="ui-column-resizer-helper ui-state-highlight" style="display:none"></div>\n <span class="fa fa-arrow-down ui-datatable-reorder-indicator-up" style="position: absolute; display: none;"></span>\n <span class="fa fa-arrow-up ui-datatable-reorder-indicator-down" style="position: absolute; display: none;"></span>\n </div>\n ',providers:[p.DomHandler,f.ObjectUtils]})],w),t.DataTable=w;var x=function(){};x=r([l.NgModule({imports:[a.CommonModule,u.SharedModule,c.PaginatorModule,s.FormsModule],exports:[w,u.SharedModule],declarations:[w,h,m,y,v,b,_,g]})],x),t.DataTableModule=x},pa70:function(e,t,n){var r=n("uNkO");e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},piOq:function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},ptrv:function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},qLnt:function(e,t,n){"use strict";function r(e){return e.reduce(function(e,t){return e.concat(t instanceof c?t.errors:t)},[])}var i=n("1j/l"),o=n("NGRF"),l=n("B1iP"),a=n("8ofh"),s=n("NePw"),u=n("6Xbx"),c=function(e){function t(t){e.call(this),this.errors=t;var n=Error.call(this,t?t.length+" errors occurred during unsubscription:\n "+t.map(function(e,t){return t+1+") "+e.toString()}).join("\n "):"");this.name=n.name="UnsubscriptionError",this.stack=n.stack,this.message=n.message}return Object(u.__extends)(t,e),t}(Error);n.d(t,"a",function(){return d});var d=function(){function e(e){this.closed=!1,this._parent=null,this._parents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var e,t=!1;if(!this.closed){var n=this._parent,u=this._parents,d=this._unsubscribe,p=this._subscriptions;this.closed=!0,this._parent=null,this._parents=null,this._subscriptions=null;for(var f=-1,h=u?u.length:0;n;)n.remove(this),n=++f<h&&u[f]||null;if(Object(l.a)(d)&&Object(a.a)(d).call(this)===s.a&&(t=!0,e=e||(s.a.e instanceof c?r(s.a.e.errors):[s.a.e])),Object(i.a)(p))for(f=-1,h=p.length;++f<h;){var m=p[f];if(Object(o.a)(m)&&Object(a.a)(m.unsubscribe).call(m)===s.a){t=!0,e=e||[];var g=s.a.e;g instanceof c?e=e.concat(r(g.errors)):e.push(g)}}if(t)throw new c(e)}},e.prototype.add=function(t){if(!t||t===e.EMPTY)return e.EMPTY;if(t===this)return this;var n=t;switch(typeof t){case"function":n=new e(t);case"object":if(n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if("function"!=typeof n._addParent){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}return(this._subscriptions||(this._subscriptions=[])).push(n),n._addParent(this),n},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},e.prototype._addParent=function(e){var t=this._parent,n=this._parents;t&&t!==e?n?-1===n.indexOf(e)&&n.push(e):this._parents=[e]:this._parent=e},e.EMPTY=function(e){return e.closed=!0,e}(new e),e}()},qgI0:function(e,t,n){"use strict";var r=n("xIGM"),i=n("kQVV"),o=n("mHG6"),l=n("NGRF"),a=n("AP4T"),s=n("X3fp"),u=n("6Xbx"),c=function(e){function t(t,n,r){e.call(this),this.parent=t,this.outerValue=n,this.outerIndex=r,this.index=0}return Object(u.__extends)(t,e),t.prototype._next=function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)},t.prototype._error=function(e){this.parent.notifyError(e,this),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},t}(n("E9/g").a),d=n("mz3w");t.a=function(e,t,n,u){var p=new c(e,n,u);if(p.closed)return null;if(t instanceof a.a)return t._isScalar?(p.next(t.value),p.complete(),null):(p.syncErrorThrowable=!0,t.subscribe(p));if(Object(i.a)(t)){for(var f=0,h=t.length;f<h&&!p.closed;f++)p.next(t[f]);p.closed||p.complete()}else{if(Object(o.a)(t))return t.then(function(e){p.closed||(p.next(e),p.complete())},function(e){return p.error(e)}).then(null,function(e){r.a.setTimeout(function(){throw e})}),p;if(t&&"function"==typeof t[s.a])for(var m=t[s.a]();;){var g=m.next();if(g.done){p.complete();break}if(p.next(g.value),p.closed)break}else if(t&&"function"==typeof t[d.a]){var y=t[d.a]();if("function"==typeof y.subscribe)return y.subscribe(new c(e,n,u));p.error(new TypeError("Provided object does not correctly implement Symbol.observable"))}else{var v="You provided "+(Object(l.a)(t)?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.";p.error(new TypeError(v))}}return null}},qqDE:function(e,t,n){"use strict";t.a=function(e,t){return function(n){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new o(e,t))}};var r=n("6Xbx"),i=n("E9/g"),o=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new l(e,this.project,this.thisArg))},e}(),l=function(e){function t(t,n,r){e.call(this,t),this.project=n,this.count=0,this.thisArg=r||this}return Object(r.__extends)(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(i.a)},rIdM:function(e,t,n){"use strict";var r=n("2Fuj"),i=n("lzDK"),o=n("9e9+"),l=n("RT4T"),a=n("Wo2w"),s=Object.assign;e.exports=!s||n("umMR")(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=s({},e)[n]||Object.keys(s({},t)).join("")!=r})?function(e,t){for(var n=l(e),s=arguments.length,u=1,c=i.f,d=o.f;s>u;)for(var p,f=a(arguments[u++]),h=c?r(f).concat(c(f)):r(f),m=h.length,g=0;m>g;)d.call(f,p=h[g++])&&(n[p]=f[p]);return n}:s},rKhO:function(e,t,n){var r=n("VceJ");e.exports=Array.isArray||function(e){return"Array"==r(e)}},rMsi:function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},rgUS:function(e,t,n){var r;!function(i,o,l,a){"use strict";function s(e,t,n){return setTimeout(f(e,n),t)}function u(e,t,n){return!!Array.isArray(e)&&(c(e,n[t],n),!0)}function c(e,t,n){var r;if(e)if(e.forEach)e.forEach(t,n);else if(e.length!==a)for(r=0;r<e.length;)t.call(n,e[r],r,e),r++;else for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r,e)}function d(e,t,n){var r="DEPRECATED METHOD: "+t+"\n"+n+" AT \n";return function(){var t=new Error("get-stack-trace"),n=t&&t.stack?t.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=i.console&&(i.console.warn||i.console.log);return o&&o.call(i.console,r,n),e.apply(this,arguments)}}function p(e,t,n){var r,i=t.prototype;(r=e.prototype=Object.create(i)).constructor=e,r._super=i,n&&te(r,n)}function f(e,t){return function(){return e.apply(t,arguments)}}function h(e,t){return typeof e==ie?e.apply(t?t[0]||a:a,t):e}function m(e,t){return e===a?t:e}function g(e,t,n){c(_(t),function(t){e.addEventListener(t,n,!1)})}function y(e,t,n){c(_(t),function(t){e.removeEventListener(t,n,!1)})}function v(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function b(e,t){return e.indexOf(t)>-1}function _(e){return e.trim().split(/\s+/g)}function w(e,t,n){if(e.indexOf&&!n)return e.indexOf(t);for(var r=0;r<e.length;){if(n&&e[r][n]==t||!n&&e[r]===t)return r;r++}return-1}function x(e){return Array.prototype.slice.call(e,0)}function C(e,t,n){for(var r=[],i=[],o=0;o<e.length;){var l=t?e[o][t]:e[o];w(i,l)<0&&r.push(e[o]),i[o]=l,o++}return n&&(r=t?r.sort(function(e,n){return e[t]>n[t]}):r.sort()),r}function E(e,t){for(var n,r,i=t[0].toUpperCase()+t.slice(1),o=0;o<ne.length;){if(n=ne[o],(r=n?n+i:t)in e)return r;o++}return a}function S(e){var t=e.ownerDocument||e;return t.defaultView||t.parentWindow||i}function O(e,t){var n=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){h(e.options.enable,[e])&&n.handler(t)},this.init()}function T(e,t,n){var r=n.pointers.length,i=n.changedPointers.length,o=t&me&&r-i==0,l=t&(ge|ye)&&r-i==0;n.isFirst=!!o,n.isFinal=!!l,o&&(e.session={}),n.eventType=t,function(e,t){var n=e.session,r=t.pointers,i=r.length;n.firstInput||(n.firstInput=k(t)),i>1&&!n.firstMultiple?n.firstMultiple=k(t):1===i&&(n.firstMultiple=!1);var o=n.firstInput,l=n.firstMultiple,s=l?l.center:o.center,u=t.center=D(r);t.timeStamp=ae(),t.deltaTime=t.timeStamp-o.timeStamp,t.angle=P(s,u),t.distance=M(s,u),function(e,t){var n=t.center,r=e.offsetDelta||{},i=e.prevDelta||{},o=e.prevInput||{};t.eventType!==me&&o.eventType!==ge||(i=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},r=e.offsetDelta={x:n.x,y:n.y}),t.deltaX=i.x+(n.x-r.x),t.deltaY=i.y+(n.y-r.y)}(n,t),t.offsetDirection=R(t.deltaX,t.deltaY);var c=I(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=c.x,t.overallVelocityY=c.y,t.overallVelocity=le(c.x)>le(c.y)?c.x:c.y,t.scale=l?function(e,t){return M(r[0],r[1],Te)/M(e[0],e[1],Te)}(l.pointers):1,t.rotation=l?function(e,t){return P(r[1],r[0],Te)+P(e[1],e[0],Te)}(l.pointers):0,t.maxPointers=n.prevInput?t.pointers.length>n.prevInput.maxPointers?t.pointers.length:n.prevInput.maxPointers:t.pointers.length,function(e,t){var n,r,i,o,l=e.lastInterval||t,s=t.timeStamp-l.timeStamp;if(t.eventType!=ye&&(s>he||l.velocity===a)){var u=t.deltaX-l.deltaX,c=t.deltaY-l.deltaY,d=I(s,u,c);r=d.x,i=d.y,n=le(d.x)>le(d.y)?d.x:d.y,o=R(u,c),e.lastInterval=t}else n=l.velocity,r=l.velocityX,i=l.velocityY,o=l.direction;t.velocity=n,t.velocityX=r,t.velocityY=i,t.direction=o}(n,t);var d=e.element;v(t.srcEvent.target,d)&&(d=t.srcEvent.target),t.target=d}(e,n),e.emit("hammer.input",n),e.recognize(n),e.session.prevInput=n}function k(e){for(var t=[],n=0;n<e.pointers.length;)t[n]={clientX:oe(e.pointers[n].clientX),clientY:oe(e.pointers[n].clientY)},n++;return{timeStamp:ae(),pointers:t,center:D(t),deltaX:e.deltaX,deltaY:e.deltaY}}function D(e){var t=e.length;if(1===t)return{x:oe(e[0].clientX),y:oe(e[0].clientY)};for(var n=0,r=0,i=0;i<t;)n+=e[i].clientX,r+=e[i].clientY,i++;return{x:oe(n/t),y:oe(r/t)}}function I(e,t,n){return{x:t/e||0,y:n/e||0}}function R(e,t){return e===t?ve:le(e)>=le(t)?e<0?be:_e:t<0?we:xe}function M(e,t,n){n||(n=Oe);var r=t[n[0]]-e[n[0]],i=t[n[1]]-e[n[1]];return Math.sqrt(r*r+i*i)}function P(e,t,n){n||(n=Oe);var r=t[n[0]]-e[n[0]],i=t[n[1]]-e[n[1]];return 180*Math.atan2(i,r)/Math.PI}function N(){this.evEl=De,this.evWin=Ie,this.pressed=!1,O.apply(this,arguments)}function A(){this.evEl=Pe,this.evWin=Ne,O.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function L(){this.evTarget=Le,this.evWin=Fe,this.started=!1,O.apply(this,arguments)}function F(){this.evTarget=Ve,this.targetIds={},O.apply(this,arguments)}function j(){O.apply(this,arguments);var e=f(this.handler,this);this.touch=new F(this.manager,e),this.mouse=new N(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function V(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var n={x:t.clientX,y:t.clientY};this.lastTouches.push(n);var r=this.lastTouches,i=function(){var e=r.indexOf(n);e>-1&&r.splice(e,1)};setTimeout(i,ze)}}function z(e,t){this.manager=e,this.set(t)}function B(e){this.options=te({},this.defaults,e||{}),this.id=ce++,this.manager=null,this.options.enable=m(this.options.enable,!0),this.state=Ue,this.simultaneous={},this.requireFail=[]}function H(e){return e&Qe?"cancel":e&$e?"end":e&Ke?"move":e&Ge?"start":""}function W(e){return e==xe?"down":e==we?"up":e==be?"left":e==_e?"right":""}function q(e,t){var n=t.manager;return n?n.get(e):e}function U(){B.apply(this,arguments)}function G(){U.apply(this,arguments),this.pX=null,this.pY=null}function K(){U.apply(this,arguments)}function $(){B.apply(this,arguments),this._timer=null,this._input=null}function Z(){U.apply(this,arguments)}function Q(){U.apply(this,arguments)}function Y(){B.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function X(e,t){return t=t||{},t.recognizers=m(t.recognizers,X.defaults.preset),new J(e,t)}function J(e,t){this.options=te({},X.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=function(e){return new(e.options.inputClass||(pe?A:fe?F:de?j:N))(e,T)}(this),this.touchAction=new z(this,this.options.touchAction),ee(this,!0),c(this.options.recognizers,function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])},this)}function ee(e,t){var n=e.element;if(n.style){var r;c(e.options.cssProps,function(i,o){r=E(n.style,o),t?(e.oldCssProps[r]=n.style[r],n.style[r]=i):n.style[r]=e.oldCssProps[r]||""}),t||(e.oldCssProps={})}}var te,ne=["","webkit","Moz","MS","ms","o"],re=o.createElement("div"),ie="function",oe=Math.round,le=Math.abs,ae=Date.now;te="function"!=typeof Object.assign?function(e){if(e===a||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n<arguments.length;n++){var r=arguments[n];if(r!==a&&null!==r)for(var i in r)r.hasOwnProperty(i)&&(t[i]=r[i])}return t}:Object.assign;var se=d(function(e,t,n){for(var r=Object.keys(t),i=0;i<r.length;)(!n||n&&e[r[i]]===a)&&(e[r[i]]=t[r[i]]),i++;return e},"extend","Use `assign`."),ue=d(function(e,t){return se(e,t,!0)},"merge","Use `assign`."),ce=1,de="ontouchstart"in i,pe=E(i,"PointerEvent")!==a,fe=de&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),he=25,me=1,ge=4,ye=8,ve=1,be=2,_e=4,we=8,xe=16,Ce=be|_e,Ee=we|xe,Se=Ce|Ee,Oe=["x","y"],Te=["clientX","clientY"];O.prototype={handler:function(){},init:function(){this.evEl&&g(this.element,this.evEl,this.domHandler),this.evTarget&&g(this.target,this.evTarget,this.domHandler),this.evWin&&g(S(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&y(this.element,this.evEl,this.domHandler),this.evTarget&&y(this.target,this.evTarget,this.domHandler),this.evWin&&y(S(this.element),this.evWin,this.domHandler)}};var ke={mousedown:me,mousemove:2,mouseup:ge},De="mousedown",Ie="mousemove mouseup";p(N,O,{handler:function(e){var t=ke[e.type];t&me&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=ge),this.pressed&&(t&ge&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:"mouse",srcEvent:e}))}});var Re={pointerdown:me,pointermove:2,pointerup:ge,pointercancel:ye,pointerout:ye},Me={2:"touch",3:"pen",4:"mouse",5:"kinect"},Pe="pointerdown",Ne="pointermove pointerup pointercancel";i.MSPointerEvent&&!i.PointerEvent&&(Pe="MSPointerDown",Ne="MSPointerMove MSPointerUp MSPointerCancel"),p(A,O,{handler:function(e){var t=this.store,n=!1,r=e.type.toLowerCase().replace("ms",""),i=Re[r],o=Me[e.pointerType]||e.pointerType,l="touch"==o,a=w(t,e.pointerId,"pointerId");i&me&&(0===e.button||l)?a<0&&(t.push(e),a=t.length-1):i&(ge|ye)&&(n=!0),a<0||(t[a]=e,this.callback(this.manager,i,{pointers:t,changedPointers:[e],pointerType:o,srcEvent:e}),n&&t.splice(a,1))}});var Ae={touchstart:me,touchmove:2,touchend:ge,touchcancel:ye},Le="touchstart",Fe="touchstart touchmove touchend touchcancel";p(L,O,{handler:function(e){var t=Ae[e.type];if(t===me&&(this.started=!0),this.started){var n=function(e,t){var n=x(e.touches),r=x(e.changedTouches);return t&(ge|ye)&&(n=C(n.concat(r),"identifier",!0)),[n,r]}.call(this,e,t);t&(ge|ye)&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:"touch",srcEvent:e})}}});var je={touchstart:me,touchmove:2,touchend:ge,touchcancel:ye},Ve="touchstart touchmove touchend touchcancel";p(F,O,{handler:function(e){var t=je[e.type],n=function(e,t){var n=x(e.touches),r=this.targetIds;if(t&(2|me)&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,l=x(e.changedTouches),a=[],s=this.target;if(o=n.filter(function(e){return v(e.target,s)}),t===me)for(i=0;i<o.length;)r[o[i].identifier]=!0,i++;for(i=0;i<l.length;)r[l[i].identifier]&&a.push(l[i]),t&(ge|ye)&&delete r[l[i].identifier],i++;return a.length?[C(o.concat(a),"identifier",!0),a]:void 0}.call(this,e,t);n&&this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:"touch",srcEvent:e})}});var ze=2500;p(j,O,{handler:function(e,t,n){var r="mouse"==n.pointerType;if(!(r&&n.sourceCapabilities&&n.sourceCapabilities.firesTouchEvents)){if("touch"==n.pointerType)(function(e,t){e&me?(this.primaryTouch=t.changedPointers[0].identifier,V.call(this,t)):e&(ge|ye)&&V.call(this,t)}).call(this,t,n);else if(r&&function(e){for(var t=e.srcEvent.clientX,n=e.srcEvent.clientY,r=0;r<this.lastTouches.length;r++){var i=this.lastTouches[r],o=Math.abs(t-i.x),l=Math.abs(n-i.y);if(o<=25&&l<=25)return!0}return!1}.call(this,n))return;this.callback(e,t,n)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Be=E(re.style,"touchAction"),He=Be!==a,We="manipulation",qe=function(){if(!He)return!1;var e={},t=i.CSS&&i.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(n){e[n]=!t||i.CSS.supports("touch-action",n)}),e}();z.prototype={set:function(e){"compute"==e&&(e=this.compute()),He&&this.manager.element.style&&qe[e]&&(this.manager.element.style[Be]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return c(this.manager.recognizers,function(t){h(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))}),function(e){if(b(e,"none"))return"none";var t=b(e,"pan-x"),n=b(e,"pan-y");return t&&n?"none":t||n?t?"pan-x":"pan-y":b(e,We)?We:"auto"}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,n=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var r=this.actions,i=b(r,"none")&&!qe.none,o=b(r,"pan-y")&&!qe["pan-y"],l=b(r,"pan-x")&&!qe["pan-x"];if(i&&1===e.pointers.length&&e.distance<2&&e.deltaTime<250)return;if(!l||!o)return i||o&&n&Ce||l&&n&Ee?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var Ue=1,Ge=2,Ke=4,$e=8,Ze=$e,Qe=16;B.prototype={defaults:{},set:function(e){return te(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(u(e,"recognizeWith",this))return this;var t=this.simultaneous;return e=q(e,this),t[e.id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return u(e,"dropRecognizeWith",this)?this:(e=q(e,this),delete this.simultaneous[e.id],this)},requireFailure:function(e){if(u(e,"requireFailure",this))return this;var t=this.requireFail;return e=q(e,this),-1===w(t,e)&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(u(e,"dropRequireFailure",this))return this;e=q(e,this);var t=w(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){function t(t){n.manager.emit(t,e)}var n=this,r=this.state;r<$e&&t(n.options.event+H(r)),t(n.options.event),e.additionalEvent&&t(e.additionalEvent),r>=$e&&t(n.options.event+H(r))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=32},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(this.requireFail[e].state&(32|Ue)))return!1;e++}return!0},recognize:function(e){var t=te({},e);if(!h(this.options.enable,[this,t]))return this.reset(),void(this.state=32);this.state&(Ze|Qe|32)&&(this.state=Ue),this.state=this.process(t),this.state&(Ge|Ke|$e|Qe)&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},p(U,B,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,n=e.eventType,r=t&(Ge|Ke),i=this.attrTest(e);return r&&(n&ye||!i)?t|Qe:r||i?n&ge?t|$e:t&Ge?t|Ke:Ge:32}}),p(G,U,{defaults:{event:"pan",threshold:10,pointers:1,direction:Se},getTouchAction:function(){var e=this.options.direction,t=[];return e&Ce&&t.push("pan-y"),e&Ee&&t.push("pan-x"),t},directionTest:function(e){var t=this.options,n=!0,r=e.distance,i=e.direction,o=e.deltaX,l=e.deltaY;return i&t.direction||(t.direction&Ce?(i=0===o?ve:o<0?be:_e,n=o!=this.pX,r=Math.abs(e.deltaX)):(i=0===l?ve:l<0?we:xe,n=l!=this.pY,r=Math.abs(e.deltaY))),e.direction=i,n&&r>t.threshold&&i&t.direction},attrTest:function(e){return U.prototype.attrTest.call(this,e)&&(this.state&Ge||!(this.state&Ge)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=W(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),p(K,U,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return["none"]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||this.state&Ge)},emit:function(e){1!==e.scale&&(e.additionalEvent=this.options.event+(e.scale<1?"in":"out")),this._super.emit.call(this,e)}}),p($,B,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return["auto"]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,r=e.distance<t.threshold,i=e.deltaTime>t.time;if(this._input=e,!r||!n||e.eventType&(ge|ye)&&!i)this.reset();else if(e.eventType&me)this.reset(),this._timer=s(function(){this.state=Ze,this.tryEmit()},t.time,this);else if(e.eventType&ge)return Ze;return 32},reset:function(){clearTimeout(this._timer)},emit:function(e){this.state===Ze&&(e&&e.eventType&ge?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=ae(),this.manager.emit(this.options.event,this._input)))}}),p(Z,U,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return["none"]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||this.state&Ge)}}),p(Q,U,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ce|Ee,pointers:1},getTouchAction:function(){return G.prototype.getTouchAction.call(this)},attrTest:function(e){var t,n=this.options.direction;return n&(Ce|Ee)?t=e.overallVelocity:n&Ce?t=e.overallVelocityX:n&Ee&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&le(t)>this.options.velocity&&e.eventType&ge},emit:function(e){var t=W(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),p(Y,B,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[We]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,r=e.distance<t.threshold,i=e.deltaTime<t.time;if(this.reset(),e.eventType&me&&0===this.count)return this.failTimeout();if(r&&i&&n){if(e.eventType!=ge)return this.failTimeout();var o=!this.pTime||e.timeStamp-this.pTime<t.interval,l=!this.pCenter||M(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,l&&o?this.count+=1:this.count=1,this._input=e,0==this.count%t.taps)return this.hasRequireFailures()?(this._timer=s(function(){this.state=Ze,this.tryEmit()},t.interval,this),Ge):Ze}return 32},failTimeout:function(){return this._timer=s(function(){this.state=32},this.options.interval,this),32},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==Ze&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),X.VERSION="2.0.7",X.defaults={domEvents:!1,touchAction:"compute",enable:!0,inputTarget:null,inputClass:null,preset:[[Z,{enable:!1}],[K,{enable:!1},["rotate"]],[Q,{direction:Ce}],[G,{direction:Ce},["swipe"]],[Y],[Y,{event:"doubletap",taps:2},["tap"]],[$]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},J.prototype={set:function(e){return te(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){this.touchAction.preventDefaults(e);var n,r=this.recognizers,i=t.curRecognizer;(!i||i&&i.state&Ze)&&(i=t.curRecognizer=null);for(var o=0;o<r.length;)n=r[o],2===t.stopped||i&&n!=i&&!n.canRecognizeWith(i)?n.reset():n.recognize(e),!i&&n.state&(Ge|Ke|$e)&&(i=t.curRecognizer=n),o++}},get:function(e){if(e instanceof B)return e;for(var t=this.recognizers,n=0;n<t.length;n++)if(t[n].options.event==e)return t[n];return null},add:function(e){if(u(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(u(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,n=w(t,e);-1!==n&&(t.splice(n,1),this.touchAction.update())}return this},on:function(e,t){if(e!==a&&t!==a){var n=this.handlers;return c(_(e),function(e){n[e]=n[e]||[],n[e].push(t)}),this}},off:function(e,t){if(e!==a){var n=this.handlers;return c(_(e),function(e){t?n[e]&&n[e].splice(w(n[e],t),1):delete n[e]}),this}},emit:function(e,t){this.options.domEvents&&function(e,t){var n=o.createEvent("Event");n.initEvent(e,!0,!0),n.gesture=t,t.target.dispatchEvent(n)}(e,t);var n=this.handlers[e]&&this.handlers[e].slice();if(n&&n.length){t.type=e,t.preventDefault=function(){t.srcEvent.preventDefault()};for(var r=0;r<n.length;)n[r](t),r++}},destroy:function(){this.element&&ee(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},te(X,{INPUT_START:me,INPUT_MOVE:2,INPUT_END:ge,INPUT_CANCEL:ye,STATE_POSSIBLE:Ue,STATE_BEGAN:Ge,STATE_CHANGED:Ke,STATE_ENDED:$e,STATE_RECOGNIZED:Ze,STATE_CANCELLED:Qe,STATE_FAILED:32,DIRECTION_NONE:ve,DIRECTION_LEFT:be,DIRECTION_RIGHT:_e,DIRECTION_UP:we,DIRECTION_DOWN:xe,DIRECTION_HORIZONTAL:Ce,DIRECTION_VERTICAL:Ee,DIRECTION_ALL:Se,Manager:J,Input:O,TouchAction:z,TouchInput:F,MouseInput:N,PointerEventInput:A,TouchMouseInput:j,SingleTouchInput:L,Recognizer:B,AttrRecognizer:U,Tap:Y,Pan:G,Swipe:Q,Pinch:K,Rotate:Z,Press:$,on:g,off:y,each:c,merge:ue,extend:se,assign:te,inherit:p,bindFn:f,prefixed:E}),(void 0!==i?i:"undefined"!=typeof self?self:{}).Hammer=X,(r=function(){return X}.call(t,n,t,e))===a||(e.exports=r)}(window,document)},rppw:function(e,t,n){var r=n("9wYb"),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},soMw:function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=r.keys,l=r.key;r.exp({getOwnMetadataKeys:function(e){return o(i(e),arguments.length<2?void 0:l(arguments[1]))}})},t6ta:function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=n("uNkO"),l=r.key,a=r.set;r.exp({metadata:function(e,t){return function(n,r){a(e,t,(void 0!==r?i:o)(n),l(r))}}})},tose:function(e,t,n){var r=n("+pQw"),i=n("gNkH"),o=n("A1WY"),l=Object.defineProperty;t.f=n("V+0c")?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return l(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},uIf7:function(module,__webpack_exports__,__webpack_require__){"use strict";function difference(e,t){return e.filter(function(e){return t.indexOf(e)<0})}function unliftState(e){return e.computedStates[e.currentStateIndex].state}function liftAction(e){return new PerformAction(e)}function applyOperators(e,t){return t.reduce(function(e,t){var n=t[0],r=t.slice(1);return n.apply(e,r)},e)}function computeNextEntry(e,t,n,r){if(r)return{state:n,error:"Interrupted by an error up the chain"};var i,o=n;try{o=e(n,t)}catch(e){i=e.toString(),console.error(e.stack||e)}return{state:o,error:i}}function recomputeStates(e,t,n,r,i,o,l){if(t>=e.length&&e.length===o.length)return e;for(var a=e.slice(0,t),s=t;s<o.length;s++){var u=o[s],c=i[u].action,d=a[s-1],p=d?d.state:r,f=d?d.error:void 0,h=l.indexOf(u)>-1?d:computeNextEntry(n,c,p,f);a.push(h)}return a}function liftInitialState(e,t){return{monitorState:t(void 0,{}),nextActionId:1,actionsById:{0:liftAction(INIT_ACTION)},stagedActionIds:[0],skippedActionIds:[],committedState:e,currentStateIndex:0,computedStates:[]}}function liftReducerWith(e,t,n,r){return void 0===r&&(r={}),function(i){return function(o,l){function a(e){for(var t=e,n=p.slice(1,t+1),r=0;r<n.length;r++){if(g[r+1].error){n=p.slice(1,(t=r)+1);break}delete c[n[r]]}f=f.filter(function(e){return-1===n.indexOf(e)}),p=[0].concat(p.slice(t+1)),h=g[t].state,g=g.slice(t),m=m>t?m-t:0}var s=o||t,u=s.monitorState,c=s.actionsById,d=s.nextActionId,p=s.stagedActionIds,f=s.skippedActionIds,h=s.committedState,m=s.currentStateIndex,g=s.computedStates;o||(c=Object.create(c));var y=0;switch(l.type){case RESET:c={0:liftAction(INIT_ACTION)},d=1,p=[0],f=[],h=e,m=0,g=[];break;case COMMIT:c={0:liftAction(INIT_ACTION)},d=1,p=[0],f=[],h=g[m].state,m=0,g=[];break;case ROLLBACK:c={0:liftAction(INIT_ACTION)},d=1,p=[0],f=[],m=0,g=[];break;case TOGGLE_ACTION:var v=l.id,b=f.indexOf(v);f=-1===b?[v].concat(f):f.filter(function(e){return e!==v}),y=p.indexOf(v);break;case SET_ACTIONS_ACTIVE:for(var _=l.start,w=l.end,x=l.active,C=[],E=_;E<w;E++)C.push(E);f=x?difference(f,C):f.concat(C),y=p.indexOf(_);break;case JUMP_TO_STATE:m=l.index,y=1/0;break;case SWEEP:p=difference(p,f),f=[],m=Math.min(m,p.length-1);break;case PERFORM_ACTION:r.maxAge&&p.length===r.maxAge&&a(1),m===p.length-1&&m++;var S=d++;c[S]=l,y=(p=p.concat([S])).length-1;break;case IMPORT_STATE:u=(O=l.nextLiftedState).monitorState,c=O.actionsById,d=O.nextActionId,p=O.stagedActionIds,f=O.skippedActionIds,h=O.committedState,m=O.currentStateIndex,g=O.computedStates;break;case __WEBPACK_IMPORTED_MODULE_1__ngrx_store__.p:case __WEBPACK_IMPORTED_MODULE_1__ngrx_store__.b:y=0,r.maxAge&&p.length>r.maxAge&&(g=recomputeStates(g,y,i,h,c,p,f),a(p.length-r.maxAge),y=1/0);break;default:y=1/0}return g=recomputeStates(g,y,i,h,c,p,f),u=n(u,l),{monitorState:u,actionsById:c,nextActionId:d,stagedActionIds:p,skippedActionIds:f,committedState:h,currentStateIndex:m,computedStates:g};var O}}}function createIsExtensionOrMonitorPresent(e,t){return Boolean(e)||t.monitor!==noMonitor}function createReduxDevtoolsExtension(){var e="__REDUX_DEVTOOLS_EXTENSION__";return"object"==typeof window&&void 0!==window[e]?window[e]:null}function createStateObservable(e){return e.state}function noMonitor(){return null}function createConfig(e){var t={maxAge:!1,monitor:noMonitor},n="function"==typeof e?e():e,r=Object.assign({},t,n);if(r.maxAge&&r.maxAge<2)throw new Error("Devtools 'maxAge' cannot be less than 2, got "+r.maxAge);return r}__webpack_require__.d(__webpack_exports__,"b",function(){return StoreDevtoolsModule}),__webpack_require__.d(__webpack_exports__,"a",function(){return StoreDevtools}),__webpack_require__.d(__webpack_exports__,"j",function(){return INITIAL_OPTIONS}),__webpack_require__.d(__webpack_exports__,"i",function(){return STORE_DEVTOOLS_CONFIG}),__webpack_require__.d(__webpack_exports__,"h",function(){return DevtoolsDispatcher}),__webpack_require__.d(__webpack_exports__,"l",function(){return DevtoolsExtension}),__webpack_require__.d(__webpack_exports__,"k",function(){return REDUX_DEVTOOLS_EXTENSION}),__webpack_require__.d(__webpack_exports__,"c",function(){return IS_EXTENSION_OR_MONITOR_PRESENT}),__webpack_require__.d(__webpack_exports__,"g",function(){return createConfig}),__webpack_require__.d(__webpack_exports__,"d",function(){return createIsExtensionOrMonitorPresent}),__webpack_require__.d(__webpack_exports__,"e",function(){return createReduxDevtoolsExtension}),__webpack_require__.d(__webpack_exports__,"f",function(){return createStateObservable});var __WEBPACK_IMPORTED_MODULE_0__angular_core__=__webpack_require__("LMZF"),__WEBPACK_IMPORTED_MODULE_1__ngrx_store__=__webpack_require__("ADVA"),__WEBPACK_IMPORTED_MODULE_2_rxjs_ReplaySubject__=__webpack_require__("5q5V"),__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__=__webpack_require__("dmC+"),__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge__=__webpack_require__("BThc"),__WEBPACK_IMPORTED_MODULE_5_rxjs_operator_observeOn__=__webpack_require__("ozyc"),__WEBPACK_IMPORTED_MODULE_6_rxjs_operator_scan__=__webpack_require__("3k/+"),__WEBPACK_IMPORTED_MODULE_7_rxjs_operator_skip__=__webpack_require__("0l2a"),__WEBPACK_IMPORTED_MODULE_8_rxjs_operator_withLatestFrom__=__webpack_require__("ThPn"),__WEBPACK_IMPORTED_MODULE_9_rxjs_scheduler_queue__=__webpack_require__("Gcw1"),__WEBPACK_IMPORTED_MODULE_10_rxjs_Observable__=__webpack_require__("AP4T"),__WEBPACK_IMPORTED_MODULE_11_rxjs_observable_empty__=__webpack_require__("3m71"),__WEBPACK_IMPORTED_MODULE_12_rxjs_operator_filter__=__webpack_require__("6S6c"),__WEBPACK_IMPORTED_MODULE_13_rxjs_operator_share__=__webpack_require__("URbD"),__WEBPACK_IMPORTED_MODULE_14_rxjs_operator_switchMap__=__webpack_require__("GpNi"),__WEBPACK_IMPORTED_MODULE_15_rxjs_operator_takeUntil__=__webpack_require__("gy58"),__extends=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),PERFORM_ACTION="PERFORM_ACTION",RESET="RESET",ROLLBACK="ROLLBACK",COMMIT="COMMIT",SWEEP="SWEEP",TOGGLE_ACTION="TOGGLE_ACTION",SET_ACTIONS_ACTIVE="SET_ACTIONS_ACTIVE",JUMP_TO_STATE="JUMP_TO_STATE",IMPORT_STATE="IMPORT_STATE",PerformAction=function(){return function(e,t){if(this.action=e,this.timestamp=t,this.type=PERFORM_ACTION,void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?')}}(),Reset=function(){return function(e){this.timestamp=e,this.type=RESET}}(),Rollback=function(){return function(e){this.timestamp=e,this.type=ROLLBACK}}(),Commit=function(){return function(e){this.timestamp=e,this.type=COMMIT}}(),Sweep=function(){return function(){this.type=SWEEP}}(),ToggleAction=function(){return function(e){this.id=e,this.type=TOGGLE_ACTION}}(),JumpToState=function(){return function(e){this.index=e,this.type=JUMP_TO_STATE}}(),ImportState=function(){return function(e){this.nextLiftedState=e,this.type=IMPORT_STATE}}(),ExtensionActionTypes={START:"START",DISPATCH:"DISPATCH",STOP:"STOP",ACTION:"ACTION"},REDUX_DEVTOOLS_EXTENSION=new __WEBPACK_IMPORTED_MODULE_0__angular_core__.InjectionToken("Redux Devtools Extension"),DevtoolsExtension=function(){function DevtoolsExtension(e){this.instanceId="ngrx-store-"+Date.now(),this.devtoolsExtension=e,this.createActionStreams()}return DevtoolsExtension.prototype.notify=function(e,t){this.devtoolsExtension&&this.devtoolsExtension.send(null,t,{serialize:!1},this.instanceId)},DevtoolsExtension.prototype.createChangesObservable=function(){var e=this;return this.devtoolsExtension?new __WEBPACK_IMPORTED_MODULE_10_rxjs_Observable__.a(function(t){var n=e.devtoolsExtension.connect({instanceId:e.instanceId});return n.subscribe(function(e){return t.next(e)}),n.unsubscribe}):Object(__WEBPACK_IMPORTED_MODULE_11_rxjs_observable_empty__.a)()},DevtoolsExtension.prototype.createActionStreams=function(){var e=this,t=__WEBPACK_IMPORTED_MODULE_13_rxjs_operator_share__.a.call(this.createChangesObservable()),n=__WEBPACK_IMPORTED_MODULE_12_rxjs_operator_filter__.a.call(t,function(e){return e.type===ExtensionActionTypes.START}),r=__WEBPACK_IMPORTED_MODULE_12_rxjs_operator_filter__.a.call(t,function(e){return e.type===ExtensionActionTypes.STOP}),i=applyOperators(t,[[__WEBPACK_IMPORTED_MODULE_12_rxjs_operator_filter__.a,function(e){return e.type===ExtensionActionTypes.DISPATCH}],[__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__.a,function(t){return e.unwrapAction(t.payload)}]]),o=applyOperators(t,[[__WEBPACK_IMPORTED_MODULE_12_rxjs_operator_filter__.a,function(e){return e.type===ExtensionActionTypes.ACTION}],[__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__.a,function(t){return e.unwrapAction(t.payload)}]]),l=__WEBPACK_IMPORTED_MODULE_15_rxjs_operator_takeUntil__.a.call(o,r),a=__WEBPACK_IMPORTED_MODULE_15_rxjs_operator_takeUntil__.a.call(i,r);this.actions$=__WEBPACK_IMPORTED_MODULE_14_rxjs_operator_switchMap__.a.call(n,function(){return l}),this.liftedActions$=__WEBPACK_IMPORTED_MODULE_14_rxjs_operator_switchMap__.a.call(n,function(){return a})},DevtoolsExtension.prototype.unwrapAction=function(action){return"string"==typeof action?eval("("+action+")"):action},DevtoolsExtension}(),INIT_ACTION={type:__WEBPACK_IMPORTED_MODULE_1__ngrx_store__.b},StoreDevtoolsConfig=function(){},STORE_DEVTOOLS_CONFIG=new __WEBPACK_IMPORTED_MODULE_0__angular_core__.InjectionToken("@ngrx/devtools Options"),INITIAL_OPTIONS=new __WEBPACK_IMPORTED_MODULE_0__angular_core__.InjectionToken("@ngrx/devtools Initial Config"),DevtoolsDispatcher=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t}(__WEBPACK_IMPORTED_MODULE_1__ngrx_store__.a),StoreDevtools=function(){function e(e,t,n,r,i,o,l){var a=liftInitialState(o,l.monitor),s=liftReducerWith(o,a,l.monitor,l.maxAge?{maxAge:l.maxAge}:{}),u=applyOperators(t.asObservable(),[[__WEBPACK_IMPORTED_MODULE_7_rxjs_operator_skip__.a,1],[__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge__.a,r.actions$],[__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__.a,liftAction],[__WEBPACK_IMPORTED_MODULE_4_rxjs_operator_merge__.a,e,r.liftedActions$],[__WEBPACK_IMPORTED_MODULE_5_rxjs_operator_observeOn__.a,__WEBPACK_IMPORTED_MODULE_9_rxjs_scheduler_queue__.a]]),c=__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__.a.call(n,s),d=new __WEBPACK_IMPORTED_MODULE_2_rxjs_ReplaySubject__.a(1),p=applyOperators(u,[[__WEBPACK_IMPORTED_MODULE_8_rxjs_operator_withLatestFrom__.a,c],[__WEBPACK_IMPORTED_MODULE_6_rxjs_operator_scan__.a,function(e,t){var n=t[0],i=(0,t[1])(e.state,n);return r.notify(n,i),{state:i,action:n}},{state:a,action:null}]]).subscribe(function(e){var t=e.action;d.next(e.state),t.type===PERFORM_ACTION&&i.next(t.action)}),f=d.asObservable(),h=__WEBPACK_IMPORTED_MODULE_3_rxjs_operator_map__.a.call(f,unliftState);this.stateSubscription=p,this.dispatcher=e,this.liftedState=f,this.state=h}return e.prototype.dispatch=function(e){this.dispatcher.next(e)},e.prototype.next=function(e){this.dispatcher.next(e)},e.prototype.error=function(e){},e.prototype.complete=function(){},e.prototype.performAction=function(e){this.dispatch(new PerformAction(e))},e.prototype.reset=function(){this.dispatch(new Reset)},e.prototype.rollback=function(){this.dispatch(new Rollback)},e.prototype.commit=function(){this.dispatch(new Commit)},e.prototype.sweep=function(){this.dispatch(new Sweep)},e.prototype.toggleAction=function(e){this.dispatch(new ToggleAction(e))},e.prototype.jumpToState=function(e){this.dispatch(new JumpToState(e))},e.prototype.importState=function(e){this.dispatch(new ImportState(e))},e}(),IS_EXTENSION_OR_MONITOR_PRESENT=new __WEBPACK_IMPORTED_MODULE_0__angular_core__.InjectionToken("Is Devtools Extension or Monitor Present"),StoreDevtoolsModule=function(){function e(){}return e.instrument=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[DevtoolsExtension,DevtoolsDispatcher,StoreDevtools,{provide:INITIAL_OPTIONS,useValue:t},{provide:IS_EXTENSION_OR_MONITOR_PRESENT,deps:[REDUX_DEVTOOLS_EXTENSION,STORE_DEVTOOLS_CONFIG],useFactory:createIsExtensionOrMonitorPresent},{provide:REDUX_DEVTOOLS_EXTENSION,useFactory:createReduxDevtoolsExtension},{provide:STORE_DEVTOOLS_CONFIG,deps:[INITIAL_OPTIONS],useFactory:createConfig},{provide:__WEBPACK_IMPORTED_MODULE_1__ngrx_store__.l,deps:[StoreDevtools],useFactory:createStateObservable},{provide:__WEBPACK_IMPORTED_MODULE_1__ngrx_store__.h,useExisting:DevtoolsDispatcher}]}},e}()},uNkO:function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},umMR:function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},vyV2:function(e,t,n){var r=n("+GRi"),i=n("rppw"),o=n("KM3d");e.exports=function(e){return function(t,n,l){var a,s=r(t),u=i(s.length),c=o(l,u);if(e&&n!=n){for(;u>c;)if((a=s[c++])!=a)return!0}else for(;u>c;c++)if((e||c in s)&&s[c]===n)return e||c||0;return!e&&-1}}},"w/BM":function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},wP3s:function(e,t,n){"use strict";t.a=function(e,t,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),function(r){return"number"==typeof t&&(n=t,t=null),r.lift(new l(e,t,n))}};var r=n("6Xbx"),i=n("qgI0"),o=n("lI6h"),l=function(){function e(e,t,n){void 0===n&&(n=Number.POSITIVE_INFINITY),this.project=e,this.resultSelector=t,this.concurrent=n}return e.prototype.call=function(e,t){return t.subscribe(new a(e,this.project,this.resultSelector,this.concurrent))},e}(),a=function(e){function t(t,n,r,i){void 0===i&&(i=Number.POSITIVE_INFINITY),e.call(this,t),this.project=n,this.resultSelector=r,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return Object(r.__extends)(t,e),t.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},t.prototype._tryNext=function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(e){return void this.destination.error(e)}this.active++,this._innerSub(t,e,n)},t.prototype._innerSub=function(e,t,n){this.add(Object(i.a)(this,e,t,n))},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},t.prototype.notifyNext=function(e,t,n,r,i){this.resultSelector?this._notifyResultSelector(e,t,n,r):this.destination.next(t)},t.prototype._notifyResultSelector=function(e,t,n,r){var i;try{i=this.resultSelector(e,t,n,r)}catch(e){return void this.destination.error(e)}this.destination.next(i)},t.prototype.notifyComplete=function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(o.a)},wRXj:function(e,t,n){"use strict";var r=n("6Xbx").__decorate,i=n("6Xbx").__metadata;Object.defineProperty(t,"__esModule",{value:!0});var o=n("LMZF"),l=n("fAeS"),a=n("Un6q"),s=n("/zAi"),u=n("4cOY"),c=n("P0cP"),d=n("0nO6");t.DROPDOWN_VALUE_ACCESSOR={provide:d.NG_VALUE_ACCESSOR,useExisting:o.forwardRef(function(){return p}),multi:!0};var p=function(){function e(e,t,n,r,i,l){this.el=e,this.domHandler=t,this.renderer=n,this.cd=r,this.objectUtils=i,this.zone=l,this.scrollHeight="200px",this.autoWidth=!0,this.filterBy="label",this.lazy=!0,this.resetFilterOnHide=!1,this.dropdownIcon="fa fa-fw fa-caret-down",this.onChange=new o.EventEmitter,this.onFocus=new o.EventEmitter,this.onBlur=new o.EventEmitter,this.onModelChange=function(){},this.onModelTouched=function(){},this.panelVisible=!1}return e.prototype.ngAfterContentInit=function(){var e=this;this.templates.forEach(function(t){switch(t.getType()){case"item":default:e.itemTemplate=t.template}})},e.prototype.ngOnInit=function(){this.optionsToDisplay=this.options,this.updateSelectedOption(null)},Object.defineProperty(e.prototype,"options",{get:function(){return this._options},set:function(e){var t=this.optionLabel?this.objectUtils.generateSelectItems(e,this.optionLabel):e;this._options=t,this.optionsToDisplay=this._options,this.updateSelectedOption(this.value),this.optionsChanged=!0,this.filterValue&&this.filterValue.length&&this.activateFilter()},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){this.container=this.containerViewChild.nativeElement,this.panel=this.panelViewChild.nativeElement,this.itemsWrapper=this.itemsWrapperViewChild.nativeElement,this.editable&&this.updateEditableLabel(),this.updateDimensions(),this.initialized=!0,this.appendTo&&("body"===this.appendTo?document.body.appendChild(this.panel):this.domHandler.appendChild(this.panel,this.appendTo))},Object.defineProperty(e.prototype,"label",{get:function(){return this.selectedOption?this.selectedOption.label:null},enumerable:!0,configurable:!0}),e.prototype.updateEditableLabel=function(){this.editableInputViewChild&&this.editableInputViewChild.nativeElement&&(this.editableInputViewChild.nativeElement.value=this.selectedOption?this.selectedOption.label:this.value||"")},e.prototype.onItemClick=function(e,t){this.itemClick=!0,this.selectItem(e,t),this.focusViewChild.nativeElement.focus(),this.hide()},e.prototype.selectItem=function(e,t){this.selectedOption!=t&&(this.selectedOption=t,this.value=t.value,this.onModelChange(this.value),this.updateEditableLabel(),this.onChange.emit({originalEvent:e,value:this.value}))},e.prototype.ngAfterViewChecked=function(){var e=this;this.shown&&(this.onShow(),this.shown=!1),this.optionsChanged&&this.panelVisible&&(this.optionsChanged=!1,this.zone.runOutsideAngular(function(){setTimeout(function(){e.updateDimensions(),e.alignPanel()},1)})),this.selectedOptionUpdated&&this.itemsWrapper&&(this.domHandler.findSingle(this.panel,"li.ui-state-highlight")&&this.domHandler.scrollInView(this.itemsWrapper,this.domHandler.findSingle(this.panel,"li.ui-state-highlight")),this.selectedOptionUpdated=!1)},e.prototype.writeValue=function(e){this.filter&&this.resetFilter(),this.value=e,this.updateSelectedOption(e),this.updateEditableLabel(),this.cd.markForCheck()},e.prototype.resetFilter=function(){this.filterViewChild&&this.filterViewChild.nativeElement&&(this.filterViewChild.nativeElement.value=""),this.optionsToDisplay=this.options},e.prototype.updateSelectedOption=function(e){this.selectedOption=this.findOption(e,this.optionsToDisplay),this.placeholder||this.selectedOption||!this.optionsToDisplay||!this.optionsToDisplay.length||this.editable||(this.selectedOption=this.optionsToDisplay[0]),this.selectedOptionUpdated=!0},e.prototype.registerOnChange=function(e){this.onModelChange=e},e.prototype.registerOnTouched=function(e){this.onModelTouched=e},e.prototype.setDisabledState=function(e){this.disabled=e},e.prototype.updateDimensions=function(){if(this.autoWidth){var e=this.domHandler.findSingle(this.el.nativeElement,"select");this.style&&(this.style.width||this.style["min-width"])||(this.el.nativeElement.children[0].style.width=e.offsetWidth+30+"px")}},e.prototype.onMouseclick=function(e){var t=this;this.disabled||this.readonly||(this.selfClick=!0,this.itemClick||(this.focusViewChild.nativeElement.focus(),this.panelVisible?this.hide():(this.show(),void 0!=this.filterViewChild&&setTimeout(function(){t.filterViewChild.nativeElement.focus()},200))))},e.prototype.onEditableInputClick=function(e){this.itemClick=!0,this.bindDocumentClickListener()},e.prototype.onEditableInputFocus=function(e){this.focus=!0,this.hide()},e.prototype.onEditableInputChange=function(e){this.value=e.target.value,this.updateSelectedOption(this.value),this.onModelChange(this.value),this.onChange.emit({originalEvent:e,value:this.value})},e.prototype.onShow=function(){if(this.options&&this.options.length){this.alignPanel(),this.bindDocumentClickListener();var e=this.domHandler.findSingle(this.itemsWrapper,".ui-dropdown-item.ui-state-highlight");e&&this.domHandler.scrollInView(this.itemsWrapper,e)}},e.prototype.show=function(){this.appendTo&&(this.panel.style.minWidth=this.domHandler.getWidth(this.container)+"px"),this.panel.style.zIndex=String(++u.DomHandler.zindex),this.panelVisible=!0,this.shown=!0},e.prototype.hide=function(){this.panelVisible=!1,this.filter&&this.resetFilterOnHide&&this.resetFilter()},e.prototype.alignPanel=function(){this.appendTo?this.domHandler.absolutePosition(this.panel,this.container):this.domHandler.relativePosition(this.panel,this.container)},e.prototype.onInputFocus=function(e){this.focus=!0,this.onFocus.emit(e)},e.prototype.onInputBlur=function(e){this.focus=!1,this.onModelTouched(),this.onBlur.emit(e)},e.prototype.onKeydown=function(e){if(!this.readonly){var t=this.selectedOption?this.findOptionIndex(this.selectedOption.value,this.optionsToDisplay):-1;switch(e.which){case 40:if(!this.panelVisible&&e.altKey)this.show();else if(-1!==t){var n=t+1;n!=this.optionsToDisplay.length&&(this.selectItem(e,this.optionsToDisplay[n]),this.selectedOptionUpdated=!0)}else this.optionsToDisplay&&this.selectItem(e,this.optionsToDisplay[0]);e.preventDefault();break;case 38:t>0&&(this.selectItem(e,this.optionsToDisplay[t-1]),this.selectedOptionUpdated=!0),e.preventDefault();break;case 32:case 32:this.panelVisible||(this.show(),e.preventDefault());break;case 13:this.hide(),e.preventDefault();break;case 27:case 9:this.hide()}}},e.prototype.findOptionIndex=function(e,t){var n=-1;if(t)for(var r=0;r<t.length;r++)if(null==e&&null==t[r].value||this.objectUtils.equals(e,t[r].value,this.dataKey)){n=r;break}return n},e.prototype.findOption=function(e,t){var n=this.findOptionIndex(e,t);return-1!=n?t[n]:null},e.prototype.onFilter=function(e){var t=e.target.value.toLowerCase();t&&t.length?(this.filterValue=t,this.activateFilter()):(this.filterValue=null,this.optionsToDisplay=this.options),this.optionsChanged=!0},e.prototype.activateFilter=function(){var e=this.filterBy.split(",");this.options&&this.options.length&&(this.optionsToDisplay=this.objectUtils.filter(this.options,e,this.filterValue),this.optionsChanged=!0)},e.prototype.applyFocus=function(){this.editable?this.domHandler.findSingle(this.el.nativeElement,".ui-dropdown-label.ui-inputtext").focus():this.domHandler.findSingle(this.el.nativeElement,"input[readonly]").focus()},e.prototype.bindDocumentClickListener=function(){var e=this;this.documentClickListener||(this.documentClickListener=this.renderer.listen("document","click",function(){e.selfClick||e.itemClick||(e.panelVisible=!1,e.unbindDocumentClickListener()),e.selfClick=!1,e.itemClick=!1,e.cd.markForCheck()}))},e.prototype.unbindDocumentClickListener=function(){this.documentClickListener&&(this.documentClickListener(),this.documentClickListener=null)},e.prototype.ngOnDestroy=function(){this.initialized=!1,this.unbindDocumentClickListener(),this.appendTo&&this.el.nativeElement.appendChild(this.panel)},e}();r([o.Input(),i("design:type",String)],p.prototype,"scrollHeight",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"filter",void 0),r([o.Input(),i("design:type",String)],p.prototype,"name",void 0),r([o.Input(),i("design:type",Object)],p.prototype,"style",void 0),r([o.Input(),i("design:type",Object)],p.prototype,"panelStyle",void 0),r([o.Input(),i("design:type",String)],p.prototype,"styleClass",void 0),r([o.Input(),i("design:type",String)],p.prototype,"panelStyleClass",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"disabled",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"readonly",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"autoWidth",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"required",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"editable",void 0),r([o.Input(),i("design:type",Object)],p.prototype,"appendTo",void 0),r([o.Input(),i("design:type",Number)],p.prototype,"tabindex",void 0),r([o.Input(),i("design:type",String)],p.prototype,"placeholder",void 0),r([o.Input(),i("design:type",String)],p.prototype,"filterPlaceholder",void 0),r([o.Input(),i("design:type",String)],p.prototype,"inputId",void 0),r([o.Input(),i("design:type",String)],p.prototype,"dataKey",void 0),r([o.Input(),i("design:type",String)],p.prototype,"filterBy",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"lazy",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"autofocus",void 0),r([o.Input(),i("design:type",Boolean)],p.prototype,"resetFilterOnHide",void 0),r([o.Input(),i("design:type",String)],p.prototype,"dropdownIcon",void 0),r([o.Input(),i("design:type",String)],p.prototype,"optionLabel",void 0),r([o.Output(),i("design:type",o.EventEmitter)],p.prototype,"onChange",void 0),r([o.Output(),i("design:type",o.EventEmitter)],p.prototype,"onFocus",void 0),r([o.Output(),i("design:type",o.EventEmitter)],p.prototype,"onBlur",void 0),r([o.ViewChild("container"),i("design:type",o.ElementRef)],p.prototype,"containerViewChild",void 0),r([o.ViewChild("panel"),i("design:type",o.ElementRef)],p.prototype,"panelViewChild",void 0),r([o.ViewChild("itemswrapper"),i("design:type",o.ElementRef)],p.prototype,"itemsWrapperViewChild",void 0),r([o.ViewChild("filter"),i("design:type",o.ElementRef)],p.prototype,"filterViewChild",void 0),r([o.ViewChild("in"),i("design:type",o.ElementRef)],p.prototype,"focusViewChild",void 0),r([o.ViewChild("editableInput"),i("design:type",o.ElementRef)],p.prototype,"editableInputViewChild",void 0),r([o.ContentChildren(s.PrimeTemplate),i("design:type",o.QueryList)],p.prototype,"templates",void 0),r([o.Input(),i("design:type",Array),i("design:paramtypes",[Array])],p.prototype,"options",null),p=r([o.Component({selector:"p-dropdown",template:'\n <div #container [ngClass]="{\'ui-dropdown ui-widget ui-state-default ui-corner-all ui-helper-clearfix\':true,\n \'ui-state-disabled\':disabled,\'ui-dropdown-open\':panelVisible,\'ui-state-focus\':focus}"\n (click)="onMouseclick($event)" [ngStyle]="style" [class]="styleClass">\n <div class="ui-helper-hidden-accessible" *ngIf="autoWidth">\n <select [required]="required" [attr.name]="name" [attr.aria-label]="selectedOption ? selectedOption.label : \' \'" tabindex="-1" aria-hidden="true">\n <option *ngIf="placeholder">{{placeholder}}</option>\n <option *ngFor="let option of options" [value]="option.value" [selected]="selectedOption == option">{{option.label}}</option>\n </select>\n </div>\n <div class="ui-helper-hidden-accessible">\n <input #in [attr.id]="inputId" type="text" [attr.aria-label]="selectedOption ? selectedOption.label : \' \'" readonly (focus)="onInputFocus($event)" role="listbox"\n (blur)="onInputBlur($event)" (keydown)="onKeydown($event)" [disabled]="disabled" [attr.tabindex]="tabindex" [attr.autofocus]="autofocus">\n </div>\n <label [ngClass]="{\'ui-dropdown-label ui-inputtext ui-corner-all\':true,\'ui-dropdown-label-empty\':(label == null || label.length === 0)}" *ngIf="!editable && (label != null)">{{label||\'empty\'}}</label>\n <label [ngClass]="{\'ui-dropdown-label ui-inputtext ui-corner-all ui-placeholder\':true,\'ui-dropdown-label-empty\': (placeholder == null || placeholder.length === 0)}" *ngIf="!editable && (label == null)">{{placeholder||\'empty\'}}</label>\n <input #editableInput type="text" [attr.aria-label]="selectedOption ? selectedOption.label : \' \'" class="ui-dropdown-label ui-inputtext ui-corner-all" *ngIf="editable" [disabled]="disabled" [attr.placeholder]="placeholder"\n (click)="onEditableInputClick($event)" (input)="onEditableInputChange($event)" (focus)="onEditableInputFocus($event)" (blur)="onInputBlur($event)">\n <div class="ui-dropdown-trigger ui-state-default ui-corner-right">\n <span class="ui-clickable" [ngClass]="dropdownIcon"></span>\n </div>\n <div #panel [ngClass]="\'ui-dropdown-panel ui-widget-content ui-corner-all ui-shadow\'" [@panelState]="panelVisible ? \'visible\' : \'hidden\'"\n [style.display]="panelVisible ? \'block\' : \'none\'" [ngStyle]="panelStyle" [class]="panelStyleClass">\n <div *ngIf="filter" class="ui-dropdown-filter-container" (input)="onFilter($event)" (click)="$event.stopPropagation()">\n <input #filter type="text" autocomplete="off" class="ui-dropdown-filter ui-inputtext ui-widget ui-state-default ui-corner-all" [attr.placeholder]="filterPlaceholder"\n (keydown.enter)="$event.preventDefault()" (keydown)="onKeydown($event)">\n <span class="fa fa-search"></span>\n </div>\n <div #itemswrapper class="ui-dropdown-items-wrapper" [style.max-height]="scrollHeight||\'auto\'">\n <ul class="ui-dropdown-items ui-dropdown-list ui-widget-content ui-widget ui-corner-all ui-helper-reset" *ngIf="lazy ? panelVisible : true">\n <li *ngFor="let option of optionsToDisplay;let i=index"\n [ngClass]="{\'ui-dropdown-item ui-corner-all\':true, \'ui-state-highlight\':(selectedOption == option),\n \'ui-dropdown-item-empty\':!option.label||option.label.length === 0}"\n (click)="onItemClick($event, option)">\n <span *ngIf="!itemTemplate">{{option.label||\'empty\'}}</span>\n <ng-template [pTemplateWrapper]="itemTemplate" [item]="option" *ngIf="itemTemplate"></ng-template>\n </li>\n </ul>\n </div>\n </div>\n </div>\n ',animations:[l.trigger("panelState",[l.state("hidden",l.style({opacity:0})),l.state("visible",l.style({opacity:1})),l.transition("visible => hidden",l.animate("400ms ease-in")),l.transition("hidden => visible",l.animate("400ms ease-out"))])],providers:[u.DomHandler,c.ObjectUtils,t.DROPDOWN_VALUE_ACCESSOR]})],p),t.Dropdown=p;var f=function(){};f=r([o.NgModule({imports:[a.CommonModule,s.SharedModule],exports:[p,s.SharedModule],declarations:[p]})],f),t.DropdownModule=f},wclm:function(e,t,n){"use strict";var r=n("6Xbx"),i=function(){function e(t,n){void 0===n&&(n=e.now),this.SchedulerAction=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(n,t)},e.now=Date.now?Date.now:function(){return+new Date},e}();n.d(t,"a",function(){return o});var o=function(e){function t(){e.apply(this,arguments),this.actions=[],this.active=!1,this.scheduled=void 0}return Object(r.__extends)(t,e),t.prototype.flush=function(e){var t=this.actions;if(this.active)t.push(e);else{var n;this.active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(i)},xI8H:function(e,t,n){var r=n("c09d")("meta"),i=n("JXkd"),o=n("rMsi"),l=n("tose").f,a=0,s=Object.isExtensible||function(){return!0},u=!n("umMR")(function(){return s(Object.preventExtensions({}))}),c=function(e){l(e,r,{value:{i:"O"+ ++a,w:{}}})},d=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!s(e))return"F";if(!t)return"E";c(e)}return e[r].i},getWeak:function(e,t){if(!o(e,r)){if(!s(e))return!0;if(!t)return!1;c(e)}return e[r].w},onFreeze:function(e){return u&&d.NEED&&s(e)&&!o(e,r)&&c(e),e}}},xIGM:function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return o});var r="undefined"!=typeof window&&window,i="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,o=r||void 0!==e&&e||i}).call(t,n("fRUx"))},yIWP:function(e,t,n){var r=n("Iclu")("keys"),i=n("c09d");e.exports=function(e){return r[e]||(r[e]=i(e))}}},[0]);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/polyfills.32ca5670d6503e090789.bundle.js b/asterixdb/asterix-app/src/main/resources/dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
new file mode 100644
index 0000000..053fad1
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/polyfills.32ca5670d6503e090789.bundle.js
@@ -0,0 +1 @@
+webpackJsonp([1],{"+GRi":function(e,t,n){var r=n("Wo2w"),o=n("Wy9r");e.exports=function(e){return r(o(e))}},"+iEx":function(e,t,n){n("fHxy"),n("5GJ3"),n("X0O/"),n("HCkn"),n("ncNB"),n("soMw"),n("8sYH"),n("IJ3P"),n("t6ta"),e.exports=n("b4gG").Reflect},"+pQw":function(e,t,n){var r=n("JXkd");e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},1:function(e,t,n){e.exports=n("TU+8")},"2Fuj":function(e,t,n){var r=n("R5c1"),o=n("a/Sk");e.exports=Object.keys||function(e){return r(e,o)}},"3LDD":function(e,t,n){"use strict";var r=n("tose").f,o=n("51pc"),i=n("pBmS"),a=n("pa70"),c=n("Lcie"),u=n("p/bR"),s=n("WsSm"),l=n("w/BM"),f=n("KpXt"),p=n("V+0c"),h=n("xI8H").fastKey,d=n("Y5fy"),v=p?"_s":"size",y=function(e,t){var n,r=h(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,s){var l=e(function(e,r){c(e,l,t,"_i"),e._t=t,e._i=o(null),e._f=void 0,e._l=void 0,e[v]=0,void 0!=r&&u(r,n,e[s],e)});return i(l.prototype,{clear:function(){for(var e=d(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[v]=0},delete:function(e){var n=d(this,t),r=y(n,e);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[v]--}return!!r},forEach:function(e){d(this,t);for(var n,r=a(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!y(d(this,t),e)}}),p&&r(l.prototype,"size",{get:function(){return d(this,t)[v]}}),l},def:function(e,t,n){var r,o,i=y(e,t);return i?i.v=n:(e._l=i={i:o=h(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=i),r&&(r.n=i),e[v]++,"F"!==o&&(e._i[o]=i)),e},getEntry:y,setStrong:function(e,t,n){s(e,t,function(e,n){this._t=d(e,t),this._k=n,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?l(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,l(1))},n?"entries":"values",!n,!0),f(t)}}},"3r0D":function(e,t,n){var r=n("Iclu")("wks"),o=n("c09d"),i=n("ptrv").Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},"51pc":function(e,t,n){var r=n("+pQw"),o=n("ewdp"),i=n("a/Sk"),a=n("yIWP")("IE_PROTO"),c=function(){},u=function(){var e,t=n("BQSv")("iframe"),r=i.length;for(t.style.display="none",n("Ed9o").appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),u=e.F;r--;)delete u.prototype[i[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(c.prototype=r(e),n=new c,c.prototype=null,n[a]=e):n=u(),void 0===t?n:o(n,t)}},"5GJ3":function(e,t,n){var r=n("gBtn"),o=n("+pQw"),i=r.key,a=r.map,c=r.store;r.exp({deleteMetadata:function(e,t){var n=arguments.length<3?void 0:i(arguments[2]),r=a(o(t),n,!1);if(void 0===r||!r.delete(e))return!1;if(r.size)return!0;var u=c.get(t);return u.delete(n),!!u.size||c.delete(t)}})},"5oDA":function(e,t,n){var r=n("JXkd"),o=n("+pQw"),i=function(e,t){if(o(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n("pa70")(Function.call,n("6De9").f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return i(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:i}},"6De9":function(e,t,n){var r=n("9e9+"),o=n("piOq"),i=n("+GRi"),a=n("A1WY"),c=n("rMsi"),u=n("gNkH"),s=Object.getOwnPropertyDescriptor;t.f=n("V+0c")?s:function(e,t){if(e=i(e),t=a(t,!0),u)try{return s(e,t)}catch(e){}if(c(e,t))return o(!r.f.call(e,t),e[t])}},"8sYH":function(e,t,n){var r=n("gBtn"),o=n("+pQw"),i=n("TJLg"),a=r.has,c=r.key,u=function(e,t,n){if(a(e,t,n))return!0;var r=i(t);return null!==r&&u(e,r,n)};r.exp({hasMetadata:function(e,t){return u(e,o(t),arguments.length<3?void 0:c(arguments[2]))}})},"9ScN":function(e,t,n){"use strict";var r=n("51pc"),o=n("piOq"),i=n("P6IN"),a={};n("gxdV")(a,n("3r0D")("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},"9e9+":function(e,t){t.f={}.propertyIsEnumerable},"9wYb":function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},A1WY:function(e,t,n){var r=n("JXkd");e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},BCYq:function(e,t,n){var r=n("pa70"),o=n("Wo2w"),i=n("RT4T"),a=n("rppw"),c=n("UKZQ");e.exports=function(e,t){var n=1==e,u=2==e,s=3==e,l=4==e,f=6==e,p=5==e||f,h=t||c;return function(t,c,d){for(var v,y,g=i(t),k=o(g),m=r(c,d,3),_=a(k.length),b=0,w=n?h(t,_):u?h(t,0):void 0;_>b;b++)if((p||b in k)&&(v=k[b],y=m(v,b,g),e))if(n)w[b]=y;else if(y)switch(e){case 3:return!0;case 5:return v;case 6:return b;case 2:w.push(v)}else if(l)return!1;return f?-1:s||l?l:w}}},BQSv:function(e,t,n){var r=n("JXkd"),o=n("ptrv").document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},CDXM:function(e,t,n){var r=n("ptrv"),o=n("b4gG"),i=n("gxdV"),a=n("lfBE"),c=n("pa70"),u=function(e,t,n){var s,l,f,p,h=e&u.F,d=e&u.G,v=e&u.P,y=e&u.B,g=d?r:e&u.S?r[t]||(r[t]={}):(r[t]||{}).prototype,k=d?o:o[t]||(o[t]={}),m=k.prototype||(k.prototype={});d&&(n=t);for(s in n)f=((l=!h&&g&&void 0!==g[s])?g:n)[s],p=y&&l?c(f,r):v&&"function"==typeof f?c(Function.call,f):f,g&&a(g,s,f,e&u.U),k[s]!=f&&i(k,s,p),v&&m[s]!=f&&(m[s]=f)};r.core=o,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},Ed9o:function(e,t,n){var r=n("ptrv").document;e.exports=r&&r.documentElement},HCkn:function(e,t,n){var r=n("Ps07"),o=n("WGJ/"),i=n("gBtn"),a=n("+pQw"),c=n("TJLg"),u=i.keys,s=i.key,l=function(e,t){var n=u(e,t),i=c(e);if(null===i)return n;var a=l(i,t);return a.length?n.length?o(new r(n.concat(a))):a:n};i.exp({getMetadataKeys:function(e){return l(a(e),arguments.length<2?void 0:s(arguments[1]))}})},IJ3P:function(e,t,n){var r=n("gBtn"),o=n("+pQw"),i=r.has,a=r.key;r.exp({hasOwnMetadata:function(e,t){return i(e,o(t),arguments.length<3?void 0:a(arguments[2]))}})},Iclu:function(e,t,n){var r=n("ptrv"),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});e.exports=function(e){return o[e]||(o[e]={})}},JXkd:function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},KGrn:function(e,t){e.exports=!1},KM3d:function(e,t,n){var r=n("9wYb"),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},"KpI+":function(e,t,n){var r=n("lexG"),o=n("3r0D")("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},KpXt:function(e,t,n){"use strict";var r=n("ptrv"),o=n("tose"),i=n("V+0c"),a=n("3r0D")("species");e.exports=function(e){var t=r[e];i&&t&&!t[a]&&o.f(t,a,{configurable:!0,get:function(){return this}})}},Lcie:function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},P6IN:function(e,t,n){var r=n("tose").f,o=n("rMsi"),i=n("3r0D")("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},Ps07:function(e,t,n){"use strict";var r=n("3LDD"),o=n("Y5fy");e.exports=n("cpZ/")("Set",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(o(this,"Set"),e=0===e?0:e,e)}},r)},QZhw:function(e,t,n){"use strict";var r,o=n("BCYq")(0),i=n("lfBE"),a=n("xI8H"),c=n("rIdM"),u=n("XRS9"),s=n("JXkd"),l=n("umMR"),f=n("Y5fy"),p=a.getWeak,h=Object.isExtensible,d=u.ufstore,v={},y=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},g={get:function(e){if(s(e)){var t=p(e);return!0===t?d(f(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(f(this,"WeakMap"),e,t)}},k=e.exports=n("cpZ/")("WeakMap",y,g,u,!0,!0);l(function(){return 7!=(new k).set((Object.freeze||Object)(v),7).get(v)})&&(c((r=u.getConstructor(y,"WeakMap")).prototype,g),a.NEED=!0,o(["delete","has","get","set"],function(e){var t=k.prototype,n=t[e];i(t,e,function(t,o){if(s(t)&&!h(t)){this._f||(this._f=new r);var i=this._f[e](t,o);return"set"==e?this:i}return n.call(this,t,o)})}))},R5c1:function(e,t,n){var r=n("rMsi"),o=n("+GRi"),i=n("vyV2")(!1),a=n("yIWP")("IE_PROTO");e.exports=function(e,t){var n,c=o(e),u=0,s=[];for(n in c)n!=a&&r(c,n)&&s.push(n);for(;t.length>u;)r(c,n=t[u++])&&(~i(s,n)||s.push(n));return s}},RT4T:function(e,t,n){var r=n("Wy9r");e.exports=function(e){return Object(r(e))}},TJLg:function(e,t,n){var r=n("rMsi"),o=n("RT4T"),i=n("yIWP")("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},"TU+8":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("+iEx"),o=(n.n(r),n("eFQL"));n.n(o)},UKZQ:function(e,t,n){var r=n("a7b8");e.exports=function(e,t){return new(r(e))(t)}},ULWX:function(e,t,n){var r=n("+pQw");e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},UlVq:function(e,t,n){var r=n("3r0D")("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},Ula3:function(e,t,n){var r=n("JXkd"),o=n("5oDA").set;e.exports=function(e,t,n){var i,a=t.constructor;return a!==n&&"function"==typeof a&&(i=a.prototype)!==n.prototype&&r(i)&&o&&o(e,i),e}},"V+0c":function(e,t,n){e.exports=!n("umMR")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},VceJ:function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},"WGJ/":function(e,t,n){var r=n("p/bR");e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},Wo2w:function(e,t,n){var r=n("VceJ");e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},WsSm:function(e,t,n){"use strict";var r=n("KGrn"),o=n("CDXM"),i=n("lfBE"),a=n("gxdV"),c=n("rMsi"),u=n("lexG"),s=n("9ScN"),l=n("P6IN"),f=n("TJLg"),p=n("3r0D")("iterator"),h=!([].keys&&"next"in[].keys()),d=function(){return this};e.exports=function(e,t,n,v,y,g,k){s(n,t,v);var m,_,b,w=function(e){if(!h&&e in x)return x[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},T=t+" Iterator",E="values"==y,O=!1,x=e.prototype,S=x[p]||x["@@iterator"]||y&&x[y],D=!h&&S||w(y),P=y?E?w("entries"):D:void 0,j="Array"==t?x.entries||S:S;if(j&&(b=f(j.call(new e)))!==Object.prototype&&b.next&&(l(b,T,!0),r||c(b,p)||a(b,p,d)),E&&S&&"values"!==S.name&&(O=!0,D=function(){return S.call(this)}),r&&!k||!h&&!O&&x[p]||a(x,p,D),u[t]=D,u[T]=d,y)if(m={values:E?D:w("values"),keys:g?D:w("keys"),entries:P},k)for(_ in m)_ in x||i(x,_,m[_]);else o(o.P+o.F*(h||O),t,m);return m}},Wy9r:function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"X0O/":function(e,t,n){var r=n("gBtn"),o=n("+pQw"),i=n("TJLg"),a=r.has,c=r.get,u=r.key,s=function(e,t,n){if(a(e,t,n))return c(e,t,n);var r=i(t);return null!==r?s(e,r,n):void 0};r.exp({getMetadata:function(e,t){return s(e,o(t),arguments.length<3?void 0:u(arguments[2]))}})},XRS9:function(e,t,n){"use strict";var r=n("pBmS"),o=n("xI8H").getWeak,i=n("+pQw"),a=n("JXkd"),c=n("Lcie"),u=n("p/bR"),s=n("BCYq"),l=n("rMsi"),f=n("Y5fy"),p=s(5),h=s(6),d=0,v=function(e){return e._l||(e._l=new y)},y=function(){this.a=[]},g=function(e,t){return p(e.a,function(e){return e[0]===t})};y.prototype={get:function(e){var t=g(this,e);if(t)return t[1]},has:function(e){return!!g(this,e)},set:function(e,t){var n=g(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=h(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,i){var s=e(function(e,r){c(e,s,t,"_i"),e._t=t,e._i=d++,e._l=void 0,void 0!=r&&u(r,n,e[i],e)});return r(s.prototype,{delete:function(e){if(!a(e))return!1;var n=o(e);return!0===n?v(f(this,t)).delete(e):n&&l(n,this._i)&&delete n[this._i]},has:function(e){if(!a(e))return!1;var n=o(e);return!0===n?v(f(this,t)).has(e):n&&l(n,this._i)}}),s},def:function(e,t,n){var r=o(i(t),!0);return!0===r?v(e).set(t,n):r[e._i]=n,e},ufstore:v}},Y5fy:function(e,t,n){var r=n("JXkd");e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},ZI9W:function(e,t,n){"use strict";var r=n("3LDD"),o=n("Y5fy");e.exports=n("cpZ/")("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(o(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(o(this,"Map"),0===e?0:e,t)}},r,!0)},"a/Sk":function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},a7b8:function(e,t,n){var r=n("JXkd"),o=n("rKhO"),i=n("3r0D")("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},b4gG:function(e,t){var n=e.exports={version:"2.5.3"};"number"==typeof __e&&(__e=n)},c09d:function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},"cpZ/":function(e,t,n){"use strict";var r=n("ptrv"),o=n("CDXM"),i=n("lfBE"),a=n("pBmS"),c=n("xI8H"),u=n("p/bR"),s=n("Lcie"),l=n("JXkd"),f=n("umMR"),p=n("UlVq"),h=n("P6IN"),d=n("Ula3");e.exports=function(e,t,n,v,y,g){var k=r[e],m=k,_=y?"set":"add",b=m&&m.prototype,w={},T=function(e){var t=b[e];i(b,e,"delete"==e?function(e){return!(g&&!l(e))&&t.call(this,0===e?0:e)}:"has"==e?function(e){return!(g&&!l(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return g&&!l(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})};if("function"==typeof m&&(g||b.forEach&&!f(function(){(new m).entries().next()}))){var E=new m,O=E[_](g?{}:-0,1)!=E,x=f(function(){E.has(1)}),S=p(function(e){new m(e)}),D=!g&&f(function(){for(var e=new m,t=5;t--;)e[_](t,t);return!e.has(-0)});S||((m=t(function(t,n){s(t,m,e);var r=d(new k,t,m);return void 0!=n&&u(n,y,r[_],r),r})).prototype=b,b.constructor=m),(x||D)&&(T("delete"),T("has"),y&&T("get")),(D||O)&&T(_),g&&b.clear&&delete b.clear}else m=v.getConstructor(t,e,y,_),a(m.prototype,n),c.NEED=!0;return h(m,e),w[e]=m,o(o.G+o.W+o.F*(m!=k),w),g||v.setStrong(m,e,y),m}},"dXJ/":function(e,t,n){var r=n("VceJ"),o=n("3r0D")("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},eFQL:function(e,t,n){(function(e){!function(){"use strict";function t(e,t){for(var n=e.length-1;n>=0;n--)typeof e[n]===k&&(e[n]=Zone.current.wrap(e[n],t+"_"+n));return e}function n(e){return!e||!1!==e.writable&&(typeof e.get!==k||typeof e.set!==m)}function r(e,t,n){var r=Object.getOwnPropertyDescriptor(e,t);if(!r&&n&&Object.getOwnPropertyDescriptor(n,t)&&(r={enumerable:!0,configurable:!0}),r&&r.configurable){delete r.writable,delete r.value;var o=r.get,i=t.substr(2),a=O[i];a||(a=O[i]=y("ON_PROPERTY"+i)),r.set=function(t){var n=this;n||e!==g||(n=g),n&&(n[a]&&n.removeEventListener(i,x),"function"==typeof t?(n[a]=t,n.addEventListener(i,x,!1)):n[a]=null)},r.get=function(){var n=this;if(n||e!==g||(n=g),!n)return null;var i=n[a];if(i)return i;if(o){var c=o&&o.apply(this);if(c)return r.set.apply(this,[c]),typeof n[_]===k&&n.removeAttribute(t),c}return null},Object.defineProperty(e,t,r)}}function o(e,t,n){if(t)for(var o=0;o<t.length;o++)r(e,"on"+t[o],n);else{var i=[];for(var a in e)"on"==a.substr(0,2)&&i.push(a);for(var c=0;c<i.length;c++)r(e,i[c],n)}}function i(e){var n=g[e];if(n){g[y(e)]=n,g[e]=function(){var r=t(arguments,e);switch(r.length){case 0:this[S]=new n;break;case 1:this[S]=new n(r[0]);break;case 2:this[S]=new n(r[0],r[1]);break;case 3:this[S]=new n(r[0],r[1],r[2]);break;case 4:this[S]=new n(r[0],r[1],r[2],r[3]);break;default:throw new Error("Arg list too long.")}},c(g[e],n);var r,o=new n(function(){});for(r in o)"XMLHttpRequest"===e&&"responseBlob"===r||function(t){"function"==typeof o[t]?g[e].prototype[t]=function(){return this[S][t].apply(this[S],arguments)}:Object.defineProperty(g[e].prototype,t,{set:function(n){"function"==typeof n?(this[S][t]=Zone.current.wrap(n,e+"."+t),c(this[S][t],n)):this[S][t]=n},get:function(){return this[S][t]}})}(r);for(r in n)"prototype"!==r&&n.hasOwnProperty(r)&&(g[e][r]=n[r])}}function a(e,t,r){for(var o=e;o&&!o.hasOwnProperty(t);)o=Object.getPrototypeOf(o);!o&&e[t]&&(o=e);var i,a=y(t);if(o&&!(i=o[a])&&(i=o[a]=o[t],n(o&&Object.getOwnPropertyDescriptor(o,t)))){var u=r(i,a,t);o[t]=function(){return u(this,arguments)},c(o[t],i)}return i}function c(e,t){e[y("OriginalDelegate")]=t}function u(e,t,n){function r(t,n){if(!t)return!1;var r=!0;n&&void 0!==n.useGlobalCallback&&(r=n.useGlobalCallback);var d=n&&n.validateHandler,k=!0;n&&void 0!==n.checkDuplicate&&(k=n.checkDuplicate);var m=!1;n&&void 0!==n.returnTarget&&(m=n.returnTarget);for(var _=t;_&&!_.hasOwnProperty(o);)_=Object.getPrototypeOf(_);if(!_&&t[o]&&(_=t),!_)return!1;if(_[l])return!1;var b,w={},T=_[l]=_[o],E=_[y(i)]=_[i],O=_[y(a)]=_[a],x=_[y(u)]=_[u];n&&n.prependEventListenerFnName&&(b=_[y(n.prependEventListenerFnName)]=_[n.prependEventListenerFnName]);var S=r?function(e){if(!e.isRemoved){var t=C[e.eventName],n=void 0;t&&(n=t[e.capture?Z:z]);var r=n&&e.target[n];if(r)for(var o=0;o<r.length;o++)if(r[o]===e){r.splice(o,1),e.isRemoved=!0,0===r.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return E.apply(e.target,[e.eventName,e.capture?g:v,e.options])}:function(e){return E.apply(e.target,[e.eventName,e.invoke,e.options])},D=n&&n.compareTaskCallbackVsDelegate?n.compareTaskCallbackVsDelegate:function(e,t){var n=typeof t;return n===H&&e.callback===t||n===F&&e.originalDelegate===t},P=function(t,n,o,i,a,c){return void 0===a&&(a=!1),void 0===c&&(c=!1),function(){var u=this||e,s=(Zone,arguments[1]);if(!s)return t.apply(this,arguments);var l=!1;if(typeof s!==H){if(!s.handleEvent)return t.apply(this,arguments);l=!0}if(!d||d(t,s,u,arguments)){var f,p=arguments[0],h=arguments[2],v=!1;void 0===h?f=!1:!0===h?f=!0:!1===h?f=!1:(f=!!h&&!!h.capture,v=!!h&&!!h.once);var y,g=Zone.current,m=C[p];if(m)y=m[f?Z:z];else{var _=B+(p+z),b=B+(p+Z);C[p]={},C[p][z]=_,C[p][Z]=b,y=f?b:_}var T=u[y],E=!1;if(T){if(E=!0,k)for(var O=0;O<T.length;O++)if(D(T[O],s))return}else T=u[y]=[];var x,S=u.constructor[L],P=R[S];P&&(x=P[p]),x||(x=S+n+p),w.options=h,v&&(w.options.once=!1),w.target=u,w.capture=f,w.eventName=p,w.isExisting=E;var j=g.scheduleEventTask(x,s,r?I:null,o,i);return v&&(h.once=!0),j.options=h,j.target=u,j.capture=f,j.eventName=p,l&&(j.originalDelegate=s),c?T.unshift(j):T.push(j),a?u:void 0}}};return _[o]=P(T,f,r?function(e){if(!w.isExisting)return T.apply(w.target,[w.eventName,w.capture?g:v,w.options])}:function(e){return T.apply(w.target,[w.eventName,e.invoke,w.options])},S,m),b&&(_[p]=P(b,h,function(e){return b.apply(w.target,[w.eventName,e.invoke,w.options])},S,m,!0)),_[i]=function(){var t,n=this||e,r=arguments[0],o=arguments[2];t=void 0!==o&&(!0===o||!1!==o&&!!o&&!!o.capture);var i=arguments[1];if(!i)return E.apply(this,arguments);if(!d||d(E,i,n,arguments)){var a,c=C[r];c&&(a=c[t?Z:z]);var u=a&&n[a];if(u)for(var s=0;s<u.length;s++){var l=u[s];if(D(l,i))return u.splice(s,1),l.isRemoved=!0,0===u.length&&(l.allRemoved=!0,n[a]=null),void l.zone.cancelTask(l)}}},_[a]=function(){for(var t=[],n=s(this||e,arguments[0]),r=0;r<n.length;r++){var o=n[r];t.push(o.originalDelegate?o.originalDelegate:o.callback)}return t},_[u]=function(){var t=this||e,n=arguments[0];if(n){var r=C[n];if(r){var o=t[r[z]],a=t[r[Z]];if(o){var c=M(o);for(f=0;f<c.length;f++)this[i].apply(this,[n,(s=c[f]).originalDelegate?s.originalDelegate:s.callback,s.options])}if(a)for(c=M(a),f=0;f<c.length;f++){var s;this[i].apply(this,[n,(s=c[f]).originalDelegate?s.originalDelegate:s.callback,s.options])}}}else{for(var l=Object.keys(t),f=0;f<l.length;f++){var p=q.exec(l[f]),h=p&&p[1];h&&"removeListener"!==h&&this[u].apply(this,[h])}this[u].apply(this,["removeListener"])}},c(_[o],T),c(_[i],E),x&&c(_[u],x),O&&c(_[a],O),!0}for(var o=n&&n.addEventListenerFnName||"addEventListener",i=n&&n.removeEventListenerFnName||"removeEventListener",a=n&&n.listenersFnName||"eventListeners",u=n&&n.removeAllFnName||"removeAllListeners",l=y(o),f="."+o+":",p="prependListener",h="."+p+":",d=function(e,t,n){if(!e.isRemoved){var r=e.callback;typeof r===F&&r.handleEvent&&(e.callback=function(e){return r.handleEvent(e)},e.originalDelegate=r),e.invoke(e,t,[n]);var o=e.options;o&&"object"==typeof o&&o.once&&t[i].apply(t,[n.type,e.originalDelegate?e.originalDelegate:e.callback,o])}},v=function(t){if(t=t||e.event){var n=this||t.target||e,r=n[C[t.type][z]];if(r)if(1===r.length)d(r[0],n,t);else for(var o=r.slice(),i=0;i<o.length&&(!t||!0!==t[N]);i++)d(o[i],n,t)}},g=function(t){if(t=t||e.event){var n=this||t.target||e,r=n[C[t.type][Z]];if(r)if(1===r.length)d(r[0],n,t);else for(var o=r.slice(),i=0;i<o.length&&(!t||!0!==t[N]);i++)d(o[i],n,t)}},k=[],m=0;m<t.length;m++)k[m]=r(t[m],n);return k}function s(e,t){var n=[];for(var r in e){var o=q.exec(r),i=o&&o[1];if(i&&(!t||i===t)){var a=e[r];if(a)for(var c=0;c<a.length;c++)n.push(a[c])}}return n}function l(e,t,n,r){function o(t){var n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{typeof n.handleId===l?delete s[n.handleId]:n.handleId&&(n.handleId[W]=null)}},n.handleId=c.apply(e,n.args),t}function i(e){return u(e.data.handleId)}var c=null,u=null;n+=r;var s={},l="number";c=a(e,t+=r,function(n){return function(a,c){if("function"==typeof c[0]){var u=Zone.current.scheduleMacroTask(t,c[0],{handleId:null,isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?c[1]||0:null,args:c},o,i);if(!u)return u;var f=u.data.handleId;return typeof f===l?s[f]=u:f&&(f[W]=u),f&&f.ref&&f.unref&&"function"==typeof f.ref&&"function"==typeof f.unref&&(u.ref=f.ref.bind(f),u.unref=f.unref.bind(f)),typeof f===l||f?f:u}return n.apply(e,c)}}),u=a(e,n,function(t){return function(n,r){var o,i=r[0];typeof i===l?o=s[i]:(o=i&&i[W])||(o=i),o&&"string"==typeof o.type?"notScheduled"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&(typeof i===l?delete s[i]:i&&(i[W]=null),o.zone.cancelTask(o)):t.apply(e,r)}})}function f(e,t){return e&&e[U]&&e[U][t]}function p(e,t,n){return n.configurable=!0,n.configurable||(e[U]||X(e,U,{writable:!0,value:{}}),e[U][t]=!0),n}function h(e,t,n,r){try{return X(e,t,n)}catch(i){if(!n.configurable)throw i;typeof r==J?delete n.configurable:n.configurable=r;try{return X(e,t,n)}catch(r){var o=null;try{o=JSON.stringify(n)}catch(e){o=o.toString()}console.log("Attempting to configure '"+t+"' with descriptor '"+o+"' on object '"+e+"' and got error, giving up: "+r)}}}function d(e,t,n,r){o(e,function(e,t,n){if(!n)return t;var r=n.filter(function(t){return t.target===e});if(!r||0===r.length)return t;var o=r[0].ignoreProperties;return t.filter(function(e){return-1===o.indexOf(e)})}(e,t,n),r)}!function(e){function t(e){c&&c.mark&&c.mark(e)}function n(e,t){c&&c.measure&&c.measure(e,t)}function r(t){0===Z&&0===y.length&&(s||e[d]&&(s=e[d].resolve(0)),s?s[v](o):e[h](o,0)),t&&y.push(t)}function o(){if(!g){for(g=!0;y.length;){var e=y;y=[];for(var t=0;t<e.length;t++){var n=e[t];try{n.zone.runTask(n,null,null)}catch(e){P.onUnhandledError(e)}}}a("ignoreConsoleErrorUncaughtError"),P.microtaskDrainDone(),g=!1}}function i(){}function a(e){return"__zone_symbol__"+e}var c=e.performance;if(t("Zone"),e.Zone)throw new Error("Zone already loaded.");var u=function(){function r(e,t){this._properties=null,this._parent=e,this._name=t?t.name||"unnamed":"<root>",this._properties=t&&t.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,t)}return r.assertZonePatched=function(){if(e.Promise!==D.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(r,"root",{get:function(){for(var e=r.current;e.parent;)e=e.parent;return e},enumerable:!0,configurable:!0}),Object.defineProperty(r,"current",{get:function(){return j.zone},enumerable:!0,configurable:!0}),Object.defineProperty(r,"currentTask",{get:function(){return M},enumerable:!0,configurable:!0}),r.__load_patch=function(o,i){if(D.hasOwnProperty(o))throw Error("Already loaded patch: "+o);if(!e["__Zone_disable_"+o]){var a="Zone:"+o;t(a),D[o]=i(e,r,P),n(a,a)}},Object.defineProperty(r.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),r.prototype.get=function(e){var t=this.getZoneWith(e);if(t)return t._properties[e]},r.prototype.getZoneWith=function(e){for(var t=this;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null},r.prototype.fork=function(e){if(!e)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,e)},r.prototype.wrap=function(e,t){if("function"!=typeof e)throw new Error("Expecting function got: "+e);var n=this._zoneDelegate.intercept(this,e,t),r=this;return function(){return r.runGuarded(n,this,arguments,t)}},r.prototype.run=function(e,t,n,r){void 0===t&&(t=void 0),void 0===n&&(n=null),void 0===r&&(r=null),j={parent:j,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,r)}finally{j=j.parent}},r.prototype.runGuarded=function(e,t,n,r){void 0===t&&(t=null),void 0===n&&(n=null),void 0===r&&(r=null),j={parent:j,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,r)}catch(e){if(this._zoneDelegate.handleError(this,e))throw e}}finally{j=j.parent}},r.prototype.runTask=function(e,t,n){if(e.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(e.zone||k).name+"; Execution: "+this.name+")");if(e.state!==m||e.type!==S){var r=e.state!=w;r&&e._transitionTo(w,b),e.runCount++;var o=M;M=e,j={parent:j,zone:this};try{e.type==x&&e.data&&!e.data.isPeriodic&&(e.cancelFn=null);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(e){if(this._zoneDelegate.handleError(this,e))throw e}}finally{e.state!==m&&e.state!==E&&(e.type==S||e.data&&e.data.isPeriodic?r&&e._transitionTo(b,w):(e.runCount=0,this._updateTaskCount(e,-1),r&&e._transitionTo(m,w,m))),j=j.parent,M=o}}},r.prototype.scheduleTask=function(e){if(e.zone&&e.zone!==this)for(var t=this;t;){if(t===e.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+e.zone.name);t=t.parent}e._transitionTo(_,m);var n=[];e._zoneDelegates=n,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(t){throw e._transitionTo(E,_,m),this._zoneDelegate.handleError(this,t),t}return e._zoneDelegates===n&&this._updateTaskCount(e,1),e.state==_&&e._transitionTo(b,_),e},r.prototype.scheduleMicroTask=function(e,t,n,r){return this.scheduleTask(new p(O,e,t,n,r,null))},r.prototype.scheduleMacroTask=function(e,t,n,r,o){return this.scheduleTask(new p(x,e,t,n,r,o))},r.prototype.scheduleEventTask=function(e,t,n,r,o){return this.scheduleTask(new p(S,e,t,n,r,o))},r.prototype.cancelTask=function(e){if(e.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(e.zone||k).name+"; Execution: "+this.name+")");e._transitionTo(T,b,w);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(E,T),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(m,T),e.runCount=0,e},r.prototype._updateTaskCount=function(e,t){var n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(e.type,t)},r}();u.__symbol__=a;var s,l={name:"",onHasTask:function(e,t,n,r){return e.hasTask(n,r)},onScheduleTask:function(e,t,n,r){return e.scheduleTask(n,r)},onInvokeTask:function(e,t,n,r,o,i){return e.invokeTask(n,r,o,i)},onCancelTask:function(e,t,n,r){return e.cancelTask(n,r)}},f=function(){function e(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t.zone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t.zone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t.zone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t.zone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t.zone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t.zone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t.zone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var r=n&&n.onHasTask;(r||t&&t._hasTaskZS)&&(this._hasTaskZS=r?n:l,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=l,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=l,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=l,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}return e.prototype.fork=function(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new u(e,t)},e.prototype.intercept=function(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t},e.prototype.invoke=function(e,t,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,r,o):t.apply(n,r)},e.prototype.handleError=function(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)},e.prototype.scheduleTask=function(e,t){var n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t))||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=O)throw new Error("Task is missing scheduleFn.");r(t)}return n},e.prototype.invokeTask=function(e,t,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,r):t.callback.apply(n,r)},e.prototype.cancelTask=function(e,t){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");n=t.cancelFn(t)}return n},e.prototype.hasTask=function(e,t){try{return this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(t){this.handleError(e,t)}},e.prototype._updateTaskCount=function(e,t){var n=this._taskCounts,r=n[e],o=n[e]=r+t;if(o<0)throw new Error("More tasks executed then were scheduled.");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})},e}(),p=function(){function t(n,r,o,i,a,c){this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=n,this.source=r,this.data=i,this.scheduleFn=a,this.cancelFn=c,this.callback=o;var u=this;this.invoke=n===S&&i&&i.isUsingGlobalCallback?t.invokeTask:function(){return t.invokeTask.apply(e,[u,this,arguments])}}return t.invokeTask=function(e,t,n){e||(e=this),Z++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==Z&&o(),Z--}},Object.defineProperty(t.prototype,"zone",{get:function(){return this._zone},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"state",{get:function(){return this._state},enumerable:!0,configurable:!0}),t.prototype.cancelScheduleRequest=function(){this._transitionTo(m,_)},t.prototype._transitionTo=function(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(this.type+" '"+this.source+"': can not transition to '"+e+"', expecting state '"+t+"'"+(n?" or '"+n+"'":"")+", was '"+this._state+"'.");this._state=e,e==m&&(this._zoneDelegates=null)},t.prototype.toString=function(){return this.data&&void 0!==this.data.handleId?this.data.handleId:Object.prototype.toString.call(this)},t.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,invoke:this.invoke,scheduleFn:this.scheduleFn,cancelFn:this.cancelFn,runCount:this.runCount,callback:this.callback}},t}(),h=a("setTimeout"),d=a("Promise"),v=a("then"),y=[],g=!1,k={name:"NO ZONE"},m="notScheduled",_="scheduling",b="scheduled",w="running",T="canceling",E="unknown",O="microTask",x="macroTask",S="eventTask",D={},P={symbol:a,currentZoneFrame:function(){return j},onUnhandledError:i,microtaskDrainDone:i,scheduleMicroTask:r,showUncaughtError:function(){return!u[a("ignoreConsoleErrorUncaughtError")]},patchEventTarget:function(){return[]},patchOnProperties:i,patchMethod:function(){return i},setNativePromise:function(e){s=e.resolve(0)}},j={parent:null,zone:new u(null,null)},M=null,Z=0;n("Zone","Zone"),e.Zone=u}("undefined"!=typeof window&&window||"undefined"!=typeof self&&self||e);var v=function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}};Zone.__load_patch("ZoneAwarePromise",function(e,t,n){function r(e){return e&&e.then}function o(e){return e}function i(e){return j.reject(e)}function a(e,t){return function(n){try{c(e,t,n)}catch(t){c(e,!1,t)}}}function c(e,r,o){var i=E();if(e===o)throw new TypeError(O);if(e[g]===_){var l=null;try{typeof o!==x&&typeof o!==S||(l=o&&o.then)}catch(t){return i(function(){c(e,!1,t)})(),e}if(r!==w&&o instanceof j&&o.hasOwnProperty(g)&&o.hasOwnProperty(k)&&o[g]!==_)u(o),c(e,o[g],o[k]);else if(r!==w&&typeof l===S)try{l.apply(o,[i(a(e,r)),i(a(e,!1))])}catch(t){i(function(){c(e,!1,t)})()}else{e[g]=r;var f=e[k];e[k]=o,r===w&&o instanceof Error&&(o[D]=t.currentTask);for(var h=0;h<f.length;)s(e,f[h++],f[h++],f[h++],f[h++]);if(0==f.length&&r==w){e[g]=T;try{throw new Error("Uncaught (in promise): "+o+(o&&o.stack?"\n"+o.stack:""))}catch(r){var d=r;d.rejection=o,d.promise=e,d.zone=t.current,d.task=t.currentTask,p.push(d),n.scheduleMicroTask()}}}}return e}function u(e){if(e[g]===T){try{var n=t[P];n&&typeof n===S&&n.apply(this,[{rejection:e[k],promise:e}])}catch(e){}e[g]=w;for(var r=0;r<p.length;r++)e===p[r].promise&&p.splice(r,1)}}function s(e,t,n,r,a){u(e);var s=e[g]?typeof r===S?r:o:typeof a===S?a:i;t.scheduleMicroTask(m,function(){try{c(n,!0,t.run(s,void 0,[e[k]]))}catch(e){c(n,!1,e)}})}function l(e){var t=e.prototype,n=t.then;t[d]=n;var r=Object.getOwnPropertyDescriptor(e.prototype,"then");r&&!1===r.writable&&r.configurable&&Object.defineProperty(e.prototype,"then",{writable:!0}),e.prototype.then=function(e,t){var r=this;return new j(function(e,t){n.call(r,e,t)}).then(e,t)},e[I]=!0}var f=n.symbol,p=[],h=f("Promise"),d=f("then");n.onUnhandledError=function(e){if(n.showUncaughtError()){var t=e&&e.rejection;t?console.error("Unhandled Promise rejection:",t instanceof Error?t.message:t,"; Zone:",e.zone.name,"; Task:",e.task&&e.task.source,"; Value:",t,t instanceof Error?t.stack:void 0):console.error(e)}},n.microtaskDrainDone=function(){for(;p.length;)for(var e=function(){var e=p.shift();try{e.zone.runGuarded(function(){throw e})}catch(e){!function(e){n.onUnhandledError(e);try{var r=t[y];r&&"function"==typeof r&&r.apply(this,[e])}catch(e){}}(e)}};p.length;)e()};var y=f("unhandledPromiseRejectionHandler"),g=f("state"),k=f("value"),m="Promise.then",_=null,b=!0,w=!1,T=0,E=function(){var e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}},O="Promise resolved with itself",x="object",S="function",D=f("currentTask"),P=f("rejectionHandledHandler"),j=function(){function e(t){if(!(this instanceof e))throw new Error("Must be an instanceof Promise.");this[g]=_,this[k]=[];try{t&&t(a(this,b),a(this,w))}catch(e){c(this,!1,e)}}return e.toString=function(){return"function ZoneAwarePromise() { [native code] }"},e.resolve=function(e){return c(new this(null),b,e)},e.reject=function(e){return c(new this(null),w,e)},e.race=function(e){function t(e){a&&(a=o(e))}function n(e){a&&(a=i(e))}var o,i,a=new this(function(e,t){n=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}([e,t],2),o=n[0],i=n[1];var n});try{for(var c=v(e),u=c.next();!u.done;u=c.next()){var s=u.value;r(s)||(s=this.resolve(s)),s.then(t,n)}}catch(e){l={error:e}}finally{try{u&&!u.done&&(f=c.return)&&f.call(c)}finally{if(l)throw l.error}}return a;var l,f},e.all=function(e){var t,n,o=new this(function(e,r){t=e,n=r}),i=0,a=[];try{for(var c=v(e),u=c.next();!u.done;u=c.next()){var s=u.value;r(s)||(s=this.resolve(s)),s.then(function(e){return function(n){a[e]=n,--i||t(a)}}(i),n),i++}}catch(e){l={error:e}}finally{try{u&&!u.done&&(f=c.return)&&f.call(c)}finally{if(l)throw l.error}}return i||t(a),o;var l,f},e.prototype.then=function(e,n){var r=new this.constructor(null),o=t.current;return this[g]==_?this[k].push(o,r,e,n):s(this,o,r,e,n),r},e.prototype.catch=function(e){return this.then(null,e)},e}();j.resolve=j.resolve,j.reject=j.reject,j.race=j.race,j.all=j.all;var M=e[h]=e.Promise,Z=t.__symbol__("ZoneAwarePromise"),z=Object.getOwnPropertyDescriptor(e,"Promise");z&&!z.configurable||(z&&delete z.writable,z&&delete z.value,z||(z={configurable:!0,enumerable:!0}),z.get=function(){return e[Z]?e[Z]:e[h]},z.set=function(t){t===j?e[Z]=t:(e[h]=t,t.prototype[d]||l(t),n.setNativePromise(t))},Object.defineProperty(e,"Promise",z)),e.Promise=j;var I=f("thenPatched");if(M){l(M);var C=e.fetch;typeof C==S&&(e.fetch=function(e){return function(){var t=e.apply(this,arguments);if(t instanceof j)return t;var n=t.constructor;return n[I]||l(n),t}}(C))}return Promise[t.__symbol__("uncaughtPromiseErrors")]=p,j});var y=Zone.__symbol__,g="object"==typeof window&&window||"object"==typeof self&&self||e,k="function",m="undefined",_="removeAttribute",b="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,w=!("nw"in g)&&void 0!==g.process&&"[object process]"==={}.toString.call(g.process),T=!w&&!b&&!("undefined"==typeof window||!window.HTMLElement),E=void 0!==g.process&&"[object process]"==={}.toString.call(g.process)&&!b&&!("undefined"==typeof window||!window.HTMLElement),O={},x=function(e){if(e=e||g.event){var t=O[e.type];t||(t=O[e.type]=y("ON_PROPERTY"+e.type));var n=(this||e.target||g)[t],r=n&&n.apply(this,arguments);return void 0==r||r||e.preventDefault(),r}},S=y("originalInstance"),D=!1,P=!1;Zone.__load_patch("toString",function(e,t,n){var r=t.__zone_symbol__originalToString=Function.prototype.toString,o=y("OriginalDelegate"),i=y("Promise"),a=y("Error");Function.prototype.toString=function(){if("function"==typeof this){var t=this[o];if(t)return"function"==typeof t?r.apply(this[o],arguments):Object.prototype.toString.call(t);if(this===Promise){var n=e[i];if(n)return r.apply(n,arguments)}if(this===Error){var c=e[a];if(c)return r.apply(c,arguments)}}return r.apply(this,arguments)};var c=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?"[object Promise]":c.apply(this,arguments)}});var j=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},M=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(j(arguments[t]));return e},Z="true",z="false",I={isUsingGlobalCallback:!0},C={},R={},L="name",H="function",F="object",B="__zone_symbol__",q=/^__zone_symbol__(\w+)(true|false)$/,N="__zone_symbol__propagationStopped",W=y("zoneTask"),X=Object[y("defineProperty")]=Object.defineProperty,A=Object[y("getOwnPropertyDescriptor")]=Object.getOwnPropertyDescriptor,G=Object.create,U=y("unconfigurables"),J="undefined",V=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplyconnected","vrdisplaydisconnected","vrdisplaypresentchange"],Q=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],K=["load"],Y=["blur","error","focus","load","resize","scroll","messageerror"],$=["bounce","finish","start"],ee=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],te=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],ne=["close","error","open","message"],re=["error","message"],oe=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange"],V,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]),ie=y("unbound");Zone.__load_patch("util",function(e,t,n){n.patchOnProperties=o,n.patchMethod=a}),Zone.__load_patch("timers",function(e,t,n){l(e,"set","clear","Timeout"),l(e,"set","clear","Interval"),l(e,"set","clear","Immediate")}),Zone.__load_patch("requestAnimationFrame",function(e,t,n){l(e,"request","cancel","AnimationFrame"),l(e,"mozRequest","mozCancel","AnimationFrame"),l(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",function(e,t,n){for(var r=["alert","prompt","confirm"],o=0;o<r.length;o++)a(e,r[o],function(n,r,o){return function(r,i){return t.current.run(n,e,i,o)}})}),Zone.__load_patch("EventTarget",function(e,t,n){(function(e,t){!function(n,r){var o=e.Event;o&&o.prototype&&t.patchMethod(o.prototype,"stopImmediatePropagation",function(e){return function(e,t){e[N]=!0}})}()})(e,n),function(e,t){var n="Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video",r="ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket".split(","),o=[],i=e.wtf,a=n.split(",");i?o=a.map(function(e){return"HTML"+e+"Element"}).concat(r):e.EventTarget?o.push("EventTarget"):o=r;for(var c=e.__Zone_disable_IE_check||!1,s=e.__Zone_enable_cross_context_check||!1,l=function(){if(D)return P;D=!0;try{var e=window.navigator.userAgent;return e.indexOf("MSIE "),-1===e.indexOf("MSIE ")&&-1===e.indexOf("Trident/")&&-1===e.indexOf("Edge/")||(P=!0),P}catch(e){}}(),f="[object FunctionWrapper]",p="function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }",h=0;h<oe.length;h++){var d=B+((m=oe[h])+z),v=B+(m+Z);C[m]={},C[m][z]=d,C[m][Z]=v}for(h=0;h<n.length;h++)for(var y=a[h],g=R[y]={},k=0;k<oe.length;k++){var m;g[m=oe[k]]=y+".addEventListener:"+m}var _=[];for(h=0;h<o.length;h++){var b=e[o[h]];_.push(b&&b.prototype)}u(e,_,{validateHandler:function(e,t,n,r){if(!c&&l)if(s)try{if((o=t.toString())===f||o==p)return e.apply(n,r),!1}catch(t){return e.apply(n,r),!1}else{var o;if((o=t.toString())===f||o==p)return e.apply(n,r),!1}else if(s)try{t.toString()}catch(t){return e.apply(n,r),!1}return!0}}),t.patchEventTarget=u}(e,n);var r=e.XMLHttpRequestEventTarget;r&&r.prototype&&n.patchEventTarget(e,[r.prototype]),i("MutationObserver"),i("WebKitMutationObserver"),i("IntersectionObserver"),i("FileReader")}),Zone.__load_patch("on_property",function(e,t,n){(function(e,t){if(!w||E){var n="undefined"!=typeof WebSocket;if(function(){if((T||E)&&!Object.getOwnPropertyDescriptor(HTMLElement.prototype,"onclick")&&"undefined"!=typeof Element){var e=Object.getOwnPropertyDescriptor(Element.prototype,"onclick");if(e&&!e.configurable)return!1}var t=Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype,"onreadystatechange");if(t){Object.defineProperty(XMLHttpRequest.prototype,"onreadystatechange",{enumerable:!0,configurable:!0,get:function(){return!0}});var n=!!(o=new XMLHttpRequest).onreadystatechange;return Object.defineProperty(XMLHttpRequest.prototype,"onreadystatechange",t||{}),n}var r=y("fakeonreadystatechange");Object.defineProperty(XMLHttpRequest.prototype,"onreadystatechange",{enumerable:!0,configurable:!0,get:function(){return this[r]},set:function(e){this[r]=e}});var o,i=function(){};(o=new XMLHttpRequest).onreadystatechange=i;n=o[r]===i;return o.onreadystatechange=null,n}()){var r=t.__Zone_ignore_on_properties;if(T){d(window,oe.concat(["messageerror"]),r,Object.getPrototypeOf(window)),d(Document.prototype,oe,r),void 0!==window.SVGElement&&d(window.SVGElement.prototype,oe,r),d(Element.prototype,oe,r),d(HTMLElement.prototype,oe,r),d(HTMLMediaElement.prototype,Q,r),d(HTMLFrameSetElement.prototype,V.concat(Y),r),d(HTMLBodyElement.prototype,V.concat(Y),r),d(HTMLFrameElement.prototype,K,r),d(HTMLIFrameElement.prototype,K,r);var a=window.HTMLMarqueeElement;a&&d(a.prototype,$,r);var c=window.Worker;c&&d(c.prototype,re,r)}d(XMLHttpRequest.prototype,ee,r);var s=t.XMLHttpRequestEventTarget;s&&d(s&&s.prototype,ee,r),"undefined"!=typeof IDBIndex&&(d(IDBIndex.prototype,te,r),d(IDBRequest.prototype,te,r),d(IDBOpenDBRequest.prototype,te,r),d(IDBDatabase.prototype,te,r),d(IDBTransaction.prototype,te,r),d(IDBCursor.prototype,te,r)),n&&d(WebSocket.prototype,ne,r)}else!function(){for(var e=function(e){var t=oe[e],n="on"+t;self.addEventListener(t,function(e){var t,r,o=e.target;for(r=o?o.constructor.name+"."+n:"unknown."+n;o;)o[n]&&!o[n][ie]&&((t=Zone.current.wrap(o[n],r))[ie]=o[n],o[n]=t),o=o.parentElement},!0)},t=0;t<oe.length;t++)e(t)}(),i("XMLHttpRequest"),n&&function(e,t){var n=t.WebSocket;t.EventTarget||u(t,[n.prototype]),t.WebSocket=function(e,t){var r,i,a=arguments.length>1?new n(e,t):new n(e),c=Object.getOwnPropertyDescriptor(a,"onmessage");return c&&!1===c.configurable?(r=Object.create(a),i=a,["addEventListener","removeEventListener","send","close"].forEach(function(e){r[e]=function(){var t=Array.prototype.slice.call(arguments);if("addEventListener"===e||"removeEventListener"===e){var n=t.length>0?t[0]:void 0;if(n){var o=Zone.__symbol__("ON_PROPERTY"+n);a[o]=r[o]}}return a[e].apply(a,t)}})):r=a,o(r,["close","error","message","open"],i),r};var r=t.WebSocket;for(var i in n)r[i]=n[i]}(0,t)}})(0,e),Object.defineProperty=function(e,t,n){if(f(e,t))throw new TypeError("Cannot assign to read only property '"+t+"' of "+e);var r=n.configurable;return"prototype"!==t&&(n=p(e,t,n)),h(e,t,n,r)},Object.defineProperties=function(e,t){return Object.keys(t).forEach(function(n){Object.defineProperty(e,n,t[n])}),e},Object.create=function(e,t){return"object"!=typeof t||Object.isFrozen(t)||Object.keys(t).forEach(function(n){t[n]=p(e,n,t[n])}),G(e,t)},Object.getOwnPropertyDescriptor=function(e,t){var n=A(e,t);return f(e,t)&&(n.configurable=!1),n},function(t){if((T||E)&&"registerElement"in e.document){var n=document.registerElement,r=["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"];document.registerElement=function(e,t){return t&&t.prototype&&r.forEach(function(e){var n="Document.registerElement::"+e;if(t.prototype.hasOwnProperty(e)){var r=Object.getOwnPropertyDescriptor(t.prototype,e);r&&r.value?(r.value=Zone.current.wrap(r.value,n),function(t,n,r){var o=r.configurable;h(t,e,r=p(t,e,r),o)}(t.prototype,0,r)):t.prototype[e]=Zone.current.wrap(t.prototype[e],n)}else t.prototype[e]&&(t.prototype[e]=Zone.current.wrap(t.prototype[e],n))}),n.apply(document,[e,t])},c(document.registerElement,n)}}()}),Zone.__load_patch("canvas",function(e,t,n){var r=e.HTMLCanvasElement;void 0!==r&&r.prototype&&r.prototype.toBlob&&function(e,t,n){function o(e){var t=e.data;return t.args[t.callbackIndex]=function(){e.invoke.apply(this,arguments)},i.apply(t.target,t.args),e}var i=null;i=a(r.prototype,"toBlob",function(e){return function(t,n){var r={name:"HTMLCanvasElement.toBlob",target:t,callbackIndex:0,args:n};return r.callbackIndex>=0&&"function"==typeof n[r.callbackIndex]?Zone.current.scheduleMacroTask(r.name,n[r.callbackIndex],r,o,null):e.apply(t,n)}})}()}),Zone.__load_patch("XHR",function(e,t,n){!function(e){function n(e){XMLHttpRequest[c]=!1;var t=e.data,n=t.target,o=n[i];h||(h=n[f],d=n[p]),o&&d.apply(n,[g,o]);var a=n[i]=function(){n.readyState===n.DONE&&!t.aborted&&XMLHttpRequest[c]&&e.state===k&&e.invoke()};return h.apply(n,[g,a]),n[r]||(n[r]=e),_.apply(n,t.args),XMLHttpRequest[c]=!0,e}function s(){}function l(e){var t=e.data;return t.aborted=!0,b.apply(t.target,t.args)}var f=y("addEventListener"),p=y("removeEventListener"),h=XMLHttpRequest.prototype[f],d=XMLHttpRequest.prototype[p];if(!h){var v=e.XMLHttpRequestEventTarget;v&&(h=v.prototype[f],d=v.prototype[p])}var g="readystatechange",k="scheduled",m=a(e.XMLHttpRequest.prototype,"open",function(){return function(e,t){return e[o]=0==t[2],e[u]=t[1],m.apply(e,t)}}),_=a(e.XMLHttpRequest.prototype,"send",function(){return function(e,r){var i=t.current;return e[o]?_.apply(e,r):i.scheduleMacroTask("XMLHttpRequest.send",s,{target:e,url:e[u],isPeriodic:!1,delay:null,args:r,aborted:!1},n,l)}}),b=a(e.XMLHttpRequest.prototype,"abort",function(e){return function(e,t){var n=e[r];if(n&&"string"==typeof n.type){if(null==n.cancelFn||n.data&&n.data.aborted)return;n.zone.cancelTask(n)}}})}(e);var r=y("xhrTask"),o=y("xhrSync"),i=y("xhrListener"),c=y("xhrScheduled"),u=y("xhrURL")}),Zone.__load_patch("geolocation",function(e,r,o){e.navigator&&e.navigator.geolocation&&function(e,r){for(var o=e.constructor.name,i=function(i){var a=r[i],u=e[a];if(u){if(!n(Object.getOwnPropertyDescriptor(e,a)))return"continue";e[a]=function(e){var n=function(){return e.apply(this,t(arguments,o+"."+a))};return c(n,e),n}(u)}},a=0;a<r.length;a++)i(a)}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",function(e,t,n){function r(t){return function(n){s(e,t).forEach(function(r){var o=e.PromiseRejectionEvent;if(o){var i=new o(t,{promise:n.promise,reason:n.rejection});r.invoke(i)}})}}e.PromiseRejectionEvent&&(t[y("unhandledPromiseRejectionHandler")]=r("unhandledrejection"),t[y("rejectionHandledHandler")]=r("rejectionhandled"))})}()}).call(t,n("fRUx"))},ewdp:function(e,t,n){var r=n("tose"),o=n("+pQw"),i=n("2Fuj");e.exports=n("V+0c")?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),c=a.length,u=0;c>u;)r.f(e,n=a[u++],t[n]);return e}},fC8q:function(e,t,n){var r=n("dXJ/"),o=n("3r0D")("iterator"),i=n("lexG");e.exports=n("b4gG").getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||i[r(e)]}},fHxy:function(e,t,n){var r=n("gBtn"),o=n("+pQw"),i=r.key,a=r.set;r.exp({defineMetadata:function(e,t,n,r){a(e,t,o(n),i(r))}})},fRUx:function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},gBtn:function(e,t,n){var r=n("ZI9W"),o=n("CDXM"),i=n("Iclu")("metadata"),a=i.store||(i.store=new(n("QZhw"))),c=function(e,t,n){var o=a.get(e);if(!o){if(!n)return;a.set(e,o=new r)}var i=o.get(t);if(!i){if(!n)return;o.set(t,i=new r)}return i};e.exports={store:a,map:c,has:function(e,t,n){var r=c(t,n,!1);return void 0!==r&&r.has(e)},get:function(e,t,n){var r=c(t,n,!1);return void 0===r?void 0:r.get(e)},set:function(e,t,n,r){c(n,r,!0).set(e,t)},keys:function(e,t){var n=c(e,t,!1),r=[];return n&&n.forEach(function(e,t){r.push(t)}),r},key:function(e){return void 0===e||"symbol"==typeof e?e:String(e)},exp:function(e){o(o.S,"Reflect",e)}}},gNkH:function(e,t,n){e.exports=!n("V+0c")&&!n("umMR")(function(){return 7!=Object.defineProperty(n("BQSv")("div"),"a",{get:function(){return 7}}).a})},gxdV:function(e,t,n){var r=n("tose"),o=n("piOq");e.exports=n("V+0c")?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},lexG:function(e,t){e.exports={}},lfBE:function(e,t,n){var r=n("ptrv"),o=n("gxdV"),i=n("rMsi"),a=n("c09d")("src"),c=Function.toString,u=(""+c).split("toString");n("b4gG").inspectSource=function(e){return c.call(e)},(e.exports=function(e,t,n,c){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",t)),e[t]!==n&&(s&&(i(n,a)||o(n,a,e[t]?""+e[t]:u.join(String(t)))),e===r?e[t]=n:c?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||c.call(this)})},lzDK:function(e,t){t.f=Object.getOwnPropertySymbols},ncNB:function(e,t,n){var r=n("gBtn"),o=n("+pQw"),i=r.get,a=r.key;r.exp({getOwnMetadata:function(e,t){return i(e,o(t),arguments.length<3?void 0:a(arguments[2]))}})},"p/bR":function(e,t,n){var r=n("pa70"),o=n("ULWX"),i=n("KpI+"),a=n("+pQw"),c=n("rppw"),u=n("fC8q"),s={},l={};(t=e.exports=function(e,t,n,f,p){var h,d,v,y,g=p?function(){return e}:u(e),k=r(n,f,t?2:1),m=0;if("function"!=typeof g)throw TypeError(e+" is not iterable!");if(i(g)){for(h=c(e.length);h>m;m++)if((y=t?k(a(d=e[m])[0],d[1]):k(e[m]))===s||y===l)return y}else for(v=g.call(e);!(d=v.next()).done;)if((y=o(v,k,d.value,t))===s||y===l)return y}).BREAK=s,t.RETURN=l},pBmS:function(e,t,n){var r=n("lfBE");e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},pa70:function(e,t,n){var r=n("uNkO");e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},piOq:function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},ptrv:function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},rIdM:function(e,t,n){"use strict";var r=n("2Fuj"),o=n("lzDK"),i=n("9e9+"),a=n("RT4T"),c=n("Wo2w"),u=Object.assign;e.exports=!u||n("umMR")(function(){var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||"abcdefghijklmnopqrst"!=Object.keys(u({},t)).join("")})?function(e,t){for(var n=a(e),u=arguments.length,s=1,l=o.f,f=i.f;u>s;)for(var p,h=c(arguments[s++]),d=l?r(h).concat(l(h)):r(h),v=d.length,y=0;v>y;)f.call(h,p=d[y++])&&(n[p]=h[p]);return n}:u},rKhO:function(e,t,n){var r=n("VceJ");e.exports=Array.isArray||function(e){return"Array"==r(e)}},rMsi:function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},rppw:function(e,t,n){var r=n("9wYb"),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},soMw:function(e,t,n){var r=n("gBtn"),o=n("+pQw"),i=r.keys,a=r.key;r.exp({getOwnMetadataKeys:function(e){return i(o(e),arguments.length<2?void 0:a(arguments[1]))}})},t6ta:function(e,t,n){var r=n("gBtn"),o=n("+pQw"),i=n("uNkO"),a=r.key,c=r.set;r.exp({metadata:function(e,t){return function(n,r){c(e,t,(void 0!==r?o:i)(n),a(r))}}})},tose:function(e,t,n){var r=n("+pQw"),o=n("gNkH"),i=n("A1WY"),a=Object.defineProperty;t.f=n("V+0c")?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},uNkO:function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},umMR:function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},vyV2:function(e,t,n){var r=n("+GRi"),o=n("rppw"),i=n("KM3d");e.exports=function(e){return function(t,n,a){var c,u=r(t),s=o(u.length),l=i(a,s);if(e&&n!=n){for(;s>l;)if((c=u[l++])!=c)return!0}else for(;s>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}}},"w/BM":function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},xI8H:function(e,t,n){var r=n("c09d")("meta"),o=n("JXkd"),i=n("rMsi"),a=n("tose").f,c=0,u=Object.isExtensible||function(){return!0},s=!n("umMR")(function(){return u(Object.preventExtensions({}))}),l=function(e){a(e,r,{value:{i:"O"+ ++c,w:{}}})},f=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!u(e))return"F";if(!t)return"E";l(e)}return e[r].i},getWeak:function(e,t){if(!i(e,r)){if(!u(e))return!0;if(!t)return!1;l(e)}return e[r].w},onFreeze:function(e){return s&&f.NEED&&u(e)&&!i(e,r)&&l(e),e}}},yIWP:function(e,t,n){var r=n("Iclu")("keys"),o=n("c09d");e.exports=function(e){return r[e]||(r[e]=o(e))}}},[1]);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.16e1d930cf13fb7a9563.woff b/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.16e1d930cf13fb7a9563.woff
new file mode 100644
index 0000000..941dfa4
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.16e1d930cf13fb7a9563.woff
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.38861cba61c66739c145.ttf b/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.38861cba61c66739c145.ttf
new file mode 100644
index 0000000..7b25f3c
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.38861cba61c66739c145.ttf
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.3d3a53586bd78d1069ae.svg b/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.3d3a53586bd78d1069ae.svg
new file mode 100644
index 0000000..ed55c10
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.3d3a53586bd78d1069ae.svg
@@ -0,0 +1,308 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg">
+<defs >
+<font id="Roboto" horiz-adv-x="1157" ><font-face
+ font-family="Roboto"
+ units-per-em="2048"
+ panose-1="2 0 0 0 0 0 0 0 0 0"
+ ascent="1900"
+ descent="-500"
+ alphabetic="0" />
+<glyph unicode=" " horiz-adv-x="507" />
+<glyph unicode="!" horiz-adv-x="527" d="M347 411H180L167 1456H361L347 411ZM160 93Q160 138 187 168T269 199T351 169T379 93T351 19T269 -11T188 18T160 93Z" />
+<glyph unicode=""" horiz-adv-x="655" d="M277 1400L247 1042H136L137 1536H277V1400ZM547 1400L517 1042H406L407 1536H547V1400Z" />
+<glyph unicode="#" horiz-adv-x="1261" d="M765 410H501L421 0H278L358 410H119V547H384L453 901H195V1040H480L562 1456H705L623 1040H887L969 1456H1113L1031 1040H1235V901H1004L935 547H1160V410H909L829 0H685L765 410ZM527 547H791L860 901H596L527 547Z" />
+<glyph unicode="$" horiz-adv-x="1150" d="M856 375Q856 467 792 530T574 644Q361 709 264 813T166 1079Q166 1243 261 1348T524 1473V1692H673V1472Q841 1449 934 1331T1028 1008H844Q844 1149 777 1232T596 1315Q477 1315 414 1254T351 1082Q351 980 417 920T636
+810T874 701T1000 562T1041 377Q1041 208 940 105T655 -17V-208H507V-17Q321 0 216 115T110 429H295Q295 290 368 215T575 140Q706 140 781 203T856 375Z" />
+<glyph unicode="%" horiz-adv-x="1500" d="M105 1176Q105 1307 188 1392T403 1477Q536 1477 618 1392T701 1170V1099Q701 967 618 884T405 800Q275 800 190 883T105 1106V1176ZM243 1099Q243 1021 287 971T405 920Q476 920 519 969T563 1103V1176Q563 1254 520
+1305T403 1356T286 1305T243 1172V1099ZM814 357Q814 488 897 572T1112 657T1327 573T1411 350V279Q1411 148 1328 64T1114 -21T899 62T814 285V357ZM952 279Q952 200 996 150T1114 99Q1186 99 1229 148T1272 283V357Q1272 436 1229 486T1112 536Q1041 536 997
+487T952 353V279ZM447 110L342 176L1053 1314L1158 1248L447 110Z" />
+<glyph unicode="&" horiz-adv-x="1273" d="M101 391Q101 496 159 584T383 789Q286 907 253 979T220 1122Q220 1288 318 1382T584 1476Q734 1476 832 1389T930 1168Q930 1080 886 1006T730 849L623 770L947 383Q1015 513 1015 672H1182Q1182 417 1059 249L1267
+0H1045L948 115Q874 49 775 15T572 -20Q359 -20 230 93T101 391ZM572 131Q719 131 841 243L486 668L453 644Q286 521 286 391Q286 273 362 202T572 131ZM405 1128Q405 1032 523 888L641 971Q709 1019 734 1062T759 1168Q759 1235 709 1279T583 1324Q501 1324 453
+1269T405 1128Z" />
+<glyph unicode="'" horiz-adv-x="357" d="M253 1425L232 1057H103L104 1536H253V1425Z" />
+<glyph unicode="(" horiz-adv-x="700" d="M133 591Q133 817 193 1025T374 1403T623 1643L661 1521Q515 1409 422 1179T319 664L318 579Q318 193 459 -91Q544 -261 661 -357L623 -470Q490 -396 369 -222Q133 118 133 591Z" />
+<glyph unicode=")" horiz-adv-x="712" d="M567 581Q567 358 509 154T330 -224T77 -470L38 -357Q192 -239 285 9T381 561V593Q381 803 337 983T215 1307T38 1530L77 1643Q209 1570 328 1399T507 1022T567 581Z" />
+<glyph unicode="*" horiz-adv-x="882" d="M330 983L28 1073L74 1224L376 1112L367 1456H520L510 1107L807 1217L853 1065L546 974L744 703L620 609L434 897L254 616L129 707L330 983Z" />
+<glyph unicode="+" horiz-adv-x="1161" d="M670 781H1076V606H670V146H484V606H78V781H484V1206H670V781Z" />
+<glyph unicode="," horiz-adv-x="402" d="M134 -290L29 -218Q123 -87 127 52V219H308V74Q308 -27 259 -128T134 -290Z" />
+<glyph unicode="-" horiz-adv-x="565" d="M525 543H37V694H525V543Z" />
+<glyph unicode="." horiz-adv-x="539" d="M144 97Q144 145 172 177T258 209T344 177T374 97Q374 51 345 20T258 -11T173 20T144 97Z" />
+<glyph unicode="/" horiz-adv-x="844" d="M177 -125H18L626 1456H784L177 -125Z" />
+<glyph unicode="0" horiz-adv-x="1150" d="M1034 621Q1034 296 923 138T576 -20Q343 -20 231 134T115 596V843Q115 1164 226 1320T574 1476Q809 1476 920 1326T1034 861V621ZM849 874Q849 1109 783 1216T574 1324Q432 1324 367 1217T300 888V592Q300 356 368 244T576
+131Q713 131 779 237T849 571V874Z" />
+<glyph unicode="1" horiz-adv-x="1150" d="M729 0H543V1233L170 1096V1264L700 1463H729V0Z" />
+<glyph unicode="2" horiz-adv-x="1150" d="M1075 0H121V133L625 693Q737 820 779 899T822 1064Q822 1178 753 1251T569 1324Q431 1324 355 1246T278 1027H93Q93 1228 222 1352T569 1476Q772 1476 890 1370T1008 1086Q1008 871 734 574L344 151H1075V0Z" />
+<glyph unicode="3" horiz-adv-x="1150" d="M390 818H529Q660 820 735 887T810 1068Q810 1324 555 1324Q435 1324 364 1256T292 1074H107Q107 1247 233 1361T555 1476Q761 1476 878 1367T995 1064Q995 969 934 880T766 747Q886 709 951 621T1017 406Q1017 210 889
+95T556 -20T223 91T94 384H280Q280 269 355 200T556 131Q690 131 761 201T832 402Q832 529 754 597T529 667H390V818Z" />
+<glyph unicode="4" horiz-adv-x="1150" d="M902 489H1104V338H902V0H716V338H53V447L705 1456H902V489ZM263 489H716V1203L694 1163L263 489Z" />
+<glyph unicode="5" horiz-adv-x="1150" d="M206 730L280 1456H1026V1285H437L393 888Q500 951 636 951Q835 951 952 820T1069 464Q1069 239 948 110T608 -20Q415 -20 293 87T154 383H329Q346 258 418 195T608 131Q737 131 810 219T884 462Q884 608 805 696T593
+785Q472 785 403 732L354 692L206 730Z" />
+<glyph unicode="6" horiz-adv-x="1150" d="M847 1457V1300H813Q597 1296 469 1172T321 823Q436 955 635 955Q825 955 938 821T1052 475Q1052 250 930 115T601 -20Q392 -20 262 140T132 554V625Q132 1027 303 1239T814 1457H847ZM604 801Q509 801 429 744T318 601V533Q318
+353 399 243T601 133Q726 133 797 225T869 466Q869 616 797 708T604 801Z" />
+<glyph unicode="7" horiz-adv-x="1150" d="M1061 1352L458 0H264L865 1304H77V1456H1061V1352Z" />
+<glyph unicode="8" horiz-adv-x="1150" d="M1004 1076Q1004 967 947 882T791 749Q905 700 971 606T1038 393Q1038 204 911 92T575 -20Q365 -20 239 92T112 393Q112 511 176 606T355 750Q258 798 202 883T146 1076Q146 1260 264 1368T575 1476Q767 1476 885 1368T1004
+1076ZM853 397Q853 519 776 596T573 673T373 597T297 397T370 202T575 131Q705 131 779 202T853 397ZM575 1324Q466 1324 399 1257T331 1073Q331 962 397 894T575 825T752 893T819 1073T750 1254T575 1324Z" />
+<glyph unicode="9" horiz-adv-x="1150" d="M830 640Q772 571 692 529T515 487Q389 487 296 549T151 723T100 972Q100 1118 155 1235T313 1414T551 1476Q767 1476 891 1315T1016 874V820Q1016 395 848 200T341 -1H305V155H344Q573 159 696 274T830 640ZM545 640Q638
+640 716 697T831 838V912Q831 1094 752 1208T552 1322Q430 1322 356 1229T282 982Q282 833 353 737T545 640Z" />
+<glyph unicode=":" horiz-adv-x="496" d="M390 97Q390 145 418 177T504 209T590 177T620 97Q620 51 591 20T504 -11T419 20T390 97ZM135 980Q135 1028 163 1060T249 1092T335 1060T365 980Q365 934 336 903T249 872T164 903T135 980Z" />
+<glyph unicode=";" horiz-adv-x="433" d="M111 980Q111 1028 139 1060T225 1092T311 1060T341 980Q341 934 312 903T225 872T140 903T111 980ZM146 -290L41 -218Q135 -87 139 52V219H320V74Q320 -27 271 -128T146 -290Z" />
+<glyph unicode="<" horiz-adv-x="1041" d="M264 644L890 391V195L72 574V720L890 1098V902L264 644Z" />
+<glyph unicode="=" horiz-adv-x="1124" d="M986 814H152V975H986V814ZM986 399H152V559H986V399Z" />
+<glyph unicode=">" horiz-adv-x="1070" d="M795 650L134 909V1099L988 721V575L134 196V388L795 650Z" />
+<glyph unicode="?" horiz-adv-x="967" d="M357 410Q359 529 384 598T486 751L617 886Q701 981 701 1090Q701 1195 646 1254T486 1314Q384 1314 322 1260T260 1115H75Q77 1277 190 1376T486 1476Q675 1476 780 1375T886 1096Q886 921 724 751L615 643Q542 562 542
+410H357ZM349 93Q349 138 376 168T458 199T540 169T568 93T540 19T458 -11T377 18T349 93Z" />
+<glyph unicode="@" horiz-adv-x="1839" d="M1738 502Q1726 260 1618 120T1329 -20Q1142 -20 1089 148Q1035 63 966 22T822 -20Q680 -20 607 96T553 417Q568 582 628 711T784 915T985 989Q1066 989 1130 968T1274 883L1222 329Q1203 98 1350 98Q1463 98 1533 210T1609
+502Q1628 891 1465 1095T967 1299Q766 1299 610 1200T364 912T263 478Q251 230 323 48T542 -231T899 -328Q989 -328 1079 -306T1230 -249L1267 -364Q1205 -403 1103 -428T895 -453Q645 -453 465 -341T196 -17T118 478Q130 753 241 972T542 1311T971 1431Q1220 1431
+1398 1319T1663 996T1738 502ZM712 417Q698 275 738 199T867 123Q927 123 982 174T1074 320L1075 329L1121 832Q1065 861 1001 861Q884 861 808 742T712 417Z" />
+<glyph unicode="A" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538Z" />
+<glyph unicode="B" horiz-adv-x="1275" d="M169 0V1456H645Q882 1456 1001 1358T1121 1068Q1121 966 1063 888T905 766Q1023 733 1091 641T1160 420Q1160 224 1033 112T674 0H169ZM361 681V157H678Q812 157 889 226T967 418Q967 681 681 681H361ZM361 835H651Q777
+835 852 898T928 1069Q928 1189 858 1243T645 1298H361V835Z" />
+<glyph unicode="C" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312 417 411
+277T688 137Q848 137 933 209T1047 462H1240Z" />
+<glyph unicode="D" horiz-adv-x="1343" d="M169 0V1456H580Q770 1456 916 1372T1141 1133T1222 777V684Q1222 478 1143 323T916 85T572 0H169ZM361 1298V157H563Q785 157 908 295T1032 688V773Q1032 1021 916 1158T585 1298H361Z" />
+<glyph unicode="E" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673Z" />
+<glyph unicode="F" horiz-adv-x="1132" d="M972 643H361V0H169V1456H1071V1298H361V800H972V643Z" />
+<glyph unicode="G" horiz-adv-x="1395" d="M1244 191Q1170 85 1038 33T729 -20Q551 -20 413 63T200 301T122 658V785Q122 1114 275 1295T707 1476Q935 1476 1074 1360T1244 1029H1052Q998 1318 708 1318Q515 1318 416 1183T315 790V671Q315 426 427 282T730 137Q838
+137 919 161T1053 242V569H716V725H1244V191Z" />
+<glyph unicode="H" horiz-adv-x="1460" d="M1288 0H1095V673H361V0H169V1456H361V830H1095V1456H1288V0Z" />
+<glyph unicode="I" horiz-adv-x="557" d="M375 0H183V1456H375V0Z" />
+<glyph unicode="J" horiz-adv-x="1130" d="M779 1456H972V425Q972 216 847 98T512 -20Q295 -20 174 91T53 402H245Q245 277 313 207T512 137Q631 137 704 212T779 422V1456Z" />
+<glyph unicode="K" horiz-adv-x="1284" d="M539 677L361 492V0H169V1456H361V736L1008 1456H1240L667 813L1285 0H1055L539 677Z" />
+<glyph unicode="L" horiz-adv-x="1102" d="M362 157H1052V0H169V1456H362V157Z" />
+<glyph unicode="M" horiz-adv-x="1788" d="M417 1456L893 268L1369 1456H1618V0H1426V567L1444 1179L966 0H819L342 1176L361 567V0H169V1456H417Z" />
+<glyph unicode="N" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0Z" />
+<glyph unicode="O" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 1311
+417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775Z" />
+<glyph unicode="P" horiz-adv-x="1292" d="M361 570V0H169V1456H706Q945 1456 1080 1334T1216 1011Q1216 799 1084 685T704 570H361ZM361 727H706Q860 727 942 799T1024 1009Q1024 1139 942 1217T717 1298H361V727Z" />
+<glyph unicode="Q" horiz-adv-x="1408" d="M1281 681Q1281 470 1214 318T1026 79L1286 -125L1155 -246L848 -2Q776 -20 696 -20Q524 -20 391 64T185 305T109 668V773Q109 983 182 1144T388 1390T694 1476Q870 1476 1003 1391T1209 1147T1281 774V681ZM1089 775Q1089
+1032 987 1171T694 1311Q513 1311 409 1173T301 788V681Q301 431 405 287T696 143T984 278T1089 667V775Z" />
+<glyph unicode="R" horiz-adv-x="1261" d="M703 589H361V0H168V1456H650Q896 1456 1028 1344T1161 1018Q1161 882 1088 781T883 630L1225 12V0H1019L703 589ZM361 746H656Q799 746 883 820T968 1018Q968 1153 888 1225T655 1298H361V746Z" />
+<glyph unicode="S" horiz-adv-x="1215" d="M598 649Q351 720 239 823T126 1079Q126 1251 263 1363T621 1476Q771 1476 888 1418T1070 1258T1135 1035H942Q942 1167 858 1242T621 1318Q479 1318 400 1256T320 1082Q320 993 395 932T652 819T936 707T1088 563T1138
+370Q1138 193 1000 87T631 -20Q481 -20 351 37T151 195T80 422H273Q273 290 370 214T631 137Q783 137 864 199T945 368T870 533T598 649Z" />
+<glyph unicode="T" horiz-adv-x="1222" d="M1175 1298H707V0H516V1298H49V1456H1175V1298Z" />
+<glyph unicode="U" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194Z" />
+<glyph unicode="V" horiz-adv-x="1303" d="M651 255L1067 1456H1277L737 0H567L28 1456H237L651 255Z" />
+<glyph unicode="W" horiz-adv-x="1817" d="M483 459L511 267L552 440L840 1456H1002L1283 440L1323 264L1354 460L1580 1456H1773L1420 0H1245L945 1061L922 1172L899 1061L588 0H413L61 1456H253L483 459Z" />
+<glyph unicode="X" horiz-adv-x="1284" d="M644 898L993 1456H1219L759 734L1230 0H1002L644 568L284 0H57L529 734L68 1456H293L644 898Z" />
+<glyph unicode="Y" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725Z" />
+<glyph unicode="Z" horiz-adv-x="1226" d="M313 157H1146V0H86V144L884 1298H99V1456H1114V1315L313 157Z" />
+<glyph unicode="[" horiz-adv-x="543" d="M523 1512H332V-160H523V-312H146V1664H523V1512Z" />
+<glyph unicode="\" horiz-adv-x="840" d="M40 1456H216L824 -125H648L40 1456Z" />
+<glyph unicode="]" horiz-adv-x="543" d="M9 1664H387V-312H9V-160H202V1512H9V1664Z" />
+<glyph unicode="^" horiz-adv-x="856" d="M426 1211L236 729H64L363 1456H490L788 729H617L426 1211Z" />
+<glyph unicode="_" horiz-adv-x="924" d="M920 -151H4V0H920V-151Z" />
+<glyph unicode="`" horiz-adv-x="633" d="M474 1240H315L57 1534H280L474 1240Z" />
+<glyph unicode="a" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141Z" />
+<glyph unicode="b" horiz-adv-x="1149" d="M1056 529Q1056 281 942 131T636 -20Q431 -20 319 125L310 0H140V1536H325V963Q437 1102 634 1102T943 953T1056 545V529ZM871 550Q871 739 798 842T588 945Q405 945 325 775V307Q410 137 590 137Q723 137 797 240T871 550Z" />
+<glyph unicode="c" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355 849T277
+555V520Q277 333 354 232T574 131Z" />
+<glyph unicode="d" horiz-adv-x="1155" d="M95 550Q95 799 213 950T522 1102Q712 1102 823 972V1536H1008V0H838L829 116Q718 -20 520 -20Q332 -20 214 134T95 536V550ZM280 529Q280 345 356 241T566 137Q742 137 823 295V792Q740 945 568 945Q432 945 356 840T280 529Z" />
+<glyph unicode="e" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 869T284
+640H826V654Q818 795 750 872T566 950Z" />
+<glyph unicode="f" horiz-adv-x="711" d="M231 0V939H60V1082H231V1193Q231 1367 324 1462T587 1557Q651 1557 714 1540L704 1390Q657 1399 604 1399Q514 1399 465 1347T416 1196V1082H647V939H416V0H231Z" />
+<glyph unicode="g" horiz-adv-x="1149" d="M96 550Q96 803 213 952T523 1102Q721 1102 832 962L841 1082H1010V26Q1010 -184 886 -305T551 -426Q434 -426 322 -376T151 -239L247 -128Q366 -275 538 -275Q673 -275 748 -199T824 15V108Q713 -20 521 -20Q331 -20
+214 133T96 550ZM282 529Q282 346 357 242T567 137Q742 137 824 296V790Q739 945 569 945Q434 945 358 840T282 529Z" />
+<glyph unicode="h" horiz-adv-x="1128" d="M325 951Q448 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1536H325V951Z" />
+<glyph unicode="i" horiz-adv-x="497" d="M341 0H156V1082H341V0ZM141 1369Q141 1414 168 1445T250 1476T332 1445T360 1369T332 1294T250 1264T169 1294T141 1369Z" />
+<glyph unicode="j" horiz-adv-x="489" d="M331 1082V-125Q331 -437 48 -437Q-13 -437 -65 -419V-271Q-33 -279 19 -279Q81 -279 113 -246T146 -129V1082H331ZM127 1369Q127 1413 154 1444T235 1476Q289 1476 317 1445T345 1369T317 1294T235 1264T154 1294T127 1369Z" />
+<glyph unicode="k" horiz-adv-x="1038" d="M442 501L326 380V0H141V1536H326V607L425 726L762 1082H987L566 630L1036 0H819L442 501Z" />
+<glyph unicode="l" horiz-adv-x="497" d="M341 0H156V1536H341V0Z" />
+<glyph unicode="m" horiz-adv-x="1795" d="M314 1082L319 962Q438 1102 640 1102Q867 1102 949 928Q1003 1006 1089 1054T1294 1102Q1650 1102 1656 725V0H1471V714Q1471 830 1418 887T1240 945Q1137 945 1069 884T990 718V0H804V709Q804 945 573 945Q391 945
+324 790V0H139V1082H314Z" />
+<glyph unicode="n" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315Z" />
+<glyph unicode="o" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 807
+839T582 950Q445 950 361 841T277 529Z" />
+<glyph unicode="p" horiz-adv-x="1149" d="M1054 529Q1054 282 941 131T635 -20Q438 -20 325 105V-416H140V1082H309L318 962Q431 1102 632 1102Q827 1102 940 955T1054 546V529ZM869 550Q869 733 791 839T577 945Q409 945 325 796V279Q408 131 579 131Q712 131
+790 236T869 550Z" />
+<glyph unicode="q" horiz-adv-x="1164" d="M95 550Q95 805 212 953T526 1102Q718 1102 829 973L837 1082H1007V-416H822V100Q710 -20 524 -20Q328 -20 212 132T95 537V550ZM280 529Q280 343 358 237T570 131Q735 131 822 277V807Q734 950 572 950Q438 950 359
+844T280 529Z" />
+<glyph unicode="r" horiz-adv-x="693" d="M663 916Q621 923 572 923Q390 923 325 768V0H140V1082H320L323 957Q414 1102 581 1102Q635 1102 663 1088V916Z" />
+<glyph unicode="s" horiz-adv-x="1056" d="M770 287Q770 362 714 403T517 475T294 547T172 647T132 785Q132 918 244 1010T532 1102Q716 1102 830 1007T945 764H759Q759 840 695 895T532 950Q431 950 374 906T317 791Q317 724 370 690T561 625T786 551T913 448T955
+300Q955 155 839 68T538 -20Q408 -20 308 26T152 154T95 333H280Q285 240 354 186T538 131Q643 131 706 173T770 287Z" />
+<glyph unicode="t" horiz-adv-x="669" d="M391 1344V1082H593V939H391V268Q391 203 418 171T510 138Q542 138 598 150V0Q525 -20 456 -20Q332 -20 269 55T206 268V939H9V1082H206V1344H391Z" />
+<glyph unicode="u" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107Z" />
+<glyph unicode="v" horiz-adv-x="992" d="M497 251L765 1082H954L566 0H425L33 1082H222L497 251Z" />
+<glyph unicode="w" horiz-adv-x="1539" d="M1098 255L1306 1082H1491L1176 0H1026L763 820L507 0H357L43 1082H227L440 272L692 1082H841L1098 255Z" />
+<glyph unicode="x" horiz-adv-x="1015" d="M503 687L743 1082H959L605 547L970 0H756L506 405L256 0H41L406 547L52 1082H266L503 687Z" />
+<glyph unicode="y" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271Z" />
+<glyph unicode="z" horiz-adv-x="1015" d="M314 151H947V0H88V136L685 929H97V1082H917V951L314 151Z" />
+<glyph unicode="{" horiz-adv-x="693" d="M632 -366Q455 -316 366 -202T276 101V300Q276 543 64 543V688Q276 688 276 930V1138Q278 1321 365 1433T632 1597L670 1482Q461 1415 461 1133V931Q461 704 294 615Q461 525 461 296V90Q464 -185 670 -251L632 -366Z" />
+<glyph unicode="|" horiz-adv-x="499" d="M324 -270H175V1456H324V-270Z" />
+<glyph unicode="}" horiz-adv-x="693" d="M19 -251Q222 -186 229 80V300Q229 531 410 615Q229 697 229 930V1133Q229 1415 20 1482L58 1597Q235 1547 324 1435T414 1137V927Q414 688 626 688V543Q414 543 414 300V98Q414 -90 324 -203T58 -366L19 -251Z" />
+<glyph unicode="~" horiz-adv-x="1393" d="M1263 777Q1263 619 1170 511T939 402Q867 402 803 428T655 529T533 621T454 639Q376 639 334 586T292 438L131 436Q131 596 223 699T454 802Q530 802 600 770T758 658T910 567L939 565Q1015 565 1062 623T1110 776L1263 777Z" />
+<glyph unicode=" " horiz-adv-x="507" />
+<glyph unicode="¡" horiz-adv-x="499" d="M170 684H338L351 -360H157L170 684ZM358 996Q358 951 331 920T249 889T167 920T139 996T167 1071T249 1101T330 1071T358 996Z" />
+<glyph unicode="¢" horiz-adv-x="1120" d="M586 131Q686 131 760 191T842 341H1017Q1011 215 912 115T669 -12V-245H484V-11Q305 23 205 165T105 527V562Q105 774 206 916T484 1092V1318H669V1095Q819 1072 915 966T1017 710H842Q834 815 763 882T586 950Q445
+950 368 849T290 555V520Q290 333 367 232T586 131Z" />
+<glyph unicode="£" horiz-adv-x="1190" d="M449 622L457 402Q457 248 395 157H1128L1127 0H95V157H172Q212 166 237 231T264 393V401L256 622H91V779H251L242 1039Q242 1238 364 1357T687 1476Q877 1476 988 1370T1099 1087H908Q908 1194 845 1256T670 1318Q565
+1318 500 1241T435 1039L444 779H763V622H449Z" />
+<glyph unicode="¤" horiz-adv-x="1460" d="M1103 112Q944 -20 735 -20Q528 -20 369 110L235 -26L105 109L244 250Q140 406 140 608Q140 814 252 977L105 1128L235 1264L382 1114Q540 1234 735 1234Q931 1234 1090 1113L1239 1265L1371 1128L1220 974Q1330
+811 1330 608Q1330 412 1228 253L1371 109L1239 -27L1103 112ZM311 608Q311 485 368 379T524 212T735 151T946 212T1100 379T1157 608Q1157 730 1101 835T946 1001T735 1062Q622 1062 524 1002T369 836T311 608Z" />
+<glyph unicode="¥" horiz-adv-x="1240" d="M614 782L978 1456H1197L779 736H1091V611H707V446H1091V322H707V0H514V322H136V446H514V611H136V736H449L31 1456H251L614 782Z" />
+<glyph unicode="¦" horiz-adv-x="491" d="M147 -270V521H333V-270H147ZM333 698H147V1456H333V698Z" />
+<glyph unicode="§" horiz-adv-x="1256" d="M1145 431Q1145 242 959 157Q1028 108 1064 40T1100 -128Q1100 -296 970 -395T612 -495Q500 -495 400 -467T229 -382Q90 -269 90 -64L276 -62Q276 -192 366 -267T612 -343Q748 -343 831 -285T914 -130Q914 -41 843
+11T563 126Q381 174 285 229T143 362T96 551Q96 737 278 825Q212 874 177 942T141 1110Q141 1276 274 1376T630 1476Q862 1476 992 1363T1122 1045H937Q937 1170 853 1247T630 1325Q488 1325 408 1268T327 1112Q327 1043 355 1003T450 931T661 858T889 782T1030
+698T1116 585T1145 431ZM602 691Q512 715 437 742Q357 723 320 673T282 553Q282 483 309 443T402 370T611 296T797 238Q875 258 917 308T959 428Q959 516 890 570T602 691Z" />
+<glyph unicode="¨" horiz-adv-x="856" d="M102 1371Q102 1416 129 1446T211 1477T293 1447T321 1371T293 1296T211 1266T130 1296T102 1371ZM532 1369Q532 1414 559 1445T641 1476T723 1445T751 1369T723 1294T641 1264T560 1294T532 1369Z" />
+<glyph unicode="©" horiz-adv-x="1609" d="M1119 597Q1119 444 1033 364T788 283Q631 283 537 388T442 676V786Q442 962 537 1067T788 1173Q948 1173 1034 1091T1120 860H974Q974 959 927 1001T788 1044Q694 1044 640 975T586 783V670Q586 550 640 481T788
+412Q880 412 926 454T973 597H1119ZM206 729Q206 557 286 411T503 181T801 98T1098 181T1315 410T1395 729Q1395 899 1316 1044T1100 1272T801 1356Q641 1356 503 1274T286 1045T206 729ZM91 729Q91 931 184 1104T443 1376T801 1476T1158 1377T1416 1104T1510 729Q1510
+532 1420 360T1165 84T801 -21Q604 -21 439 82T182 358T91 729Z" />
+<glyph unicode="ª" horiz-adv-x="915" d="M618 705Q606 739 600 777Q524 691 396 691Q277 691 212 753T147 918Q147 1029 230 1089T486 1149H594V1201Q594 1336 470 1336Q401 1336 362 1309T322 1231L161 1243Q161 1346 247 1411T470 1476Q603 1476 680 1405T757
+1199V883Q757 786 783 705H618ZM435 828Q478 828 522 848T594 895V1037H482Q399 1036 355 1005T310 922Q310 828 435 828Z" />
+<glyph unicode="«" horiz-adv-x="961" d="M536 804L794 407H653L358 795V814L653 1203H794L536 804ZM610 548L868 151H727L432 539V558L727 947H868L610 548Z" />
+<glyph unicode="¬" horiz-adv-x="1134" d="M958 375H772V639H127V800H958V375Z" />
+<glyph unicode="­" horiz-adv-x="565" d="M525 543H37V694H525V543Z" />
+<glyph unicode="®" horiz-adv-x="1610" d="M90 729Q90 931 183 1104T442 1376T800 1476T1157 1377T1415 1104T1509 729Q1509 532 1419 360T1164 84T800 -21Q603 -21 438 82T181 358T90 729ZM205 729Q205 557 285 411T502 181T800 98Q961 98 1099 182T1315
+412T1394 729Q1394 900 1316 1044T1099 1272T800 1356Q640 1356 502 1274T285 1045T205 729ZM653 654V316H512V1165H788Q941 1165 1025 1100T1110 909Q1110 786 982 721Q1104 671 1105 517V456Q1105 370 1122 332V316H977Q963 352 963 444T960 554Q944 650 829
+654H653ZM653 782H809Q881 784 925 817T969 904Q969 977 930 1007T791 1038H653V782Z" />
+<glyph unicode="¯" horiz-adv-x="938" d="M834 1313H120V1456H834V1313Z" />
+<glyph unicode="°" horiz-adv-x="765" d="M130 1216Q130 1320 204 1398T385 1476Q489 1476 562 1399T636 1216Q636 1110 563 1035T385 960Q280 960 205 1035T130 1216ZM385 1088Q439 1088 476 1123T513 1216Q513 1274 476 1311T385 1349Q330 1349 293 1310T255
+1216T292 1125T385 1088Z" />
+<glyph unicode="±" horiz-adv-x="1094" d="M649 854H1013V703H649V289H482V703H97V854H482V1267H649V854ZM970 0H135V152H970V0Z" />
+<glyph unicode="²" horiz-adv-x="751" d="M683 667H84V775L384 1057Q493 1159 493 1228Q493 1277 461 1307T369 1338Q294 1338 259 1300T223 1205H66Q66 1319 149 1393T365 1467T574 1404T651 1230Q651 1126 544 1019L460 940L284 795H683V667Z" />
+<glyph unicode="³" horiz-adv-x="751" d="M265 1125H349Q423 1125 459 1155T495 1234Q495 1279 464 1308T362 1337Q305 1337 268 1312T230 1245H73Q73 1343 154 1404T360 1466Q497 1466 575 1406T653 1241Q653 1186 618 1141T517 1070Q666 1029 666 886Q666
+780 581 718T360 655Q228 655 145 718T62 888H220Q220 843 259 813T366 783Q436 783 472 813T509 894Q509 1007 353 1009H265V1125Z" />
+<glyph unicode="´" horiz-adv-x="642" d="M316 1534H540L272 1240H123L316 1534Z" />
+<glyph unicode="µ" horiz-adv-x="1160" d="M339 1082V449Q340 286 391 208T559 130Q758 130 820 282V1082H1006V0H839L830 115Q737 -20 567 -20Q420 -20 339 53V-416H154V1082H339Z" />
+<glyph unicode="¶" horiz-adv-x="1001" d="M646 0V520H562Q332 520 200 647T67 988Q67 1201 200 1328T563 1456H832V0H646Z" />
+<glyph unicode="·" horiz-adv-x="534" d="M147 729Q147 777 175 809T261 841T347 809T377 729Q377 682 348 651T261 619T176 650T147 729Z" />
+<glyph unicode="¸" horiz-adv-x="507" d="M285 0L273 -52Q426 -79 426 -225Q426 -322 346 -378T123 -435L116 -328Q195 -328 238 -302T282 -229Q282 -185 250 -164T120 -134L152 0H285Z" />
+<glyph unicode="¹" horiz-adv-x="751" d="M495 674H338V1275L122 1218V1346L477 1463H495V674Z" />
+<glyph unicode="º" horiz-adv-x="931" d="M122 1123Q122 1281 216 1378T464 1476Q619 1476 713 1380T807 1117V1043Q807 884 714 787T466 690T217 787T122 1049V1123ZM285 1043Q285 943 333 886T466 829Q549 829 596 886T644 1045V1123Q644 1222 596 1279T464
+1336Q383 1336 335 1281T285 1129V1043Z" />
+<glyph unicode="»" horiz-adv-x="960" d="M244 949L539 560V541L244 152H102L360 550L102 949H244ZM593 949L888 560V541L593 152H451L709 550L451 949H593Z" />
+<glyph unicode="¼" horiz-adv-x="1500" d="M458 664H301V1265L85 1208V1336L440 1453H458V664ZM443 118L339 184L1050 1322L1154 1256L443 118ZM1318 299H1425V169H1318V0H1161V169H786L780 271L1157 789H1318V299ZM938 299H1161V588L1144 560L938 299Z" />
+<glyph unicode="½" horiz-adv-x="1589" d="M399 118L295 184L1006 1322L1110 1256L399 118ZM453 664H296V1265L80 1208V1336L435 1453H453V664ZM1481 0H882V108L1182 390Q1291 492 1291 561Q1291 610 1259 640T1167 671Q1092 671 1057 633T1021 538H864Q864
+652 947 726T1163 800T1372 737T1449 563Q1449 459 1342 352L1258 273L1082 128H1481V0Z" />
+<glyph unicode="¾" horiz-adv-x="1593" d="M570 118L466 184L1177 1322L1281 1256L570 118ZM1410 299H1517V169H1410V0H1253V169H878L872 271L1249 789H1410V299ZM1030 299H1253V588L1236 560L1030 299ZM314 1126H398Q472 1126 508 1156T544 1235Q544 1280
+513 1309T411 1338Q354 1338 317 1313T279 1246H122Q122 1344 203 1405T409 1467Q546 1467 624 1407T702 1242Q702 1187 667 1142T566 1071Q715 1030 715 887Q715 781 630 719T409 656Q277 656 194 719T111 889H269Q269 844 308 814T415 784Q485 784 521 814T558
+895Q558 1008 402 1010H314V1126Z" />
+<glyph unicode="¿" horiz-adv-x="969" d="M588 680Q587 574 567 511T498 388T358 233T255 37L253 0Q253 -109 311 -166T478 -224Q578 -224 640 -168T703 -20H888Q886 -181 774 -283T478 -385Q282 -385 175 -285T68 -5Q68 168 228 343L337 456Q403 534 403
+680H588ZM596 997Q596 952 569 921T487 890T405 921T377 997Q377 1041 405 1071T487 1101T568 1071T596 997Z" />
+<glyph unicode="À" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM778 1550H619L361 1844H584L778 1550Z" />
+<glyph unicode="Á" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM763 1844H987L719 1550H570L763 1844Z" />
+<glyph unicode="Â" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM975 1572V1562H822L672 1732L523 1562H370V1574L616 1846H728L975 1572Z" />
+<glyph unicode="Ã" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM1027 1814Q1027 1706 966 1639T812 1572Q771 1572 741 1582T663 1623T593 1660T543 1667Q502 1667 473 1636T444 1555L320
+1562Q320 1669 380 1739T534 1809Q569 1809 597 1799T673 1760T746 1722T803 1713Q846 1713 874 1747T903 1826L1027 1814Z" />
+<glyph unicode="Ä" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM351 1681Q351 1726 378 1756T460 1787T542 1757T570 1681T542 1606T460 1576T379 1606T351 1681ZM781 1679Q781 1724
+808 1755T890 1786T972 1755T1000 1679T972 1604T890 1574T809 1604T781 1679Z" />
+<glyph unicode="Å" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM887 1729Q887 1642 825 1584T672 1525Q580 1525 519 1584T457 1729T518 1876T672 1937T825 1876T887 1729ZM556 1729Q556
+1682 589 1648T672 1614Q720 1614 754 1647T788 1729T755 1812T672 1847Q622 1847 589 1812T556 1729Z" />
+<glyph unicode="Æ" horiz-adv-x="1914" d="M1879 0H996L981 353H417L212 0H-14L866 1456H1817V1304H1126L1146 833H1736V682H1152L1174 151H1879V0ZM518 527H974L943 1260L518 527Z" />
+<glyph unicode="Ç" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312
+417 411 277T688 137Q848 137 933 209T1047 462H1240ZM751 -9L739 -61Q892 -88 892 -234Q892 -331 812 -387T589 -444L582 -337Q661 -337 704 -311T748 -238Q748 -194 716 -173T586 -143L618 -9H751Z" />
+<glyph unicode="È" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM725 1562H566L308 1856H531L725 1562Z" />
+<glyph unicode="É" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM710 1856H934L666 1562H517L710 1856Z" />
+<glyph unicode="Ê" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM922 1584V1574H769L619 1744L470 1574H317V1586L563 1858H675L922 1584Z" />
+<glyph unicode="Ë" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM298 1693Q298 1738 325 1768T407 1799T489 1769T517 1693T489 1618T407 1588T326 1618T298 1693ZM728 1691Q728 1736 755 1767T837 1798T919 1767T947
+1691T919 1616T837 1586T756 1616T728 1691Z" />
+<glyph unicode="Ì" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM385 1562H226L-32 1856H191L385 1562Z" />
+<glyph unicode="Í" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM369 1856H593L325 1562H176L369 1856Z" />
+<glyph unicode="Î" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM582 1584V1574H429L279 1744L130 1574H-23V1586L223 1858H335L582 1584Z" />
+<glyph unicode="Ï" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM-42 1693Q-42 1738 -15 1768T67 1799T149 1769T177 1693T149 1618T67 1588T-14 1618T-42 1693ZM388 1691Q388 1736 415 1767T497 1798T579 1767T607 1691T579 1616T497 1586T416 1616T388 1691Z" />
+<glyph unicode="Ð" horiz-adv-x="1373" d="M199 0V666H37V817H199V1456H610Q800 1456 946 1372T1171 1133T1252 777V684Q1252 478 1173 323T946 85T602 0H199ZM673 666H391V157H592Q814 157 937 294T1062 680V773Q1062 1021 946 1158T615 1298H391V817H673V666Z" />
+<glyph unicode="Ñ" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0ZM1081 1814Q1081 1706 1020 1639T866 1572Q825 1572 795 1582T717 1623T647 1660T597 1667Q556 1667 527 1636T498 1555L374 1562Q374 1669 434 1739T588
+1809Q623 1809 651 1799T727 1760T800 1722T857 1713Q900 1713 928 1747T957 1826L1081 1814Z" />
+<glyph unicode="Ò" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
+1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM812 1552H653L395 1846H618L812 1552Z" />
+<glyph unicode="Ó" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
+1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM797 1846H1021L753 1552H604L797 1846Z" />
+<glyph unicode="Ô" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
+1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1009 1574V1564H856L706 1734L557 1564H404V1576L650 1848H762L1009 1574Z" />
+<glyph unicode="Õ" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
+1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1061 1816Q1061 1708 1000 1641T846 1574Q805 1574 775 1584T697 1625T627 1662T577 1669Q536 1669 507 1638T478 1557L354 1564Q354 1671 414 1741T568 1811Q603 1811 631 1801T707
+1762T780 1724T837 1715Q880 1715 908 1749T937 1828L1061 1816Z" />
+<glyph unicode="Ö" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521
+1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM385 1683Q385 1728 412 1758T494 1789T576 1759T604 1683T576 1608T494 1578T413 1608T385 1683ZM815 1681Q815 1726 842 1757T924 1788T1006 1757T1034 1681T1006 1606T924
+1576T843 1606T815 1681Z" />
+<glyph unicode="×" horiz-adv-x="1092" d="M89 329L419 665L91 1000L210 1123L539 788L868 1123L987 1000L659 665L989 329L870 206L539 543L208 206L89 329Z" />
+<glyph unicode="Ø" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q534 -20 403 62L306 -93H164L308 138Q118 330 118 690V773Q118 983 191 1144T397 1390T703 1476Q917 1476 1065 1351L1168 1516H1309L1150 1261Q1287 1074 1289 780V681ZM309
+681Q309 437 407 296L971 1200Q869 1311 703 1311Q521 1311 417 1173T309 788V681ZM1098 775Q1098 957 1042 1088L493 207Q584 143 705 143Q891 143 993 278T1098 667V775Z" />
+<glyph unicode="Ù" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM773 1550H614L356 1844H579L773 1550Z" />
+<glyph unicode="Ú" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM758 1844H982L714 1550H565L758 1844Z" />
+<glyph unicode="Û" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM970 1572V1562H817L667 1732L518 1562H365V1574L611
+1846H723L970 1572Z" />
+<glyph unicode="Ü" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM346 1681Q346 1726 373 1756T455 1787T537 1757T565
+1681T537 1606T455 1576T374 1606T346 1681ZM776 1679Q776 1724 803 1755T885 1786T967 1755T995 1679T967 1604T885 1574T804 1604T776 1679Z" />
+<glyph unicode="Ý" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725ZM708 1844H932L664 1550H515L708 1844Z" />
+<glyph unicode="Þ" horiz-adv-x="1210" d="M352 1456V1163H631Q778 1163 888 1111T1057 961T1117 738Q1117 544 985 429T626 313H352V0H166V1456H352ZM352 1011V465H629Q771 465 851 540T931 736Q931 859 851 934T635 1011H352Z" />
+<glyph unicode="ß" horiz-adv-x="1218" d="M324 0H139V1111Q139 1319 242 1436T532 1554Q712 1554 810 1465T909 1216Q909 1091 845 990T781 819Q781 768 818 721T950 601T1087 461T1130 317Q1130 158 1029 69T745 -20Q664 -20 574 2T445 52L488 207Q537
+175 604 153T725 131Q832 131 888 178T945 307Q945 359 908 407T777 528T639 671T595 821Q595 910 664 1013T734 1201Q734 1295 682 1348T542 1402Q324 1402 324 1109V0Z" />
+<glyph unicode="à" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM687 1240H528L270 1534H493L687 1240Z" />
+<glyph unicode="á" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM672 1534H896L628 1240H479L672 1534Z" />
+<glyph unicode="â" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM884 1262V1252H731L581 1422L432 1252H279V1264L525 1536H637L884 1262Z" />
+<glyph unicode="ã" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM936 1504Q936 1396 875 1329T721 1262Q680 1262 650 1272T572 1313T502 1350T452 1357Q411 1357 382 1326T353 1245L229 1252Q229 1359 289
+1429T443 1499Q478 1499 506 1489T582 1450T655 1412T712 1403Q755 1403 783 1437T812 1516L936 1504Z" />
+<glyph unicode="ä" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM260 1371Q260 1416 287 1446T369 1477T451 1447T479 1371T451 1296T369 1266T288 1296T260 1371ZM690 1369Q690 1414 717 1445T799 1476T881
+1445T909 1369T881 1294T799 1264T718 1294T690 1369Z" />
+<glyph unicode="å" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964
+751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM796 1419Q796 1332 734 1274T581 1215Q489 1215 428 1274T366 1419T427 1566T581 1627T734 1566T796 1419ZM465 1419Q465 1372 498 1338T581
+1304Q629 1304 663 1337T697 1419T664 1502T581 1537Q531 1537 498 1502T465 1419Z" />
+<glyph unicode="æ" horiz-adv-x="1729" d="M1262 -20Q1001 -20 865 160Q800 74 687 27T433 -20Q266 -20 172 66T78 304Q78 461 191 548T526 635H749V720Q749 827 694 888T535 950Q430 950 360 895T290 759L106 778Q106 921 227 1011T535 1102Q650 1102 738
+1061T876 936Q939 1015 1026 1058T1218 1102Q1428 1102 1544 974T1660 612V497H932Q939 321 1026 226T1262 130Q1410 130 1531 206L1578 237L1642 101Q1484 -20 1262 -20ZM469 130Q541 130 620 167T749 258V495H521Q404 493 334 438T264 300Q264 223 317 177T469
+130ZM1218 950Q1103 950 1029 865T937 640H1475V671Q1475 803 1408 876T1218 950Z" />
+<glyph unicode="ç" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355
+849T277 555V520Q277 333 354 232T574 131ZM604 -9L592 -61Q745 -88 745 -234Q745 -331 665 -387T442 -444L435 -337Q514 -337 557 -311T601 -238Q601 -194 569 -173T439 -143L471 -9H604Z" />
+<glyph unicode="è" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
+869T284 640H826V654Q818 795 750 872T566 950ZM671 1240H512L254 1534H477L671 1240Z" />
+<glyph unicode="é" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
+869T284 640H826V654Q818 795 750 872T566 950ZM656 1534H880L612 1240H463L656 1534Z" />
+<glyph unicode="ê" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
+869T284 640H826V654Q818 795 750 872T566 950ZM868 1262V1252H715L565 1422L416 1252H263V1264L509 1536H621L868 1262Z" />
+<glyph unicode="ë" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378
+869T284 640H826V654Q818 795 750 872T566 950ZM244 1371Q244 1416 271 1446T353 1477T435 1447T463 1371T435 1296T353 1266T272 1296T244 1371ZM674 1369Q674 1414 701 1445T783 1476T865 1445T893 1369T865 1294T783 1264T702 1294T674 1369Z" />
+<glyph unicode="ì" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM615 1495H456L198 1789H421L615 1495Z" />
+<glyph unicode="í" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM343 1789H567L299 1495H150L343 1789Z" />
+<glyph unicode="î" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM556 1261V1251H403L253 1421L104 1251H-49V1263L197 1535H309L556 1261Z" />
+<glyph unicode="ï" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM-68 1370Q-68 1415 -41 1445T41 1476T123 1446T151 1370T123 1295T41 1265T-40 1295T-68 1370ZM362 1368Q362 1413 389 1444T471 1475T553 1444T581 1368T553 1293T471 1263T390 1293T362 1368Z" />
+<glyph unicode="ð" horiz-adv-x="1200" d="M820 1301Q1069 1037 1069 628V535Q1069 377 1011 251T844 52T602 -20Q467 -20 357 44T187 221T126 467Q126 614 182 730T341 912T574 977Q737 977 858 863Q810 1058 669 1199L451 1051L378 1150L570 1281Q438 1372
+255 1421L312 1580Q551 1526 726 1387L915 1516L988 1416L820 1301ZM884 635L882 691Q849 752 780 788T618 825Q473 825 392 730T311 467Q311 327 394 229T606 131Q731 131 807 244T884 541V635Z" />
+<glyph unicode="ñ" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315ZM927 1504Q927 1396 866 1329T712 1262Q671 1262 641 1272T563 1313T493 1350T443
+1357Q402 1357 373 1326T344 1245L220 1252Q220 1359 280 1429T434 1499Q469 1499 497 1489T573 1450T646 1412T703 1403Q746 1403 774 1437T803 1516L927 1504Z" />
+<glyph unicode="ò" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
+807 839T582 950Q445 950 361 841T277 529ZM681 1240H522L264 1534H487L681 1240Z" />
+<glyph unicode="ó" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
+807 839T582 950Q445 950 361 841T277 529ZM666 1534H890L622 1240H473L666 1534Z" />
+<glyph unicode="ô" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
+807 839T582 950Q445 950 361 841T277 529ZM878 1262V1252H725L575 1422L426 1252H273V1264L519 1536H631L878 1262Z" />
+<glyph unicode="õ" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
+807 839T582 950Q445 950 361 841T277 529ZM930 1504Q930 1396 869 1329T715 1262Q674 1262 644 1272T566 1313T496 1350T446 1357Q405 1357 376 1326T347 1245L223 1252Q223 1359 283 1429T437 1499Q472 1499 500 1489T576 1450T649 1412T706 1403Q749 1403 777
+1437T806 1516L930 1504Z" />
+<glyph unicode="ö" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729
+807 839T582 950Q445 950 361 841T277 529ZM254 1371Q254 1416 281 1446T363 1477T445 1447T473 1371T445 1296T363 1266T282 1296T254 1371ZM684 1369Q684 1414 711 1445T793 1476T875 1445T903 1369T875 1294T793 1264T712 1294T684 1369Z" />
+<glyph unicode="÷" horiz-adv-x="1169" d="M1069 600H71V784H1069V600ZM461 1098Q461 1146 489 1178T575 1210T661 1178T691 1098Q691 1051 662 1020T575 989T490 1020T461 1098ZM461 281Q461 329 489 361T575 393T661 361T691 281Q691 235 662 204T575 172T490
+203T461 281Z" />
+<glyph unicode="ø" horiz-adv-x="1160" d="M91 551Q91 710 152 836T326 1032T582 1102Q692 1102 786 1060L859 1208H983L881 1003Q1076 849 1076 529Q1076 371 1014 244T840 49T584 -20Q480 -20 394 15L320 -134H196L296 69Q91 218 91 551ZM276 529Q276 335
+373 224L716 918Q654 950 582 950Q444 950 360 841T276 529ZM890 551Q890 733 803 844L463 156Q518 131 584 131Q723 131 806 240T890 535V551Z" />
+<glyph unicode="ù" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM673 1240H514L256 1534H479L673 1240Z" />
+<glyph unicode="ú" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM658 1534H882L614 1240H465L658 1534Z" />
+<glyph unicode="û" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM870 1262V1252H717L567 1422L418 1252H265V1264L511 1536H623L870 1262Z" />
+<glyph unicode="ü" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM246 1371Q246 1416 273 1446T355 1477T437 1447T465 1371T437 1296T355 1266T274 1296T246
+1371ZM676 1369Q676 1414 703 1445T785 1476T867 1445T895 1369T867 1294T785 1264T704 1294T676 1369Z" />
+<glyph unicode="ý" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM599 1534H823L555 1240H406L599 1534Z" />
+<glyph unicode="þ" horiz-adv-x="1180" d="M1063 529Q1063 282 950 131T644 -20Q447 -20 334 105V-416H149V1536H334V970Q447 1102 641 1102Q836 1102 949 955T1063 546V529ZM878 550Q878 733 800 839T586 945Q418 945 334 796V279Q417 131 588 131Q721 131
+799 236T878 550Z" />
+<glyph unicode="ÿ" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM187 1371Q187 1416 214 1446T296 1477T378 1447T406 1371T378 1296T296
+1266T215 1296T187 1371ZM617 1369Q617 1414 644 1445T726 1476T808 1445T836 1369T808 1294T726 1264T645 1294T617 1369Z" />
+<glyph unicode="–" horiz-adv-x="1344" d="M1421 651H419V802H1421V651Z" />
+<glyph unicode="—" horiz-adv-x="1599" d="M1737 651H401V802H1737V651Z" />
+<glyph unicode="‘" horiz-adv-x="409" d="M270 1555L376 1483Q283 1356 280 1209V1073H96V1189Q96 1291 144 1391T270 1555Z" />
+<glyph unicode="’" horiz-adv-x="409" d="M153 1046L48 1118Q141 1248 144 1392V1536H327V1406Q326 1306 278 1207T153 1046Z" />
+<glyph unicode="‚" horiz-adv-x="407" d="M141 -283L36 -210Q127 -83 130 63V181H315V81Q315 -20 266 -121T141 -283Z" />
+<glyph unicode="“" horiz-adv-x="724" d="M278 1555L384 1483Q291 1356 288 1209V1073H104V1189Q104 1291 152 1391T278 1555ZM593 1555L699 1483Q606 1356 603 1209V1073H419V1189Q419 1291 467 1391T593 1555Z" />
+<glyph unicode="”" horiz-adv-x="731" d="M165 1046L60 1118Q153 1248 156 1392V1536H339V1406Q338 1306 290 1207T165 1046ZM472 1046L367 1118Q460 1248 463 1392V1536H646V1406Q645 1306 597 1207T472 1046Z" />
+<glyph unicode="„" horiz-adv-x="705" d="M141 -301L36 -229Q127 -92 130 61V246H315V82Q315 -26 266 -131T141 -301ZM437 -301L332 -229Q423 -92 426 61V246H612V82Q612 -25 564 -129T437 -301Z" />
+<glyph unicode="•" horiz-adv-x="690" d="M138 772Q138 859 193 915T341 971Q432 971 489 917T546 769V732Q546 645 491 590T342 535Q249 535 194 590T138 734V772Z" />
+<glyph unicode="‹" horiz-adv-x="614" d="M286 550L544 153H403L108 541V560L403 949H544L286 550Z" />
+<glyph unicode="›" horiz-adv-x="614" d="M231 949L526 560V541L231 152H89L347 550L89 949H231Z" />
+</font>
+</defs>
+</svg>
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.7e367be02cd17a96d513.woff2 b/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.7e367be02cd17a96d513.woff2
new file mode 100644
index 0000000..120796b
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.7e367be02cd17a96d513.woff2
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.9f916e330c478bbfa2a0.eot b/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.9f916e330c478bbfa2a0.eot
new file mode 100644
index 0000000..d26bc8f
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/roboto-v15-latin-regular.9f916e330c478bbfa2a0.eot
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/scripts.da68998bdd77aff4e764.bundle.js b/asterixdb/asterix-app/src/main/resources/dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
new file mode 100644
index 0000000..73c64a5
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/scripts.da68998bdd77aff4e764.bundle.js
@@ -0,0 +1,6 @@
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function r(e,r){return t(e).appendChild(r)}function n(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,r,i){var o=n(e,t,r,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function l(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function s(t,r){var n=t.className;e(r).test(n)||(t.className+=(n?" ":"")+r)}function a(t,r){for(var n=t.split(" "),i=0;i<n.length;i++)n[i]&&!e(n[i]).test(r)&&(r+=" "+n[i]);return r}function u(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function c(e,t,r){t||(t={});for(var n in e)!e.hasOwnProperty(n)||!1===r&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function f(e,t,r,n,i){null==t&&-1==(t=e.search(/[^\s\u00a0]/))&&(t=e.length);for(var o=n||0,l=i||0;;){var s=e.indexOf("\t",o);if(s<0||s>=t)return l+(t-o);l+=s-o,l+=r-l%r,o=s+1}}function h(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}function d(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);-1==o&&(o=e.length);var l=o-n;if(o==e.length||i+l>=t)return n+Math.min(l,t-i);if(i+=o-n,i+=r-i%r,n=o+1,i>=t)return n}}function p(e){for(;Yl.length<=e;)Yl.push(g(Yl)+" ");return Yl[e]}function g(e){return e[e.length-1]}function v(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function m(e,t,r){for(var n=0,i=r(t);n<e.length&&r(e[n])<=i;)n++;e.splice(n,0,t)}function y(){}function b(e,t){var r;return Object.create?r=Object.create(e):(y.prototype=e,r=new y),t&&c(t,r),r}function w(e){return/\w/.test(e)||e>""&&(e.toUpperCase()!=e.toLowerCase()||_l.test(e))}function x(e,t){return t?!!(t.source.indexOf("\\w")>-1&&w(e))||t.test(e):w(e)}function C(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function S(e){return e.charCodeAt(0)>=768&&ql.test(e)}function L(e,t,r){for(;(r<0?t>0:t<e.length)&&S(e.charAt(t));)t+=r;return t}function k(e,t,r){for(var n=t>r?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}function T(e,t,r){var o=this;this.input=r,o.scrollbarFiller=n("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=n("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=i("div",null,"CodeMirror-code"),o.selectionDiv=n("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=n("div",null,"CodeMirror-cursors"),o.measure=n("div",null,"CodeMirror-measure"),o.lineMeasure=n("div",null,"CodeMirror-measure"),o.lineSpace=i("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var l=i("div",[o.lineSpace],"CodeMirror-lines");o.mover=n("div",[l],null,"position: relative"),o.sizer=n("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=n("div",null,null,"position: absolute; height: "+Ul+"px; width: 1px;"),o.gutters=n("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=n("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=n("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),yl&&bl<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),wl||pl&&Ol||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,r.init(o)}function M(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t<o){r=i;break}t-=o}return r.lines[t]}function N(e,t,r){var n=[],i=t.line;return e.iter(t.line,r.line+1,function(e){var o=e.text;i==r.line&&(o=o.slice(0,r.ch)),i==t.line&&(o=o.slice(t.ch)),n.push(o),++i}),n}function O(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function A(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function W(e){if(null==e.parent)return null;for(var t=e.parent,r=h(t.lines,e),n=t.parent;n;t=n,n=n.parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function D(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(var l=0;l<e.lines.length;++l){var s=e.lines[l],a=s.height;if(t<a)break;t-=a}return r+l}function H(e,t){return t>=e.first&&t<e.first+e.size}function F(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function P(e,t,r){if(void 0===r&&(r=null),!(this instanceof P))return new P(e,t,r);this.line=e,this.ch=t,this.sticky=r}function E(e,t){return e.line-t.line||e.ch-t.ch}function z(e,t){return e.sticky==t.sticky&&0==E(e,t)}function I(e){return P(e.line,e.ch)}function R(e,t){return E(e,t)<0?t:e}function B(e,t){return E(e,t)<0?e:t}function G(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function U(e,t){if(t.line<e.first)return P(e.first,0);var r=e.first+e.size-1;return t.line>r?P(r,M(e,r).text.length):V(t,M(e,t.line).text.length)}function V(e,t){var r=e.ch;return null==r||r>t?P(e.line,t):r<0?P(e.line,0):e}function K(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=U(e,t[n]);return r}function j(){$l=!0}function X(){Zl=!0}function Y(e,t,r){this.marker=e,this.from=t,this.to=r}function _(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function q(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function $(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function Z(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],l=o.marker,s=null==o.from||(l.inclusiveLeft?o.from<=t:o.from<t);if(s||o.from==t&&"bookmark"==l.type&&(!r||!o.marker.insertLeft)){var a=null==o.to||(l.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new Y(l,o.from,a?null:o.to))}}return n}function Q(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],l=o.marker,s=null==o.to||(l.inclusiveRight?o.to>=t:o.to>t);if(s||o.from==t&&"bookmark"==l.type&&(!r||o.marker.insertLeft)){var a=null==o.from||(l.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new Y(l,a?null:o.from-t,null==o.to?null:o.to-t))}}return n}function J(e,t){if(t.full)return null;var r=H(e,t.from.line)&&M(e,t.from.line).markedSpans,n=H(e,t.to.line)&&M(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,l=0==E(t.from,t.to),s=Z(r,i,l),a=Q(n,o,l),u=1==t.text.length,c=g(t.text).length+(u?i:0);if(s)for(var f=0;f<s.length;++f){var h=s[f];if(null==h.to){var d=_(a,h.marker);d?u&&(h.to=null==d.to?null:d.to+c):h.to=i}}if(a)for(var p=0;p<a.length;++p){var v=a[p];if(null!=v.to&&(v.to+=c),null==v.from){var m=_(s,v.marker);m||(v.from=c,u&&(s||(s=[])).push(v))}else v.from+=c,u&&(s||(s=[])).push(v)}s&&(s=ee(s)),a&&a!=s&&(a=ee(a));var y=[s];if(!u){var b,w=t.text.length-2;if(w>0&&s)for(var x=0;x<s.length;++x)null==s[x].to&&(b||(b=[])).push(new Y(s[x].marker,null,null));for(var C=0;C<w;++C)y.push(b);y.push(a)}return y}function ee(e){for(var t=0;t<e.length;++t){var r=e[t];null!=r.from&&r.from==r.to&&!1!==r.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function te(e,t,r){var n=null;if(e.iter(t.line,r.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var r=e.markedSpans[t].marker;!r.readOnly||n&&-1!=h(n,r)||(n||(n=[])).push(r)}}),!n)return null;for(var i=[{from:t,to:r}],o=0;o<n.length;++o)for(var l=n[o],s=l.find(0),a=0;a<i.length;++a){var u=i[a];if(!(E(u.to,s.from)<0||E(u.from,s.to)>0)){var c=[a,1],f=E(u.from,s.from),d=E(u.to,s.to);(f<0||!l.inclusiveLeft&&!f)&&c.push({from:u.from,to:s.from}),(d>0||!l.inclusiveRight&&!d)&&c.push({from:s.to,to:u.to}),i.splice.apply(i,c),a+=c.length-3}}return i}function re(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function ne(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function ie(e){return e.inclusiveLeft?-1:0}function oe(e){return e.inclusiveRight?1:0}function le(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=E(n.from,i.from)||ie(e)-ie(t);if(o)return-o;var l=E(n.to,i.to)||oe(e)-oe(t);return l||t.id-e.id}function se(e,t){var r,n=Zl&&e.markedSpans;if(n)for(var i=void 0,o=0;o<n.length;++o)i=n[o],i.marker.collapsed&&null==(t?i.from:i.to)&&(!r||le(r,i.marker)<0)&&(r=i.marker);return r}function ae(e){return se(e,!0)}function ue(e){return se(e,!1)}function ce(e,t,r,n,i){var o=M(e,t),l=Zl&&o.markedSpans;if(l)for(var s=0;s<l.length;++s){var a=l[s];if(a.marker.collapsed){var u=a.marker.find(0),c=E(u.from,r)||ie(a.marker)-ie(i),f=E(u.to,n)||oe(a.marker)-oe(i);if(!(c>=0&&f<=0||c<=0&&f>=0)&&(c<=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?E(u.to,r)>=0:E(u.to,r)>0)||c>=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?E(u.from,n)<=0:E(u.from,n)<0)))return!0}}}function fe(e){for(var t;t=ae(e);)e=t.find(-1,!0).line;return e}function he(e){for(var t;t=ue(e);)e=t.find(1,!0).line;return e}function de(e){for(var t,r;t=ue(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}function pe(e,t){var r=M(e,t),n=fe(r);return r==n?t:W(n)}function ge(e,t){if(t>e.lastLine())return t;var r,n=M(e,t);if(!ve(e,n))return t;for(;r=ue(n);)n=r.find(1,!0).line;return W(n)+1}function ve(e,t){var r=Zl&&t.markedSpans;if(r)for(var n=void 0,i=0;i<r.length;++i)if(n=r[i],n.marker.collapsed){if(null==n.from)return!0;if(!n.marker.widgetNode&&0==n.from&&n.marker.inclusiveLeft&&me(e,t,n))return!0}}function me(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return me(e,n.line,_(n.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if(i=t.markedSpans[o],i.marker.collapsed&&!i.marker.widgetNode&&i.from==r.to&&(null==i.to||i.to!=r.from)&&(i.marker.inclusiveLeft||r.marker.inclusiveRight)&&me(e,t,i))return!0}function ye(e){e=fe(e);for(var t=0,r=e.parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;r=o,o=r.parent)for(var l=0;l<o.children.length;++l){var s=o.children[l];if(s==r)break;t+=s.height}return t}function be(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=ae(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=ue(n);){var o=t.find(0,!0);r-=n.text.length-o.from.ch,n=o.to.line,r+=n.text.length-o.to.ch}return r}function we(e){var t=e.display,r=e.doc;t.maxLine=M(r,r.first),t.maxLineLength=be(t.maxLine),t.maxLineChanged=!0,r.iter(function(e){var r=be(e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}function xe(e,t,r,n){if(!e)return n(t,r,"ltr",0);for(var i=!1,o=0;o<e.length;++o){var l=e[o];(l.from<r&&l.to>t||t==r&&l.to==t)&&(n(Math.max(l.from,t),Math.min(l.to,r),1==l.level?"rtl":"ltr",o),i=!0)}i||n(t,r,"ltr")}function Ce(e,t,r){var n;Ql=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:Ql=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:Ql=i)}return null!=n?n:Ql}function Se(e,t){var r=e.order;return null==r&&(r=e.order=Jl(e.text,t)),r}function Le(e,t){return e._handlers&&e._handlers[t]||es}function ke(e,t,r){if(e.removeEventListener)e.removeEventListener(t,r,!1);else if(e.detachEvent)e.detachEvent("on"+t,r);else{var n=e._handlers,i=n&&n[t];if(i){var o=h(i,r);o>-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function Te(e,t){var r=Le(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i<r.length;++i)r[i].apply(null,n)}function Me(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Te(e,r||t.type,e,t),He(t)||t.codemirrorIgnore}function Ne(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var r=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),n=0;n<t.length;++n)-1==h(r,t[n])&&r.push(t[n])}function Oe(e,t){return Le(e,t).length>0}function Ae(e){e.prototype.on=function(e,t){ts(this,e,t)},e.prototype.off=function(e,t){ke(this,e,t)}}function We(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function De(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function He(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Fe(e){We(e),De(e)}function Pe(e){return e.target||e.srcElement}function Ee(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Al&&e.ctrlKey&&1==t&&(t=3),t}function ze(e){if(null==Bl){var t=n("span","");r(e,n("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Bl=t.offsetWidth<=1&&t.offsetHeight>2&&!(yl&&bl<8))}var i=Bl?n("span",""):n("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function Ie(e){if(null!=Gl)return Gl;var n=r(e,document.createTextNode("AخA")),i=Fl(n,0,1).getBoundingClientRect(),o=Fl(n,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(Gl=o.right-i.right<3)}function Re(e){if(null!=ls)return ls;var t=r(e,n("span","x")),i=t.getBoundingClientRect(),o=Fl(t,0,1).getBoundingClientRect();return ls=Math.abs(i.left-o.left)>1}function Be(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),ss[e]=t}function Ge(e,t){as[e]=t}function Ue(e){if("string"==typeof e&&as.hasOwnProperty(e))e=as[e];else if(e&&"string"==typeof e.name&&as.hasOwnProperty(e.name)){var t=as[e.name];"string"==typeof t&&(t={name:t}),e=b(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ue("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ue("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Ve(e,t){t=Ue(t);var r=ss[t.name];if(!r)return Ve(e,"text/plain");var n=r(e,t);if(us.hasOwnProperty(t.name)){var i=us[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)n[l]=t.modeProps[l];return n}function Ke(e,t){c(t,us.hasOwnProperty(e)?us[e]:us[e]={})}function je(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Xe(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Ye(e,t,r){return!e.startState||e.startState(t,r)}function _e(e,t,r,n){var i=[e.state.modeGen],o={};rt(e,t.text,e.doc.mode,r,function(e,t){return i.push(e,t)},o,n);for(var l=r.state,s=0;s<e.state.overlays.length;++s)!function(n){r.baseTokens=i;var s=e.state.overlays[n],a=1,u=0;r.state=!0,rt(e,t.text,s.mode,r,function(e,t){for(var r=a;u<e;){var n=i[a];n>e&&i.splice(a,1,e,i[a+1],n),a+=2,u=Math.min(e,n)}if(t)if(s.opaque)i.splice(r,a-r,e,"overlay "+t),a=r+2;else for(;r<a;r+=2){var o=i[r+1];i[r+1]=(o?o+" ":"")+"overlay "+t}},o),r.state=l,r.baseTokens=null,r.baseTokenPos=1}(s);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function qe(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=$e(e,W(t)),i=t.text.length>e.options.maxHighlightLength&&je(e.doc.mode,n.state),o=_e(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function $e(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new hs(n,!0,t);var o=nt(e,t,r),l=o>n.first&&M(n,o-1).stateAfter,s=l?hs.fromSaved(n,l,o):new hs(n,Ye(n.mode),o);return n.iter(o,t,function(r){Ze(e,r.text,s);var n=s.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&n<i.viewTo?s.save():null,s.nextLine()}),r&&(n.modeFrontier=s.line),s}function Ze(e,t,r,n){var i=e.doc.mode,o=new cs(t,e.options.tabSize,r);for(o.start=o.pos=n||0,""==t&&Qe(i,r.state);!o.eol();)Je(i,o,r.state),o.start=o.pos}function Qe(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=Xe(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function Je(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=Xe(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function et(e,t,r,n){var i,o=e.doc,l=o.mode;t=U(o,t);var s,a=M(o,t.line),u=$e(e,t.line,r),c=new cs(a.text,e.options.tabSize,u);for(n&&(s=[]);(n||c.pos<t.ch)&&!c.eol();)c.start=c.pos,i=Je(l,c,u.state),n&&s.push(new ds(c,i,je(o.mode,u.state)));return n?s:new ds(c,i,u.state)}function tt(e,t){if(e)for(;;){var r=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!r)break;e=e.slice(0,r.index)+e.slice(r.index+r[0].length);var n=r[1]?"bgClass":"textClass";null==t[n]?t[n]=r[2]:new RegExp("(?:^|s)"+r[2]+"(?:$|s)").test(t[n])||(t[n]+=" "+r[2])}return e}function rt(e,t,r,n,i,o,l){var s=r.flattenSpans;null==s&&(s=e.options.flattenSpans);var a,u=0,c=null,f=new cs(t,e.options.tabSize,n),h=e.options.addModeClass&&[null];for(""==t&&tt(Qe(r,n.state),o);!f.eol();){if(f.pos>e.options.maxHighlightLength?(s=!1,l&&Ze(e,t,n,f.pos),f.pos=t.length,a=null):a=tt(Je(r,f,n.state,h),o),h){var d=h[0].name;d&&(a="m-"+(a?d+" "+a:d))}if(!s||c!=a){for(;u<f.start;)u=Math.min(f.start,u+5e3),i(u,c);c=a}f.start=f.pos}for(;u<f.pos;){var p=Math.min(f.pos,u+5e3);i(p,c),u=p}}function nt(e,t,r){for(var n,i,o=e.doc,l=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>l;--s){if(s<=o.first)return o.first;var a=M(o,s-1),u=a.stateAfter;if(u&&(!r||s+(u instanceof fs?u.lookAhead:0)<=o.modeFrontier))return s;var c=f(a.text,null,e.options.tabSize);(null==i||n>c)&&(i=s-1,n=c)}return i}function it(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var r=e.first,n=t-1;n>r;n--){var i=M(e,n).stateAfter;if(i&&(!(i instanceof fs)||n+i.lookAhead<t)){r=n+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,r)}}function ot(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),re(e),ne(e,r);var i=n?n(e):1;i!=e.height&&A(e,i)}function lt(e){e.parent=null,re(e)}function st(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?ms:vs;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function at(e,t){var r=i("span",null,null,wl?"padding-right: .1px":null),n={pre:i("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(yl||wl)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var l=o?t.rest[o-1]:t.line,s=void 0;n.pos=0,n.addToken=ct,Ie(e.display.measure)&&(s=Se(l,e.doc.direction))&&(n.addToken=ht(n.addToken,s)),n.map=[];pt(l,n,qe(e,l,t!=e.display.externalMeasured&&W(l))),l.styleClasses&&(l.styleClasses.bgClass&&(n.bgClass=a(l.styleClasses.bgClass,n.bgClass||"")),l.styleClasses.textClass&&(n.textClass=a(l.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(ze(e.display.measure))),0==o?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(wl){var u=n.content.lastChild;(/\bcm-tab\b/.test(u.className)||u.querySelector&&u.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return Te(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=a(n.pre.className,n.textClass||"")),n}function ut(e){var t=n("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function ct(e,t,r,i,o,l,s){if(t){var a,u=e.splitSpaces?ft(t,e.trailingSpace):t,c=e.cm.state.specialChars,f=!1;if(c.test(t)){a=document.createDocumentFragment();for(var h=0;;){c.lastIndex=h;var d=c.exec(t),g=d?d.index-h:t.length-h;if(g){var v=document.createTextNode(u.slice(h,h+g));yl&&bl<9?a.appendChild(n("span",[v])):a.appendChild(v),e.map.push(e.pos,e.pos+g,v),e.col+=g,e.pos+=g}if(!d)break;h+=g+1;var m=void 0;if("\t"==d[0]){var y=e.cm.options.tabSize,b=y-e.col%y;m=a.appendChild(n("span",p(b),"cm-tab")),m.setAttribute("role","presentation"),m.setAttribute("cm-text","\t"),e.col+=b}else"\r"==d[0]||"\n"==d[0]?(m=a.appendChild(n("span","\r"==d[0]?"␍":"","cm-invalidchar")),m.setAttribute("cm-text",d[0]),e.col+=1):(m=e.cm.options.specialCharPlaceholder(d[0]),m.setAttribute("cm-text",d[0]),yl&&bl<9?a.appendChild(n("span",[m])):a.appendChild(m),e.col+=1);e.map.push(e.pos,e.pos+1,m),e.pos++}}else e.col+=t.length,a=document.createTextNode(u),e.map.push(e.pos,e.pos+t.length,a),yl&&bl<9&&(f=!0),e.pos+=t.length;if(e.trailingSpace=32==u.charCodeAt(t.length-1),r||i||o||f||s){var w=r||"";i&&(w+=i),o&&(w+=o);var x=n("span",[a],w,s);return l&&(x.title=l),e.content.appendChild(x)}e.content.appendChild(a)}}function ft(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!r||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),n+=o,r=" "==o}return n}function ht(e,t){return function(r,n,i,o,l,s,a){i=i?i+" cm-force-border":"cm-force-border";for(var u=r.pos,c=u+n.length;;){for(var f=void 0,h=0;h<t.length&&(f=t[h],!(f.to>u&&f.from<=u));h++);if(f.to>=c)return e(r,n,i,o,l,s,a);e(r,n.slice(0,f.to-u),i,o,null,s,a),o=null,n=n.slice(f.to-u),u=f.to}}}function dt(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function pt(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var l,s,a,u,c,f,h,d=i.length,p=0,g=1,v="",m=0;;){if(m==p){a=u=c=f=s="",h=null,m=1/0;for(var y=[],b=void 0,w=0;w<n.length;++w){var x=n[w],C=x.marker;"bookmark"==C.type&&x.from==p&&C.widgetNode?y.push(C):x.from<=p&&(null==x.to||x.to>p||C.collapsed&&x.to==p&&x.from==p)?(null!=x.to&&x.to!=p&&m>x.to&&(m=x.to,u=""),C.className&&(a+=" "+C.className),C.css&&(s=(s?s+";":"")+C.css),C.startStyle&&x.from==p&&(c+=" "+C.startStyle),C.endStyle&&x.to==m&&(b||(b=[])).push(C.endStyle,x.to),C.title&&!f&&(f=C.title),C.collapsed&&(!h||le(h.marker,C)<0)&&(h=x)):x.from>p&&m>x.from&&(m=x.from)}if(b)for(var S=0;S<b.length;S+=2)b[S+1]==m&&(u+=" "+b[S]);if(!h||h.from==p)for(var L=0;L<y.length;++L)dt(t,0,y[L]);if(h&&(h.from||0)==p){if(dt(t,(null==h.to?d+1:h.to)-p,h.marker,null==h.from),null==h.to)return;h.to==p&&(h=!1)}}if(p>=d)break;for(var k=Math.min(d,m);;){if(v){var T=p+v.length;if(!h){var M=T>k?v.slice(0,k-p):v;t.addToken(t,M,l?l+a:a,c,p+M.length==m?u:"",f,s)}if(T>=k){v=v.slice(k-p),p=k;break}p=T,c=""}v=i.slice(o,o=r[g++]),l=st(r[g++],t.cm.options)}}else for(var N=1;N<r.length;N+=2)t.addToken(t,i.slice(o,o=r[N]),st(r[N+1],t.cm.options))}function gt(e,t,r){this.line=t,this.rest=de(t),this.size=this.rest?W(g(this.rest))-r+1:1,this.node=this.text=null,this.hidden=ve(e,t)}function vt(e,t,r){for(var n,i=[],o=t;o<r;o=n){var l=new gt(e.doc,M(e.doc,o),o);n=o+l.size,i.push(l)}return i}function mt(e){ys?ys.ops.push(e):e.ownsGroup=ys={ops:[e],delayedCallbacks:[]}}function yt(e){var t=e.delayedCallbacks,r=0;do{for(;r<t.length;r++)t[r].call(null);for(var n=0;n<e.ops.length;n++){var i=e.ops[n];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(r<t.length)}function bt(e,t){var r=e.ownsGroup;if(r)try{yt(r)}finally{ys=null,t(r)}}function wt(e,t){var r=Le(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);ys?n=ys.delayedCallbacks:bs?n=bs:(n=bs=[],setTimeout(xt,0));for(var o=0;o<r.length;++o)!function(e){n.push(function(){return r[e].apply(null,i)})}(o)}}function xt(){var e=bs;bs=null;for(var t=0;t<e.length;++t)e[t]()}function Ct(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?Tt(e,t):"gutter"==o?Nt(e,t,r,n):"class"==o?Mt(e,t):"widget"==o&&Ot(e,t,n)}t.changes=null}function St(e){return e.node==e.text&&(e.node=n("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),yl&&bl<8&&(e.node.style.zIndex=2)),e.node}function Lt(e,t){var r=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(r&&(r+=" CodeMirror-linebackground"),t.background)r?t.background.className=r:(t.background.parentNode.removeChild(t.background),t.background=null);else if(r){var i=St(t);t.background=i.insertBefore(n("div",null,r),i.firstChild),e.display.input.setUneditable(t.background)}}function kt(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):at(e,t)}function Tt(e,t){var r=t.text.className,n=kt(e,t);t.text==t.node&&(t.node=n.pre),t.text.parentNode.replaceChild(n.pre,t.text),t.text=n.pre,n.bgClass!=t.bgClass||n.textClass!=t.textClass?(t.bgClass=n.bgClass,t.textClass=n.textClass,Mt(e,t)):r&&(t.text.className=r)}function Mt(e,t){Lt(e,t),t.line.wrapClass?St(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className="");var r=t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass;t.text.className=r||""}function Nt(e,t,r,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=St(t);t.gutterBackground=n("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var l=t.line.gutterMarkers;if(e.options.lineNumbers||l){var s=St(t),a=t.gutter=n("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(a),s.insertBefore(a,t.text),t.line.gutterClass&&(a.className+=" "+t.line.gutterClass),!e.options.lineNumbers||l&&l["CodeMirror-linenumbers"]||(t.lineNumber=a.appendChild(n("div",F(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),l)for(var u=0;u<e.options.gutters.length;++u){var c=e.options.gutters[u],f=l.hasOwnProperty(c)&&l[c];f&&a.appendChild(n("div",[f],"CodeMirror-gutter-elt","left: "+i.gutterLeft[c]+"px; width: "+i.gutterWidth[c]+"px"))}}}function Ot(e,t,r){t.alignable&&(t.alignable=null);for(var n=t.node.firstChild,i=void 0;n;n=i)i=n.nextSibling,"CodeMirror-linewidget"==n.className&&t.node.removeChild(n);Wt(e,t,r)}function At(e,t,r,n){var i=kt(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),Mt(e,t),Nt(e,t,r,n),Wt(e,t,n),t.node}function Wt(e,t,r){if(Dt(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)Dt(e,t.rest[n],t,r,!1)}function Dt(e,t,r,i,o){if(t.widgets)for(var l=St(r),s=0,a=t.widgets;s<a.length;++s){var u=a[s],c=n("div",[u.node],"CodeMirror-linewidget");u.handleMouseEvents||c.setAttribute("cm-ignore-events","true"),Ht(u,c,r,i),e.display.input.setUneditable(c),o&&u.above?l.insertBefore(c,r.gutter||r.text):l.appendChild(c),wt(u,"redraw")}}function Ht(e,t,r,n){if(e.noHScroll){(r.alignable||(r.alignable=[])).push(t);var i=n.wrapperWidth;t.style.left=n.fixedPos+"px",e.coverGutter||(i-=n.gutterTotalWidth,t.style.paddingLeft=n.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-n.gutterTotalWidth+"px"))}function Ft(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),r(t.display.measure,n("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function Pt(e,t){for(var r=Pe(t);r!=e.wrapper;r=r.parentNode)if(!r||1==r.nodeType&&"true"==r.getAttribute("cm-ignore-events")||r.parentNode==e.sizer&&r!=e.mover)return!0}function Et(e){return e.lineSpace.offsetTop}function zt(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function It(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=r(e.measure,n("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function Rt(e){return Ul-e.display.nativeBarWidth}function Bt(e){return e.display.scroller.clientWidth-Rt(e)-e.display.barWidth}function Gt(e){return e.display.scroller.clientHeight-Rt(e)-e.display.barHeight}function Ut(e,t,r){var n=e.options.lineWrapping,i=n&&Bt(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var l=t.text.firstChild.getClientRects(),s=0;s<l.length-1;s++){var a=l[s],u=l[s+1];Math.abs(a.bottom-u.bottom)>2&&o.push((a.bottom+u.top)/2-r.top)}}o.push(r.bottom-r.top)}}function Vt(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;n<e.rest.length;n++)if(e.rest[n]==t)return{map:e.measure.maps[n],cache:e.measure.caches[n]};for(var i=0;i<e.rest.length;i++)if(W(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Kt(e,t){t=fe(t);var n=W(t),i=e.display.externalMeasured=new gt(e.doc,t,n);i.lineN=n;var o=i.built=at(e,i);return i.text=o.pre,r(e.display.lineMeasure,o.pre),i}function jt(e,t,r,n){return _t(e,Yt(e,t),r,n)}function Xt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[kr(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function Yt(e,t){var r=W(t),n=Xt(e,r);n&&!n.text?n=null:n&&n.changes&&(Ct(e,n,r,wr(e)),e.curOp.forceUpdate=!0),n||(n=Kt(e,t));var i=Vt(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function _t(e,t,r,n,i){t.before&&(r=-1);var o,l=r+(n||"");return t.cache.hasOwnProperty(l)?o=t.cache[l]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(Ut(e,t.view,t.rect),t.hasHeights=!0),o=Zt(e,t,r,n),o.bogus||(t.cache[l]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}function qt(e,t,r){for(var n,i,o,l,s,a,u=0;u<e.length;u+=3)if(s=e[u],a=e[u+1],t<s?(i=0,o=1,l="left"):t<a?(i=t-s,o=i+1):(u==e.length-3||t==a&&e[u+3]>t)&&(o=a-s,i=o-1,t>=a&&(l="right")),null!=i){if(n=e[u+2],s==a&&r==(n.insertLeft?"left":"right")&&(l=r),"left"==r&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)n=e[2+(u-=3)],l="left";if("right"==r&&i==a-s)for(;u<e.length-3&&e[u+3]==e[u+4]&&!e[u+5].insertLeft;)n=e[(u+=3)+2],l="right";break}return{node:n,start:i,end:o,collapse:l,coverStart:s,coverEnd:a}}function $t(e,t){var r=ws;if("left"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;i>=0&&(r=e[i]).left==r.right;i--);return r}function Zt(e,t,r,n){var i,o=qt(t.map,r,n),l=o.node,s=o.start,a=o.end,u=o.collapse
+;if(3==l.nodeType){for(var c=0;c<4;c++){for(;s&&S(t.line.text.charAt(o.coverStart+s));)--s;for(;o.coverStart+a<o.coverEnd&&S(t.line.text.charAt(o.coverStart+a));)++a;if(i=yl&&bl<9&&0==s&&a==o.coverEnd-o.coverStart?l.parentNode.getBoundingClientRect():$t(Fl(l,s,a).getClientRects(),n),i.left||i.right||0==s)break;a=s,s-=1,u="right"}yl&&bl<11&&(i=Qt(e.display.measure,i))}else{s>0&&(u=n="right");var f;i=e.options.lineWrapping&&(f=l.getClientRects()).length>1?f["right"==n?f.length-1:0]:l.getBoundingClientRect()}if(yl&&bl<9&&!s&&(!i||!i.left&&!i.right)){var h=l.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+br(e.display),top:h.top,bottom:h.bottom}:ws}for(var d=i.top-t.rect.top,p=i.bottom-t.rect.top,g=(d+p)/2,v=t.view.measure.heights,m=0;m<v.length-1&&!(g<v[m]);m++);var y=m?v[m-1]:0,b=v[m],w={left:("right"==u?i.right:i.left)-t.rect.left,right:("left"==u?i.left:i.right)-t.rect.left,top:y,bottom:b};return i.left||i.right||(w.bogus=!0),e.options.singleCursorHeightPerLine||(w.rtop=d,w.rbottom=p),w}function Qt(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!Re(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}function Jt(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function er(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var r=0;r<e.display.view.length;r++)Jt(e.display.view[r])}function tr(e){er(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function rr(){return Cl&&Nl?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function nr(){return Cl&&Nl?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function ir(e){var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;++r)e.widgets[r].above&&(t+=Ft(e.widgets[r]));return t}function or(e,t,r,n,i){if(!i){var o=ir(t);r.top+=o,r.bottom+=o}if("line"==n)return r;n||(n="local");var l=ye(t);if("local"==n?l+=Et(e.display):l-=e.display.viewOffset,"page"==n||"window"==n){var s=e.display.lineSpace.getBoundingClientRect();l+=s.top+("window"==n?0:nr());var a=s.left+("window"==n?0:rr());r.left+=a,r.right+=a}return r.top+=l,r.bottom+=l,r}function lr(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=rr(),i-=nr();else if("local"==r||!r){var o=e.display.sizer.getBoundingClientRect();n+=o.left,i+=o.top}var l=e.display.lineSpace.getBoundingClientRect();return{left:n-l.left,top:i-l.top}}function sr(e,t,r,n,i){return n||(n=M(e.doc,t.line)),or(e,n,jt(e,n,t.ch,i),r)}function ar(e,t,r,n,i,o){function l(t,l){var s=_t(e,i,t,l?"right":"left",o);return l?s.left=s.right:s.right=s.left,or(e,n,s,r)}function s(e,t,r){var n=a[t],i=1==n.level;return l(r?e-1:e,i!=r)}n=n||M(e.doc,t.line),i||(i=Yt(e,n));var a=Se(n,e.doc.direction),u=t.ch,c=t.sticky;if(u>=n.text.length?(u=n.text.length,c="before"):u<=0&&(u=0,c="after"),!a)return l("before"==c?u-1:u,"before"==c);var f=Ce(a,u,c),h=Ql,d=s(u,f,"before"==c);return null!=h&&(d.other=s(u,h,"before"!=c)),d}function ur(e,t){var r=0;t=U(e.doc,t),e.options.lineWrapping||(r=br(e.display)*t.ch);var n=M(e.doc,t.line),i=ye(n)+Et(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function cr(e,t,r,n,i){var o=P(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function fr(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return cr(n.first,0,null,!0,-1);var i=D(n,r),o=n.first+n.size-1;if(i>o)return cr(n.first+n.size-1,M(n,o).text.length,null,!0,1);t<0&&(t=0);for(var l=M(n,i);;){var s=gr(e,l,i,t,r),a=ue(l),u=a&&a.find(0,!0);if(!a||!(s.ch>u.from.ch||s.ch==u.from.ch&&s.xRel>0))return s;i=W(l=u.to.line)}}function hr(e,t,r,n){n-=ir(t);var i=t.text.length,o=k(function(t){return _t(e,r,t-1).bottom<=n},i,0);return i=k(function(t){return _t(e,r,t).top>n},o,i),{begin:o,end:i}}function dr(e,t,r,n){return r||(r=Yt(e,t)),hr(e,t,r,or(e,t,_t(e,r,n),"line").top)}function pr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function gr(e,t,r,n,i){i-=ye(t);var o=Yt(e,t),l=ir(t),s=0,a=t.text.length,u=!0,c=Se(t,e.doc.direction);if(c){var f=(e.options.lineWrapping?mr:vr)(e,t,r,o,c,n,i);u=1!=f.level,s=u?f.from:f.to-1,a=u?f.to:f.from-1}var h,d,p=null,g=null,v=k(function(t){var r=_t(e,o,t);return r.top+=l,r.bottom+=l,!!pr(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,g=r),!0)},s,a),m=!1;if(g){var y=n-g.left<g.right-n,b=y==u;v=p+(b?0:1),d=b?"after":"before",h=y?g.left:g.right}else{u||v!=a&&v!=s||v++,d=0==v?"after":v==t.text.length?"before":_t(e,o,v-(u?1:0)).bottom+l<=i==u?"after":"before";var w=ar(e,P(r,v,d),"line",t,o);h=w.left,m=i<w.top||i>=w.bottom}return v=L(t.text,v,1),cr(r,v,d,m,n-h)}function vr(e,t,r,n,i,o,l){var s=k(function(s){var a=i[s],u=1!=a.level;return pr(ar(e,P(r,u?a.to:a.from,u?"before":"after"),"line",t,n),o,l,!0)},0,i.length-1),a=i[s];if(s>0){var u=1!=a.level,c=ar(e,P(r,u?a.from:a.to,u?"after":"before"),"line",t,n);pr(c,o,l,!0)&&c.top>l&&(a=i[s-1])}return a}function mr(e,t,r,n,i,o,l){var s=hr(e,t,n,l),a=s.begin,u=s.end;/\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,f=null,h=0;h<i.length;h++){var d=i[h];if(!(d.from>=u||d.to<=a)){var p=1!=d.level,g=_t(e,n,p?Math.min(u,d.to)-1:Math.max(a,d.from)).right,v=g<o?o-g+1e9:g-o;(!c||f>v)&&(c=d,f=v)}}return c||(c=i[i.length-1]),c.from<a&&(c={from:a,to:c.to,level:c.level}),c.to>u&&(c={from:c.from,to:u,level:c.level}),c}function yr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==gs){gs=n("pre");for(var i=0;i<49;++i)gs.appendChild(document.createTextNode("x")),gs.appendChild(n("br"));gs.appendChild(document.createTextNode("x"))}r(e.measure,gs);var o=gs.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function br(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=n("span","xxxxxxxxxx"),i=n("pre",[t]);r(e.measure,i);var o=t.getBoundingClientRect(),l=(o.right-o.left)/10;return l>2&&(e.cachedCharWidth=l),l||10}function wr(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l)r[e.options.gutters[l]]=o.offsetLeft+o.clientLeft+i,n[e.options.gutters[l]]=o.clientWidth;return{fixedPos:xr(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function xr(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Cr(e){var t=yr(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/br(e.display)-3);return function(i){if(ve(e.doc,i))return 0;var o=0;if(i.widgets)for(var l=0;l<i.widgets.length;l++)i.widgets[l].height&&(o+=i.widgets[l].height);return r?o+(Math.ceil(i.text.length/n)||1)*t:o+t}}function Sr(e){var t=e.doc,r=Cr(e);t.iter(function(e){var t=r(e);t!=e.height&&A(e,t)})}function Lr(e,t,r,n){var i=e.display;if(!r&&"true"==Pe(t).getAttribute("cm-not-content"))return null;var o,l,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,l=t.clientY-s.top}catch(t){return null}var a,u=fr(e,o,l);if(n&&1==u.xRel&&(a=M(e.doc,u.line).text).length==u.ch){var c=f(a,a.length,e.options.tabSize)-a.length;u=P(u.line,Math.max(0,Math.round((o-It(e.display).left)/br(e.display))-c))}return u}function kr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;n<r.length;n++)if((t-=r[n].size)<0)return n}function Tr(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Mr(e,t){void 0===t&&(t=!0);for(var r=e.doc,n={},i=n.cursors=document.createDocumentFragment(),o=n.selection=document.createDocumentFragment(),l=0;l<r.sel.ranges.length;l++)if(t||l!=r.sel.primIndex){var s=r.sel.ranges[l];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var a=s.empty();(a||e.options.showCursorWhenSelecting)&&Nr(e,s.head,i),a||Ar(e,s,o)}}return n}function Nr(e,t,r){var i=ar(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=r.appendChild(n("div"," ","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var l=r.appendChild(n("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));l.style.display="",l.style.left=i.other.left+"px",l.style.top=i.other.top+"px",l.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function Or(e,t){return e.top-t.top||e.left-t.left}function Ar(e,t,r){function i(e,t,r,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),a.appendChild(n("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==r?f-e:r)+"px;\n height: "+(i-t)+"px"))}function o(t,r,n){function o(r,n){return sr(e,P(t,r),"div",d,n)}function l(t,r,n){var i=dr(e,d,null,t),l="ltr"==r==("after"==n)?"left":"right";return o("after"==n?i.begin:i.end-(/\s/.test(d.text.charAt(i.end-1))?2:1),l)[l]}var a,u,d=M(s,t),p=d.text.length,g=Se(d,s.direction);return xe(g,r||0,null==n?p:n,function(e,t,s,d){var v="ltr"==s,m=o(e,v?"left":"right"),y=o(t-1,v?"right":"left"),b=null==r&&0==e,w=null==n&&t==p,x=0==d,C=!g||d==g.length-1;if(y.top-m.top<=3){var S=(h?b:w)&&x,L=(h?w:b)&&C,k=S?c:(v?m:y).left,T=L?f:(v?y:m).right;i(k,m.top,T-k,m.bottom)}else{var M,N,O,A;v?(M=h&&b&&x?c:m.left,N=h?f:l(e,s,"before"),O=h?c:l(t,s,"after"),A=h&&w&&C?f:y.right):(M=h?l(e,s,"before"):c,N=!h&&b&&x?f:m.right,O=!h&&w&&C?c:y.left,A=h?l(t,s,"after"):f),i(M,m.top,N-M,m.bottom),m.bottom<y.top&&i(c,m.bottom,null,y.top),i(O,y.top,A-O,y.bottom)}(!a||Or(m,a)<0)&&(a=m),Or(y,a)<0&&(a=y),(!u||Or(m,u)<0)&&(u=m),Or(y,u)<0&&(u=y)}),{start:a,end:u}}var l=e.display,s=e.doc,a=document.createDocumentFragment(),u=It(e.display),c=u.left,f=Math.max(l.sizerWidth,Bt(e)-l.sizer.offsetLeft)-u.right,h="ltr"==s.direction,d=t.from(),p=t.to();if(d.line==p.line)o(d.line,d.ch,p.ch);else{var g=M(s,d.line),v=M(s,p.line),m=fe(g)==fe(v),y=o(d.line,d.ch,m?g.text.length+1:null).end,b=o(p.line,m?0:null,p.ch).start;m&&(y.top<b.top-2?(i(y.right,y.top,null,y.bottom),i(c,b.top,b.left,b.bottom)):i(y.right,y.top,b.left-y.right,y.bottom)),y.bottom<b.top&&i(c,y.bottom,null,b.top)}r.appendChild(a)}function Wr(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Dr(e){e.state.focused||(e.display.input.focus(),Fr(e))}function Hr(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Pr(e))},100)}function Fr(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Te(e,"focus",e,t),e.state.focused=!0,s(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),wl&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),Wr(e))}function Pr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(Te(e,"blur",e,t),e.state.focused=!1,zl(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Er(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n<t.view.length;n++){var i=t.view[n],o=void 0;if(!i.hidden){if(yl&&bl<8){var l=i.node.offsetTop+i.node.offsetHeight;o=l-r,r=l}else{var s=i.node.getBoundingClientRect();o=s.bottom-s.top}var a=i.line.height-o;if(o<2&&(o=yr(t)),(a>.005||a<-.005)&&(A(i.line,o),zr(i.line),i.rest))for(var u=0;u<i.rest.length;u++)zr(i.rest[u])}}}function zr(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var r=e.widgets[t],n=r.node.parentNode;n&&(r.height=n.offsetHeight)}}function Ir(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-Et(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=D(t,n),l=D(t,i);if(r&&r.ensure){var s=r.ensure.from.line,a=r.ensure.to.line;s<o?(o=s,l=D(t,ye(M(t,s))+e.wrapper.clientHeight)):Math.min(a,t.lastLine())>=l&&(o=D(t,ye(M(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function Rr(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=xr(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",l=0;l<r.length;l++)if(!r[l].hidden){e.options.fixedGutter&&(r[l].gutter&&(r[l].gutter.style.left=o),r[l].gutterBackground&&(r[l].gutterBackground.style.left=o));var s=r[l].alignable;if(s)for(var a=0;a<s.length;a++)s[a].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function Br(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=F(e.options,t.first+t.size-1),i=e.display;if(r.length!=i.lineNumChars){var o=i.measure.appendChild(n("div",[n("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),l=o.firstChild.offsetWidth,s=o.offsetWidth-l;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(l,i.lineGutter.offsetWidth-s)+1,i.lineNumWidth=i.lineNumInnerWidth+s,i.lineNumChars=i.lineNumInnerWidth?r.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",Dn(e),!0}return!1}function Gr(e,t){if(!Me(e,"scrollCursorIntoView")){var r=e.display,i=r.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!Tl){var l=n("div","",null,"position: absolute;\n top: "+(t.top-r.viewOffset-Et(e.display))+"px;\n height: "+(t.bottom-t.top+Rt(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(l),l.scrollIntoView(o),e.display.lineSpace.removeChild(l)}}}function Ur(e,t,r,n){null==n&&(n=0);var i;e.options.lineWrapping||t!=r||(t=t.ch?P(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t,r="before"==t.sticky?P(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var l=!1,s=ar(e,t),a=r&&r!=t?ar(e,r):s;i={left:Math.min(s.left,a.left),top:Math.min(s.top,a.top)-n,right:Math.max(s.left,a.left),bottom:Math.max(s.bottom,a.bottom)+n};var u=Kr(e,i),c=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=u.scrollTop&&(Zr(e,u.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(l=!0)),null!=u.scrollLeft&&(Jr(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-f)>1&&(l=!0)),!l)break}return i}function Vr(e,t){var r=Kr(e,t);null!=r.scrollTop&&Zr(e,r.scrollTop),null!=r.scrollLeft&&Jr(e,r.scrollLeft)}function Kr(e,t){var r=e.display,n=yr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Gt(e),l={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+zt(r),a=t.top<n,u=t.bottom>s-n;if(t.top<i)l.scrollTop=a?0:t.top;else if(t.bottom>i+o){var c=Math.min(t.top,(u?s:t.bottom)-o);c!=i&&(l.scrollTop=c)}var f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,h=Bt(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),d=t.right-t.left>h;return d&&(t.right=t.left+h),t.left<10?l.scrollLeft=0:t.left<f?l.scrollLeft=Math.max(0,t.left-(d?0:10)):t.right>h+f-3&&(l.scrollLeft=t.right+(d?0:10)-h),l}function jr(e,t){null!=t&&(qr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Xr(e){qr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Yr(e,t,r){null==t&&null==r||qr(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function _r(e,t){qr(e),e.curOp.scrollToPos=t}function qr(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;$r(e,ur(e,t.from),ur(e,t.to),t.margin)}}function $r(e,t,r,n){var i=Kr(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});Yr(e,i.scrollLeft,i.scrollTop)}function Zr(e,t){Math.abs(e.doc.scrollTop-t)<2||(pl||An(e,{top:t}),Qr(e,t,!0),pl&&An(e),Sn(e,100))}function Qr(e,t,r){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Jr(e,t,r,n){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,Rr(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function en(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+zt(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+Rt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function tn(e,t){t||(t=en(e));var r=e.display.barWidth,n=e.display.barHeight;rn(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&Er(e),rn(e,en(e)),r=e.display.barWidth,n=e.display.barHeight}function rn(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}function nn(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&zl(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Ss[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),ts(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,r){"horizontal"==r?Jr(e,t):Zr(e,t)},e),e.display.scrollbars.addClass&&s(e.display.wrapper,e.display.scrollbars.addClass)}function on(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Ls},mt(e.curOp)}function ln(e){bt(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;sn(e)})}function sn(e){for(var t=e.ops,r=0;r<t.length;r++)an(t[r]);for(var n=0;n<t.length;n++)un(t[n]);for(var i=0;i<t.length;i++)cn(t[i]);for(var o=0;o<t.length;o++)fn(t[o]);for(var l=0;l<t.length;l++)hn(t[l])}function an(e){var t=e.cm,r=t.display;kn(t),e.updateMaxLine&&we(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<r.viewFrom||e.scrollToPos.to.line>=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new ks(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function un(e){e.updatedDisplay=e.mustUpdate&&Nn(e.cm,e.update)}function cn(e){var t=e.cm,r=t.display;e.updatedDisplay&&Er(t),e.barMeasure=en(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=jt(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+Rt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Bt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function fn(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&Jr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==l();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r),(e.updatedDisplay||e.startHeight!=t.doc.height)&&tn(t,e.barMeasure),e.updatedDisplay&&Hn(t,e.barMeasure),e.selectionChanged&&Wr(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),r&&Dr(e.cm)}function hn(e){var t=e.cm,r=t.display,n=t.doc;if(e.updatedDisplay&&On(t,e.update),null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null),null!=e.scrollTop&&Qr(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&Jr(t,e.scrollLeft,!0,!0),e.scrollToPos){Gr(t,Ur(t,U(n,e.scrollToPos.from),U(n,e.scrollToPos.to),e.scrollToPos.margin))}var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var l=0;l<i.length;++l)i[l].lines.length||Te(i[l],"hide");if(o)for(var s=0;s<o.length;++s)o[s].lines.length&&Te(o[s],"unhide");r.wrapper.offsetHeight&&(n.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Te(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function dn(e,t){if(e.curOp)return t();on(e);try{return t()}finally{ln(e)}}function pn(e,t){return function(){if(e.curOp)return t.apply(e,arguments);on(e);try{return t.apply(e,arguments)}finally{ln(e)}}}function gn(e){return function(){if(this.curOp)return e.apply(this,arguments);on(this);try{return e.apply(this,arguments)}finally{ln(this)}}}function vn(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);on(t);try{return e.apply(this,arguments)}finally{ln(t)}}}function mn(e,t,r,n){null==t&&(t=e.doc.first),null==r&&(r=e.doc.first+e.doc.size),n||(n=0);var i=e.display;if(n&&r<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Zl&&pe(e.doc,t)<i.viewTo&&bn(e);else if(r<=i.viewFrom)Zl&&ge(e.doc,r+n)>i.viewFrom?bn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)bn(e);else if(t<=i.viewFrom){var o=wn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):bn(e)}else if(r>=i.viewTo){var l=wn(e,t,t,-1);l?(i.view=i.view.slice(0,l.index),i.viewTo=l.lineN):bn(e)}else{var s=wn(e,t,t,-1),a=wn(e,r,r+n,1);s&&a?(i.view=i.view.slice(0,s.index).concat(vt(e,s.lineN,a.lineN)).concat(i.view.slice(a.index)),i.viewTo+=n):bn(e)}var u=i.externalMeasured;u&&(r<u.lineN?u.lineN+=n:t<u.lineN+u.size&&(i.externalMeasured=null))}function yn(e,t,r){e.curOp.viewChanged=!0;var n=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(n.externalMeasured=null),!(t<n.viewFrom||t>=n.viewTo)){var o=n.view[kr(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);-1==h(l,r)&&l.push(r)}}}function bn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function wn(e,t,r,n){var i,o=kr(e,t),l=e.display.view;if(!Zl||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=e.display.viewFrom,a=0;a<o;a++)s+=l[a].size;if(s!=t){if(n>0){if(o==l.length-1)return null;i=s+l[o].size-t,o++}else i=s-t;t+=i,r+=i}for(;pe(e.doc,r)!=r;){if(o==(n<0?0:l.length-1))return null;r+=n*l[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function xn(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=vt(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=vt(e,t,n.viewFrom).concat(n.view):n.viewFrom<t&&(n.view=n.view.slice(kr(e,t))),n.viewFrom=t,n.viewTo<r?n.view=n.view.concat(vt(e,n.viewTo,r)):n.viewTo>r&&(n.view=n.view.slice(0,kr(e,r)))),n.viewTo=r}function Cn(e){for(var t=e.display.view,r=0,n=0;n<t.length;n++){var i=t[n];i.hidden||i.node&&!i.changes||++r}return r}function Sn(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,u(Ln,e))}function Ln(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=$e(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(n.line>=e.display.viewFrom){var l=o.styles,s=o.text.length>e.options.maxHighlightLength?je(t.mode,n.state):null,a=_e(e,o,n,!0);s&&(n.state=s),o.styles=a.styles;var u=o.styleClasses,c=a.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var f=!l||l.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),h=0;!f&&h<l.length;++h)f=l[h]!=o.styles[h];f&&i.push(n.line),o.stateAfter=n.save(),n.nextLine()}else o.text.length<=e.options.maxHighlightLength&&Ze(e,o.text,n),o.stateAfter=n.line%5==0?n.save():null,n.nextLine();if(+new Date>r)return Sn(e,e.options.workDelay),!0}),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&dn(e,function(){for(var t=0;t<i.length;t++)yn(e,i[t],"text")})}}function kn(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=Rt(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=Rt(e)+"px",t.scrollbarsClipped=!0)}function Tn(e){if(e.hasFocus())return null;var t=l();if(!t||!o(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&o(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}function Mn(e){if(e&&e.activeElt&&e.activeElt!=l()&&(e.activeElt.focus(),e.anchorNode&&o(document.body,e.anchorNode)&&o(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}function Nn(e,r){var n=e.display,i=e.doc;if(r.editorIsHidden)return bn(e),!1;if(!r.force&&r.visible.from>=n.viewFrom&&r.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Cn(e))return!1;Br(e)&&(bn(e),r.dims=wr(e));var o=i.first+i.size,l=Math.max(r.visible.from-e.options.viewportMargin,i.first),s=Math.min(o,r.visible.to+e.options.viewportMargin);n.viewFrom<l&&l-n.viewFrom<20&&(l=Math.max(i.first,n.viewFrom)),n.viewTo>s&&n.viewTo-s<20&&(s=Math.min(o,n.viewTo)),Zl&&(l=pe(e.doc,l),s=ge(e.doc,s));var a=l!=n.viewFrom||s!=n.viewTo||n.lastWrapHeight!=r.wrapperHeight||n.lastWrapWidth!=r.wrapperWidth;xn(e,l,s),n.viewOffset=ye(M(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var u=Cn(e);if(!a&&0==u&&!r.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=Tn(e);return u>4&&(n.lineDiv.style.display="none"),Wn(e,n.updateLineNumbers,r.dims),u>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Mn(c),t(n.cursorDiv),t(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,a&&(n.lastWrapHeight=r.wrapperHeight,n.lastWrapWidth=r.wrapperWidth,Sn(e,400)),n.updateLineNumbers=null,!0}function On(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Bt(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+zt(e.display)-Gt(e),r.top)}),t.visible=Ir(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&Nn(e,t);n=!1){Er(e);var i=en(e);Tr(e),tn(e,i),Hn(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function An(e,t){var r=new ks(e,t);if(Nn(e,r)){Er(e),On(e,r);var n=en(e);Tr(e),tn(e,n),Hn(e,n),r.finish()}}function Wn(e,r,n){function i(t){var r=t.nextSibling;return wl&&Al&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}for(var o=e.display,l=e.options.lineNumbers,s=o.lineDiv,a=s.firstChild,u=o.view,c=o.viewFrom,f=0;f<u.length;f++){var d=u[f];if(d.hidden);else if(d.node&&d.node.parentNode==s){for(;a!=d.node;)a=i(a);var p=l&&null!=r&&r<=c&&d.lineNumber;d.changes&&(h(d.changes,"gutter")>-1&&(p=!1),Ct(e,d,c,n)),p&&(t(d.lineNumber),d.lineNumber.appendChild(document.createTextNode(F(e.options,c)))),a=d.node.nextSibling}else{var g=At(e,d,c,n);s.insertBefore(g,a)}c+=d.size}for(;a;)a=i(a)}function Dn(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Hn(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Rt(e)+"px"}function Fn(e){var r=e.display.gutters,i=e.options.gutters;t(r);for(var o=0;o<i.length;++o){var l=i[o],s=r.appendChild(n("div",null,"CodeMirror-gutter "+l));"CodeMirror-linenumbers"==l&&(e.display.lineGutter=s,s.style.width=(e.display.lineNumWidth||1)+"px")}r.style.display=o?"":"none",Dn(e)}function Pn(e){var t=h(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function En(e){var t=e.wheelDeltaX,r=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==r&&e.detail&&e.axis==e.VERTICAL_AXIS?r=e.detail:null==r&&(r=e.wheelDelta),{x:t,y:r}}function zn(e){var t=En(e);return t.x*=Ms,t.y*=Ms,t}function In(e,t){var r=En(t),n=r.x,i=r.y,o=e.display,l=o.scroller,s=l.scrollWidth>l.clientWidth,a=l.scrollHeight>l.clientHeight;if(n&&s||i&&a){if(i&&Al&&wl)e:for(var u=t.target,c=o.view;u!=l;u=u.parentNode)for(var f=0;f<c.length;f++)if(c[f].node==u){e.display.currentWheelTarget=u;break e}if(n&&!pl&&!Sl&&null!=Ms)return i&&a&&Zr(e,Math.max(0,l.scrollTop+i*Ms)),Jr(e,Math.max(0,l.scrollLeft+n*Ms)),(!i||i&&a)&&We(t),void(o.wheelStartX=null);if(i&&null!=Ms){var h=i*Ms,d=e.doc.scrollTop,p=d+o.wrapper.clientHeight;h<0?d=Math.max(0,d+h-50):p=Math.min(e.doc.height,p+h+50),An(e,{top:d,bottom:p})}Ts<20&&(null==o.wheelStartX?(o.wheelStartX=l.scrollLeft,o.wheelStartY=l.scrollTop,o.wheelDX=n,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=l.scrollLeft-o.wheelStartX,t=l.scrollTop-o.wheelStartY,r=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,r&&(Ms=(Ms*Ts+r)/(Ts+1),++Ts)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}function Rn(e,t){var r=e[t];e.sort(function(e,t){return E(e.from(),t.from())}),t=h(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(E(o.to(),i.from())>=0){var l=B(o.from(),i.from()),s=R(o.to(),i.to()),a=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new Os(a?s:l,a?l:s))}}return new Ns(e,t)}function Bn(e,t){return new Ns([new Os(e,t||e)],0)}function Gn(e){return e.text?P(e.from.line+e.text.length-1,g(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Un(e,t){if(E(e,t.from)<0)return e;if(E(e,t.to)<=0)return Gn(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=Gn(t).ch-t.to.ch),P(r,n)}function Vn(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new Os(Un(i.anchor,t),Un(i.head,t)))}return Rn(r,e.sel.primIndex)}function Kn(e,t,r){return e.line==t.line?P(r.line,e.ch-t.ch+r.ch):P(r.line+(e.line-t.line),e.ch)}function jn(e,t,r){for(var n=[],i=P(e.first,0),o=i,l=0;l<t.length;l++){var s=t[l],a=Kn(s.from,i,o),u=Kn(Gn(s),i,o);if(i=s.to,o=u,"around"==r){var c=e.sel.ranges[l],f=E(c.head,c.anchor)<0;n[l]=new Os(f?u:a,f?a:u)}else n[l]=new Os(a,a)}return new Ns(n,e.sel.primIndex)}function Xn(e){e.doc.mode=Ve(e.options,e.doc.modeOption),Yn(e)}function Yn(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,Sn(e,100),
+e.state.modeGen++,e.curOp&&mn(e)}function _n(e,t){return 0==t.from.ch&&0==t.to.ch&&""==g(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function qn(e,t,r,n){function i(e){return r?r[e]:null}function o(e,r,i){ot(e,r,i,n),wt(e,"change",e,t)}function l(e,t){for(var r=[],o=e;o<t;++o)r.push(new ps(u[o],i(o),n));return r}var s=t.from,a=t.to,u=t.text,c=M(e,s.line),f=M(e,a.line),h=g(u),d=i(u.length-1),p=a.line-s.line;if(t.full)e.insert(0,l(0,u.length)),e.remove(u.length,e.size-u.length);else if(_n(e,t)){var v=l(0,u.length-1);o(f,f.text,d),p&&e.remove(s.line,p),v.length&&e.insert(s.line,v)}else if(c==f)if(1==u.length)o(c,c.text.slice(0,s.ch)+h+c.text.slice(a.ch),d);else{var m=l(1,u.length-1);m.push(new ps(h+c.text.slice(a.ch),d,n)),o(c,c.text.slice(0,s.ch)+u[0],i(0)),e.insert(s.line+1,m)}else if(1==u.length)o(c,c.text.slice(0,s.ch)+u[0]+f.text.slice(a.ch),i(0)),e.remove(s.line+1,p);else{o(c,c.text.slice(0,s.ch)+u[0],i(0)),o(f,h+f.text.slice(a.ch),d);var y=l(1,u.length-1);p>1&&e.remove(s.line+1,p-1),e.insert(s.line+1,y)}wt(e,"change",e,t)}function $n(e,t,r){function n(e,i,o){if(e.linked)for(var l=0;l<e.linked.length;++l){var s=e.linked[l];if(s.doc!=i){var a=o&&s.sharedHist;r&&!a||(t(s.doc,a),n(s.doc,e,a))}}}n(e,null,!0)}function Zn(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,Sr(e),Xn(e),Qn(e),e.options.lineWrapping||we(e),e.options.mode=t.modeOption,mn(e)}function Qn(e){("rtl"==e.doc.direction?s:zl)(e.display.lineDiv,"CodeMirror-rtl")}function Jn(e){dn(e,function(){Qn(e),mn(e)})}function ei(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function ti(e,t){var r={from:I(t.from),to:Gn(t),text:N(e,t.from,t.to)};return ai(e,r,t.from.line,t.to.line+1),$n(e,function(e){return ai(e,r,t.from.line,t.to.line+1)},!0),r}function ri(e){for(;e.length;){if(!g(e).ranges)break;e.pop()}}function ni(e,t){return t?(ri(e.done),g(e.done)):e.done.length&&!g(e.done).ranges?g(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),g(e.done)):void 0}function ii(e,t,r,n){var i=e.history;i.undone.length=0;var o,l,s=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>s-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=ni(i,i.lastOp==n)))l=g(o.changes),0==E(t.from,t.to)&&0==E(t.from,l.to)?l.to=Gn(t):o.changes.push(ti(e,t));else{var a=g(i.done);for(a&&a.ranges||si(e.sel,i.done),o={changes:[ti(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,l||Te(e,"historyAdded")}function oi(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function li(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||oi(e,o,g(i.done),t))?i.done[i.done.length-1]=t:si(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&ri(i.undone)}function si(e,t){var r=g(t);r&&r.ranges&&r.equals(e)||t.push(e)}function ai(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o})}function ui(e){if(!e)return null;for(var t,r=0;r<e.length;++r)e[r].marker.explicitlyCleared?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t?t.length?t:null:e}function ci(e,t){var r=t["spans_"+e.id];if(!r)return null;for(var n=[],i=0;i<t.text.length;++i)n.push(ui(r[i]));return n}function fi(e,t){var r=ci(e,t),n=J(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],l=n[i];if(o&&l)e:for(var s=0;s<l.length;++s){for(var a=l[s],u=0;u<o.length;++u)if(o[u].marker==a.marker)continue e;o.push(a)}else l&&(r[i]=l)}return r}function hi(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?Ns.prototype.deepCopy.call(o):o);else{var l=o.changes,s=[];n.push({changes:s});for(var a=0;a<l.length;++a){var u=l[a],c=void 0;if(s.push({from:u.from,to:u.to,text:u.text}),t)for(var f in u)(c=f.match(/^spans_(\d+)$/))&&h(t,Number(c[1]))>-1&&(g(s)[f]=u[f],delete u[f])}}}return n}function di(e,t,r,n){if(n){var i=e.anchor;if(r){var o=E(t,i)<0;o!=E(r,i)<0?(i=t,t=r):o!=E(t,r)<0&&(t=r)}return new Os(i,t)}return new Os(r||t,t)}function pi(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),wi(e,new Ns([di(e.sel.primary(),t,r,i)],0),n)}function gi(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)n[o]=di(e.sel.ranges[o],t[o],null,i);wi(e,Rn(n,e.sel.primIndex),r)}function vi(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,wi(e,Rn(i,e.sel.primIndex),n)}function mi(e,t,r,n){wi(e,Bn(t,r),n)}function yi(e,t,r){var n={ranges:t.ranges,update:function(t){var r=this;this.ranges=[];for(var n=0;n<t.length;n++)r.ranges[n]=new Os(U(e,t[n].anchor),U(e,t[n].head))},origin:r&&r.origin};return Te(e,"beforeSelectionChange",e,n),e.cm&&Te(e.cm,"beforeSelectionChange",e.cm,n),n.ranges!=t.ranges?Rn(n.ranges,n.ranges.length-1):t}function bi(e,t,r){var n=e.history.done,i=g(n);i&&i.ranges?(n[n.length-1]=t,xi(e,t,r)):wi(e,t,r)}function wi(e,t,r){xi(e,t,r),li(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function xi(e,t,r){(Oe(e,"beforeSelectionChange")||e.cm&&Oe(e.cm,"beforeSelectionChange"))&&(t=yi(e,t,r)),Ci(e,Li(e,t,r&&r.bias||(E(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||Xr(e.cm)}function Ci(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Ne(e.cm)),wt(e,"cursorActivity",e))}function Si(e){Ci(e,Li(e,e.sel,null,!1))}function Li(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var l=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],a=Ti(e,l.anchor,s&&s.anchor,r,n),u=Ti(e,l.head,s&&s.head,r,n);(i||a!=l.anchor||u!=l.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new Os(a,u))}return i?Rn(i,t.primIndex):t}function ki(e,t,r,n,i){var o=M(e,t.line);if(o.markedSpans)for(var l=0;l<o.markedSpans.length;++l){var s=o.markedSpans[l],a=s.marker;if((null==s.from||(a.inclusiveLeft?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(a.inclusiveRight?s.to>=t.ch:s.to>t.ch))){if(i&&(Te(a,"beforeCursorEnter"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!a.atomic)continue;if(r){var u=a.find(n<0?1:-1),c=void 0;if((n<0?a.inclusiveRight:a.inclusiveLeft)&&(u=Mi(e,u,-n,u&&u.line==t.line?o:null)),u&&u.line==t.line&&(c=E(u,r))&&(n<0?c<0:c>0))return ki(e,u,t,n,i)}var f=a.find(n<0?-1:1);return(n<0?a.inclusiveLeft:a.inclusiveRight)&&(f=Mi(e,f,n,f.line==t.line?o:null)),f?ki(e,f,t,n,i):null}}return t}function Ti(e,t,r,n,i){var o=n||1,l=ki(e,t,r,o,i)||!i&&ki(e,t,r,o,!0)||ki(e,t,r,-o,i)||!i&&ki(e,t,r,-o,!0);return l||(e.cantEdit=!0,P(e.first,0))}function Mi(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?U(e,P(t.line-1)):null:r>0&&t.ch==(n||M(e,t.line)).text.length?t.line<e.first+e.size-1?P(t.line+1,0):null:new P(t.line,t.ch+r)}function Ni(e){e.setSelection(P(e.firstLine(),0),P(e.lastLine()),Kl)}function Oi(e,t,r){var n={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return n.canceled=!0}};return r&&(n.update=function(t,r,i,o){t&&(n.from=U(e,t)),r&&(n.to=U(e,r)),i&&(n.text=i),void 0!==o&&(n.origin=o)}),Te(e,"beforeChange",e,n),e.cm&&Te(e.cm,"beforeChange",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function Ai(e,t,r){if(e.cm){if(!e.cm.curOp)return pn(e.cm,Ai)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(Oe(e,"beforeChange")||e.cm&&Oe(e.cm,"beforeChange"))||(t=Oi(e,t,!0))){var n=$l&&!r&&te(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)Wi(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else Wi(e,t)}}function Wi(e,t){if(1!=t.text.length||""!=t.text[0]||0!=E(t.from,t.to)){var r=Vn(e,t);ii(e,t,r,e.cm?e.cm.curOp.id:NaN),Fi(e,t,r,J(e,t));var n=[];$n(e,function(e,r){r||-1!=h(n,e.history)||(Ri(e.history,t),n.push(e.history)),Fi(e,t,null,J(e,t))})}}function Di(e,t,r){if(!e.cm||!e.cm.state.suppressEdits||r){for(var n,i=e.history,o=e.sel,l="undo"==t?i.done:i.undone,s="undo"==t?i.undone:i.done,a=0;a<l.length&&(n=l[a],r?!n.ranges||n.equals(e.sel):n.ranges);a++);if(a!=l.length){for(i.lastOrigin=i.lastSelOrigin=null;n=l.pop(),n.ranges;){if(si(n,s),r&&!n.equals(e.sel))return void wi(e,n,{clearRedo:!1});o=n}var u=[];si(o,s),s.push({changes:u,generation:i.generation}),i.generation=n.generation||++i.maxGeneration;for(var c=Oe(e,"beforeChange")||e.cm&&Oe(e.cm,"beforeChange"),f=n.changes.length-1;f>=0;--f){var d=function(r){var i=n.changes[r];if(i.origin=t,c&&!Oi(e,i,!1))return l.length=0,{};u.push(ti(e,i));var o=r?Vn(e,i):g(l);Fi(e,i,o,fi(e,i)),!r&&e.cm&&e.cm.scrollIntoView({from:i.from,to:Gn(i)});var s=[];$n(e,function(e,t){t||-1!=h(s,e.history)||(Ri(e.history,i),s.push(e.history)),Fi(e,i,null,fi(e,i))})}(f);if(d)return d.v}}}}function Hi(e,t){if(0!=t&&(e.first+=t,e.sel=new Ns(v(e.sel.ranges,function(e){return new Os(P(e.anchor.line+t,e.anchor.ch),P(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){mn(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)yn(e.cm,n,"gutter")}}function Fi(e,t,r,n){if(e.cm&&!e.cm.curOp)return pn(e.cm,Fi)(e,t,r,n);if(t.to.line<e.first)return void Hi(e,t.text.length-1-(t.to.line-t.from.line));if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);Hi(e,i),t={from:P(e.first,0),to:P(t.to.line+i,t.to.ch),text:[g(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:P(o,M(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=N(e,t.from,t.to),r||(r=Vn(e,t)),e.cm?Pi(e.cm,t,n):qn(e,t,n),xi(e,r,Kl)}}function Pi(e,t,r){var n=e.doc,i=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=W(fe(M(n,o.line))),n.iter(a,l.line+1,function(e){if(e==i.maxLine)return s=!0,!0})),n.sel.contains(t.from,t.to)>-1&&Ne(e),qn(n,t,r,Cr(e)),e.options.lineWrapping||(n.iter(a,o.line+t.text.length,function(e){var t=be(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),it(n,o.line),Sn(e,400);var u=t.text.length-(l.line-o.line)-1;t.full?mn(e):o.line!=l.line||1!=t.text.length||_n(e.doc,t)?mn(e,o.line,l.line+1,u):yn(e,o.line,"text");var c=Oe(e,"changes"),f=Oe(e,"change");if(f||c){var h={from:o,to:l,text:t.text,removed:t.removed,origin:t.origin};f&&wt(e,"change",e,h),c&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(h)}e.display.selForContextMenu=null}function Ei(e,t,r,n,i){if(n||(n=r),E(n,r)<0){var o;o=[n,r],r=o[0],n=o[1]}"string"==typeof t&&(t=e.splitLines(t)),Ai(e,{from:r,to:n,text:t,origin:i})}function zi(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function Ii(e,t,r,n){for(var i=0;i<e.length;++i){var o=e[i],l=!0;if(o.ranges){o.copied||(o=e[i]=o.deepCopy(),o.copied=!0);for(var s=0;s<o.ranges.length;s++)zi(o.ranges[s].anchor,t,r,n),zi(o.ranges[s].head,t,r,n)}else{for(var a=0;a<o.changes.length;++a){var u=o.changes[a];if(r<u.from.line)u.from=P(u.from.line+n,u.from.ch),u.to=P(u.to.line+n,u.to.ch);else if(t<=u.to.line){l=!1;break}}l||(e.splice(0,i+1),i=0)}}}function Ri(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;Ii(e.done,r,n,i),Ii(e.undone,r,n,i)}function Bi(e,t,r,n){var i=t,o=t;return"number"==typeof t?o=M(e,G(e,t)):i=W(t),null==i?null:(n(o,i)&&e.cm&&yn(e.cm,i,r),o)}function Gi(e){var t=this;this.lines=e,this.parent=null;for(var r=0,n=0;n<e.length;++n)e[n].parent=t,r+=e[n].height;this.height=r}function Ui(e){var t=this;this.children=e;for(var r=0,n=0,i=0;i<e.length;++i){var o=e[i];r+=o.chunkSize(),n+=o.height,o.parent=t}this.size=r,this.height=n,this.parent=null}function Vi(e,t,r){ye(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&jr(e,r)}function Ki(e,t,r,n){var i=new As(e,r,n),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),Bi(e,t,"widget",function(t){var r=t.widgets||(t.widgets=[]);if(null==i.insertAt?r.push(i):r.splice(Math.min(r.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!ve(e,t)){var n=ye(t)<e.scrollTop;A(t,t.height+Ft(i)),n&&jr(o,i.height),o.curOp.forceUpdate=!0}return!0}),wt(o,"lineWidgetAdded",o,i,"number"==typeof t?t:W(t)),i}function ji(e,t,r,n,o){if(n&&n.shared)return Xi(e,t,r,n,o);if(e.cm&&!e.cm.curOp)return pn(e.cm,ji)(e,t,r,n,o);var l=new Ds(e,o),s=E(t,r);if(n&&c(n,l,!1),s>0||0==s&&!1!==l.clearWhenEmpty)return l;if(l.replacedWith&&(l.collapsed=!0,l.widgetNode=i("span",[l.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||l.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(l.widgetNode.insertLeft=!0)),l.collapsed){if(ce(e,t.line,t,r,l)||t.line!=r.line&&ce(e,r.line,t,r,l))throw new Error("Inserting collapsed marker partially overlapping an existing one");X()}l.addToHistory&&ii(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var a,u=t.line,f=e.cm;if(e.iter(u,r.line+1,function(e){f&&l.collapsed&&!f.options.lineWrapping&&fe(e)==f.display.maxLine&&(a=!0),l.collapsed&&u!=t.line&&A(e,0),$(e,new Y(l,u==t.line?t.ch:null,u==r.line?r.ch:null)),++u}),l.collapsed&&e.iter(t.line,r.line+1,function(t){ve(e,t)&&A(t,0)}),l.clearOnEnter&&ts(l,"beforeCursorEnter",function(){return l.clear()}),l.readOnly&&(j(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),l.collapsed&&(l.id=++Ws,l.atomic=!0),f){if(a&&(f.curOp.updateMaxLine=!0),l.collapsed)mn(f,t.line,r.line+1);else if(l.className||l.title||l.startStyle||l.endStyle||l.css)for(var h=t.line;h<=r.line;h++)yn(f,h,"text");l.atomic&&Si(f.doc),wt(f,"markerAdded",f,l)}return l}function Xi(e,t,r,n,i){n=c(n),n.shared=!1;var o=[ji(e,t,r,n,i)],l=o[0],s=n.widgetNode;return $n(e,function(e){s&&(n.widgetNode=s.cloneNode(!0)),o.push(ji(e,U(e,t),U(e,r),n,i));for(var a=0;a<e.linked.length;++a)if(e.linked[a].isParent)return;l=g(o)}),new Hs(o,l)}function Yi(e){return e.findMarks(P(e.first,0),e.clipPos(P(e.lastLine())),function(e){return e.parent})}function _i(e,t){for(var r=0;r<t.length;r++){var n=t[r],i=n.find(),o=e.clipPos(i.from),l=e.clipPos(i.to);if(E(o,l)){var s=ji(e,o,l,n.primary,n.primary.type);n.markers.push(s),s.parent=n}}}function qi(e){for(var t=0;t<e.length;t++)!function(t){var r=e[t],n=[r.primary.doc];$n(r.primary.doc,function(e){return n.push(e)});for(var i=0;i<r.markers.length;i++){var o=r.markers[i];-1==h(n,o.doc)&&(o.parent=null,r.markers.splice(i--,1))}}(t)}function $i(e){var t=this;if(Ji(t),!Me(t,e)&&!Pt(t.display,e)){We(e),yl&&(Es=+new Date);var r=Lr(t,e,!0),n=e.dataTransfer.files;if(r&&!t.isReadOnly())if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),l=0,s=0;s<i;++s)!function(e,n){if(!t.options.allowDropFileTypes||-1!=h(t.options.allowDropFileTypes,e.type)){var s=new FileReader;s.onload=pn(t,function(){var e=s.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[n]=e,++l==i){r=U(t.doc,r);var a={from:r,to:r,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Ai(t.doc,a),bi(t.doc,Bn(r,Gn(a)))}}),s.readAsText(e)}}(n[s],s);else{if(t.state.draggingText&&t.doc.sel.contains(r)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var a=e.dataTransfer.getData("Text");if(a){var u;if(t.state.draggingText&&!t.state.draggingText.copy&&(u=t.listSelections()),xi(t.doc,Bn(r,r)),u)for(var c=0;c<u.length;++c)Ei(t.doc,"",u[c].anchor,u[c].head,"drag");t.replaceSelection(a,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Zi(e,t){if(yl&&(!e.state.draggingText||+new Date-Es<100))return void Fe(t);if(!Me(e,t)&&!Pt(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!Ll)){var r=n("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",Sl&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),Sl&&r.parentNode.removeChild(r)}}function Qi(e,t){var i=Lr(e,t);if(i){var o=document.createDocumentFragment();Nr(e,i,o),e.display.dragCursor||(e.display.dragCursor=n("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),r(e.display.dragCursor,o)}}function Ji(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function eo(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}function to(){zs||(ro(),zs=!0)}function ro(){var e;ts(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,eo(no)},100))}),ts(window,"blur",function(){return eo(Pr)})}function no(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function io(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var r,n,i,o,l=0;l<t.length-1;l++){var s=t[l];if(/^(cmd|meta|m)$/i.test(s))o=!0;else if(/^a(lt)?$/i.test(s))r=!0;else if(/^(c|ctrl|control)$/i.test(s))n=!0;else{if(!/^s(hift)?$/i.test(s))throw new Error("Unrecognized modifier name: "+s);i=!0}}return r&&(e="Alt-"+e),n&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function oo(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if("..."==n){delete e[r];continue}for(var i=v(r.split(" "),io),o=0;o<i.length;o++){var l=void 0,s=void 0;o==i.length-1?(s=i.join(" "),l=n):(s=i.slice(0,o+1).join(" "),l="...");var a=t[s];if(a){if(a!=l)throw new Error("Inconsistent bindings for "+s)}else t[s]=l}delete e[r]}for(var u in t)e[u]=t[u];return e}function lo(e,t,r,n){t=co(t);var i=t.call?t.call(e,n):t[e];if(!1===i)return"nothing";if("..."===i)return"multi";if(null!=i&&r(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return lo(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var l=lo(e,t.fallthrough[o],r,n);if(l)return l}}}function so(e){var t="string"==typeof e?e:Is[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function ao(e,t,r){var n=e;return t.altKey&&"Alt"!=n&&(e="Alt-"+e),(Pl?t.metaKey:t.ctrlKey)&&"Ctrl"!=n&&(e="Ctrl-"+e),(Pl?t.ctrlKey:t.metaKey)&&"Cmd"!=n&&(e="Cmd-"+e),!r&&t.shiftKey&&"Shift"!=n&&(e="Shift-"+e),e}function uo(e,t){if(Sl&&34==e.keyCode&&e.char)return!1;var r=Is[e.keyCode];return null!=r&&!e.altGraphKey&&ao(r,e,t)}function co(e){return"string"==typeof e?Us[e]:e}function fo(e,t){for(var r=e.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=t(r[i]);n.length&&E(o.from,g(n).to)<=0;){var l=n.pop();if(E(l.from,o.from)<0){o.from=l.from;break}}n.push(o)}dn(e,function(){for(var t=n.length-1;t>=0;t--)Ei(e.doc,"",n[t].from,n[t].to,"+delete");Xr(e)})}function ho(e,t,r){var n=L(e.text,t+r,r);return n<0||n>e.text.length?null:n}function po(e,t,r){var n=ho(e,t.ch,r);return null==n?null:new P(t.line,n,r<0?"after":"before")}function go(e,t,r,n,i){if(e){var o=Se(r,t.doc.direction);if(o){var l,s=i<0?g(o):o[0],a=i<0==(1==s.level),u=a?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var c=Yt(t,r);l=i<0?r.text.length-1:0;var f=_t(t,c,l).top;l=k(function(e){return _t(t,c,e).top==f},i<0==(1==s.level)?s.from:s.to-1,l),"before"==u&&(l=ho(r,l,1))}else l=i<0?s.to:s.from;return new P(n,l,u)}}return new P(n,i<0?r.text.length:0,i<0?"before":"after")}function vo(e,t,r,n){var i=Se(t,e.doc.direction);if(!i)return po(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=Ce(i,r.ch,r.sticky),l=i[o];if("ltr"==e.doc.direction&&l.level%2==0&&(n>0?l.to>r.ch:l.from<r.ch))return po(t,r,n);var s,a=function(e,r){return ho(t,e instanceof P?e.ch:e,r)},u=function(r){return e.options.lineWrapping?(s=s||Yt(e,t),dr(e,t,s,r)):{begin:0,end:t.text.length}},c=u("before"==r.sticky?a(r,-1):r.ch);if("rtl"==e.doc.direction||1==l.level){var f=1==l.level==n<0,h=a(r,f?1:-1);if(null!=h&&(f?h<=l.to&&h<=c.end:h>=l.from&&h>=c.begin)){var d=f?"before":"after";return new P(r.line,h,d)}}var p=function(e,t,n){for(var o=function(e,t){return t?new P(r.line,a(e,1),"before"):new P(r.line,e,"after")};e>=0&&e<i.length;e+=t){var l=i[e],s=t>0==(1!=l.level),u=s?n.begin:a(n.end,-1);if(l.from<=u&&u<l.to)return o(u,s);if(u=s?l.from:a(l.to,-1),n.begin<=u&&u<n.end)return o(u,s)}},g=p(o+n,n,c);if(g)return g;var v=n>0?c.end:a(c.begin,-1);return null==v||n>0&&v==t.text.length||!(g=p(n>0?0:i.length-1,n,u(v)))?null:g}function mo(e,t){var r=M(e.doc,t),n=fe(r);return n!=r&&(t=W(n)),go(!0,e,n,t,1)}function yo(e,t){var r=M(e.doc,t),n=he(r);return n!=r&&(t=W(n)),go(!0,e,r,t,-1)}function bo(e,t){var r=mo(e,t.line),n=M(e.doc,r.line),i=Se(n,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,n.text.search(/\S/)),l=t.line==r.line&&t.ch<=o&&t.ch;return P(r.line,l?0:o,r.sticky)}return r}function wo(e,t,r){if("string"==typeof t&&!(t=Vs[t]))return!1;e.display.input.ensurePolled();var n=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r&&(e.display.shift=!1),i=t(e)!=Vl}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}function xo(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=lo(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&lo(t,e.options.extraKeys,r,e)||lo(t,e.options.keyMap,r,e)}function Co(e,t,r,n){var i=e.state.keySeq;if(i){if(so(t))return"handled";if(/\'$/.test(t)?e.state.keySeq=null:Ks.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),So(e,i+" "+t,r,n))return!0}return So(e,t,r,n)}function So(e,t,r,n){var i=xo(e,t,n);return"multi"==i&&(e.state.keySeq=t),"handled"==i&&wt(e,"keyHandled",e,t,r),"handled"!=i&&"multi"!=i||(We(r),Wr(e)),!!i}function Lo(e,t){var r=uo(t,!0);return!!r&&(t.shiftKey&&!e.state.keySeq?Co(e,"Shift-"+r,t,function(t){return wo(e,t,!0)})||Co(e,r,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return wo(e,t)}):Co(e,r,t,function(t){return wo(e,t)}))}function ko(e,t,r){return Co(e,"'"+r+"'",t,function(t){return wo(e,t,!0)})}function To(e){var t=this;if(t.curOp.focus=l(),!Me(t,e)){yl&&bl<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var n=Lo(t,e);Sl&&(js=n?r:null,!n&&88==r&&!os&&(Al?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=r||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||Mo(t)}}function Mo(e){function t(e){18!=e.keyCode&&e.altKey||(zl(r,"CodeMirror-crosshair"),ke(document,"keyup",t),ke(document,"mouseover",t))}var r=e.display.lineDiv;s(r,"CodeMirror-crosshair"),ts(document,"keyup",t),ts(document,"mouseover",t)}function No(e){16==e.keyCode&&(this.doc.sel.shift=!1),Me(this,e)}function Oo(e){var t=this;if(!(Pt(t.display,e)||Me(t,e)||e.ctrlKey&&!e.altKey||Al&&e.metaKey)){var r=e.keyCode,n=e.charCode;if(Sl&&r==js)return js=null,void We(e);if(!Sl||e.which&&!(e.which<10)||!Lo(t,e)){var i=String.fromCharCode(null==n?r:n);"\b"!=i&&(ko(t,e,i)||t.display.input.onKeyPress(e))}}}function Ao(e,t){var r=+new Date;return _s&&_s.compare(r,e,t)?(Ys=_s=null,"triple"):Ys&&Ys.compare(r,e,t)?(_s=new Xs(r,e,t),Ys=null,"double"):(Ys=new Xs(r,e,t),_s=null,"single")}function Wo(e){var t=this,r=t.display;if(!(Me(t,e)||r.activeTouch&&r.input.supportsTouch())){if(r.input.ensurePolled(),r.shift=e.shiftKey,Pt(r,e))return void(wl||(r.scroller.draggable=!1,setTimeout(function(){return r.scroller.draggable=!0},100)));if(!Bo(t,e)){var n=Lr(t,e),i=Ee(e),o=n?Ao(n,i):"single";window.focus(),1==i&&t.state.selectingText&&t.state.selectingText(e),n&&Do(t,i,n,o,e)||(1==i?n?Fo(t,n,o,e):Pe(e)==r.scroller&&We(e):2==i?(n&&pi(t.doc,n),setTimeout(function(){return r.input.focus()},20)):3==i&&(El?Go(t,e):Hr(t)))}}}function Do(e,t,r,n,i){var o="Click";return"double"==n?o="Double"+o:"triple"==n&&(o="Triple"+o),o=(1==t?"Left":2==t?"Middle":"Right")+o,Co(e,ao(o,i),i,function(t){if("string"==typeof t&&(t=Vs[t]),!t)return!1;var n=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n=t(e,r)!=Vl}finally{e.state.suppressEdits=!1}return n})}function Ho(e,t,r){var n=e.getOption("configureMouse"),i=n?n(e,t,r):{};if(null==i.unit){var o=Wl?r.shiftKey&&r.metaKey:r.altKey;i.unit=o?"rectangle":"single"==t?"char":"double"==t?"word":"line"}return(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||r.shiftKey),null==i.addNew&&(i.addNew=Al?r.metaKey:r.ctrlKey),null==i.moveOnDrag&&(i.moveOnDrag=!(Al?r.altKey:r.ctrlKey)),i}function Fo(e,t,r,n){yl?setTimeout(u(Dr,e),0):e.curOp.focus=l();var i,o=Ho(e,r,n),s=e.doc.sel;e.options.dragDrop&&rs&&!e.isReadOnly()&&"single"==r&&(i=s.contains(t))>-1&&(E((i=s.ranges[i]).from(),t)<0||t.xRel>0)&&(E(i.to(),t)>0||t.xRel<0)?Po(e,n,t,o):zo(e,n,t,o)}function Po(e,t,r,n){var i=e.display,o=!1,l=pn(e,function(t){wl&&(i.scroller.draggable=!1),e.state.draggingText=!1,ke(document,"mouseup",l),ke(document,"mousemove",s),ke(i.scroller,"dragstart",a),ke(i.scroller,"drop",l),o||(We(t),n.addNew||pi(e.doc,r,null,null,n.extend),wl||yl&&9==bl?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())}),s=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},a=function(){return o=!0};wl&&(i.scroller.draggable=!0),e.state.draggingText=l,l.copy=!n.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),ts(document,"mouseup",l),ts(document,"mousemove",s),ts(i.scroller,"dragstart",a),ts(i.scroller,"drop",l),Hr(e),setTimeout(function(){return i.input.focus()},20)}function Eo(e,t,r){if("char"==r)return new Os(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new Os(P(t.line,0),U(e.doc,P(t.line+1,0)));var n=r(e,t);return new Os(n.from,n.to)}function zo(e,t,r,n){function i(t){if(0!=E(m,t))if(m=t,"rectangle"==n.unit){for(var i=[],o=e.options.tabSize,l=f(M(u,r.line).text,r.ch,o),s=f(M(u,t.line).text,t.ch,o),a=Math.min(l,s),g=Math.max(l,s),v=Math.min(r.line,t.line),y=Math.min(e.lastLine(),Math.max(r.line,t.line));v<=y;v++){var b=M(u,v).text,w=d(b,a,o);a==g?i.push(new Os(P(v,w),P(v,w))):b.length>w&&i.push(new Os(P(v,w),P(v,d(b,g,o))))}i.length||i.push(new Os(r,r)),wi(u,Rn(p.ranges.slice(0,h).concat(i),h),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var x,C=c,S=Eo(e,t,n.unit),L=C.anchor;E(S.anchor,L)>0?(x=S.head,L=B(C.from(),S.anchor)):(x=S.anchor,L=R(C.to(),S.head));var k=p.ranges.slice(0);k[h]=Io(e,new Os(U(u,L),x)),wi(u,Rn(k,h),jl)}}function o(t){var r=++b,s=Lr(e,t,!0,"rectangle"==n.unit);if(s)if(0!=E(s,m)){e.curOp.focus=l(),i(s);var c=Ir(a,u);(s.line>=c.to||s.line<c.from)&&setTimeout(pn(e,function(){b==r&&o(t)}),150)}else{var f=t.clientY<y.top?-20:t.clientY>y.bottom?20:0;f&&setTimeout(pn(e,function(){b==r&&(a.scroller.scrollTop+=f,o(t))}),50)}}function s(t){e.state.selectingText=!1,b=1/0,We(t),a.input.focus(),ke(document,"mousemove",w),ke(document,"mouseup",x),u.history.lastSelOrigin=null}var a=e.display,u=e.doc;We(t);var c,h,p=u.sel,g=p.ranges;if(n.addNew&&!n.extend?(h=u.sel.contains(r),c=h>-1?g[h]:new Os(r,r)):(c=u.sel.primary(),h=u.sel.primIndex),"rectangle"==n.unit)n.addNew||(c=new Os(r,r)),r=Lr(e,t,!0,!0),h=-1;else{var v=Eo(e,r,n.unit);c=n.extend?di(c,v.anchor,v.head,n.extend):v}n.addNew?-1==h?(h=g.length,wi(u,Rn(g.concat([c]),h),{scroll:!1,origin:"*mouse"})):g.length>1&&g[h].empty()&&"char"==n.unit&&!n.extend?(wi(u,Rn(g.slice(0,h).concat(g.slice(h+1)),0),{scroll:!1,origin:"*mouse"}),p=u.sel):vi(u,h,c,jl):(h=0,wi(u,new Ns([c],0),jl),p=u.sel);var m=r,y=a.wrapper.getBoundingClientRect(),b=0,w=pn(e,function(e){Ee(e)?o(e):s(e)}),x=pn(e,s);e.state.selectingText=x,ts(document,"mousemove",w),ts(document,"mouseup",x)}function Io(e,t){var r=t.anchor,n=t.head,i=M(e.doc,r.line);if(0==E(r,n)&&r.sticky==n.sticky)return t;var o=Se(i);if(!o)return t;var l=Ce(o,r.ch,r.sticky),s=o[l];if(s.from!=r.ch&&s.to!=r.ch)return t;var a=l+(s.from==r.ch==(1!=s.level)?0:1);if(0==a||a==o.length)return t;var u;if(n.line!=r.line)u=(n.line-r.line)*("ltr"==e.doc.direction?1:-1)>0;else{var c=Ce(o,n.ch,n.sticky),f=c-l||(n.ch-r.ch)*(1==s.level?-1:1);u=c==a-1||c==a?f<0:f>0}var h=o[a+(u?-1:0)],d=u==(1==h.level),p=d?h.from:h.to,g=d?"after":"before";return r.ch==p&&r.sticky==g?t:new Os(new P(r.line,p,g),n)}function Ro(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&We(t);var l=e.display,s=l.lineDiv.getBoundingClientRect();if(o>s.bottom||!Oe(e,r))return He(t);o-=s.top-l.viewOffset;for(var a=0;a<e.options.gutters.length;++a){var u=l.gutters.childNodes[a];if(u&&u.getBoundingClientRect().right>=i){return Te(e,r,e,D(e.doc,o),e.options.gutters[a],t),He(t)}}}function Bo(e,t){return Ro(e,t,"gutterClick",!0)}function Go(e,t){Pt(e.display,t)||Uo(e,t)||Me(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function Uo(e,t){return!!Oe(e,"gutterContextMenu")&&Ro(e,t,"gutterContextMenu",!1)}function Vo(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),tr(e)}function Ko(e){Fn(e),mn(e),Rr(e)}function jo(e,t,r){if(!t!=!(r&&r!=qs)){var n=e.display.dragFunctions,i=t?ts:ke;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function Xo(e){e.options.lineWrapping?(s(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(zl(e.display.wrapper,"CodeMirror-wrap"),we(e)),Sr(e),mn(e),tr(e),setTimeout(function(){return tn(e)},100)}function Yo(e,t){var r=this;if(!(this instanceof Yo))return new Yo(e,t);this.options=t=t?c(t):{},c($s,t,!1),Pn(t);var n=t.value;"string"==typeof n&&(n=new Ps(n,t.mode,null,t.lineSeparator,t.direction)),this.doc=n;var i=new Yo.inputStyles[t.inputStyle](this),o=this.display=new T(e,n,i);o.wrapper.CodeMirror=this,Fn(this),Vo(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),nn(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new Rl,keySeq:null,specialChars:null},t.autofocus&&!Ol&&o.input.focus(),yl&&bl<11&&setTimeout(function(){return r.display.input.reset(!0)},20),_o(this),to(),on(this),this.curOp.forceUpdate=!0,Zn(this,n),t.autofocus&&!Ol||this.hasFocus()?setTimeout(u(Fr,this),20):Pr(this);for(var l in Zs)Zs.hasOwnProperty(l)&&Zs[l](r,t[l],qs);Br(this),t.finishInit&&t.finishInit(this);for(var s=0;s<Qs.length;++s)Qs[s](r);ln(this),wl&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering="auto")}function _o(e){function t(){i.activeTouch&&(o=setTimeout(function(){return i.activeTouch=null},1e3),l=i.activeTouch,l.end=+new Date)}function r(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function n(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}var i=e.display;ts(i.scroller,"mousedown",pn(e,Wo)),yl&&bl<11?ts(i.scroller,"dblclick",pn(e,function(t){if(!Me(e,t)){var r=Lr(e,t);if(r&&!Bo(e,t)&&!Pt(e.display,t)){We(t);var n=e.findWordAt(r);pi(e.doc,n.anchor,n.head)}}})):ts(i.scroller,"dblclick",function(t){return Me(e,t)||We(t)}),El||ts(i.scroller,"contextmenu",function(t){return Go(e,t)});var o,l={end:0};ts(i.scroller,"touchstart",function(t){if(!Me(e,t)&&!r(t)&&!Bo(e,t)){i.input.ensurePolled(),clearTimeout(o);var n=+new Date;i.activeTouch={start:n,moved:!1,prev:n-l.end<=300?l:null},1==t.touches.length&&(i.activeTouch.left=t.touches[0].pageX,i.activeTouch.top=t.touches[0].pageY)}}),ts(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),
+ts(i.scroller,"touchend",function(r){var o=i.activeTouch;if(o&&!Pt(i,r)&&null!=o.left&&!o.moved&&new Date-o.start<300){var l,s=e.coordsChar(i.activeTouch,"page");l=!o.prev||n(o,o.prev)?new Os(s,s):!o.prev.prev||n(o,o.prev.prev)?e.findWordAt(s):new Os(P(s.line,0),U(e.doc,P(s.line+1,0))),e.setSelection(l.anchor,l.head),e.focus(),We(r)}t()}),ts(i.scroller,"touchcancel",t),ts(i.scroller,"scroll",function(){i.scroller.clientHeight&&(Zr(e,i.scroller.scrollTop),Jr(e,i.scroller.scrollLeft,!0),Te(e,"scroll",e))}),ts(i.scroller,"mousewheel",function(t){return In(e,t)}),ts(i.scroller,"DOMMouseScroll",function(t){return In(e,t)}),ts(i.wrapper,"scroll",function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(t){Me(e,t)||Fe(t)},over:function(t){Me(e,t)||(Qi(e,t),Fe(t))},start:function(t){return Zi(e,t)},drop:pn(e,$i),leave:function(t){Me(e,t)||Ji(e)}};var s=i.input.getField();ts(s,"keyup",function(t){return No.call(e,t)}),ts(s,"keydown",pn(e,To)),ts(s,"keypress",pn(e,Oo)),ts(s,"focus",function(t){return Fr(e,t)}),ts(s,"blur",function(t){return Pr(e,t)})}function qo(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=$e(e,t).state:r="prev");var l=e.options.tabSize,s=M(o,t),a=f(s.text,null,l);s.stateAfter&&(s.stateAfter=null);var u,c=s.text.match(/^\s*/)[0];if(n||/\S/.test(s.text)){if("smart"==r&&((u=o.mode.indent(i,s.text.slice(c.length),s.text))==Vl||u>150)){if(!n)return;r="prev"}}else u=0,r="not";"prev"==r?u=t>o.first?f(M(o,t-1).text,null,l):0:"add"==r?u=a+e.options.indentUnit:"subtract"==r?u=a-e.options.indentUnit:"number"==typeof r&&(u=a+r),u=Math.max(0,u);var h="",d=0;if(e.options.indentWithTabs)for(var g=Math.floor(u/l);g;--g)d+=l,h+="\t";if(d<u&&(h+=p(u-d)),h!=c)return Ei(o,h,P(t,0),P(t,c.length),"+input"),s.stateAfter=null,!0;for(var v=0;v<o.sel.ranges.length;v++){var m=o.sel.ranges[v];if(m.head.line==t&&m.head.ch<c.length){var y=P(t,c.length);vi(o,v,new Os(y,y));break}}}function $o(e){Js=e}function Zo(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var l=e.state.pasteIncoming||"paste"==i,s=ns(t),a=null;if(l&&n.ranges.length>1)if(Js&&Js.text.join("\n")==t){if(n.ranges.length%Js.text.length==0){a=[];for(var u=0;u<Js.text.length;u++)a.push(o.splitLines(Js.text[u]))}}else s.length==n.ranges.length&&e.options.pasteLinesPerSelection&&(a=v(s,function(e){return[e]}));for(var c,f=n.ranges.length-1;f>=0;f--){var h=n.ranges[f],d=h.from(),p=h.to();h.empty()&&(r&&r>0?d=P(d.line,d.ch-r):e.state.overwrite&&!l?p=P(p.line,Math.min(M(o,p.line).text.length,p.ch+g(s).length)):Js&&Js.lineWise&&Js.text.join("\n")==t&&(d=p=P(d.line,0))),c=e.curOp.updateInput;var m={from:d,to:p,text:a?a[f%a.length]:s,origin:i||(l?"paste":e.state.cutIncoming?"cut":"+input")};Ai(e.doc,m),wt(e,"inputRead",e,m)}t&&!l&&Jo(e,t),Xr(e),e.curOp.updateInput=c,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Qo(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||dn(t,function(){return Zo(t,r,0,null,"paste")}),!0}function Jo(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(t.indexOf(o.electricChars.charAt(s))>-1){l=qo(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(M(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=qo(e,i.head.line,"smart"));l&&wt(e,"electricInput",e,i.head.line)}}}function el(e){for(var t=[],r=[],n=0;n<e.doc.sel.ranges.length;n++){var i=e.doc.sel.ranges[n].head.line,o={anchor:P(i,0),head:P(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function tl(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function rl(){var e=n("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=n("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return wl?e.style.width="1000px":e.setAttribute("wrap","off"),Ml&&(e.style.border="1px solid black"),tl(e),t}function nl(e,t,r,n,i){function o(){var n=t.line+r;return!(n<e.first||n>=e.first+e.size)&&(t=new P(n,t.ch,t.sticky),u=M(e,n))}function l(n){var l;if(null==(l=i?vo(e.cm,u,t,r):po(u,t,r))){if(n||!o())return!1;t=go(i,e.cm,u,t.line,r)}else t=l;return!0}var s=t,a=r,u=M(e,t.line);if("char"==n)l();else if("column"==n)l(!0);else if("word"==n||"group"==n)for(var c=null,f="group"==n,h=e.cm&&e.cm.getHelper(t,"wordChars"),d=!0;!(r<0)||l(!d);d=!1){var p=u.text.charAt(t.ch)||"\n",g=x(p,h)?"w":f&&"\n"==p?"n":!f||/\s/.test(p)?null:"p";if(!f||d||g||(g="s"),c&&c!=g){r<0&&(r=1,l(),t.sticky="after");break}if(g&&(c=g),r>0&&!l(!d))break}var v=Ti(e,t,s,a,!0);return z(s,v)&&(v.hitSide=!0),v}function il(e,t,r,n){var i,o=e.doc,l=t.left;if("page"==n){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),a=Math.max(s-.5*yr(e.display),3);i=(r>0?t.bottom:t.top)+r*a}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(var u;u=fr(e,l,i),u.outside;){if(r<0?i<=0:i>=o.height){u.hitSide=!0;break}i+=5*r}return u}function ol(e,t){var r=Xt(e,t.line);if(!r||r.hidden)return null;var n=M(e.doc,t.line),i=Vt(r,n,t.line),o=Se(n,e.doc.direction),l="left";if(o){l=Ce(o,t.ch)%2?"right":"left"}var s=qt(i.map,t.ch,l);return s.offset="right"==s.collapse?s.end:s.start,s}function ll(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function sl(e,t){return t&&(e.bad=!0),e}function al(e,t,r,n,i){function o(e){return function(t){return t.id==e}}function l(){c&&(u+=f,c=!1)}function s(e){e&&(l(),u+=e)}function a(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(null!=r)return void s(r||t.textContent.replace(/\u200b/g,""));var u,h=t.getAttribute("cm-marker");if(h){var d=e.findMarks(P(n,0),P(i+1,0),o(+h));return void(d.length&&(u=d[0].find(0))&&s(N(e.doc,u.from,u.to).join(f)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(t.nodeName);p&&l();for(var g=0;g<t.childNodes.length;g++)a(t.childNodes[g]);p&&(c=!0)}else 3==t.nodeType&&s(t.nodeValue)}for(var u="",c=!1,f=e.doc.lineSeparator();a(t),t!=r;)t=t.nextSibling;return u}function ul(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return sl(e.clipPos(P(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==n)return cl(o,t,r)}}function cl(e,t,r){function n(t,r,n){for(var i=-1;i<(f?f.length:0);i++)for(var o=i<0?c.map:f[i],l=0;l<o.length;l+=3){var s=o[l+2];if(s==t||s==r){var a=W(i<0?e.line:e.rest[i]),u=o[l]+n;return(n<0||s!=t)&&(u=o[l+(n?1:0)]),P(a,u)}}}var i=e.text.firstChild,l=!1;if(!t||!o(i,t))return sl(P(W(e.line),0),!0);if(t==i&&(l=!0,t=i.childNodes[r],r=0,!t)){var s=e.rest?g(e.rest):e.line;return sl(P(W(s),s.text.length),l)}var a=3==t.nodeType?t:null,u=t;for(a||1!=t.childNodes.length||3!=t.firstChild.nodeType||(a=t.firstChild,r&&(r=a.nodeValue.length));u.parentNode!=i;)u=u.parentNode;var c=e.measure,f=c.maps,h=n(a,u,r);if(h)return sl(h,l);for(var d=u.nextSibling,p=a?a.nodeValue.length-r:0;d;d=d.nextSibling){if(h=n(d,d.firstChild,0))return sl(P(h.line,h.ch-p),l);p+=d.textContent.length}for(var v=u.previousSibling,m=r;v;v=v.previousSibling){if(h=n(v,v.firstChild,-1))return sl(P(h.line,h.ch+m),l);m+=v.textContent.length}}function fl(e,t){function r(){e.value=a.getValue()}if(t=t?c(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=l();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}var i;if(e.form&&(ts(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var s=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=s}}catch(e){}}t.finishInit=function(t){t.save=r,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,r(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(ke(e.form,"submit",r),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var a=Yo(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return a}var hl=navigator.userAgent,dl=navigator.platform,pl=/gecko\/\d/i.test(hl),gl=/MSIE \d/.test(hl),vl=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(hl),ml=/Edge\/(\d+)/.exec(hl),yl=gl||vl||ml,bl=yl&&(gl?document.documentMode||6:+(ml||vl)[1]),wl=!ml&&/WebKit\//.test(hl),xl=wl&&/Qt\/\d+\.\d+/.test(hl),Cl=!ml&&/Chrome\//.test(hl),Sl=/Opera\//.test(hl),Ll=/Apple Computer/.test(navigator.vendor),kl=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(hl),Tl=/PhantomJS/.test(hl),Ml=!ml&&/AppleWebKit/.test(hl)&&/Mobile\/\w+/.test(hl),Nl=/Android/.test(hl),Ol=Ml||Nl||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(hl),Al=Ml||/Mac/.test(dl),Wl=/\bCrOS\b/.test(hl),Dl=/win/i.test(dl),Hl=Sl&&hl.match(/Version\/(\d*\.\d*)/);Hl&&(Hl=Number(Hl[1])),Hl&&Hl>=15&&(Sl=!1,wl=!0);var Fl,Pl=Al&&(xl||Sl&&(null==Hl||Hl<12.11)),El=pl||yl&&bl>=9,zl=function(t,r){var n=t.className,i=e(r).exec(n);if(i){var o=n.slice(i.index+i[0].length);t.className=n.slice(0,i.index)+(o?i[1]+o:"")}};Fl=document.createRange?function(e,t,r,n){var i=document.createRange();return i.setEnd(n||e,r),i.setStart(e,t),i}:function(e,t,r){var n=document.body.createTextRange();try{n.moveToElementText(e.parentNode)}catch(e){return n}return n.collapse(!0),n.moveEnd("character",r),n.moveStart("character",t),n};var Il=function(e){e.select()};Ml?Il=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:yl&&(Il=function(e){try{e.select()}catch(e){}});var Rl=function(){this.id=null};Rl.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Bl,Gl,Ul=30,Vl={toString:function(){return"CodeMirror.Pass"}},Kl={scroll:!1},jl={origin:"*mouse"},Xl={origin:"+move"},Yl=[""],_l=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ql=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,$l=!1,Zl=!1,Ql=null,Jl=function(){function e(e){return e<=247?r.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?n.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,r){this.level=e,this.from=t,this.to=r}var r="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",n="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,l=/[LRr]/,s=/[Lb1n]/,a=/[1n]/;return function(r,n){var u="ltr"==n?"L":"R";if(0==r.length||"ltr"==n&&!i.test(r))return!1;for(var c=r.length,f=[],h=0;h<c;++h)f.push(e(r.charCodeAt(h)));for(var d=0,p=u;d<c;++d){var v=f[d];"m"==v?f[d]=p:p=v}for(var m=0,y=u;m<c;++m){var b=f[m];"1"==b&&"r"==y?f[m]="n":l.test(b)&&(y=b,"r"==b&&(f[m]="R"))}for(var w=1,x=f[0];w<c-1;++w){var C=f[w];"+"==C&&"1"==x&&"1"==f[w+1]?f[w]="1":","!=C||x!=f[w+1]||"1"!=x&&"n"!=x||(f[w]=x),x=C}for(var S=0;S<c;++S){var L=f[S];if(","==L)f[S]="N";else if("%"==L){var k=void 0;for(k=S+1;k<c&&"%"==f[k];++k);for(var T=S&&"!"==f[S-1]||k<c&&"1"==f[k]?"1":"N",M=S;M<k;++M)f[M]=T;S=k-1}}for(var N=0,O=u;N<c;++N){var A=f[N];"L"==O&&"1"==A?f[N]="L":l.test(A)&&(O=A)}for(var W=0;W<c;++W)if(o.test(f[W])){var D=void 0;for(D=W+1;D<c&&o.test(f[D]);++D);for(var H="L"==(W?f[W-1]:u),F="L"==(D<c?f[D]:u),P=H==F?H?"L":"R":u,E=W;E<D;++E)f[E]=P;W=D-1}for(var z,I=[],R=0;R<c;)if(s.test(f[R])){var B=R;for(++R;R<c&&s.test(f[R]);++R);I.push(new t(0,B,R))}else{var G=R,U=I.length;for(++R;R<c&&"L"!=f[R];++R);for(var V=G;V<R;)if(a.test(f[V])){G<V&&I.splice(U,0,new t(1,G,V));var K=V;for(++V;V<R&&a.test(f[V]);++V);I.splice(U,0,new t(2,K,V)),G=V}else++V;G<R&&I.splice(U,0,new t(1,G,R))}return"ltr"==n&&(1==I[0].level&&(z=r.match(/^\s+/))&&(I[0].from=z[0].length,I.unshift(new t(0,0,z[0].length))),1==g(I).level&&(z=r.match(/\s+$/))&&(g(I).to-=z[0].length,I.push(new t(0,c-z[0].length,c)))),"rtl"==n?I.reverse():I}}(),es=[],ts=function(e,t,r){if(e.addEventListener)e.addEventListener(t,r,!1);else if(e.attachEvent)e.attachEvent("on"+t,r);else{var n=e._handlers||(e._handlers={});n[t]=(n[t]||es).concat(r)}},rs=function(){if(yl&&bl<9)return!1;var e=n("div");return"draggable"in e||"dragDrop"in e}(),ns=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),l=o.indexOf("\r");-1!=l?(r.push(o.slice(0,l)),t+=l+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},is=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},os=function(){var e=n("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),ls=null,ss={},as={},us={},cs=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};cs.prototype.eol=function(){return this.pos>=this.string.length},cs.prototype.sol=function(){return this.pos==this.lineStart},cs.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},cs.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},cs.prototype.eat=function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},cs.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},cs.prototype.eatSpace=function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},cs.prototype.skipToEnd=function(){this.pos=this.string.length},cs.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},cs.prototype.backUp=function(e){this.pos-=e},cs.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=f(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},cs.prototype.indentation=function(){return f(this.string,null,this.tabSize)-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},cs.prototype.match=function(e,t,r){if("string"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},cs.prototype.current=function(){return this.string.slice(this.start,this.pos)},cs.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},cs.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},cs.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var fs=function(e,t){this.state=e,this.lookAhead=t},hs=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};hs.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},hs.prototype.baseToken=function(e){var t=this;if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)t.baseTokenPos+=2;var r=this.baseTokens[this.baseTokenPos+1];return{type:r&&r.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},hs.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},hs.fromSaved=function(e,t,r){return t instanceof fs?new hs(e,je(e.mode,t.state),r,t.lookAhead):new hs(e,je(e.mode,t),r)},hs.prototype.save=function(e){var t=!1!==e?je(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new fs(t,this.maxLookAhead):t};var ds=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r},ps=function(e,t,r){this.text=e,ne(this,t),this.height=r?r(this):1};ps.prototype.lineNo=function(){return W(this)},Ae(ps);var gs,vs={},ms={},ys=null,bs=null,ws={left:0,right:0,top:0,bottom:0},xs=function(e,t,r){this.cm=r;var i=this.vert=n("div",[n("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=n("div",[n("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),ts(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),ts(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,yl&&bl<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};xs.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},xs.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},xs.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},xs.prototype.zeroWidthHack=function(){var e=Al&&!kl?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Rl,this.disableVert=new Rl},xs.prototype.enableZeroWidthBar=function(e,t,r){function n(){var i=e.getBoundingClientRect();("vert"==r?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,n)}e.style.pointerEvents="auto",t.set(1e3,n)},xs.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Cs=function(){};Cs.prototype.update=function(){return{bottom:0,right:0}},Cs.prototype.setScrollLeft=function(){},Cs.prototype.setScrollTop=function(){},Cs.prototype.clear=function(){};var Ss={native:xs,null:Cs},Ls=0,ks=function(e,t,r){var n=e.display;this.viewport=t,this.visible=Ir(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=Bt(e),this.force=r,this.dims=wr(e),this.events=[]};ks.prototype.signal=function(e,t){Oe(e,t)&&this.events.push(arguments)},ks.prototype.finish=function(){for(var e=this,t=0;t<this.events.length;t++)Te.apply(null,e.events[t])};var Ts=0,Ms=null;yl?Ms=-.53:pl?Ms=15:Cl?Ms=-.7:Ll&&(Ms=-1/3);var Ns=function(e,t){this.ranges=e,this.primIndex=t};Ns.prototype.primary=function(){return this.ranges[this.primIndex]},Ns.prototype.equals=function(e){var t=this;if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var r=0;r<this.ranges.length;r++){var n=t.ranges[r],i=e.ranges[r];if(!z(n.anchor,i.anchor)||!z(n.head,i.head))return!1}return!0},Ns.prototype.deepCopy=function(){for(var e=this,t=[],r=0;r<this.ranges.length;r++)t[r]=new Os(I(e.ranges[r].anchor),I(e.ranges[r].head));return new Ns(t,this.primIndex)},Ns.prototype.somethingSelected=function(){for(var e=this,t=0;t<this.ranges.length;t++)if(!e.ranges[t].empty())return!0;return!1},Ns.prototype.contains=function(e,t){var r=this;t||(t=e);for(var n=0;n<this.ranges.length;n++){var i=r.ranges[n];if(E(t,i.from())>=0&&E(e,i.to())<=0)return n}return-1};var Os=function(e,t){this.anchor=e,this.head=t};Os.prototype.from=function(){return B(this.anchor,this.head)},Os.prototype.to=function(){return R(this.anchor,this.head)},Os.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Gi.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var r=this,n=e,i=e+t;n<i;++n){var o=r.lines[n];r.height-=o.height,lt(o),wt(o,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,r){var n=this;this.height+=r,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var i=0;i<t.length;++i)t[i].parent=n},iterN:function(e,t,r){for(var n=this,i=e+t;e<i;++e)if(r(n.lines[e]))return!0}},Ui.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){var r=this;this.size-=t;for(var n=0;n<this.children.length;++n){var i=r.children[n],o=i.chunkSize();if(e<o){var l=Math.min(t,o-e),s=i.height;if(i.removeInner(e,l),r.height-=s-i.height,o==l&&(r.children.splice(n--,1),i.parent=null),0==(t-=l))break;e=0}else e-=o}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof Gi))){var a=[];this.collapse(a),this.children=[new Gi(a)],this.children[0].parent=this}},collapse:function(e){for(var t=this,r=0;r<this.children.length;++r)t.children[r].collapse(e)},insertInner:function(e,t,r){var n=this;this.size+=t.length,this.height+=r;for(var i=0;i<this.children.length;++i){var o=n.children[i],l=o.chunkSize();if(e<=l){if(o.insertInner(e,t,r),o.lines&&o.lines.length>50){for(var s=o.lines.length%25+25,a=s;a<o.lines.length;){var u=new Gi(o.lines.slice(a,a+=25));o.height-=u.height,n.children.splice(++i,0,u),u.parent=n}o.lines=o.lines.slice(0,s),n.maybeSpill()}break}e-=l}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),r=new Ui(t);if(e.parent){e.size-=r.size,e.height-=r.height;var n=h(e.parent.children,e);e.parent.children.splice(n+1,0,r)}else{var i=new Ui(e.children);i.parent=e,e.children=[i,r],e=i}r.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=this,i=0;i<this.children.length;++i){var o=n.children[i],l=o.chunkSize();if(e<l){var s=Math.min(t,l-e);if(o.iterN(e,s,r))return!0;if(0==(t-=s))break;e=0}else e-=l}}};var As=function(e,t,r){var n=this;if(r)for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i]);this.doc=e,this.node=t};As.prototype.clear=function(){var e=this,t=this.doc.cm,r=this.line.widgets,n=this.line,i=W(n);if(null!=i&&r){for(var o=0;o<r.length;++o)r[o]==e&&r.splice(o--,1);r.length||(n.widgets=null);var l=Ft(this);A(n,Math.max(0,n.height-l)),t&&(dn(t,function(){Vi(t,n,-l),yn(t,i,"widget")}),wt(t,"lineWidgetCleared",t,this,i))}},As.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=Ft(this)-t;i&&(A(n,n.height+i),r&&dn(r,function(){r.curOp.forceUpdate=!0,Vi(r,n,i),wt(r,"lineWidgetChanged",r,e,W(n))}))},Ae(As);var Ws=0,Ds=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++Ws};Ds.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,r=t&&!t.curOp;if(r&&on(t),Oe(this,"clear")){var n=this.find();n&&wt(this,"clear",n.from,n.to)}for(var i=null,o=null,l=0;l<this.lines.length;++l){var s=e.lines[l],a=_(s.markedSpans,e);t&&!e.collapsed?yn(t,W(s),"text"):t&&(null!=a.to&&(o=W(s)),null!=a.from&&(i=W(s))),s.markedSpans=q(s.markedSpans,a),null==a.from&&e.collapsed&&!ve(e.doc,s)&&t&&A(s,yr(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var u=0;u<this.lines.length;++u){var c=fe(e.lines[u]),f=be(c);f>t.display.maxLineLength&&(t.display.maxLine=c,t.display.maxLineLength=f,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&mn(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Si(t.doc)),t&&wt(t,"markerCleared",t,this,i,o),r&&ln(t),this.parent&&this.parent.clear()}},Ds.prototype.find=function(e,t){var r=this;null==e&&"bookmark"==this.type&&(e=1);for(var n,i,o=0;o<this.lines.length;++o){var l=r.lines[o],s=_(l.markedSpans,r);if(null!=s.from&&(n=P(t?l:W(l),s.from),-1==e))return n;if(null!=s.to&&(i=P(t?l:W(l),s.to),1==e))return i}return n&&{from:n,to:i}},Ds.prototype.changed=function(){var e=this,t=this.find(-1,!0),r=this,n=this.doc.cm;t&&n&&dn(n,function(){var i=t.line,o=W(t.line),l=Xt(n,o);if(l&&(Jt(l),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!ve(r.doc,i)&&null!=r.height){var s=r.height;r.height=null;var a=Ft(r)-s;a&&A(i,i.height+a)}wt(n,"markerChanged",n,e)})},Ds.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=h(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},Ds.prototype.detachLine=function(e){if(this.lines.splice(h(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},Ae(Ds);var Hs=function(e,t){var r=this;this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=r};Hs.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var t=0;t<this.markers.length;++t)e.markers[t].clear();wt(this,"clear")}},Hs.prototype.find=function(e,t){return this.primary.find(e,t)},Ae(Hs);var Fs=0,Ps=function(e,t,r,n,i){if(!(this instanceof Ps))return new Ps(e,t,r,n,i);null==r&&(r=0),Ui.call(this,[new Gi([new ps("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=r;var o=P(r,0);this.sel=Bn(o),this.history=new ei(null),this.id=++Fs,this.modeOption=t,this.lineSep=n,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),qn(this,{from:o,to:o,text:e}),wi(this,Bn(o),Kl)};Ps.prototype=b(Ui.prototype,{constructor:Ps,iter:function(e,t,r){r?this.iterN(e-this.first,t-e,r):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var r=0,n=0;n<t.length;++n)r+=t[n].height;this.insertInner(e-this.first,t,r)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=O(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:vn(function(e){var t=P(this.first,0),r=this.first+this.size-1;Ai(this,{from:t,to:P(r,M(this,r).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&Yr(this.cm,0,0),wi(this,Bn(t),Kl)}),replaceRange:function(e,t,r,n){t=U(this,t),r=r?U(this,r):t,Ei(this,e,t,r,n)},getRange:function(e,t,r){var n=N(this,U(this,e),U(this,t));return!1===r?n:n.join(r||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(H(this,e))return M(this,e)},getLineNumber:function(e){return W(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=M(this,e)),fe(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return U(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:vn(function(e,t,r){mi(this,U(this,"number"==typeof e?P(e,t||0):e),null,r)}),setSelection:vn(function(e,t,r){mi(this,U(this,e),U(this,t||e),r)}),extendSelection:vn(function(e,t,r){pi(this,U(this,e),t&&U(this,t),r)}),extendSelections:vn(function(e,t){gi(this,K(this,e),t)}),extendSelectionsBy:vn(function(e,t){gi(this,K(this,v(this.sel.ranges,e)),t)}),setSelections:vn(function(e,t,r){var n=this;if(e.length){for(var i=[],o=0;o<e.length;o++)i[o]=new Os(U(n,e[o].anchor),U(n,e[o].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),wi(this,Rn(i,t),r)}}),addSelection:vn(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new Os(U(this,e),U(this,t||e))),wi(this,Rn(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this,n=this.sel.ranges,i=0;i<n.length;i++){var o=N(r,n[i].from(),n[i].to());t=t?t.concat(o):o}return!1===e?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=this,r=[],n=this.sel.ranges,i=0;i<n.length;i++){var o=N(t,n[i].from(),n[i].to());!1!==e&&(o=o.join(e||t.lineSeparator())),r[i]=o}return r},replaceSelection:function(e,t,r){for(var n=[],i=0;i<this.sel.ranges.length;i++)n[i]=e;this.replaceSelections(n,t,r||"+input")},replaceSelections:vn(function(e,t,r){for(var n=this,i=[],o=this.sel,l=0;l<o.ranges.length;l++){var s=o.ranges[l];i[l]={from:s.from(),to:s.to(),text:n.splitLines(e[l]),origin:r}}for(var a=t&&"end"!=t&&jn(this,i,t),u=i.length-1;u>=0;u--)Ai(n,i[u]);a?bi(this,a):this.cm&&Xr(this.cm)}),undo:vn(function(){Di(this,"undo")}),redo:vn(function(){Di(this,"redo")}),undoSelection:vn(function(){Di(this,"undo",!0)}),redoSelection:vn(function(){Di(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n<e.done.length;n++)e.done[n].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++r;return{undo:t,redo:r}},clearHistory:function(){this.history=new ei(this.history.maxGeneration)},
+markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:hi(this.history.done),undone:hi(this.history.undone)}},setHistory:function(e){var t=this.history=new ei(this.history.maxGeneration);t.done=hi(e.done.slice(0),null,!0),t.undone=hi(e.undone.slice(0),null,!0)},setGutterMarker:vn(function(e,t,r){return Bi(this,e,"gutter",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&C(n)&&(e.gutterMarkers=null),!0})}),clearGutter:vn(function(e){var t=this;this.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&Bi(t,r,"gutter",function(){return r.gutterMarkers[e]=null,C(r.gutterMarkers)&&(r.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!H(this,e))return null;if(t=e,!(e=M(this,e)))return null}else if(null==(t=W(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:vn(function(t,r,n){return Bi(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass";if(t[i]){if(e(n).test(t[i]))return!1;t[i]+=" "+n}else t[i]=n;return!0})}),removeLineClass:vn(function(t,r,n){return Bi(this,t,"gutter"==r?"gutter":"class",function(t){var i="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==n)t[i]=null;else{var l=o.match(e(n));if(!l)return!1;var s=l.index+l[0].length;t[i]=o.slice(0,l.index)+(l.index&&s!=o.length?" ":"")+o.slice(s)||null}return!0})}),addLineWidget:vn(function(e,t,r){return Ki(this,e,t,r)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return ji(this,U(this,e),U(this,t),r,r&&r.type||"range")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return e=U(this,e),ji(this,e,e,r,"bookmark")},findMarksAt:function(e){e=U(this,e);var t=[],r=M(this,e.line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=U(this,e),t=U(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var l=o.markedSpans;if(l)for(var s=0;s<l.length;s++){var a=l[s];null!=a.to&&i==e.line&&e.ch>=a.to||null==a.from&&i!=e.line||null!=a.from&&i==t.line&&a.from>=t.ch||r&&!r(a.marker)||n.push(a.marker.parent||a.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;n<r.length;++n)null!=r[n].from&&e.push(r[n].marker)}),e},posFromIndex:function(e){var t,r=this.first,n=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+n;if(o>e)return t=e,!0;e-=o,++r}),U(this,P(r,t))},indexFromPos:function(e){e=U(this,e);var t=e.ch;if(e.line<this.first||e.ch<0)return 0;var r=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+r}),t},copy:function(e){var t=new Ps(O(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,r=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<r&&(r=e.to);var n=new Ps(O(this,t,r),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(n.history=this.history),(this.linked||(this.linked=[])).push({doc:n,sharedHist:e.sharedHist}),n.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],_i(n,Yi(this)),n},unlinkDoc:function(e){var t=this;if(e instanceof Yo&&(e=e.doc),this.linked)for(var r=0;r<this.linked.length;++r){var n=t.linked[r];if(n.doc==e){t.linked.splice(r,1),e.unlinkDoc(t),qi(Yi(t));break}}if(e.history==this.history){var i=[e.id];$n(e,function(e){return i.push(e.id)},!0),e.history=new ei(null),e.history.done=hi(this.history.done,i),e.history.undone=hi(this.history.undone,i)}},iterLinkedDocs:function(e){$n(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):ns(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:vn(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Jn(this.cm))})}),Ps.prototype.eachLine=Ps.prototype.iter;for(var Es=0,zs=!1,Is={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},Rs=0;Rs<10;Rs++)Is[Rs+48]=Is[Rs+96]=String(Rs);for(var Bs=65;Bs<=90;Bs++)Is[Bs]=String.fromCharCode(Bs);for(var Gs=1;Gs<=12;Gs++)Is[Gs+111]=Is[Gs+63235]="F"+Gs;var Us={};Us.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Us.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Us.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Us.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Us.default=Al?Us.macDefault:Us.pcDefault;var Vs={selectAll:Ni,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),Kl)},killLine:function(e){return fo(e,function(t){if(t.empty()){var r=M(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line<e.lastLine()?{from:t.head,to:P(t.head.line+1,0)}:{from:t.head,to:P(t.head.line,r)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return fo(e,function(t){return{from:P(t.from().line,0),to:U(e.doc,P(t.to().line+1,0))}})},delLineLeft:function(e){return fo(e,function(e){return{from:P(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return fo(e,function(t){var r=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:r},"div"),to:t.from()}})},delWrappedLineRight:function(e){return fo(e,function(t){var r=e.charCoords(t.head,"div").top+5,n=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div");return{from:t.from(),to:n}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(P(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(P(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return mo(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return bo(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return yo(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},"div")},Xl)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:r},"div")},Xl)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,"div").top+5,n=e.coordsChar({left:0,top:r},"div");return n.ch<e.getLine(n.line).search(/\S/)?bo(e,t.head):n},Xl)},goLineUp:function(e){return e.moveV(-1,"line")},goLineDown:function(e){return e.moveV(1,"line")},goPageUp:function(e){return e.moveV(-1,"page")},goPageDown:function(e){return e.moveV(1,"page")},goCharLeft:function(e){return e.moveH(-1,"char")},goCharRight:function(e){return e.moveH(1,"char")},goColumnLeft:function(e){return e.moveH(-1,"column")},goColumnRight:function(e){return e.moveH(1,"column")},goWordLeft:function(e){return e.moveH(-1,"word")},goGroupRight:function(e){return e.moveH(1,"group")},goGroupLeft:function(e){return e.moveH(-1,"group")},goWordRight:function(e){return e.moveH(1,"word")},delCharBefore:function(e){return e.deleteH(-1,"char")},delCharAfter:function(e){return e.deleteH(1,"char")},delWordBefore:function(e){return e.deleteH(-1,"word")},delWordAfter:function(e){return e.deleteH(1,"word")},delGroupBefore:function(e){return e.deleteH(-1,"group")},delGroupAfter:function(e){return e.deleteH(1,"group")},indentAuto:function(e){return e.indentSelection("smart")},indentMore:function(e){return e.indentSelection("add")},indentLess:function(e){return e.indentSelection("subtract")},insertTab:function(e){return e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],r=e.listSelections(),n=e.options.tabSize,i=0;i<r.length;i++){var o=r[i].from(),l=f(e.getLine(o.line),o.ch,n);t.push(p(n-l%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return dn(e,function(){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)if(t[n].empty()){var i=t[n].head,o=M(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new P(i.line,i.ch-1)),i.ch>0)i=new P(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),P(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var l=M(e.doc,i.line-1).text;l&&(i=new P(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),P(i.line-1,l.length-1),i,"+transpose"))}r.push(new Os(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return dn(e,function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n<t.length;n++)e.indentLine(t[n].from().line,null,!0);Xr(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},Ks=new Rl,js=null,Xs=function(e,t,r){this.time=e,this.pos=t,this.button=r};Xs.prototype.compare=function(e,t,r){return this.time+400>e&&0==E(t,this.pos)&&r==this.button};var Ys,_s,qs={toString:function(){return"CodeMirror.Init"}},$s={},Zs={};Yo.defaults=$s,Yo.optionHandlers=Zs;var Qs=[];Yo.defineInitHook=function(e){return Qs.push(e)};var Js=null,ea=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Rl,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};ea.prototype.init=function(e){function t(e){if(!Me(i,e)){if(i.somethingSelected())$o({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=el(i);$o({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,Kl),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var r=Js.text.join("\n");if(e.clipboardData.setData("Text",r),e.clipboardData.getData("Text")==r)return void e.preventDefault()}var l=rl(),s=l.firstChild;i.display.lineSpace.insertBefore(l,i.display.lineSpace.firstChild),s.value=Js.text.join("\n");var a=document.activeElement;Il(s),setTimeout(function(){i.display.lineSpace.removeChild(l),a.focus(),a==o&&n.showPrimarySelection()},50)}}var r=this,n=this,i=n.cm,o=n.div=e.lineDiv;tl(o,i.options.spellcheck),ts(o,"paste",function(e){Me(i,e)||Qo(e,i)||bl<=11&&setTimeout(pn(i,function(){return r.updateFromDOM()}),20)}),ts(o,"compositionstart",function(e){r.composing={data:e.data,done:!1}}),ts(o,"compositionupdate",function(e){r.composing||(r.composing={data:e.data,done:!1})}),ts(o,"compositionend",function(e){r.composing&&(e.data!=r.composing.data&&r.readFromDOMSoon(),r.composing.done=!0)}),ts(o,"touchstart",function(){return n.forceCompositionEnd()}),ts(o,"input",function(){r.composing||r.readFromDOMSoon()}),ts(o,"copy",t),ts(o,"cut",t)},ea.prototype.prepareSelection=function(){var e=Mr(this.cm,!1);return e.focus=this.cm.state.focused,e},ea.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},ea.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,r=t.doc.sel.primary(),n=r.from(),i=r.to();if(t.display.viewTo==t.display.viewFrom||n.line>=t.display.viewTo||i.line<t.display.viewFrom)return void e.removeAllRanges();var o=ul(t,e.anchorNode,e.anchorOffset),l=ul(t,e.focusNode,e.focusOffset);if(!o||o.bad||!l||l.bad||0!=E(B(o,l),n)||0!=E(R(o,l),i)){var s=t.display.view,a=n.line>=t.display.viewFrom&&ol(t,n)||{node:s[0].measure.map[2],offset:0},u=i.line<t.display.viewTo&&ol(t,i);if(!u){var c=s[s.length-1].measure,f=c.maps?c.maps[c.maps.length-1]:c.map;u={node:f[f.length-1],offset:f[f.length-2]-f[f.length-3]}}if(!a||!u)return void e.removeAllRanges();var h,d=e.rangeCount&&e.getRangeAt(0);try{h=Fl(a.node,a.offset,u.offset,u.node)}catch(e){}h&&(!pl&&t.state.focused?(e.collapse(a.node,a.offset),h.collapsed||(e.removeAllRanges(),e.addRange(h))):(e.removeAllRanges(),e.addRange(h)),d&&null==e.anchorNode?e.addRange(d):pl&&this.startGracePeriod()),this.rememberSelection()}},ea.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},ea.prototype.showMultipleSelections=function(e){r(this.cm.display.cursorDiv,e.cursors),r(this.cm.display.selectionDiv,e.selection)},ea.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},ea.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},ea.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},ea.prototype.blur=function(){this.div.blur()},ea.prototype.getField=function(){return this.div},ea.prototype.supportsTouch=function(){return!0},ea.prototype.receivedFocus=function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():dn(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},ea.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},ea.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(Nl&&Cl&&this.cm.options.gutters.length&&ll(e.anchorNode))return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var r=ul(t,e.anchorNode,e.anchorOffset),n=ul(t,e.focusNode,e.focusOffset);r&&n&&dn(t,function(){wi(t.doc,Bn(r,n),Kl),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},ea.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,r=e.doc.sel.primary(),n=r.from(),i=r.to();if(0==n.ch&&n.line>e.firstLine()&&(n=P(n.line-1,M(e.doc,n.line-1).length)),i.ch==M(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=P(i.line+1,0)),n.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,l,s;n.line==t.viewFrom||0==(o=kr(e,n.line))?(l=W(t.view[0].line),s=t.view[0].node):(l=W(t.view[o].line),s=t.view[o-1].node.nextSibling);var a,u,c=kr(e,i.line);if(c==t.view.length-1?(a=t.viewTo-1,u=t.lineDiv.lastChild):(a=W(t.view[c+1].line)-1,u=t.view[c+1].node.previousSibling),!s)return!1;for(var f=e.doc.splitLines(al(e,s,u,l,a)),h=N(e.doc,P(l,0),P(a,M(e.doc,a).text.length));f.length>1&&h.length>1;)if(g(f)==g(h))f.pop(),h.pop(),a--;else{if(f[0]!=h[0])break;f.shift(),h.shift(),l++}for(var d=0,p=0,v=f[0],m=h[0],y=Math.min(v.length,m.length);d<y&&v.charCodeAt(d)==m.charCodeAt(d);)++d;for(var b=g(f),w=g(h),x=Math.min(b.length-(1==f.length?d:0),w.length-(1==h.length?d:0));p<x&&b.charCodeAt(b.length-p-1)==w.charCodeAt(w.length-p-1);)++p;if(1==f.length&&1==h.length&&l==n.line)for(;d&&d>n.ch&&b.charCodeAt(b.length-p-1)==w.charCodeAt(w.length-p-1);)d--,p++;f[f.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(d).replace(/\u200b+$/,"");var C=P(l,d),S=P(a,h.length?g(h).length-p:0);return f.length>1||f[0]||E(C,S)?(Ei(e.doc,f,C,S,"+input"),!0):void 0},ea.prototype.ensurePolled=function(){this.forceCompositionEnd()},ea.prototype.reset=function(){this.forceCompositionEnd()},ea.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},ea.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},ea.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||dn(this.cm,function(){return mn(e.cm)})},ea.prototype.setUneditable=function(e){e.contentEditable="false"},ea.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||pn(this.cm,Zo)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},ea.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},ea.prototype.onContextMenu=function(){},ea.prototype.resetPosition=function(){},ea.prototype.needsContentAttribute=!0;var ta=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new Rl,this.hasSelection=!1,this.composing=null};ta.prototype.init=function(e){function t(e){if(!Me(i,e)){if(i.somethingSelected())$o({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=el(i);$o({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,Kl):(n.prevInput="",l.value=t.text.join("\n"),Il(l))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var r=this,n=this,i=this.cm,o=this.wrapper=rl(),l=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),Ml&&(l.style.width="0px"),ts(l,"input",function(){yl&&bl>=9&&r.hasSelection&&(r.hasSelection=null),n.poll()}),ts(l,"paste",function(e){Me(i,e)||Qo(e,i)||(i.state.pasteIncoming=!0,n.fastPoll())}),ts(l,"cut",t),ts(l,"copy",t),ts(e.scroller,"paste",function(t){Pt(e,t)||Me(i,t)||(i.state.pasteIncoming=!0,n.focus())}),ts(e.lineSpace,"selectstart",function(t){Pt(e,t)||We(t)}),ts(l,"compositionstart",function(){var e=i.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),ts(l,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},ta.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=Mr(e);if(e.options.moveInputWithCursor){var i=ar(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return n},ta.prototype.showSelection=function(e){var t=this.cm,n=t.display;r(n.cursorDiv,e.cursors),r(n.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},ta.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var r=t.getSelection();this.textarea.value=r,t.state.focused&&Il(this.textarea),yl&&bl>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",yl&&bl>=9&&(this.hasSelection=null))}},ta.prototype.getField=function(){return this.textarea},ta.prototype.supportsTouch=function(){return!1},ta.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!Ol||l()!=this.textarea))try{this.textarea.focus()}catch(e){}},ta.prototype.blur=function(){this.textarea.blur()},ta.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},ta.prototype.receivedFocus=function(){this.slowPoll()},ta.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},ta.prototype.fastPoll=function(){function e(){r.poll()||t?(r.pollingFast=!1,r.slowPoll()):(t=!0,r.polling.set(60,e))}var t=!1,r=this;r.pollingFast=!0,r.polling.set(20,e)},ta.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||is(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(yl&&bl>=9&&this.hasSelection===i||Al&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n=""),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,s=Math.min(n.length,i.length);l<s&&n.charCodeAt(l)==i.charCodeAt(l);)++l;return dn(t,function(){Zo(t,i.slice(l),n.length-l,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},ta.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},ta.prototype.onKeyPress=function(){yl&&bl>=9&&(this.hasSelection=null),this.fastPoll()},ta.prototype.onContextMenu=function(e){function t(){if(null!=l.selectionStart){var e=i.somethingSelected(),t=""+(e?l.value:"");l.value="⇚",l.value=t,n.prevInput=e?"":"",l.selectionStart=1,l.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function r(){if(n.contextMenuPending=!1,n.wrapper.style.cssText=c,l.style.cssText=u,yl&&bl<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=a),null!=l.selectionStart){(!yl||yl&&bl<9)&&t();var e=0,r=function(){o.selForContextMenu==i.doc.sel&&0==l.selectionStart&&l.selectionEnd>0&&""==n.prevInput?pn(i,Ni)(i):e++<10?o.detectingSelectAll=setTimeout(r,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(r,200)}}var n=this,i=n.cm,o=i.display,l=n.textarea,s=Lr(i,e),a=o.scroller.scrollTop;if(s&&!Sl){i.options.resetSelectionOnContextMenu&&-1==i.doc.sel.contains(s)&&pn(i,wi)(i.doc,Bn(s),Kl);var u=l.style.cssText,c=n.wrapper.style.cssText;n.wrapper.style.cssText="position: absolute";var f=n.wrapper.getBoundingClientRect();l.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-f.top-5)+"px; left: "+(e.clientX-f.left-5)+"px;\n z-index: 1000; background: "+(yl?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var h;if(wl&&(h=window.scrollY),o.input.focus(),wl&&window.scrollTo(null,h),o.input.reset(),i.somethingSelected()||(l.value=n.prevInput=" "),n.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),yl&&bl>=9&&t(),El){Fe(e);var d=function(){ke(window,"mouseup",d),setTimeout(r,20)};ts(window,"mouseup",d)}else setTimeout(r,50)}},ta.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},ta.prototype.setUneditable=function(){},ta.prototype.needsContentAttribute=!1,function(e){function t(t,n,i,o){e.defaults[t]=n,i&&(r[t]=o?function(e,t,r){r!=qs&&i(e,t,r)}:i)}var r=e.optionHandlers;e.defineOption=t,e.Init=qs,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Xn(e)},!0),t("indentUnit",2,Xn,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){Yn(e),tr(e),mn(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(P(n,o))}n++});for(var i=r.length-1;i>=0;i--)Ei(e.doc,t,r[i],P(r[i].line,r[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=qs&&e.refresh()}),t("specialCharPlaceholder",ut,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",Ol?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!Dl),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){Vo(e),Ko(e)},!0),t("keyMap","default",function(e,t,r){var n=co(t),i=r!=qs&&co(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,Xo,!0),t("gutters",[],function(e){Pn(e.options),Ko(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?xr(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return tn(e)},!0),t("scrollbarStyle","native",function(e){nn(e),tn(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Pn(e.options),Ko(e)},!0),t("firstLineNumber",1,Ko,!0),t("lineNumberFormatter",function(e){return e},Ko,!0),t("showCursorWhenSelecting",!1,Tr,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Pr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,jo),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Tr,!0),t("singleCursorHeightPerLine",!0,Tr,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,Yn,!0),t("addModeClass",!1,Yn,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,Yn,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null),t("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(Yo),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&pn(this,t[e])(this,r,i),Te(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](co(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;r<t.length;++r)if(t[r]==e||t[r].name==e)return t.splice(r,1),!0},addOverlay:gn(function(t,r){var n=t.token?t:e.getMode(this.options,t);if(n.startState)throw new Error("Overlays may not be stateful.");m(this.state.overlays,{mode:n,modeSpec:t,opaque:r&&r.opaque,priority:r&&r.priority||0},function(e){return e.priority}),this.state.modeGen++,mn(this)}),removeOverlay:gn(function(e){for(var t=this,r=this.state.overlays,n=0;n<r.length;++n){var i=r[n].modeSpec;if(i==e||"string"==typeof e&&i.name==e)return r.splice(n,1),t.state.modeGen++,void mn(t)}}),indentLine:gn(function(e,t,r){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),H(this.doc,e)&&qo(this,e,t,r)}),indentSelection:gn(function(e){for(var t=this,r=this.doc.sel.ranges,n=-1,i=0;i<r.length;i++){var o=r[i];if(o.empty())o.head.line>n&&(qo(t,o.head.line,e,!0),n=o.head.line,i==t.doc.sel.primIndex&&Xr(t));else{var l=o.from(),s=o.to(),a=Math.max(n,l.line);n=Math.min(t.lastLine(),s.line-(s.ch?0:1))+1;for(var u=a;u<n;++u)qo(t,u,e);var c=t.doc.sel.ranges;0==l.ch&&r.length==c.length&&c[i].from().ch>0&&vi(t.doc,i,new Os(l,c[i].to()),Kl)}}}),getTokenAt:function(e,t){return et(this,e,t)},getLineTokens:function(e,t){return et(this,P(e),t,!0)},getTokenTypeAt:function(e){e=U(this.doc,e);var t,r=qe(this,M(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var l=n+i>>1;if((l?r[2*l-1]:0)>=o)i=l;else{if(!(r[2*l+1]<o)){t=r[2*l+2];break}n=l+1}}var s=t?t.indexOf("overlay "):-1;return s<0?t:0==s?null:t.slice(0,s-1)},getModeAt:function(t){var r=this.doc.mode;return r.innerMode?e.innerMode(r,this.getTokenAt(t).state).mode:r},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=this,i=[];if(!r.hasOwnProperty(t))return i;var o=r[t],l=this.getModeAt(e);if("string"==typeof l[t])o[l[t]]&&i.push(o[l[t]]);else if(l[t])for(var s=0;s<l[t].length;s++){var a=o[l[t][s]];a&&i.push(a)}else l.helperType&&o[l.helperType]?i.push(o[l.helperType]):o[l.name]&&i.push(o[l.name]);for(var u=0;u<o._global.length;u++){var c=o._global[u];c.pred(l,n)&&-1==h(i,c.val)&&i.push(c.val)}return i},getStateAfter:function(e,t){var r=this.doc;return e=G(r,null==e?r.first+r.size-1:e),$e(this,e+1,t).state},cursorCoords:function(e,t){var r,n=this.doc.sel.primary()
+;return r=null==e?n.head:"object"==typeof e?U(this.doc,e):e?n.from():n.to(),ar(this,r,t||"page")},charCoords:function(e,t){return sr(this,U(this.doc,e),t||"page")},coordsChar:function(e,t){return e=lr(this,e,t||"page"),fr(this,e.left,e.top)},lineAtHeight:function(e,t){return e=lr(this,{top:e,left:0},t||"page").top,D(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,r){var n,i=!1;if("number"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),n=M(this.doc,e)}else n=e;return or(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-ye(n):0)},defaultTextHeight:function(){return yr(this.display)},defaultCharWidth:function(){return br(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o=this.display;e=ar(this,U(this.doc,e));var l=e.bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==n)l=e.top;else if("above"==n||"near"==n){var a=Math.max(o.wrapper.clientHeight,this.doc.height),u=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>a)&&e.top>t.offsetHeight?l=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=a&&(l=e.bottom),s+t.offsetWidth>u&&(s=u-t.offsetWidth)}t.style.top=l+"px",t.style.left=t.style.right="","right"==i?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),r&&Vr(this,{left:s,top:l,right:s+t.offsetWidth,bottom:l+t.offsetHeight})},triggerOnKeyDown:gn(To),triggerOnKeyPress:gn(Oo),triggerOnKeyUp:No,triggerOnMouseDown:gn(Wo),execCommand:function(e){if(Vs.hasOwnProperty(e))return Vs[e].call(null,this)},triggerElectric:gn(function(e){Jo(this,e)}),findPosH:function(e,t,r,n){var i=this,o=1;t<0&&(o=-1,t=-t);for(var l=U(this.doc,e),s=0;s<t&&(l=nl(i.doc,l,o,r,n),!l.hitSide);++s);return l},moveH:gn(function(e,t){var r=this;this.extendSelectionsBy(function(n){return r.display.shift||r.doc.extend||n.empty()?nl(r.doc,n.head,e,t,r.options.rtlMoveVisually):e<0?n.from():n.to()},Xl)}),deleteH:gn(function(e,t){var r=this.doc.sel,n=this.doc;r.somethingSelected()?n.replaceSelection("",null,"+delete"):fo(this,function(r){var i=nl(n,r.head,e,t,!1);return e<0?{from:i,to:r.head}:{from:r.head,to:i}})}),findPosV:function(e,t,r,n){var i=this,o=1,l=n;t<0&&(o=-1,t=-t);for(var s=U(this.doc,e),a=0;a<t;++a){var u=ar(i,s,"div");if(null==l?l=u.left:u.left=l,s=il(i,u,o,r),s.hitSide)break}return s},moveV:gn(function(e,t){var r=this,n=this.doc,i=[],o=!this.display.shift&&!n.extend&&n.sel.somethingSelected();if(n.extendSelectionsBy(function(l){if(o)return e<0?l.from():l.to();var s=ar(r,l.head,"div");null!=l.goalColumn&&(s.left=l.goalColumn),i.push(s.left);var a=il(r,s,e,t);return"page"==t&&l==n.sel.primary()&&jr(r,sr(r,a,"div").top-s.top),a},Xl),i.length)for(var l=0;l<n.sel.ranges.length;l++)n.sel.ranges[l].goalColumn=i[l]}),findWordAt:function(e){var t=this.doc,r=M(t,e.line).text,n=e.ch,i=e.ch;if(r){var o=this.getHelper(e,"wordChars");"before"!=e.sticky&&i!=r.length||!n?++i:--n;for(var l=r.charAt(n),s=x(l,o)?function(e){return x(e,o)}:/\s/.test(l)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!x(e)};n>0&&s(r.charAt(n-1));)--n;for(;i<r.length&&s(r.charAt(i));)++i}return new Os(P(e.line,n),P(e.line,i))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?s(this.display.cursorDiv,"CodeMirror-overwrite"):zl(this.display.cursorDiv,"CodeMirror-overwrite"),Te(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==l()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:gn(function(e,t){Yr(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-Rt(this)-this.display.barHeight,width:e.scrollWidth-Rt(this)-this.display.barWidth,clientHeight:Gt(this),clientWidth:Bt(this)}},scrollIntoView:gn(function(e,t){null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:P(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?_r(this,e):$r(this,e.from,e.to,e.margin)}),setSize:gn(function(e,t){var r=this,n=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&er(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){yn(r,i,"widget");break}++i}),this.curOp.forceUpdate=!0,Te(this,"refresh",this)}),operation:function(e){return dn(this,e)},startOperation:function(){return on(this)},endOperation:function(){return ln(this)},refresh:gn(function(){var e=this.display.cachedTextHeight;mn(this),this.curOp.forceUpdate=!0,tr(this),Yr(this,this.doc.scrollLeft,this.doc.scrollTop),Dn(this),(null==e||Math.abs(e-yr(this.display))>.5)&&Sr(this),Te(this,"refresh",this)}),swapDoc:gn(function(e){var t=this.doc;return t.cm=null,Zn(this,e),tr(this),this.display.input.reset(),Yr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,wt(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Ae(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Yo);var ra="iter insert remove copy getEditor constructor".split(" ");for(var na in Ps.prototype)Ps.prototype.hasOwnProperty(na)&&h(ra,na)<0&&(Yo.prototype[na]=function(e){return function(){return e.apply(this.doc,arguments)}}(Ps.prototype[na]));return Ae(Ps),Yo.inputStyles={textarea:ta,contenteditable:ea},Yo.defineMode=function(e){Yo.defaults.mode||"null"==e||(Yo.defaults.mode=e),Be.apply(this,arguments)},Yo.defineMIME=Ge,Yo.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Yo.defineMIME("text/plain","null"),Yo.defineExtension=function(e,t){Yo.prototype[e]=t},Yo.defineDocExtension=function(e,t){Ps.prototype[e]=t},Yo.fromTextArea=fl,function(e){e.off=ke,e.on=ts,e.wheelEventPixels=zn,e.Doc=Ps,e.splitLines=ns,e.countColumn=f,e.findColumn=d,e.isWordChar=w,e.Pass=Vl,e.signal=Te,e.Line=ps,e.changeEnd=Gn,e.scrollbarModel=Ss,e.Pos=P,e.cmpPos=E,e.modes=ss,e.mimeModes=as,e.resolveMode=Ue,e.getMode=Ve,e.modeExtensions=us,e.extendMode=Ke,e.copyState=je,e.startState=Ye,e.innerMode=Xe,e.commands=Vs,e.keyMap=Us,e.keyName=uo,e.isModifierKey=so,e.lookupKey=lo,e.normalizeKeyMap=oo,e.StringStream=cs,e.SharedTextMarker=Hs,e.TextMarker=Ds,e.LineWidget=As,e.e_preventDefault=We,e.e_stopPropagation=De,e.e_stop=Fe,e.addClass=s,e.contains=o,e.rmClass=zl,e.keyNames=Is}(Yo),Yo.version="5.32.0",Yo});
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/static/styles.9f50282210bba5318775.bundle.css b/asterixdb/asterix-app/src/main/resources/dashboard/static/styles.9f50282210bba5318775.bundle.css
new file mode 100644
index 0000000..8b566dc
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/static/styles.9f50282210bba5318775.bundle.css
@@ -0,0 +1 @@
+html{box-sizing:border-box}body{font-family:Roboto Mono,monospace;font-size:.8rem;font-weight:500}.ui-datatable .ui-sortable-column div.ui-dt-c{padding-right:15px!important}.mat-elevation-z0{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-elevation-z1{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mat-elevation-z2{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-elevation-z3{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.mat-elevation-z4{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-elevation-z5{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.mat-elevation-z6{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-elevation-z7{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.mat-elevation-z8{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-elevation-z9{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.mat-elevation-z10{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.mat-elevation-z11{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.mat-elevation-z12{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-elevation-z13{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.mat-elevation-z14{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.mat-elevation-z15{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.mat-elevation-z16{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mat-elevation-z17{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.mat-elevation-z18{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.mat-elevation-z19{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.mat-elevation-z20{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.mat-elevation-z21{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.mat-elevation-z22{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.mat-elevation-z23{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.mat-elevation-z24{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto,Helvetica Neue,sans-serif;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,Helvetica Neue,sans-serif;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,Helvetica Neue,sans-serif;margin:0 0 16px}.mat-h5,.mat-typography h5{font-size:11.62px}.mat-h5,.mat-h6,.mat-typography h5,.mat-typography h6{font-weight:400;font-family:Roboto,Helvetica Neue,sans-serif;line-height:20px;margin:0 0 12px}.mat-h6,.mat-typography h6{font-size:9.38px}.mat-body-2,.mat-body-strong{font:500 14px/24px Roboto,Helvetica Neue,sans-serif}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif}.mat-body-1 p,.mat-body p,.mat-typography p{margin:0 0 12px}.mat-caption,.mat-small{font:400 12px/20px Roboto,Helvetica Neue,sans-serif}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,Helvetica Neue,sans-serif;margin:0 0 56px;letter-spacing:-.05em}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,Helvetica Neue,sans-serif;margin:0 0 64px;letter-spacing:-.02em}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,Helvetica Neue,sans-serif;margin:0 0 64px;letter-spacing:-.005em}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,Helvetica Neue,sans-serif;margin:0 0 64px}.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-button-toggle,.mat-card{font-family:Roboto,Helvetica Neue,sans-serif}.mat-card-title{font-size:24px;font-weight:400}.mat-card-content,.mat-card-header .mat-card-title,.mat-card-subtitle{font-size:14px}.mat-checkbox{font-family:Roboto,Helvetica Neue,sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:13px;line-height:18px}.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto,Helvetica Neue,sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell{font-size:14px}.mat-calendar{font-family:Roboto,Helvetica Neue,sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,Helvetica Neue,sans-serif}.mat-expansion-panel-header{font-family:Roboto,Helvetica Neue,sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,Helvetica Neue,sans-serif}.mat-form-field{font-family:Roboto,Helvetica Neue,sans-serif;font-size:inherit;font-weight:400;line-height:1.125}.mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.4375em 0;border-top:.84375em solid transparent}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{-webkit-transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333333%}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{-webkit-transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);-ms-transform:translateY(-1.28124em) scale(.75);width:133.33334333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{-webkit-transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);-ms-transform:translateY(-1.28123em) scale(.75);width:133.33335333%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.28125em}.mat-form-field-underline{bottom:1.25em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.54166667em;top:calc(100% - 1.66666667em)}.mat-grid-tile-footer,.mat-grid-tile-header{font-size:14px}.mat-grid-tile-footer .mat-line,.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2),.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px}.mat-radio-button,.mat-select{font-family:Roboto,Helvetica Neue,sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font:400 14px/20px Roboto,Helvetica Neue,sans-serif}.mat-slider-thumb-label-text{font-size:12px;font-weight:500}.mat-slider-thumb-label-text,.mat-stepper-horizontal,.mat-stepper-vertical{font-family:Roboto,Helvetica Neue,sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group,.mat-tab-label,.mat-tab-link{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tab-label,.mat-tab-link{font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;margin:0}.mat-tooltip{font-size:10px;padding-top:6px;padding-bottom:6px}.mat-list-item,.mat-list-option,.mat-tooltip{font-family:Roboto,Helvetica Neue,sans-serif}.mat-list .mat-list-item,.mat-nav-list .mat-list-item,.mat-selection-list .mat-list-item{font-size:16px}.mat-list .mat-list-item .mat-line,.mat-nav-list .mat-list-item .mat-line,.mat-selection-list .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list .mat-list-item .mat-line:nth-child(n+2),.mat-nav-list .mat-list-item .mat-line:nth-child(n+2),.mat-selection-list .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list .mat-list-option,.mat-nav-list .mat-list-option,.mat-selection-list .mat-list-option{font-size:16px}.mat-list .mat-list-option .mat-line,.mat-nav-list .mat-list-option .mat-line,.mat-selection-list .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list .mat-list-option .mat-line:nth-child(n+2),.mat-nav-list .mat-list-option .mat-line:nth-child(n+2),.mat-selection-list .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list .mat-subheader,.mat-nav-list .mat-subheader,.mat-selection-list .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-list[dense] .mat-list-item,.mat-nav-list[dense] .mat-list-item,.mat-selection-list[dense] .mat-list-item{font-size:12px}.mat-list[dense] .mat-list-item .mat-line,.mat-nav-list[dense] .mat-list-item .mat-line,.mat-selection-list[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-list[dense] .mat-list-option,.mat-nav-list[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-nav-list[dense] .mat-list-option,.mat-selection-list[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-selection-list[dense] .mat-list-option{font-size:12px}.mat-list[dense] .mat-list-option .mat-line,.mat-nav-list[dense] .mat-list-option .mat-line,.mat-selection-list[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list[dense] .mat-list-option .mat-line:nth-child(n+2),.mat-nav-list[dense] .mat-list-option .mat-line:nth-child(n+2),.mat-selection-list[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list[dense] .mat-subheader,.mat-nav-list[dense] .mat-subheader,.mat-selection-list[dense] .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,Helvetica Neue,sans-serif}.mat-simple-snackbar{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-ripple{overflow:hidden}@media screen and (-ms-high-contrast:active){.mat-ripple{display:none}}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,-webkit-transform 0ms cubic-bezier(0,0,.2,1);transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transition:opacity,transform 0ms cubic-bezier(0,0,.2,1),-webkit-transform 0ms cubic-bezier(0,0,.2,1);-webkit-transform:scale(0);transform:scale(0)}.mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;position:relative;cursor:pointer;outline:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;max-width:100%;box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.mat-option-text{display:inline-block;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}@media screen and (-ms-high-contrast:active){.mat-option-ripple{opacity:.5}}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}.mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.cdk-global-overlay-wrapper,.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-global-overlay-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{box-sizing:border-box}.cdk-overlay-backdrop,.cdk-overlay-pane{position:absolute;pointer-events:auto;z-index:1000}.cdk-overlay-backdrop{top:0;bottom:0;left:0;right:0;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.48}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.cdk-overlay-transparent-backdrop{background:none}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.mat-ripple-element{background-color:rgba(0,0,0,.1)}.mat-option{color:rgba(0,0,0,.87)}.mat-option:focus:not(.mat-option-disabled),.mat-option:hover:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#9e9e9e}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#ffab40}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#f44336}.mat-option.mat-active,.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-active{color:rgba(0,0,0,.87)}.mat-option.mat-option-disabled{color:rgba(0,0,0,.38)}.mat-optgroup-label{color:rgba(0,0,0,.54)}.mat-optgroup-disabled .mat-optgroup-label{color:rgba(0,0,0,.38)}.mat-pseudo-checkbox{color:rgba(0,0,0,.54)}.mat-pseudo-checkbox:after{color:#fafafa}.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate,.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate{background:#ffab40}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#9e9e9e}.mat-warn .mat-pseudo-checkbox-checked,.mat-warn .mat-pseudo-checkbox-indeterminate{background:#f44336}.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.mat-app-background{background-color:#fafafa}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#fff;color:rgba(0,0,0,.87)}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:rgba(0,0,0,.87)}.mat-button,.mat-icon-button{background:transparent}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay{background-color:hsla(0,0%,62%,.12)}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay{background-color:rgba(255,171,64,.12)}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay{background-color:rgba(244,67,54,.12)}.mat-button[disabled] .mat-button-focus-overlay,.mat-icon-button[disabled] .mat-button-focus-overlay{background-color:transparent}.mat-button.mat-primary,.mat-icon-button.mat-primary{color:#9e9e9e}.mat-button.mat-accent,.mat-icon-button.mat-accent{color:#ffab40}.mat-button.mat-warn,.mat-icon-button.mat-warn{color:#f44336}.mat-button.mat-accent[disabled],.mat-button.mat-primary[disabled],.mat-button.mat-warn[disabled],.mat-button[disabled][disabled],.mat-icon-button.mat-accent[disabled],.mat-icon-button.mat-primary[disabled],.mat-icon-button.mat-warn[disabled],.mat-icon-button[disabled][disabled]{color:rgba(0,0,0,.38)}.mat-fab,.mat-mini-fab,.mat-raised-button{color:rgba(0,0,0,.87);background-color:#fff}.mat-fab.mat-accent,.mat-fab.mat-primary,.mat-mini-fab.mat-accent,.mat-mini-fab.mat-primary,.mat-raised-button.mat-accent,.mat-raised-button.mat-primary{color:rgba(0,0,0,.87)}.mat-fab.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{color:#fff}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{color:rgba(0,0,0,.38)}.mat-fab.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{background-color:#9e9e9e}.mat-fab.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{background-color:#ffab40}.mat-fab.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{background-color:#f44336}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{background-color:rgba(0,0,0,.12)}.mat-fab.mat-accent .mat-ripple-element,.mat-fab.mat-primary .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element{background-color:rgba(0,0,0,.2)}.mat-fab.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element{background-color:hsla(0,0%,100%,.2)}.mat-button.mat-primary .mat-ripple-element{background-color:hsla(0,0%,62%,.1)}.mat-button.mat-accent .mat-ripple-element{background-color:rgba(255,171,64,.1)}.mat-button.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.1)}.mat-icon-button.mat-primary .mat-ripple-element{background-color:hsla(0,0%,62%,.2)}.mat-icon-button.mat-accent .mat-ripple-element{background-color:rgba(255,171,64,.2)}.mat-icon-button.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.2)}.mat-button-toggle{color:rgba(0,0,0,.38)}.mat-button-toggle.cdk-focused .mat-button-toggle-focus-overlay{background-color:rgba(0,0,0,.06)}.mat-button-toggle-checked{background-color:#e0e0e0;color:rgba(0,0,0,.54)}.mat-button-toggle-disabled{background-color:#eee;color:rgba(0,0,0,.38)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.mat-card{background:#fff;color:rgba(0,0,0,.87)}.mat-card-subtitle{color:rgba(0,0,0,.54)}.mat-checkbox-frame{border-color:rgba(0,0,0,.54)}.mat-checkbox-checkmark{fill:#fafafa}.mat-checkbox-checkmark-path{stroke:#fafafa!important}.mat-checkbox-mixedmark{background-color:#fafafa}.mat-checkbox-checked.mat-primary .mat-checkbox-background,.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#9e9e9e}.mat-checkbox-checked.mat-accent .mat-checkbox-background,.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#ffab40}.mat-checkbox-checked.mat-warn .mat-checkbox-background,.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#f44336}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.mat-checkbox-disabled .mat-checkbox-label{color:#b0b0b0}.mat-checkbox:not(.mat-checkbox-disabled).mat-primary .mat-checkbox-ripple .mat-ripple-element{background-color:hsla(0,0%,62%,.26)}.mat-checkbox:not(.mat-checkbox-disabled).mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(255,171,64,.26)}.mat-checkbox:not(.mat-checkbox-disabled).mat-warn .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(244,67,54,.26)}.mat-chip:not(.mat-basic-chip){background-color:#e0e0e0;color:rgba(0,0,0,.87)}.mat-chip:not(.mat-basic-chip) .mat-chip-remove{color:rgba(0,0,0,.87);opacity:.4}.mat-chip:not(.mat-basic-chip) .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-primary{background-color:#9e9e9e;color:rgba(0,0,0,.87)}.mat-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:rgba(0,0,0,.87);opacity:.4}.mat-chip.mat-chip-selected.mat-primary .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-warn{background-color:#f44336;color:#fff}.mat-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-chip-selected.mat-warn .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-accent{background-color:#ffab40;color:rgba(0,0,0,.87)}.mat-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:rgba(0,0,0,.87);opacity:.4}.mat-chip.mat-chip-selected.mat-accent .mat-chip-remove:hover{opacity:.54}.mat-table{background:#fff}.mat-header-row,.mat-row{border-bottom-color:rgba(0,0,0,.12)}.mat-header-cell{color:rgba(0,0,0,.54)}.mat-cell{color:rgba(0,0,0,.87)}.mat-datepicker-content{background-color:#fff;color:rgba(0,0,0,.87)}.mat-calendar-arrow{border-top-color:rgba(0,0,0,.54)}.mat-calendar-next-button,.mat-calendar-previous-button{color:rgba(0,0,0,.54)}.mat-calendar-table-header{color:rgba(0,0,0,.38)}.mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.mat-calendar-body-label{color:rgba(0,0,0,.54)}.mat-calendar-body-cell-content{color:rgba(0,0,0,.87);border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){color:rgba(0,0,0,.38)}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){background-color:rgba(0,0,0,.04)}.mat-calendar-body-selected{background-color:#9e9e9e;color:rgba(0,0,0,.87)}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:hsla(0,0%,62%,.4)}.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,.38)}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px rgba(0,0,0,.87)}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,.18)}.mat-dialog-container,.mat-expansion-panel{background:#fff;color:rgba(0,0,0,.87)}.mat-action-row{border-top-color:rgba(0,0,0,.12)}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:rgba(0,0,0,.04)}.mat-expansion-panel-header-title{color:rgba(0,0,0,.87)}.mat-expansion-indicator:after,.mat-expansion-panel-header-description{color:rgba(0,0,0,.54)}.mat-expansion-panel-header[aria-disabled=true]{color:rgba(0,0,0,.38)}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.mat-form-field-label,.mat-hint{color:rgba(0,0,0,.54)}.mat-focused .mat-form-field-label{color:#9e9e9e}.mat-focused .mat-form-field-label.mat-accent{color:#ffab40}.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#ffab40}.mat-form-field-underline{background-color:rgba(0,0,0,.42)}.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x}.mat-form-field-ripple{background-color:#9e9e9e}.mat-form-field-ripple.mat-accent{background-color:#ffab40}.mat-form-field-ripple.mat-warn{background-color:#f44336}.mat-form-field-invalid .mat-form-field-label,.mat-form-field-invalid .mat-form-field-label.mat-accent,.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#f44336}.mat-form-field-invalid .mat-form-field-ripple{background-color:#f44336}.mat-error{color:#f44336}.mat-icon.mat-primary{color:#9e9e9e}.mat-icon.mat-accent{color:#ffab40}.mat-icon.mat-warn{color:#f44336}.mat-input-element:disabled{color:rgba(0,0,0,.38)}.mat-input-element::placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-moz-placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-webkit-input-placeholder{color:rgba(0,0,0,.42)}.mat-input-element:-ms-input-placeholder{color:rgba(0,0,0,.42)}.mat-list .mat-list-item,.mat-list .mat-list-option,.mat-nav-list .mat-list-item,.mat-nav-list .mat-list-option,.mat-selection-list .mat-list-item,.mat-selection-list .mat-list-option{color:rgba(0,0,0,.87)}.mat-list .mat-subheader,.mat-nav-list .mat-subheader,.mat-selection-list .mat-subheader{color:rgba(0,0,0,.54)}.mat-list-item-disabled{background-color:#eee}.mat-divider{border-top-color:rgba(0,0,0,.12)}.mat-nav-list .mat-list-item{outline:none}.mat-nav-list .mat-list-item.mat-list-item-focus,.mat-nav-list .mat-list-item:hover{background:rgba(0,0,0,.04)}.mat-list-option{outline:none}.mat-list-option.mat-list-item-focus,.mat-list-option:hover{background:rgba(0,0,0,.04)}.mat-menu-panel{background:#fff}.mat-menu-item{background:transparent;color:rgba(0,0,0,.87)}.mat-menu-item[disabled]{color:rgba(0,0,0,.38)}.mat-menu-item-submenu-trigger:after,.mat-menu-item .mat-icon:not([color]){color:rgba(0,0,0,.54)}.mat-menu-item-highlighted:not([disabled]),.mat-menu-item:focus:not([disabled]),.mat-menu-item:hover:not([disabled]){background:rgba(0,0,0,.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:rgba(0,0,0,.54)}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-increment{border-color:rgba(0,0,0,.38)}.mat-progress-bar-background{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%27%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27whitesmoke%27%2F%3E%3C%2Fsvg%3E")}.mat-progress-bar-buffer{background-color:#f5f5f5}.mat-progress-bar-fill:after{background-color:#9e9e9e}.mat-progress-bar.mat-accent .mat-progress-bar-background{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%27%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27%23ffd180%27%2F%3E%3C%2Fsvg%3E")}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ffd180}.mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#ffab40}.mat-progress-bar.mat-warn .mat-progress-bar-background{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%27%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27%23ffcdd2%27%2F%3E%3C%2Fsvg%3E")}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#9e9e9e}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#ffab40}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:rgba(0,0,0,.54)}.mat-radio-disabled .mat-radio-outer-circle{border-color:rgba(0,0,0,.38)}.mat-radio-disabled .mat-radio-inner-circle,.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:rgba(0,0,0,.38)}.mat-radio-disabled .mat-radio-label-content{color:rgba(0,0,0,.38)}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#9e9e9e}.mat-radio-button.mat-primary .mat-radio-inner-circle{background-color:#9e9e9e}.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element{background-color:hsla(0,0%,62%,.26)}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#ffab40}.mat-radio-button.mat-accent .mat-radio-inner-circle{background-color:#ffab40}.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element{background-color:rgba(255,171,64,.26)}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#f44336}.mat-radio-button.mat-warn .mat-radio-inner-circle{background-color:#f44336}.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element{background-color:rgba(244,67,54,.26)}.mat-select-content,.mat-select-panel-done-animating{background:#fff}.mat-select-value{color:rgba(0,0,0,.87)}.mat-select-placeholder{color:rgba(0,0,0,.42)}.mat-select-disabled .mat-select-value{color:rgba(0,0,0,.38)}.mat-select-arrow{color:rgba(0,0,0,.54)}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#9e9e9e}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#ffab40}.mat-form-field.mat-focused.mat-warn .mat-select-arrow,.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:rgba(0,0,0,.38)}.mat-drawer-container{background-color:#fafafa;color:rgba(0,0,0,.87)}.mat-drawer{color:rgba(0,0,0,.87)}.mat-drawer,.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer-backdrop.mat-drawer-shown{background-color:rgba(0,0,0,.6)}.mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#ff9800}.mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(255,152,0,.5)}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:rgba(0,0,0,.06)}.mat-slide-toggle .mat-ripple-element{background-color:rgba(255,152,0,.12)}.mat-slide-toggle.mat-primary.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#9e9e9e}.mat-slide-toggle.mat-primary.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:hsla(0,0%,62%,.5)}.mat-slide-toggle.mat-primary:not(.mat-checked) .mat-ripple-element{background-color:rgba(0,0,0,.06)}.mat-slide-toggle.mat-primary .mat-ripple-element{background-color:hsla(0,0%,62%,.12)}.mat-slide-toggle.mat-warn.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#f44336}.mat-slide-toggle.mat-warn.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(244,67,54,.5)}.mat-slide-toggle.mat-warn:not(.mat-checked) .mat-ripple-element{background-color:rgba(0,0,0,.06)}.mat-slide-toggle.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.12)}.mat-disabled .mat-slide-toggle-thumb{background-color:#bdbdbd}.mat-disabled .mat-slide-toggle-bar{background-color:rgba(0,0,0,.1)}.mat-slide-toggle-thumb{background-color:#fafafa}.mat-slide-toggle-bar{background-color:rgba(0,0,0,.38)}.mat-slider-track-background{background-color:rgba(0,0,0,.26)}.mat-primary .mat-slider-thumb,.mat-primary .mat-slider-thumb-label,.mat-primary .mat-slider-track-fill{background-color:#9e9e9e}.mat-primary .mat-slider-thumb-label-text{color:rgba(0,0,0,.87)}.mat-accent .mat-slider-thumb,.mat-accent .mat-slider-thumb-label,.mat-accent .mat-slider-track-fill{background-color:#ffab40}.mat-accent .mat-slider-thumb-label-text{color:rgba(0,0,0,.87)}.mat-warn .mat-slider-thumb,.mat-warn .mat-slider-thumb-label,.mat-warn .mat-slider-track-fill{background-color:#f44336}.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider-focus-ring{background-color:rgba(255,171,64,.2)}.cdk-focused .mat-slider-track-background,.mat-slider:hover .mat-slider-track-background{background-color:rgba(0,0,0,.38)}.mat-slider-disabled .mat-slider-thumb,.mat-slider-disabled .mat-slider-track-background,.mat-slider-disabled .mat-slider-track-fill,.mat-slider-disabled:hover .mat-slider-track-background{background-color:rgba(0,0,0,.26)}.mat-slider-min-value .mat-slider-focus-ring{background-color:rgba(0,0,0,.12)}.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:rgba(0,0,0,.87)}.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:rgba(0,0,0,.26)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:rgba(0,0,0,.26);background-color:transparent}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:rgba(0,0,0,.38)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:rgba(0,0,0,.26)}.mat-slider-has-ticks .mat-slider-wrapper:after{border-color:rgba(0,0,0,.7)}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover{background-color:rgba(0,0,0,.04)}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:rgba(0,0,0,.38)}.mat-step-header .mat-step-icon{background-color:#9e9e9e;color:rgba(0,0,0,.87)}.mat-step-header .mat-step-icon-not-touched{background-color:rgba(0,0,0,.38);color:rgba(0,0,0,.87)}.mat-step-header .mat-step-label.mat-step-label-active{color:rgba(0,0,0,.87)}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#fff}.mat-stepper-vertical-line:before{border-left-color:rgba(0,0,0,.12)}.mat-stepper-horizontal-line{border-top-color:rgba(0,0,0,.12)}.mat-tab-header,.mat-tab-nav-bar{border-bottom:1px solid rgba(0,0,0,.12)}.mat-tab-group-inverted-header .mat-tab-header,.mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:rgba(0,0,0,.87)}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.38)}.mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.87)}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.38)}.mat-tab-group[class*=mat-background-] .mat-tab-header,.mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.mat-tab-group.mat-primary .mat-tab-label:focus,.mat-tab-group.mat-primary .mat-tab-link:focus,.mat-tab-nav-bar.mat-primary .mat-tab-label:focus,.mat-tab-nav-bar.mat-primary .mat-tab-link:focus{background-color:hsla(0,0%,96%,.3)}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#9e9e9e}.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar{background-color:rgba(0,0,0,.87)}.mat-tab-group.mat-accent .mat-tab-label:focus,.mat-tab-group.mat-accent .mat-tab-link:focus,.mat-tab-nav-bar.mat-accent .mat-tab-label:focus,.mat-tab-nav-bar.mat-accent .mat-tab-link:focus{background-color:rgba(255,209,128,.3)}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#ffab40}.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar{background-color:rgba(0,0,0,.87)}.mat-tab-group.mat-warn .mat-tab-label:focus,.mat-tab-group.mat-warn .mat-tab-link:focus,.mat-tab-nav-bar.mat-warn .mat-tab-label:focus,.mat-tab-nav-bar.mat-warn .mat-tab-link:focus{background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#f44336}.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label:focus,.mat-tab-group.mat-background-primary .mat-tab-link:focus,.mat-tab-nav-bar.mat-background-primary .mat-tab-label:focus,.mat-tab-nav-bar.mat-background-primary .mat-tab-link:focus{background-color:hsla(0,0%,96%,.3)}.mat-tab-group.mat-background-primary .mat-tab-header,.mat-tab-group.mat-background-primary .mat-tab-links,.mat-tab-nav-bar.mat-background-primary .mat-tab-header,.mat-tab-nav-bar.mat-background-primary .mat-tab-links{background-color:#9e9e9e}.mat-tab-group.mat-background-primary .mat-tab-label,.mat-tab-group.mat-background-primary .mat-tab-link,.mat-tab-nav-bar.mat-background-primary .mat-tab-label,.mat-tab-nav-bar.mat-background-primary .mat-tab-link{color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-primary .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary .mat-ripple-element{background-color:rgba(0,0,0,.12)}.mat-tab-group.mat-background-accent .mat-tab-label:focus,.mat-tab-group.mat-background-accent .mat-tab-link:focus,.mat-tab-nav-bar.mat-background-accent .mat-tab-label:focus,.mat-tab-nav-bar.mat-background-accent .mat-tab-link:focus{background-color:rgba(255,209,128,.3)}.mat-tab-group.mat-background-accent .mat-tab-header,.mat-tab-group.mat-background-accent .mat-tab-links,.mat-tab-nav-bar.mat-background-accent .mat-tab-header,.mat-tab-nav-bar.mat-background-accent .mat-tab-links{background-color:#ffab40}.mat-tab-group.mat-background-accent .mat-tab-label,.mat-tab-group.mat-background-accent .mat-tab-link,.mat-tab-nav-bar.mat-background-accent .mat-tab-label,.mat-tab-nav-bar.mat-background-accent .mat-tab-link{color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-accent .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent .mat-ripple-element{background-color:rgba(0,0,0,.12)}.mat-tab-group.mat-background-warn .mat-tab-label:focus,.mat-tab-group.mat-background-warn .mat-tab-link:focus,.mat-tab-nav-bar.mat-background-warn .mat-tab-label:focus,.mat-tab-nav-bar.mat-background-warn .mat-tab-link:focus{background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-background-warn .mat-tab-header,.mat-tab-group.mat-background-warn .mat-tab-links,.mat-tab-nav-bar.mat-background-warn .mat-tab-header,.mat-tab-nav-bar.mat-background-warn .mat-tab-links{background-color:#f44336}.mat-tab-group.mat-background-warn .mat-tab-label,.mat-tab-group.mat-background-warn .mat-tab-link,.mat-tab-nav-bar.mat-background-warn .mat-tab-label,.mat-tab-nav-bar.mat-background-warn .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled{color:hsla(0,0%,100%,.4)}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:hsla(0,0%,100%,.4)}.mat-tab-group.mat-background-warn .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn .mat-ripple-element{background-color:hsla(0,0%,100%,.12)}.mat-toolbar{background:#f5f5f5;color:rgba(0,0,0,.87)}.mat-toolbar.mat-primary{background:#9e9e9e;color:rgba(0,0,0,.87)}.mat-toolbar.mat-accent{background:#ffab40;color:rgba(0,0,0,.87)}.mat-toolbar.mat-warn{background:#f44336;color:#fff}.mat-tooltip{background:rgba(97,97,97,.9)}.mat-snack-bar-container{background:#323232;color:#fff}.mat-simple-snackbar-action{color:#ffab40}*{font-family:Roboto,Helvetica Neue,sans-serif}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5)}.cm-animate-fat-cursor,.cm-fat-cursor-mark{-webkit-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;background-color:#7e7}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai div.CodeMirror-selected{background:#49483e}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line>span::selection,.cm-s-monokai .CodeMirror-line>span>span::selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line>span::-moz-selection,.cm-s-monokai .CodeMirror-line>span>span::-moz-selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-guttermarker{color:#fff}.cm-s-monokai .CodeMirror-guttermarker-subtle,.cm-s-monokai .CodeMirror-linenumber{color:#d0d0d0}.cm-s-monokai .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-monokai span.cm-comment{color:#75715e}.cm-s-monokai span.cm-atom,.cm-s-monokai span.cm-number{color:#ae81ff}.cm-s-monokai span.cm-attribute,.cm-s-monokai span.cm-property{color:#a6e22e}.cm-s-monokai span.cm-keyword{color:#f92672}.cm-s-monokai span.cm-builtin{color:#66d9ef}.cm-s-monokai span.cm-string{color:#e6db74}.cm-s-monokai span.cm-variable{color:#f8f8f2}.cm-s-monokai span.cm-variable-2{color:#9effff}.cm-s-monokai span.cm-type,.cm-s-monokai span.cm-variable-3{color:#66d9ef}.cm-s-monokai span.cm-def{color:#fd971f}.cm-s-monokai span.cm-bracket{color:#f8f8f2}.cm-s-monokai span.cm-tag{color:#f92672}.cm-s-monokai span.cm-header,.cm-s-monokai span.cm-link{color:#ae81ff}.cm-s-monokai span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-monokai .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}@charset "UTF-8";.ui-widget,.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Roboto,Trebuchet MS,Arial,Helvetica,sans-serif;font-size:1em}.ui-widget :active{outline:none}.ui-widget-content{border:1px solid #d5d5d5;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #d9d9d9;background:#f6f7f9;color:#1b1d1f;font-weight:400}.ui-widget-header a{color:#1b1d1f}.ui-widget-overlay{background:#666;opacity:.5;filter:Alpha(Opacity=50)}.ui-state-default{border:1px solid #d6d6d6;background:#fff;color:#555}.ui-state-default a{color:#555}.ui-state-active{border-color:#bebebe;background:#d6d6d6;color:#212121}.ui-state-active a{color:#212121}.ui-state-highlight{border-color:#156090;background:#186ba0;color:#fff}.ui-state-highlight a{color:#fff}.ui-state-focus{border-color:silver;background:#eee;color:#212121}.ui-state-focus a{color:#212121}.ui-state-error{border-color:#f44336;background:#f5554a;color:#cd0a0a}.ui-state-error a{color:#cd0a0a}.ui-state-disabled,.ui-widget:disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none;cursor:default!important}.ui-state-disabled *,.ui-widget:disabled *{cursor:default!important}.ui-inputtext:enabled:hover{border-color:silver}.ui-inputtext.ui-state-focus,.ui-inputtext:focus{outline:0 none;border-color:silver;box-shadow:0 0 5px silver}.ui-inputgroup .ui-inputgroup-addon{border-color:#d6d6d6;background-color:#f0f0f0;color:#222}.ui-inputgroup .ui-inputgroup-addon:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.ui-inputgroup .ui-inputgroup-addon:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.ui-inputgroup .ui-button:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.ui-inputgroup .ui-button:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.ui-float-label input.ng-dirty.ng-invalid~label{color:#cd0a0a}.ui-autocomplete .ui-autocomplete-multiple-container:not(.ui-state-disabled).ui-state-focus,.ui-autocomplete .ui-autocomplete-multiple-container:not(.ui-state-disabled):hover,.ui-chips>ul:not(.ui-state-disabled).ui-state-focus,.ui-chips>ul:not(.ui-state-disabled):hover{border-color:silver}.ui-button:enabled:hover,.ui-button:focus,.ui-fileupload-choose:not(.ui-state-disabled):hover{outline:0 none;border-color:silver;background:#eee;color:#212121}.ui-button:enabled:hover a,.ui-button:focus a,.ui-fileupload-choose:not(.ui-state-disabled):hover a{color:#212121}.ui-button:enabled:active,.ui-fileupload-choose:not(.ui-state-disabled):active{border-color:#bebebe;background:#d6d6d6;color:#212121}.ui-chkbox-box:not(.ui-state-disabled):not(.ui-state-active):hover{border-color:silver;background:#eee;color:#212121}.ui-chkbox-box:not(.ui-state-disabled):not(.ui-state-active):hover a{color:#212121}.ui-radiobutton-box:not(.ui-state-disabled):not(.ui-state-active):hover{border-color:silver;background:#eee;color:#212121}.ui-radiobutton-box:not(.ui-state-disabled):not(.ui-state-active):hover a{color:#212121}.ui-dropdown:not(.ui-state-disabled):hover{border-color:silver;background:#eee;color:#212121}.ui-dropdown:not(.ui-state-disabled):hover a{color:#212121}.ui-dropdown-panel .ui-dropdown-item:not(.ui-state-highlight):hover{border-color:silver;background:#eee;color:#212121}.ui-dropdown-panel .ui-dropdown-item:not(.ui-state-highlight):hover a{color:#212121}.ui-listbox .ui-listbox-header .ui-listbox-filter-container .fa{color:#222}.ui-listbox:not(.ui-state-disabled) .ui-listbox-item:not(.ui-state-highlight):hover{border-color:silver;background:#eee;color:#212121}.ui-listbox:not(.ui-state-disabled) .ui-listbox-item:not(.ui-state-highlight):hover a{color:#212121}.ui-listbox.ui-state-disabled .ui-chkbox-box:not(.ui-state-active):hover{border-color:#d6d6d6;background:#fff;color:#555}.ui-multiselect:not(.ui-state-disabled):hover{border-color:silver;background:#eee;color:#212121}.ui-multiselect:not(.ui-state-disabled):hover a{color:#212121}.ui-multiselect-panel .ui-multiselect-item:not(.ui-state-highlight):hover{border-color:silver;background:#eee;color:#212121}.ui-multiselect-panel .ui-multiselect-item:not(.ui-state-highlight):hover a{color:#212121}.ui-multiselect-panel .ui-multiselect-close{color:#1b1d1f}.ui-multiselect-panel .ui-multiselect-filter-container .fa{color:#222}.ui-spinner:not(.ui-state-disabled) .ui-spinner-button:enabled:hover{border-color:silver;background:#eee;color:#212121}.ui-spinner:not(.ui-state-disabled) .ui-spinner-button:enabled:hover a{color:#212121}.ui-spinner:not(.ui-state-disabled) .ui-spinner-button:enabled:active{border-color:#bebebe;background:#d6d6d6;color:#212121}.ui-selectbutton .ui-button:not(.ui-state-disabled):not(.ui-state-active):hover{border-color:silver;background:#eee;color:#212121}.ui-selectbutton .ui-button:not(.ui-state-disabled):not(.ui-state-active):hover a{color:#212121}.ui-togglebutton:not(.ui-state-disabled):not(.ui-state-active):hover{border-color:silver;background:#eee;color:#212121}.ui-togglebutton:not(.ui-state-disabled):not(.ui-state-active):hover a{color:#212121}.ui-paginator a:not(.ui-state-disabled):not(.ui-state-active):hover{border-color:silver;background:#eee;color:#212121}.ui-paginator a:not(.ui-state-disabled):not(.ui-state-active):hover a{color:#212121}.ui-paginator a{color:#555}.ui-datatable .ui-rowgroup-header a{color:#1b1d1f}.ui-datatable .ui-sortable-column:not(.ui-state-active):hover{background:#eee;color:#212121}.ui-datatable .ui-row-toggler{color:#222}.ui-datatable tbody.ui-datatable-hoverable-rows>tr.ui-widget-content:not(.ui-state-highlight):hover{cursor:pointer;background:#eee;color:#212121}.ui-orderlist .ui-orderlist-item:not(.ui-state-highlight):hover{border-color:silver;background:#eee;color:#212121}.ui-orderlist .ui-orderlist-item:not(.ui-state-highlight):hover a{color:#212121}.ui-picklist .ui-picklist-item:not(.ui-state-disabled):not(.ui-state-highlight):hover{border-color:silver;background:#eee;color:#212121}.ui-picklist .ui-picklist-item:not(.ui-state-disabled):not(.ui-state-highlight):hover a{color:#212121}.ui-picklist .ui-picklist-droppoint-highlight{border-color:#156090;background:#186ba0;color:#1f1f1f}.ui-picklist .ui-picklist-droppoint-highlight a{color:#1f1f1f}.ui-picklist .ui-picklist-highlight{border-color:#156090;color:#1f1f1f}.ui-picklist .ui-picklist-highlight a{color:#1f1f1f}.ui-tree.ui-treenode-dragover{border-color:#156090}.ui-tree .ui-treenode-content.ui-treenode-selectable .ui-treenode-label:not(.ui-state-highlight):hover{border-color:silver;background:#eee;color:#212121}.ui-tree .ui-treenode-content.ui-treenode-selectable .ui-treenode-label:not(.ui-state-highlight):hover a{color:#212121}.ui-tree .ui-treenode-content.ui-treenode-dragover{background:#d6d6d6;color:#212121}.ui-tree.ui-tree-horizontal .ui-treenode-content.ui-treenode-selectable .ui-treenode-label:not(.ui-state-highlight):hover{background-color:inherit;color:inherit}.ui-tree.ui-tree-horizontal .ui-treenode-content.ui-treenode-selectable:not(.ui-state-highlight):hover{border-color:silver;background:#eee;color:#212121}.ui-tree.ui-tree-horizontal .ui-treenode-content.ui-treenode-selectable:not(.ui-state-highlight):hover a{color:#212121}.ui-treetable .ui-treetable-row.ui-treetable-row-selectable:not(.ui-state-highlight):hover{background:#eee;color:#212121}.ui-organizationchart .ui-organizationchart-node-content.ui-organizationchart-selectable-node:not(.ui-state-highlight):hover{border-color:silver;background:#eee;color:#212121}.ui-organizationchart .ui-organizationchart-node-content.ui-organizationchart-selectable-node:not(.ui-state-highlight):hover a{color:#212121}.ui-accordion .ui-accordion-header:not(.ui-state-active):not(.ui-state-disabled):hover{border-color:silver;background:#eee;color:#212121}.ui-accordion .ui-accordion-header:not(.ui-state-active):not(.ui-state-disabled):hover a{color:#212121}.ui-fieldset.ui-fieldset-toggleable .ui-fieldset-legend:hover{border-color:silver;background:#eee;color:#212121}.ui-fieldset.ui-fieldset-toggleable .ui-fieldset-legend:hover a{color:#212121}.ui-panel .ui-panel-titlebar .ui-panel-titlebar-icon:hover{border-color:silver;background:#eee;color:#212121}.ui-panel .ui-panel-titlebar .ui-panel-titlebar-icon:hover a{color:#212121}.ui-tabview .ui-tabview-nav li:not(.ui-state-active):not(.ui-state-disabled):hover{border-color:silver;background:#eee;color:#212121}.ui-tabview .ui-tabview-nav li:not(.ui-state-active):not(.ui-state-disabled):hover a{color:#212121}.ui-dialog .ui-dialog-titlebar-icon{color:#1b1d1f}.ui-dialog .ui-dialog-titlebar-icon:hover{border-color:silver;background:#eee;color:#212121}.ui-dialog .ui-dialog-titlebar-icon:hover a{color:#212121}.ui-sidebar .ui-sidebar-close{color:#1b1d1f}.ui-sidebar .ui-sidebar-close:hover{border-color:silver;background:#eee;color:#212121}.ui-sidebar .ui-sidebar-close:hover a{color:#212121}.ui-overlaypanel .ui-overlaypanel-close:hover{border-color:silver;background:#eee;color:#212121}.ui-overlaypanel .ui-overlaypanel-close:hover a{color:#212121}.ui-inplace .ui-inplace-display:hover{border-color:silver;background:#eee;color:#212121}.ui-inplace .ui-inplace-display:hover a{color:#212121}.ui-breadcrumb a{color:#1b1d1f}.ui-menu .ui-menuitem .ui-menuitem-link{color:#222}.ui-menu .ui-menuitem .ui-menuitem-link:hover{border-color:silver;background:#eee;color:#212121;border-color:transparent}.ui-menu .ui-menuitem .ui-menuitem-link:hover a{color:#212121}.ui-menu .ui-menuitem.ui-menuitem-active>.ui-menuitem-link{border-color:silver;background:#eee;color:#212121;border-color:transparent}.ui-menu .ui-menuitem.ui-menuitem-active>.ui-menuitem-link a{color:#212121}.ui-tabmenu .ui-tabmenu-nav li:not(.ui-state-active):hover{border-color:silver;background:#eee;color:#212121}.ui-tabmenu .ui-tabmenu-nav li:not(.ui-state-active):hover a{color:#212121}.ui-steps .ui-steps-item:not(.ui-state-highlight):not(.ui-state-disabled):hover{border-color:silver;background:#eee;color:#212121}.ui-steps .ui-steps-item:not(.ui-state-highlight):not(.ui-state-disabled):hover a{color:#212121}.ui-panelmenu .ui-panelmenu-header:not(.ui-state-active):hover{border-color:silver;background:#eee;color:#212121;border-color:#d6d6d6}.ui-panelmenu .ui-panelmenu-header.ui-state-active a,.ui-panelmenu .ui-panelmenu-header:not(.ui-state-active):hover a{color:#212121}.ui-panelmenu .ui-panelmenu-content .ui-menuitem-link{color:#222}.ui-panelmenu .ui-panelmenu-content .ui-menuitem-link:hover{border-color:silver;background:#eee;color:#212121;border-color:transparent}.ui-panelmenu .ui-panelmenu-content .ui-menuitem-link:hover a{color:#212121}.ui-datepicker .ui-datepicker-header a{color:#1b1d1f}.ui-datepicker .ui-datepicker-header a:hover{border-color:silver;background:#eee;color:#212121}.ui-datepicker .ui-datepicker-header a:hover a{color:#212121}.ui-datepicker .ui-datepicker-calendar td:not(.ui-state-disabled) a:hover{border-color:silver;background:#eee;color:#212121}.ui-datepicker .ui-datepicker-calendar td:not(.ui-state-disabled) a:hover a{color:#212121}.fc .fc-toolbar .fc-prev-button .ui-icon-circle-triangle-w{margin-top:.3em;background:none!important;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-indent:0!important;text-align:center}.fc .fc-toolbar .fc-prev-button .ui-icon-circle-triangle-w:before{content:"\F053"}.fc .fc-toolbar .fc-next-button .ui-icon-circle-triangle-e{margin-top:.3em;background:none!important;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-indent:0!important;text-align:center}.fc .fc-toolbar .fc-next-button .ui-icon-circle-triangle-e:before{content:"\F054"}.ui-rating a{color:#222}.ui-organizationchart .ui-organizationchart-line-down{background-color:#bcbcbc}.ui-organizationchart .ui-organizationchart-line-left{border-right:1px solid #bcbcbc}.ui-organizationchart .ui-organizationchart-line-top{border-top:1px solid #bcbcbc}.ui-organizationchart .ui-organizationchart-node-content{border-color:#bcbcbc}.ui-organizationchart .ui-organizationchart-node-content .ui-node-toggler{color:#bcbcbc}.ui-inputtext.ng-dirty.ng-invalid,p-autocomplete.ng-dirty.ng-invalid>.ui-autocomplete>.ui-inputtext,p-calendar.ng-dirty.ng-invalid>.ui-calendar>.ui-inputtext,p-checkbox.ng-dirty.ng-invalid .ui-chkbox-box,p-chips.ng-dirty.ng-invalid>.ui-inputtext,p-dropdown.ng-dirty.ng-invalid>.ui-dropdown,p-inputmask.ng-dirty.ng-invalid>.ui-inputtext,p-inputswitch.ng-dirty.ng-invalid .ui-inputswitch,p-listbox.ng-dirty.ng-invalid .ui-inputtext,p-multiselect.ng-dirty.ng-invalid>.ui-multiselect,p-radiobutton.ng-dirty.ng-invalid .ui-radiobutton-box,p-selectbutton.ng-dirty.ng-invalid .ui-button,p-spinner.ng-dirty.ng-invalid>.ui-inputtext,p-togglebutton.ng-dirty.ng-invalid .ui-button{border-bottom-color:#f44336}.ui-corner-tl{border-top-left-radius:3px}.ui-corner-tr{border-top-right-radius:3px}.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-br{border-bottom-right-radius:3px}.ui-corner-top{border-top-left-radius:3px;border-top-right-radius:3px}.ui-corner-bottom{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.ui-corner-right{border-top-right-radius:3px;border-bottom-right-radius:3px}.ui-corner-left{border-top-left-radius:3px;border-bottom-left-radius:3px}.ui-corner-all{border-radius:3px}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(roboto-v15-latin-regular.9f916e330c478bbfa2a0.eot);src:local("Roboto"),local("Roboto-Regular"),url(roboto-v15-latin-regular.9f916e330c478bbfa2a0.eot?#iefix) format("embedded-opentype"),url(roboto-v15-latin-regular.7e367be02cd17a96d513.woff2) format("woff2"),url(roboto-v15-latin-regular.16e1d930cf13fb7a9563.woff) format("woff"),url(roboto-v15-latin-regular.38861cba61c66739c145.ttf) format("truetype"),url(roboto-v15-latin-regular.3d3a53586bd78d1069ae.svg#Roboto) format("svg")}.ui-widget-header{background:#f6f7f9 0 0 repeat-x;background:linear-gradient(180deg,#f6f7f9 0,#ebedf0)}.ui-accordion .ui-accordion-header{background:#f6f7f9;border-top:1px solid #d9d9d9}.ui-accordion .ui-accordion-header a{color:#1b1d1f}.ui-accordion .ui-accordion-header:not(.ui-state-active):not(.ui-state-disabled):hover{background:#ededf0}.ui-accordion .ui-accordion-header.ui-state-active{background:#fff;border-left-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-radius:0}.ui-accordion .ui-accordion-content,.ui-tabview.ui-widget-content{border:0 none}.ui-tabview .ui-tabview-nav{background:transparent}.ui-tabview .ui-tabview-nav>li.ui-state-default{background:#f6f7f9}.ui-tabview .ui-tabview-nav>li.ui-state-active{background:#fff;font-weight:400;color:#555}.ui-tabview .ui-tabview-nav>li:not(.ui-state-active):not(.ui-state-disabled):hover{background:#ededf0}.ui-spinner:not(.ui-state-disabled) .ui-spinner-button:enabled:hover{border:1px solid #1f89ce;background:#1f89ce;outline:0 none;color:#fff}.ui-spinner:not(.ui-state-disabled) .ui-spinner-button:enabled:active{border:1px solid #156090;background:#186ba0;color:#fff}.ui-slider{position:relative;text-align:left;background:#838688;border:none;box-shadow:inset 0 1px 3px rgba(0,0,0,.6)}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:17px!important;height:21px!important;cursor:default;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAVCAYAAAAjODzXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZBQjgwQThDRjQ4ODExRTBBMzgxQjZGRjMwN0M4RjFGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZBQjgwQThERjQ4ODExRTBBMzgxQjZGRjMwN0M4RjFGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkFCODBBOEFGNDg4MTFFMEEzODFCNkZGMzA3QzhGMUYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkFCODBBOEJGNDg4MTFFMEEzODFCNkZGMzA3QzhGMUYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5U68QXAAAED0lEQVR42qyWzU9jVRjGz+29pdBSKJWAksmMGheTyAwLKCRE/gAXAq5MEHZujCtCov8CS5dOMgkLozALo0ZCYgTdkgyTAhqR8GUDmGKhQin97q3Pc3zP5FpnGJ16k6f33N7z/u77dc69lvrn4RwcHLxXq9XeKhaLt6vV6i3XdRO4/qVUKn0Ti8XuY05FXX/8Z4blHa+srLw2NDT0WVNTUyyTyaiTkxN1dnamQqGQCgaD+gzgw/X19XfHx8d3YVOrc+C5GT4B+AB4Y3h4+BEmxxzHUX6//7Es6y9/ASAoNjIy8mhhYaHXY98wQ//09/dHent7P8ekcLlc1gYtLS1ahCA61dzcrAKBgAb6fL7w4ODgp5xmvGiUQUf8s7OzH6J+N7LZrEJNVaVS0cZMIwEGaCCcA2jf8vLyR+yH/4NBSDgajb59eXmpbNvWqQNQTw6HwxrG2hKCplP5fF6LUbe3t78D+48ZUaMMOhKBZ7fYWPScN40ikYiGtLa2qkKhoPigXC6nx4wYdjdpT0caZdCREOoVMDcoAugxwWw6dr75H8vv8RjwJtrrGjfIoCMODIpIZYAp1ZsADNva2lRHR4dKJpOqu7tbR0SwiYg1xsGutLlsG2XQkcrp6Wm6q6vrJRqzuVhXnk2EjEaWncI8HQkh+/v7Z7CvktYog6vmanNzM07P0Tg6CjaVSa05p9NpHQnTyoZkdKurqw9pT21sbKw3wuAuE4WXb66trd3r6ekJcQI7npFwKRpDNiGjpLgCdnZ2Un19fe/D/geWRhifPAfjA9h/z/pW6TFS1DI6OnoHk22mjGIUhBHCZQc2YH7eK09NTd07Ojpahv1vrDMZe3t7rWNjY3fB8P0bxuTk5P3j4+PvyKAj7K7i7u7u1dLSkosd8tXOzs6AgfDM2mJV6J1xe3s7A8BCPB7/EnZbUF4YJTDyi4uLamBg4OXrGFtbW5cTExNfoJxfwe5nMmzZodlw2VQqdTE3N5fiNo0NKoRa20i5D5FUDw8Pc/Pz89vT09MPMO9bzN+ALsQJS96meTRtDowLZCiMngkKw0LDuolEIg/G3szMzNd4EZIRh/7g883bl03L9dwF3YZeh16BXuD2LUvsFPoV+kkykWIWPG9gMoLQDeiuMLhZdXgYfGgC+hHahI6hAoOxPJ8DtryAotCLUKeAHYn2Sh6ehNIG4HHEkge2if1NCSwkbDKy0O/iTFKu+X/NEUjN1BnKyPhcwJZcl8WZrIzduu+RmpQ4J44qKV1AsuVKP53L/bzM1wy7DlTzOOXKRDpXNPuFjCtP+CjycipiWxGnCxLAuShbV9a/faGZa0vK4Zjt2wM3D3Cv+Uw0ZXYkG/VZLT0po9Y1MKvuvjdjzzq89t6vOPdpnD8FGACiWVtxaofC7AAAAABJRU5ErkJggg==) 0 0 no-repeat;outline:none;border-radius:0;border:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background:#14a4ff;box-shadow:inset 0 1px 3px rgba(0,0,0,.6);border-radius:3px}.ui-slider .ui-slider-handle.ui-state-active{background-position:-17px 0}.ui-slider-horizontal{height:6px}.ui-slider-horizontal .ui-slider-handle{top:-2px!important;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.1em!important;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-progressbar.ui-progressbar-determinate .ui-progressbar-value{border:0 none;background:#8ec5fc}.ui-progressbar.ui-progressbar-determinate .ui-progressbar .ui-progressbar-label{color:#222}.ui-progressbar.ui-progressbar-indeterminate{background:#8ec5fc}.ui-progressbar.ui-progressbar-indeterminate .ui-progressbar-value{border:0 none;background-color:#186ba0}.ui-button,.ui-widget-content .ui-button,.ui-widget-header .ui-button,.ui-widget.ui-button{border:1px solid #2399e5;color:#fff;background:#2399e5;transition:background-color .2s}.ui-button:enabled:hover,.ui-button:focus,.ui-widget-content .ui-button:enabled:hover,.ui-widget-content .ui-button:focus,.ui-widget-header .ui-button:enabled:hover,.ui-widget-header .ui-button:focus,.ui-widget.ui-button:enabled:hover,.ui-widget.ui-button:focus{border:1px solid #1f89ce;background:#1f89ce;outline:0 none;color:#fff}.ui-button:enabled:active,.ui-widget-content .ui-button:enabled:active,.ui-widget-header .ui-button:enabled:active,.ui-widget.ui-button:enabled:active{border:1px solid #156090;background:#186ba0;color:#fff}.ui-fileupload-choose.ui-state-focus,.ui-fileupload-choose:not(.ui-state-disabled):hover{border:1px solid #1f89ce;background:#1f89ce;outline:0 none;color:#fff}.ui-chkbox-box.ui-state-active,.ui-fileupload-choose:not(.ui-state-disabled):active,.ui-radiobutton-box.ui-state-active{border:1px solid #156090;background:#186ba0;color:#fff}.ui-chkbox-box.ui-state-focus,.ui-radiobutton-box.ui-state-focus{box-shadow:0 0 5px #1f89ce}.ui-chkbox-box.ui-state-focus.ui-state-active{background:#186ba0}.ui-inputtext{background:#fff;color:#222;transition:.2s}.ui-inputtext.ui-state-focus,.ui-inputtext:focus{box-shadow:0 0 5px #1f89ce}.ui-inputswitch-on{background:#186ba0!important;color:#fff!important}.ui-paginator .ui-paginator-page.ui-state-active{background:#186ba0;color:#fff;border-color:#156090}.ui-datatable th.ui-state-default{background:#ebedf0;border-color:#d9d9d9}.ui-datatable th.ui-sortable-column:not(.ui-state-active):hover{background:#d3d5d8;border-color:#d9d9d9}.ui-datatable th.ui-state-active{background:#186ba0;color:#fff}.ui-datatable tbody>tr.ui-widget-content{border-color:#d9d9d9}.ui-datatable tbody>tr.ui-widget-content.ui-datatable-odd{background-color:#fafafb}.ui-datatable tbody>tr.ui-widget-content.ui-state-highlight{background-color:#186ba0;color:#fff}.ui-datatable tfoot td.ui-state-default{background:#ebedf0;border-color:#d9d9d9}.ui-panel.ui-widget{padding:0}.ui-panel.ui-widget .ui-panel-titlebar.ui-corner-all{-moz-border-radius-bottom-left:0;border-bottom-left-radius:0;-moz-border-radius-bottom-right:0;border-bottom-right-radius:0}.ui-panel.ui-widget .ui-panel-titlebar{border-width:0 0 1px 0}.ui-panel.ui-widget .ui-panel-titlebar-icon span{position:relative;top:1px}.ui-treetable th.ui-state-default{background:#ebedf0;border-color:#d9d9d9}.ui-selectbutton .ui-button.ui-state-default,.ui-togglebutton.ui-button.ui-state-default{border:1px solid #d6d6d6;background:#fff;font-weight:400;color:#555}.ui-selectbutton .ui-button.ui-state-focus,.ui-selectbutton .ui-button.ui-state-hover,.ui-togglebutton.ui-button.ui-state-focus,.ui-togglebutton.ui-button.ui-state-hover{border:1px solid silver;background:#eee;font-weight:400;color:#212121}.ui-selectbutton .ui-button.ui-state-focus.ui-state-active,.ui-togglebutton.ui-button.ui-state-focus{box-shadow:0 0 5px #1f89ce}.ui-selectbutton .ui-button.ui-state-active,.ui-togglebutton.ui-button.ui-state-active{border:1px solid #156090;background:#186ba0;color:#fff}.ui-multiselect .ui-multiselect-label{background-color:#fff}.ui-dropdown.ui-state-focus,.ui-multiselect.ui-state-focus{box-shadow:0 0 5px #1f89ce}.ui-growl-item-container.ui-state-highlight.ui-growl-message-info{background-color:#2196f3;border-color:#2196f3}.ui-growl-item-container.ui-state-highlight.ui-growl-message-error{background-color:#f44336;border-color:#f44336}.ui-growl-item-container.ui-state-highlight.ui-growl-message-warn{background-color:#ffb300;border-color:#ffb300}.ui-growl-item-container.ui-state-highlight.ui-growl-message-success{background-color:#4caf50;border-color:#4caf50}.ui-tabmenu{border:0 none}.ui-tabmenu .ui-tabmenu-nav{background:none}.ui-tabmenu .ui-tabmenu-nav>li.ui-state-default{background:#f6f7f9}.ui-tabmenu .ui-tabmenu-nav>li.ui-state-active{background:#fff;font-weight:400;color:#555}.ui-tabmenu .ui-tabmenu-nav>li:not(.ui-state-active):not(.ui-state-disabled):hover{background:#ededf0}.ui-menu,.ui-menu .ui-menu-child{border:1px solid #d9d9d9;color:#1b1d1f;background:#f6f7f9 0 0 repeat-x;background:linear-gradient(180deg,#f6f7f9 0,#ebedf0)}.ui-menu .ui-menuitem.ui-menuitem-active>.ui-menuitem-link,.ui-menu .ui-menuitem .ui-menuitem-link:hover{background-color:#a6a6a6;color:#fff}.ui-panelmenu .ui-panelmenu-header.ui-state-active,.ui-panelmenu .ui-panelmenu-header.ui-state-active a{border-color:#156090;background:#186ba0;color:#fff}.ui-datepicker.ui-widget{padding:0}.ui-datepicker.ui-widget .ui-datepicker-header{border-radius:0;border-top:0 none;border-left:0 none;border-right:0 none}.ui-datepicker.ui-widget .ui-datepicker-header a:hover{border-width:1px}.ui-datepicker.ui-widget .ui-datepicker-calendar{margin:0}.ui-datepicker.ui-widget .ui-datepicker-calendar thead th{background-color:#f6f8fa;padding:8px}.ui-datepicker.ui-widget .ui-datepicker-calendar td{border-bottom:1px solid hsla(0,0%,84%,.5);padding:0}.ui-datepicker.ui-widget .ui-datepicker-calendar td a{border:0 none;text-align:center;padding:8px}.ui-datepicker.ui-widget .ui-datepicker-calendar td a.ui-state-highlight{background-color:#d6d6d6;color:#212121}.ui-datepicker.ui-widget .ui-datepicker-calendar td a.ui-state-active{background-color:#186ba0;color:#fff}.ui-datepicker.ui-widget .ui-datepicker-calendar tr:last-child td{border-bottom:0 none}.ui-datepicker.ui-widget .ui-timepicker{border-bottom:0 none;border-left:0 none;border-right:0 none;border-radius:0}.ui-datepicker.ui-widget.ui-datepicker-timeonly .ui-timepicker{border-top:0 none}.ui-steps .ui-steps-item.ui-state-highlight .ui-menuitem-link{color:#fff}.ui-dialog.ui-widget .ui-dialog-titlebar{padding:1em 1.5em}.ui-dialog.ui-widget .ui-dialog-titlebar .ui-dialog-title{font-size:1.25em}.ui-dialog.ui-widget .ui-dialog-content{padding:1em 1.5em}.fc .fc-button-group .ui-state-active{border:1px solid #156090;background:#186ba0;color:#fff}.ui-widget,.ui-widget *{box-sizing:border-box}.ui-helper-hidden{display:none!important}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-hidden-accessible input,.ui-helper-hidden-accessible select{-webkit-transform:scale(0);transform:scale(0)}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled,.ui-state-disabled a{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.3)}.ui-unselectable-text{-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none}.ui-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}.ui-overflow-hidden{overflow:hidden}::-webkit-input-placeholder{color:#898989}:-moz-placeholder,::-moz-placeholder{color:#898989;opacity:1}:-ms-input-placeholder,::-ms-input-placeholder{color:#898989}.ui-placeholder{color:#898989}.ui-accordion{width:100%}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1}.ui-accordion .ui-accordion-header a{display:block;padding:.5em .5em .5em 2em}.ui-accordion .ui-accordion-header>.fa{position:absolute;left:.5em;top:50%;margin-top:-.5em}.ui-accordion .ui-accordion-content{padding:1em;border-top:0;overflow:visible;zoom:1}.ui-accordion .ui-accordion-header.ui-state-disabled,.ui-accordion .ui-accordion-header.ui-state-disabled a{cursor:default}.ui-accordion-content-wrapper-overflown{overflow:hidden}.ui-rtl .ui-accordion .ui-accordion-header a{padding:.5em 2em .5em .5em}.ui-rtl .ui-accordion .ui-accordion-header>.fa{left:auto;right:.5em}.ui-rtl .ui-accordion .ui-accordion-header>.fa-caret-right:before{content:"\F0D9"}.ui-autocomplete{width:auto;zoom:1;cursor:pointer;box-shadow:none;position:relative;display:inline-block}.ui-autocomplete .ui-autocomplete-dropdown{height:100%;width:2em;margin-right:0;vertical-align:top}.ui-autocomplete .ui-autocomplete-input{padding-right:1.5em}.ui-autocomplete-loader{position:absolute;right:.25em;top:50%;margin-top:-.5em}.ui-autocomplete-query{font-weight:700}.ui-autocomplete-panel{position:absolute;overflow:auto}.ui-autocomplete-panel .ui-autocomplete-list{padding:.4em;border:0 none}.ui-autocomplete-panel .ui-autocomplete-list-item{border:0 none;cursor:pointer;font-weight:400;margin:1px 0;padding:.186em .313em;text-align:left}.ui-autocomplete .ui-button-icon-only,.ui-autocomplete .ui-button-icon-only:enabled:active,.ui-autocomplete .ui-button-icon-only:enabled:focus,.ui-autocomplete .ui-button-icon-only:enabled:hover{border-left:0 none}.ui-autocomplete-multiple-container{display:inline-block;vertical-align:middle}.ui-autocomplete-multiple-container.ui-inputtext{clear:left;cursor:text;list-style-type:none;margin:0;overflow:hidden;padding:0 1.5em 0 .25em}.ui-autocomplete-token{cursor:default;display:inline-block;vertical-align:middle;overflow:hidden;padding:.125em .5em;white-space:nowrap;position:relative;margin-right:.125em;border:0 none;font-size:.9em}.ui-autocomplete-token-label{display:block;margin-right:2em}.ui-autocomplete-token-icon{margin-top:-.5em;position:absolute;right:.2em;top:50%;cursor:pointer}.ui-autocomplete-input-token{display:inline-block;vertical-align:middle;list-style-type:none;margin:0 0 0 .125em;padding:.25em .25em .25em 0}.ui-autocomplete-input-token input{border:0 none;width:10em;outline:medium none;background-color:transparent;margin:0;padding:0;box-shadow:none;border-radius:0}.ui-autocomplete-dd .ui-autocomplete-loader{right:2.25em}.ui-autocomplete-dd .ui-autocomplete-multiple-container.ui-corner-all,.ui-autocomplete-dd input.ui-corner-all{border-top-right-radius:0;border-bottom-right-radius:0}.ui-autocomplete-dd .ui-autocomplete-dropdown.ui-corner-all{border-top-left-radius:0;border-bottom-left-radius:0}.ui-fluid .ui-autocomplete,.ui-fluid .ui-autocomplete-input,.ui-fluid p-autocomplete{width:100%}.ui-fluid .ui-autocomplete.ui-autocomplete-dd .ui-autocomplete-input,.ui-fluid .ui-autocomplete.ui-autocomplete-dd .ui-autocomplete-multiple-container{width:calc(100% - 2em)}.ui-fluid .ui-autocomplete .ui-autocomplete-dropdown.ui-button{width:2em}.ui-blockui{position:absolute;top:0;left:0;width:100%;height:100%}.ui-blockui-document{position:fixed}.ui-breadcrumb{margin:0;padding:0;padding:.3em}.ui-breadcrumb ul{margin:0;padding:0}.ui-breadcrumb ul li{display:inline-block;vertical-align:middle}.ui-breadcrumb ul li .ui-menuitem-link{text-decoration:none}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button-icon-only{width:2em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.25em 1em}.ui-button-icon-only .ui-button-text{padding:.25em;text-indent:-9999999px}.ui-button-text-icon-left .ui-button-text{padding:.25em 1em .25em 2.1em}.ui-button-text-icon-right .ui-button-text{padding:.25em 2.1em .25em 1em}.ui-button-icon-only .fa,.ui-button-text-icon-left .fa,.ui-button-text-icon-right .fa{position:absolute;top:50%;margin-top:-.5em}.ui-button-icon-only .fa{top:50%;left:50%;margin-top:-.5em;margin-left:-.6em}.ui-button-icon-left{left:.5em}.ui-button-icon-right{right:.5em}.ui-buttonset .ui-button{margin-left:0;margin-right:0}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-fluid .ui-button{width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.ui-fluid .ui-button-text-icon-left .ui-button-text,.ui-fluid .ui-button-text-icon-right .ui-button-text{padding-left:1em;padding-right:1em}.ui-fluid .ui-buttonset,.ui-fluid .ui-buttonset.ui-buttonset-1 .ui-button{width:100%}.ui-fluid .ui-buttonset.ui-buttonset-2 .ui-button{width:50%}.ui-fluid .ui-buttonset.ui-buttonset-3 .ui-button{width:33.3%}.ui-fluid .ui-buttonset.ui-buttonset-4 .ui-button{width:25%}.ui-fluid .ui-buttonset.ui-buttonset-5 .ui-button{width:20%}.ui-fluid .ui-buttonset.ui-buttonset-6 .ui-button{width:16.6%}@media(max-width:640px){.ui-fluid .ui-buttonset.ui-buttonset-1 .ui-button,.ui-fluid .ui-buttonset.ui-buttonset-2 .ui-button,.ui-fluid .ui-buttonset.ui-buttonset-3 .ui-button,.ui-fluid .ui-buttonset.ui-buttonset-4 .ui-button,.ui-fluid .ui-buttonset.ui-buttonset-5 .ui-button,.ui-fluid .ui-buttonset.ui-buttonset-6 .ui-button{width:100%}}.ui-button.ui-button-secondary.ui-state-default,.ui-splitbutton.ui-button-secondary .ui-button.ui-state-default{background-color:#fff;border-color:#ccc;color:#373a3c}.ui-button.ui-button-secondary:enabled:hover,.ui-button.ui-button-secondary:focus,.ui-splitbutton.ui-button-secondary .ui-button:enabled:hover,.ui-splitbutton.ui-button-secondary .ui-button:focus{background-color:#f2f2f2;border-color:#ccc;color:#373a3c}.ui-button.ui-button-secondary:enabled:active,.ui-splitbutton.ui-button-secondary .ui-button:enabled:active{background-color:#e6e6e6;border-color:#ccc;color:#373a3c}.ui-button.ui-button-success.ui-state-default,.ui-splitbutton.ui-button-success .ui-button.ui-state-default{background-color:#5cb85c;border-color:#5cb85c;color:#fff}.ui-button.ui-button-success:enabled:hover,.ui-button.ui-button-success:focus,.ui-splitbutton.ui-button-success .ui-button:enabled:hover,.ui-splitbutton.ui-button-success .ui-button:focus{background-color:#4cae4c;border-color:#5cb85c}.ui-button.ui-button-success:enabled:active,.ui-splitbutton.ui-button-success .ui-button:enabled:active{background-color:#449d44;border-color:#5cb85c}.ui-button.ui-button-info.ui-state-default,.ui-splitbutton.ui-button-info .ui-button.ui-state-default{background-color:#5bc0de;border-color:#5bc0de;color:#fff}.ui-button.ui-button-info:enabled:hover,.ui-button.ui-button-info:focus,.ui-splitbutton.ui-button-info .ui-button:enabled:hover,.ui-splitbutton.ui-button-info .ui-button:focus{background-color:#46b8da;border-color:#5bc0de}.ui-button.ui-button-info:enabled:active,.ui-splitbutton.ui-button-info .ui-button:enabled:active{background-color:#31b0d5;border-color:#5bc0de}.ui-button.ui-button-warning.ui-state-default,.ui-splitbutton.ui-button-warning .ui-button.ui-state-default{background-color:#f0ad4e;border-color:#f0ad4e;color:#fff}.ui-button.ui-button-warning:enabled:hover,.ui-button.ui-button-warning:focus,.ui-splitbutton.ui-button-warning .ui-button:enabled:hover,.ui-splitbutton.ui-button-warning .ui-button:focus{background-color:#eea236;border-color:#f0ad4e}.ui-button.ui-button-warning:enabled:active,.ui-splitbutton.ui-button-warning .ui-button:enabled:active{background-color:#ec971f;border-color:#f0ad4e}.ui-button.ui-button-danger.ui-state-default,.ui-splitbutton.ui-button-danger .ui-button.ui-state-default{background-color:#d9534f;border-color:#d9534f;color:#fff}.ui-button.ui-button-danger:enabled:hover,.ui-button.ui-button-danger:focus,.ui-splitbutton.ui-button-danger .ui-button:enabled:hover,.ui-splitbutton.ui-button-danger .ui-button:focus{background-color:#d43f3a;border-color:#d9534f}.ui-button.ui-button-danger:enabled:active,.ui-splitbutton.ui-button-danger .ui-button:enabled:active{background-color:#c9302c;border-color:#d9534f}.ui-calendar{position:relative;display:inline-block}.ui-calendar .ui-calendar-button{position:absolute;height:100%;border-top-left-radius:0;border-bottom-left-radius:0;width:2em;border-left:0 none}.ui-calendar .ui-calendar-button:enabled:hover,.ui-calendar .ui-calendar-button:focus{border-left:0 none}.ui-fluid .ui-calendar{width:100%}.ui-fluid .ui-calendar-button{width:2em}.ui-fluid .ui-datepicker-buttonbar button{width:auto}.ui-fluid .ui-calendar.ui-calendar-w-btn .ui-inputtext{width:calc(100% - 2em)}.ui-datepicker{width:17em;padding:.2em;display:none;position:absolute}.ui-datepicker.ui-datepicker-inline{display:inline-block;position:static}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:.125em;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev{left:.125em}.ui-datepicker .ui-datepicker-next{right:.125em}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;position:absolute;left:50%;top:50%;margin-top:-.5em}.ui-datepicker .ui-datepicker-prev span{margin-left:-.25em}.ui-datepicker .ui-datepicker-next span{margin-left:-.125em}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:.125em 0;vertical-align:middle}.ui-datepicker select.ui-datepicker-month{width:55%}.ui-datepicker select.ui-datepicker-year{width:35%}.ui-datepicker select.ui-datepicker-month{margin-right:.25em}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:.125em}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker .ui-datepicker-buttonbar{border-left:0 none;border-right:0 none;border-bottom:0 none;padding:.2em}.ui-datepicker .ui-datepicker-buttonbar>.ui-g>div:last-child{text-align:right}.ui-datepicker .ui-datepicker-buttonbar>.ui-g>div{padding:0}.ui-calendar.ui-calendar-w-btn input{border-top-right-radius:0;border-bottom-right-radius:0}.ui-timepicker{text-align:center;padding:.5em 0}.ui-timepicker>div{display:inline-block;margin-left:.5em;min-width:1.5em}.ui-timepicker>.ui-minute-picker,.ui-timepicker>.ui-second-picker{margin-left:0}.ui-timepicker>.ui-separator{margin-left:0;min-width:.75em}.ui-timepicker>.ui-separator a{visibility:hidden}.ui-timepicker>div a{display:block;opacity:.7;filter:Alpha(Opacity=70)}.ui-timepicker>div a:hover{display:block;opacity:1;filter:Alpha(Opacity=100)}.ui-carousel{position:relative;padding:.063em}.ui-carousel .ui-carousel-viewport .ui-carousel-items{list-style:none outside none;margin:0;padding:0;position:relative;width:32000px;left:0}.ui-carousel .ui-carousel-viewport .ui-carousel-items .ui-carousel-item{margin:1px;padding:0;float:left;box-sizing:border-box}.ui-carousel .ui-carousel-viewport{overflow:hidden;position:relative;border:0}.ui-carousel .ui-carousel-footer{margin:1px 1px 0 1px;padding:.5em;overflow:hidden}.ui-carousel .ui-carousel-header{margin:0 1px;overflow:hidden;padding:.625em}.ui-carousel .ui-carousel-header .ui-carousel-header-title{display:inline-block;overflow:hidden}.ui-carousel .ui-carousel-dropdown,.ui-carousel .ui-carousel-mobiledropdown{float:right;margin:0 .625em;background-image:none}.ui-carousel .ui-carousel-dropdown option,.ui-carousel .ui-carousel-mobiledropdown option{background-image:none;border:0 none;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}.ui-carousel .ui-carousel-button{float:right;margin:.125em}.ui-carousel .ui-carousel-page-link{float:left;margin:0 .125em;text-decoration:none}.ui-carousel .ui-carousel-button,.ui-carousel .ui-carousel-page-link{cursor:pointer}.ui-carousel .ui-carousel-page-links{margin:0 .5em;margin-top:.125em;float:right}.ui-carousel .ui-carousel-mobiledropdown{display:none}.ui-chkbox{display:inline-block;cursor:pointer;vertical-align:middle;margin-right:.25em}.ui-chkbox .ui-chkbox-box{width:1.125em;height:1.125em;line-height:1.125em;border-radius:2px;text-align:center}.ui-chkbox .ui-chkbox-icon{display:block}.ui-chkbox-label{vertical-align:middle}.ui-chips>ul.ui-inputtext{clear:left;cursor:text;list-style-type:none;margin:0;overflow:hidden;padding:0 .25em}.ui-chips-token{cursor:default;display:inline-block;vertical-align:middle;overflow:hidden;padding:.125em .5em;white-space:nowrap;position:relative;margin-right:.125em;border:0 none;font-size:.9em}.ui-chips-token .ui-chips-token-label{display:block;margin-right:2em}.ui-chips>.ui-state-disabled .ui-chips-token-label{margin-right:0}.ui-chips-token .ui-chips-token-icon{margin-top:-.5em;position:absolute;right:.2em;top:50%;cursor:pointer}.ui-chips-input-token{display:inline-block;vertical-align:middle;list-style-type:none;margin:0 0 0 .125em;padding:.25em .25em .25em 0}.ui-chips-input-token input{border:0 none;width:10em;outline:medium none;background-color:transparent;margin:0;padding:0;box-shadow:none;border-radius:0}.ui-colorpicker{display:inline-block}.ui-colorpicker-dragging{cursor:pointer}.ui-colorpicker-overlay{position:relative}.ui-colorpicker-panel{position:relative;width:193px;height:166px;background-color:#323232;border-color:#191919}.ui-colorpicker-overlay-panel{display:none;position:absolute}.ui-colorpicker-preview{width:2em;cursor:pointer}.ui-colorpicker-panel .ui-colorpicker-content{position:relative}.ui-colorpicker-panel .ui-colorpicker-color-selector{width:150px;height:150px;top:8px;left:8px;position:absolute}.ui-colorpicker-panel .ui-colorpicker-color{width:150px;height:150px;background:transparent url(color.c7a33805ffda0d32bd2a.png) no-repeat 0 0}.ui-colorpicker-panel .ui-colorpicker-color-handle{position:absolute;top:0;left:150px;border-radius:100%;width:10px;height:10px;border:1px solid #fff;margin:-5px 0 0 -5px;cursor:pointer}.ui-colorpicker-panel .ui-colorpicker-hue{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAACWCAIAAAC3uvTNAAAA7ElEQVRYw+2YUQqDQAxEh9GWuqV6Be9/JT88RN0VRUuv0ElBwhKY3yF5m90kLKd+mF/975r6geNyjm9Fy0kgqTJ6nqoIdGKczjmPJU5tZxA8wWPL7YOHKhZAlcmTAVVcxSCrMbfgqY/H6JEOoASPe56tgSrqLR7U2zWojwWjJ3jq47HEiZoGTwJxP1RRXw8y9RZfCMhbhTHOVTxXnUFtPJ5rGjzu35y2KfKGQxWT2K4TQL1d2zz6KAH1kRU8wfOXx+37qY3Hct+aDaqot2u7R/wMuDS3qnj0z0HqK4X/+kRNHdfUwFP2Nisqe/sFuUZiVjC9HCUAAAAASUVORK5CYII=) no-repeat 0 0;width:17px;height:150px;top:8px;left:167px;position:absolute;opacity:.85}.ui-colorpicker-panel .ui-colorpicker-hue-handle{position:absolute;top:150px;left:0;width:21px;margin-left:-2px;margin-top:-5px;height:10px;border:2px solid #fff;opacity:.85;cursor:pointer}.ui-colorpicker-panel.ui-state-disabled .ui-colorpicker-color-handle,.ui-colorpicker-panel.ui-state-disabled .ui-colorpicker-hue-handle{opacity:.5}.ui-datagrid .ui-paginator{text-align:center;border-top:0 none}.ui-datagrid-column{padding:.25em}.ui-datagrid-content-empty{padding:.25em .625em}.ui-datagrid .ui-datagrid-footer,.ui-datagrid .ui-datagrid-header{text-align:center;padding:.5em .75em}.ui-datagrid .ui-datagrid-header{border-bottom:0 none}.ui-datagrid .ui-datagrid-footer{border-top:0 none}.ui-datagrid .ui-paginator-top{border-bottom:0 none}.ui-datagrid .ui-paginator-bottom{border-top:0 none}.ui-datalist .ui-datalist-footer,.ui-datalist .ui-datalist-header{text-align:center;padding:.5em .75em}.ui-datalist .ui-datalist-header{border-bottom:0 none}.ui-datalist .ui-datalist-footer,.ui-datalist .ui-paginator{border-top:0 none}.ui-datalist .ui-datalist-data{margin:0;padding:0}.ui-datalist .ui-datalist-data>li{list-style-type:none}.ui-datalist .ui-datalist-emptymessage{padding:.5em .75em}.ui-datalist.ui-datalist-scrollable .ui-datalist-content{overflow:auto}.ui-datascroller .ui-datascroller-header{text-align:center;padding:.5em .75em;border-bottom:0 none}.ui-datascroller .ui-datascroller-footer{text-align:center;padding:.25em .625em;border-top:0 none}.ui-datascroller .ui-datascroller-content{padding:.25em .625em}.ui-datascroller-inline .ui-datascroller-content{overflow:auto}.ui-datascroller .ui-datascroller-list{list-style-type:none;margin:0;padding:0}.ui-datatable{position:relative}.ui-datatable table{border-collapse:collapse;width:100%;table-layout:fixed}.ui-datatable .ui-datatable-caption,.ui-datatable .ui-datatable-footer,.ui-datatable .ui-datatable-header{text-align:center;padding:.5em .75em;box-sizing:border-box}.ui-datatable .ui-datatable-caption,.ui-datatable .ui-datatable-header{border-bottom:0 none}.ui-datatable .ui-datatable-footer{border-top:0 none}.ui-datatable tfoot td,.ui-datatable thead th{text-align:center}.ui-datatable thead tr{border-width:0}.ui-datatable .ui-datatable-data>tr>td,.ui-datatable .ui-datatable-tfoot>tr>td,.ui-datatable .ui-datatable-thead>tr>th{border-color:inherit;box-sizing:border-box;padding:.25em .5em;border-width:1px;border-style:solid}.ui-datatable.ui-datatable-resizable .ui-datatable-data>tr>td,.ui-datatable.ui-datatable-resizable .ui-datatable-tfoot>tr>td,.ui-datatable.ui-datatable-resizable .ui-datatable-thead>tr>th{overflow:hidden}.ui-datatable .ui-datatable-tfoot>tr>td,.ui-datatable .ui-datatable-thead>tr>th{font-weight:400}.ui-datatable tbody{outline:0}.ui-datatable .ui-sortable-column{cursor:pointer}.ui-datatable .ui-sortable-column-icon{display:inline-block;margin-left:.125em}.ui-datatable tr.ui-state-highlight{cursor:pointer}.ui-datatable-scrollable-body{overflow:auto;overflow-anchor:none}.ui-datatable-scrollable-header{overflow:hidden}.ui-datatable-scrollable .ui-datatable-scrollable-footer,.ui-datatable-scrollable .ui-datatable-scrollable-header{position:relative;border:0 none}.ui-datatable-scrollable .ui-datatable-scrollable-header td{font-weight:400}.ui-datatable .ui-datatable-scrollable-body{min-height:0}.ui-datatable .ui-datatable-data tr.ui-state-highlight,.ui-datatable .ui-datatable-data tr.ui-state-hover{border-color:inherit;font-weight:inherit;cursor:pointer}.ui-datatable .ui-datatable-data tr.ui-rowgroup-header td a,.ui-datatable .ui-datatable-data tr.ui-rowgroup-header td span.ui-rowgroup-header-name{display:inline-block;vertical-align:middle}.ui-datatable-scrollable-theadclone,.ui-datatable-scrollable-theadclone tr{height:0}.ui-datatable-scrollable-theadclone th.ui-state-default{height:0;border-bottom-width:0;border-top-width:0;padding-top:0;padding-bottom:0;outline:0 none}.ui-datatable-scrollable-theadclone th span.ui-column-title{display:block;height:0}.ui-datatable .ui-paginator{padding:.125em}.ui-datatable .ui-paginator-top{border-bottom-width:0}.ui-datatable .ui-paginator-bottom{border-top-width:0}.ui-datatable-rtl{direction:rtl}.ui-datatable-rtl.ui-datatable tfoot td,.ui-datatable-rtl.ui-datatable thead th{text-align:right}.ui-row-toggler{cursor:pointer}.ui-datatable .ui-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5em;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.ui-datatable .ui-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.ui-datatable-resizable{padding-bottom:1px;overflow:auto}.ui-datatable-resizable tbody td,.ui-datatable-resizable tfoot td,.ui-datatable-resizable thead th{white-space:nowrap}.ui-datatable-resizable th.ui-resizable-column{background-clip:padding-box;position:relative}.ui-datatable-reflow .ui-datatable-data td .ui-column-title{display:none}.ui-datatable .ui-column-filter{display:block;width:100%;box-sizing:border-box;margin-top:.25em}.ui-datatable .ui-editable-column input{width:100%;outline:0}.ui-datatable .ui-datatable-data>tr>td.ui-editable-column{padding:.5em}.ui-datatable .ui-editable-column>.ui-cell-editor{display:none}.ui-datatable .ui-datatable-data>tr>td.ui-editable-column.ui-cell-editing{padding:1px}.ui-datatable .ui-editable-column.ui-cell-editing>.ui-cell-editor{display:block}.ui-datatable .ui-editable-column.ui-cell-editing>.ui-cell-data{display:none}.ui-datatable-stacked tfoot td,.ui-datatable-stacked thead th{display:none!important}.ui-datatable.ui-datatable-stacked .ui-datatable-data>tr>td{text-align:left;display:block;border:0 none;width:100%;box-sizing:border-box;float:left;clear:left}.ui-datatable.ui-datatable-stacked .ui-datatable-data.ui-widget-content{border:0 none}.ui-datatable-stacked .ui-datatable-data tr.ui-widget-content{border-left:0 none;border-right:0 none}.ui-datatable-stacked .ui-datatable-data td .ui-column-title{padding:.4em;min-width:30%;display:inline-block;margin:-.4em 1em -.4em -.4em;font-weight:700}.ui-datatable .ui-selection-column .ui-chkbox,.ui-datatable .ui-selection-column .ui-radiobutton{margin:0;display:block}.ui-datatable .ui-selection-column .ui-chkbox-box,.ui-datatable .ui-selection-column .ui-radiobutton-box{display:block;box-sizing:border-box;margin:0}.ui-datatable-scrollable-wrapper{position:relative}.ui-datatable-frozen-view .ui-datatable-scrollable-body{overflow:hidden}.ui-datatable-unfrozen-view{position:absolute;top:0}.ui-datatable .ui-datatable-load-status{width:100%;height:100%;top:0;left:0}.ui-datatable .ui-datatable-virtual-table{position:absolute;top:0;left:0}.ui-datatable .ui-datatable-loading{position:absolute;width:100%;height:100%;-ms-filter:"alpha(opacity=10)";opacity:.1;z-index:1}.ui-datatable .ui-datatable-loading-content{position:absolute;left:50%;top:25%;z-index:2}@media(max-width:35em){.ui-datatable-reflow tfoot td,.ui-datatable-reflow thead th{display:none!important}.ui-datatable-reflow .ui-datatable-data>tr>td{text-align:left;display:block;border:0 none;width:100%!important;box-sizing:border-box;float:left;clear:left}.ui-datatable-reflow .ui-datatable-data.ui-widget-content{border:0 none}.ui-datatable-reflow .ui-datatable-data tr.ui-widget-content{border-left:0 none;border-right:0 none}.ui-datatable-reflow .ui-datatable-data td .ui-column-title{padding:.4em;min-width:30%;display:inline-block;margin:-.4em 1em -.4em -.4em;font-weight:700}.ui-datatable-reflow.ui-datatable-scrollable .ui-datatable-scrollable-body colgroup{display:block}}.ui-dialog{position:fixed;padding:0}.ui-dialog .ui-dialog-content,.ui-dialog .ui-dialog-titlebar{padding:.5em .75em;position:relative;border:0}.ui-dialog .ui-dialog-content{background:0;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer;float:right}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-dialog .ui-dialog-titlebar-icon{text-decoration:none}.ui-dialog .ui-dialog-titlebar-close{float:right;padding:.125em;cursor:pointer;border:1px solid transparent}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:0}.ui-dialog-footer{padding:1em;border-width:1px 0 0 0;text-align:right}.ui-dialog-mask{position:fixed;width:100%;height:100%}.ui-confirmdialog{width:30em}.ui-confirmdialog.ui-dialog .ui-dialog-content{padding:1em 2em}.ui-confirmdialog .ui-dialog-content .fa{font-size:1.5em;vertical-align:middle;margin-right:.5em}.ui-confirmdialog .ui-dialog-content .ui-confirmdialog-message{vertical-align:middle}.ui-fluid .ui-dialog-footer .ui-button{width:auto}.ui-rtl .ui-dialog .ui-dialog-titlebar-close{float:left}.ui-rtl .ui-dialog .ui-dialog-buttonpane button{text-align:right}@media screen and (max-width:40em){.ui-confirmdialog{width:90%}}.ui-dropdown{display:inline-block;position:relative;cursor:pointer;vertical-align:middle}.ui-dropdown .ui-dropdown-trigger{border-right:0;border-top:0;border-bottom:0;cursor:pointer;width:1.5em;height:100%;position:absolute;right:0;top:0;padding:0 .25em}.ui-dropdown .ui-dropdown-trigger .fa{margin-top:.3em;margin-left:-.125em}.ui-dropdown .ui-dropdown-label{display:block;border:0;white-space:nowrap;overflow:hidden;font-weight:400;width:100%;padding-right:1.5em}.ui-dropdown-item-empty,.ui-dropdown-label-empty{text-indent:-9999px}.ui-dropdown.ui-state-disabled .ui-dropdown-label,.ui-dropdown.ui-state-disabled .ui-dropdown-trigger{cursor:default}.ui-dropdown label.ui-dropdown-label{cursor:pointer}.ui-dropdown input.ui-dropdown-label{cursor:default}.ui-dropdown .ui-dropdown-panel{min-width:100%}.ui-dropdown-panel{position:absolute;height:auto;display:none}.ui-dropdown-panel .ui-dropdown-items-wrapper{overflow:auto}.ui-dropdown-panel .ui-dropdown-item{font-weight:400;border:0 none;cursor:pointer;margin:1px 0;padding:.125em .25em;text-align:left}.ui-dropdown-panel .ui-dropdown-item-group{font-weight:700}.ui-dropdown-panel .ui-dropdown-list{padding:.4em;border:0 none}.ui-dropdown-panel .ui-dropdown-filter{width:100%;box-sizing:border-box;padding-right:1.5em}.ui-dropdown-panel .ui-dropdown-filter-container{position:relative;margin:0;padding:.4em;display:inline-block;width:100%}.ui-dropdown-panel .ui-dropdown-filter-container .fa{position:absolute;top:.8em;right:1em}.ui-fluid .ui-dropdown{width:100%}.ui-fieldset,.ui-fieldset .ui-fieldset-legend{padding:.6em 1em}.ui-fieldset-toggleable .ui-fieldset-legend{padding:.5em 1em .5em .5em;cursor:pointer;white-space:nowrap}.ui-fieldset .ui-fieldset-toggler{margin-right:.1em;display:inline-block;vertical-align:middle}.ui-fieldset .ui-fieldset-content-wrapper-overflown{overflow:hidden}.ui-fileupload-buttonbar .ui-fileupload-choose.ui-state-disabled input{cursor:default}.ui-fileupload-buttonbar{padding:.5em;border-bottom:0 none}.ui-fileupload-buttonbar .ui-button{vertical-align:middle;margin-right:.25em}.ui-fileupload-content{padding:1em;position:relative;transition:border-color .3s}.ui-fileupload-content.ui-fileupload-highlight{border-color:#156090}.ui-fileupload-files img{border:0}.ui-fileupload-files{display:table}.ui-fileupload-row{display:table-row}.ui-fileupload-row>div{display:table-cell;padding:.5em 1em;vertical-align:middle}.ui-fileupload-content .ui-progressbar{width:100%;position:absolute;top:1px;left:0;height:.25em;border:0 none}.ui-fileupload-content .ui-progressbar-value{border-radius:0;border:0 none}.ui-fileupload-choose{position:relative;overflow:hidden}.ui-fileupload-choose input[type=file]{position:absolute;top:0;right:0;margin:0;opacity:0;min-height:100%;font-size:100px;text-align:right;filter:alpha(opacity=0);direction:ltr;cursor:pointer}.ui-fileupload-choose.ui-fileupload-choose-selected input[type=file]{display:none}.ui-fluid .ui-fileupload .ui-button{width:auto}.ui-fluid .ui-fileupload-content .ui-button-icon-only{width:2em}.ui-galleria{overflow:hidden;visibility:hidden;position:relative}.ui-galleria-panel-wrapper{position:relative;padding:0;margin:0}.ui-galleria-panel{-webkit-filter:inherit;filter:inherit;position:absolute;top:0;left:0;list-style-type:none}.ui-galleria-filmstrip-wrapper{overflow:hidden;margin:.25em auto;position:relative}.ui-galleria-filmstrip{list-style:none outside none;margin:0;padding:0;width:2340px;z-index:900;position:absolute;top:0;left:0}.ui-galleria-frame{float:left;margin-right:5px;opacity:.3;cursor:pointer}.ui-galleria-frame-active{opacity:1}.ui-galleria-frame-content{overflow:hidden}.ui-galleria-nav-next,.ui-galleria-nav-prev{cursor:pointer;position:absolute}.ui-galleria-nav-prev{left:5px}.ui-galleria-nav-next{right:5px}.ui-galleria-caption{position:absolute;left:1px;background-color:rgba(0,0,0,.5);display:none;color:#ededed;padding:.2em 1em}.ui-galleria-caption h4{color:#ededed}.ui-galleria-panel-content{padding:1em 1.4em}.ui-grid{clear:both;padding:0;margin:0}.ui-grid:after,.ui-grid:before{content:"";display:table}.ui-grid:after{clear:both}.ui-grid .ui-grid-row{display:-webkit-box;display:-ms-flexbox;display:flex;clear:both}.ui-grid-row:after{clear:both;content:"";display:table}.ui-grid-col-1,.ui-grid-col-2,.ui-grid-col-3,.ui-grid-col-4,.ui-grid-col-5,.ui-grid-col-6,.ui-grid-col-7,.ui-grid-col-8,.ui-grid-col-9,.ui-grid-col-10,.ui-grid-col-11,.ui-grid-col-12{float:left;box-sizing:border-box}.ui-grid-col-1{width:8.33333%}.ui-grid-col-2{width:16.66666%}.ui-grid-col-3{width:25%}.ui-grid-col-4{width:33.33333%}.ui-grid-col-5{width:41.66666%}.ui-grid-col-6{width:50%}.ui-grid-col-7{width:58.33333%}.ui-grid-col-8{width:66.66666%}.ui-grid-col-9{width:75%}.ui-grid-col-10{width:83.33333%}.ui-grid-col-11{width:91.66666%}.ui-grid-col-12{width:100%}@media(min-width:480px){.ui-grid-fixed{width:480px}}@media(min-width:768px){.ui-grid-fixed{width:768px}}@media(min-width:960px){.ui-grid-fixed{width:960px}}@media(min-width:1024px){.ui-grid-fixed{width:1024px}}.ui-grid.ui-grid-pad>.ui-grid-row>div{padding:.25em .5em}@media(max-width:640px){.ui-grid-responsive .ui-grid-row{display:block}.ui-grid-responsive .ui-grid-col-1,.ui-grid-responsive .ui-grid-col-2,.ui-grid-responsive .ui-grid-col-3,.ui-grid-responsive .ui-grid-col-4,.ui-grid-responsive .ui-grid-col-5,.ui-grid-responsive .ui-grid-col-6,.ui-grid-responsive .ui-grid-col-7,.ui-grid-responsive .ui-grid-col-8,.ui-grid-responsive .ui-grid-col-9,.ui-grid-responsive .ui-grid-col-10,.ui-grid-responsive .ui-grid-col-11,.ui-grid-responsive .ui-grid-col-12{width:100%;float:none}}.ui-g{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.ui-g:after{clear:both;content:"";display:table}.ui-g-1,.ui-g-2,.ui-g-3,.ui-g-4,.ui-g-5,.ui-g-6,.ui-g-7,.ui-g-8,.ui-g-9,.ui-g-10,.ui-g-11,.ui-g-12{float:left;box-sizing:border-box;padding:.5em}.ui-g-1{width:8.3333%}.ui-g-2{width:16.6667%}.ui-g-3{width:25%}.ui-g-4{width:33.3333%}.ui-g-5{width:41.6667%}.ui-g-6{width:50%}.ui-g-7{width:58.3333%}.ui-g-8{width:66.6667%}.ui-g-9{width:75%}.ui-g-10{width:83.3333%}.ui-g-11{width:91.6667%}.ui-g-12{width:100%}.ui-g-offset-12{margin-left:100%}.ui-g-offset-11{margin-left:91.66666667%}.ui-g-offset-10{margin-left:83.33333333%}.ui-g-offset-9{margin-left:75%}.ui-g-offset-8{margin-left:66.66666667%}.ui-g-offset-7{margin-left:58.33333333%}.ui-g-offset-6{margin-left:50%}.ui-g-offset-5{margin-left:41.66666667%}.ui-g-offset-4{margin-left:33.33333333%}.ui-g-offset-3{margin-left:25%}.ui-g-offset-2{margin-left:16.66666667%}.ui-g-offset-1{margin-left:8.33333333%}.ui-g-offset-0{margin-left:0}@media screen and (max-width:40em){.ui-sm-1,.ui-sm-2,.ui-sm-3,.ui-sm-4,.ui-sm-5,.ui-sm-6,.ui-sm-7,.ui-sm-8,.ui-sm-9,.ui-sm-10,.ui-sm-11,.ui-sm-12{padding:.5em}.ui-sm-1{width:8.3333%}.ui-sm-2{width:16.6667%}.ui-sm-3{width:25%}.ui-sm-4{width:33.3333%}.ui-sm-5{width:41.6667%}.ui-sm-6{width:50%}.ui-sm-7{width:58.3333%}.ui-sm-8{width:66.6667%}.ui-sm-9{width:75%}.ui-sm-10{width:83.3333%}.ui-sm-11{width:91.6667%}.ui-sm-12{width:100%}.ui-sm-offset-12{margin-left:100%}.ui-sm-offset-11{margin-left:91.66666667%}.ui-sm-offset-10{margin-left:83.33333333%}.ui-sm-offset-9{margin-left:75%}.ui-sm-offset-8{margin-left:66.66666667%}.ui-sm-offset-7{margin-left:58.33333333%}.ui-sm-offset-6{margin-left:50%}.ui-sm-offset-5{margin-left:41.66666667%}.ui-sm-offset-4{margin-left:33.33333333%}.ui-sm-offset-3{margin-left:25%}.ui-sm-offset-2{margin-left:16.66666667%}.ui-sm-offset-1{margin-left:8.33333333%}.ui-sm-offset-0{margin-left:0}}@media screen and (min-width:40.063em){.ui-md-1,.ui-md-2,.ui-md-3,.ui-md-4,.ui-md-5,.ui-md-6,.ui-md-7,.ui-md-8,.ui-md-9,.ui-md-10,.ui-md-11,.ui-md-12{padding:.5em}.ui-md-1{width:8.3333%}.ui-md-2{width:16.6667%}.ui-md-3{width:25%}.ui-md-4{width:33.3333%}.ui-md-5{width:41.6667%}.ui-md-6{width:50%}.ui-md-7{width:58.3333%}.ui-md-8{width:66.6667%}.ui-md-9{width:75%}.ui-md-10{width:83.3333%}.ui-md-11{width:91.6667%}.ui-md-12{width:100%}.ui-md-offset-12{margin-left:100%}.ui-md-offset-11{margin-left:91.66666667%}.ui-md-offset-10{margin-left:83.33333333%}.ui-md-offset-9{margin-left:75%}.ui-md-offset-8{margin-left:66.66666667%}.ui-md-offset-7{margin-left:58.33333333%}.ui-md-offset-6{margin-left:50%}.ui-md-offset-5{margin-left:41.66666667%}.ui-md-offset-4{margin-left:33.33333333%}.ui-md-offset-3{margin-left:25%}.ui-md-offset-2{margin-left:16.66666667%}.ui-md-offset-1{margin-left:8.33333333%}.ui-md-offset-0{margin-left:0}}@media screen and (min-width:64.063em){.ui-lg-1,.ui-lg-2,.ui-lg-3,.ui-lg-4,.ui-lg-5,.ui-lg-6,.ui-lg-7,.ui-lg-8,.ui-lg-9,.ui-lg-10,.ui-lg-11,.ui-lg-12{padding:.5em}.ui-lg-1{width:8.3333%}.ui-lg-2{width:16.6667%}.ui-lg-3{width:25%}.ui-lg-4{width:33.3333%}.ui-lg-5{width:41.6667%}.ui-lg-6{width:50%}.ui-lg-7{width:58.3333%}.ui-lg-8{width:66.6667%}.ui-lg-9{width:75%}.ui-lg-10{width:83.3333%}.ui-lg-11{width:91.6667%}.ui-lg-12{width:100%}.ui-lg-offset-12{margin-left:100%}.ui-lg-offset-11{margin-left:91.66666667%}.ui-lg-offset-10{margin-left:83.33333333%}.ui-lg-offset-9{margin-left:75%}.ui-lg-offset-8{margin-left:66.66666667%}.ui-lg-offset-7{margin-left:58.33333333%}.ui-lg-offset-6{margin-left:50%}.ui-lg-offset-5{margin-left:41.66666667%}.ui-lg-offset-4{margin-left:33.33333333%}.ui-lg-offset-3{margin-left:25%}.ui-lg-offset-2{margin-left:16.66666667%}.ui-lg-offset-1{margin-left:8.33333333%}.ui-lg-offset-0{margin-left:0}}@media screen and (min-width:90.063em){.ui-xl-1,.ui-xl-2,.ui-xl-3,.ui-xl-4,.ui-xl-5,.ui-xl-6,.ui-xl-7,.ui-xl-8,.ui-xl-9,.ui-xl-10,.ui-xl-11,.ui-xl-12{padding:.5em}.ui-xl-1{width:8.3333%}.ui-xl-2{width:16.6667%}.ui-xl-3{width:25%}.ui-xl-4{width:33.3333%}.ui-xl-5{width:41.6667%}.ui-xl-6{width:50%}.ui-xl-7{width:58.3333%}.ui-xl-8{width:66.6667%}.ui-xl-9{width:75%}.ui-xl-10{width:83.3333%}.ui-xl-11{width:91.6667%}.ui-xl-12{width:100%}.ui-xl-offset-12{margin-left:100%}.ui-xl-offset-11{margin-left:91.66666667%}.ui-xl-offset-10{margin-left:83.33333333%}.ui-xl-offset-9{margin-left:75%}.ui-xl-offset-8{margin-left:66.66666667%}.ui-xl-offset-7{margin-left:58.33333333%}.ui-xl-offset-6{margin-left:50%}.ui-xl-offset-5{margin-left:41.66666667%}.ui-xl-offset-4{margin-left:33.33333333%}.ui-xl-offset-3{margin-left:25%}.ui-xl-offset-2{margin-left:16.66666667%}.ui-xl-offset-1{margin-left:8.33333333%}.ui-xl-offset-0{margin-left:0}}.ui-g-nopad{padding:0}.ui-growl{position:fixed;top:20px;right:20px;width:20em}.ui-growl-item-container{position:relative;margin:0 0 10px 0;opacity:.95;filter:alpha(opacity=95)}.ui-growl-item{position:relative;display:block;padding:.5em 1em}.ui-growl-item p{padding:0;margin:0}.ui-growl-icon-close{position:absolute;top:4px;right:4px;cursor:pointer}.ui-growl-title{font-weight:700;padding:0 0 .5em 0;display:block}.ui-growl-image{position:absolute;display:inline-block;left:.5em;top:.25em;padding:0}.ui-growl-message{padding:0 0 .25em 0;margin-left:2.5em}.ui-growl-message p{font-weight:400}.ui-inplace .ui-inplace-display{display:inline;cursor:pointer;border:0 none;padding:.25em;font-weight:400}.ui-inplace .ui-inplace-content{display:inline}.ui-inputswitch{padding:0;position:relative;cursor:pointer;height:1.5em}.ui-inputswitch,.ui-inputswitch .ui-inputswitch-off,.ui-inputswitch .ui-inputswitch-on{display:inline-block;overflow:hidden;-ms-user-select:none;user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none}.ui-inputswitch .ui-inputswitch-off,.ui-inputswitch .ui-inputswitch-on{white-space:nowrap;position:absolute;top:0;width:auto;font-weight:700;height:100%;line-height:1.5em}.ui-inputswitch .ui-inputswitch-on{left:0;border:0 none}.ui-inputswitch .ui-inputswitch-off{right:0;text-align:right}.ui-inputswitch .ui-inputswitch-off span,.ui-inputswitch .ui-inputswitch-on span{display:inline-block;text-align:center;height:100%;line-height:inherit}.ui-inputswitch .ui-inputswitch-handle{display:block;width:0;position:absolute;top:0;left:0;height:100%;border-top:0 none;border-bottom:0 none}.ui-inputtext{margin:0;outline:medium none;padding:.25em}.ui-inputtext,.ui-widget-content .ui-inputtext,.ui-widget-header .ui-inputtext{font-weight:400}.ui-fluid .ui-inputtext{width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.ui-inputgroup{display:-webkit-box;display:-ms-flexbox;display:flex}.ui-inputgroup .ui-inputgroup-addon{display:inline-block;text-align:center;min-width:1.5em;padding:.25em;border-width:1px;border-style:solid}.ui-inputgroup .ui-inputgroup-addon+.ui-inputgroup-addon{border-left:0 none}.ui-inputgroup .ui-inputtext{padding-left:.5em}.ui-inputgroup .ui-inputtext:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;border-left:0 none}.ui-inputgroup .ui-inputtext:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-right:0 none}.ui-inputgroup .ui-button{margin-right:0;border-radius:0}.ui-fluid .ui-inputgroup .ui-button{width:auto}.ui-fluid .ui-inputgroup .ui-inputtext{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.ui-inputgroup .ui-chkbox,.ui-inputgroup .ui-radiobutton{margin-right:0;vertical-align:bottom}.ui-float-label{display:block;position:relative}.ui-float-label label{font-weight:400;position:absolute;pointer-events:none;left:.25em;top:50%;margin-top:-.5em;transition:all .3s ease;-moz-transition:.3s ease all;-webkit-transition:all .3s ease;color:#898989;line-height:1}.ui-float-label .ui-inputwrapper-filled~label,.ui-float-label .ui-inputwrapper-focus~label,.ui-float-label input.ui-state-filled~label,.ui-float-label input:focus~label{top:-.75em;font-size:12px}.ui-float-label .input:-webkit-autofill~label{top:-20px;font-size:12px}.ui-inputtextarea-resizable{overflow:hidden;resize:none}.ui-fluid .ui-inputtextarea{width:100%}.ui-float-label textarea.ui-state-filled~label,.ui-float-label textarea:-webkit-autofill~label,.ui-float-label textarea:focus~label{top:-.75em;font-size:12px}.ui-lightbox{position:fixed;display:none}.ui-lightbox-content-wrapper{position:relative}.ui-lightbox-content{position:relative;margin:0;padding:0;background-color:#000}.ui-lightbox-nav-left,.ui-lightbox-nav-right{position:absolute;top:50%;cursor:pointer}.ui-lightbox-nav-left{left:0}.ui-lightbox-nav-right{right:0}.ui-lightbox-loading .ui-lightbox-content{background:url(data:image/gif;base64,R0lGODlhIAAgAPYAAAAAAOLi4gMDAyMjIyAgIAEBATw8PHBwcGdnZzc3NwcHBxMTE2hoaHFxcVNTUxUVFX5+fpmZmW5ubhcXFwoKCnNzc1FRUUdHR7Gxsa6urqmpqYODgx4eHggICHV1dU5OTgUFBTAwMKysrIGBgREREVVVVXd3dzg4OCcnJ7Ozs7CwsEhISDExMSwsLA4ODiUlJbe3t0FBQTo6OkxMTAwMDICAgGBgYCEhIRgYGGpqatHR0dPT08HBwdXV1bm5uVhYWBoaGhwcHBAQEEVFRVdXV1xcXIqKimNjY15eXqOjo56enpqamqWlpaCgoGFhYSoqKqGhoaenpygoKDU1NZycnFpaWsrKyr6+vrW1tc7OztDQ0D4+PpGRkZeXl1BQUHx8fJOTk46OjomJiZCQkJWVlcPDw8XFxcfHx7y8vC4uLjMzM4WFhUBAQIeHh7q6ukpKSszMzIyMjMnJyXp6enl5eUNDQ8DAwGxsbKqqqmVlZdfX1wAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAFAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKECzk2NJOCDxchgwU1OjsSmQoQGCIWghQiOz01npALERkYGQ4AFBqtP4ILN0ACjgISGhkpGDIANjw+KABCKNEujxMbGiowowAEHIIT0SgUkBwjGiIzhkIvKDiSJCsxwYYdmI8KFB0FjfqLAgYMEiSUEJeoAJABBAgiGnCgQQUPJlgoIgGuWyICCBhoRNBCEbRoFhEVSODAwocTIBQVwEEgiMJEChSkzNTPRQdEFF46KsABxYtphUisAxLpW7QJgkDMxAFO5yIC0V5gEjrg5kcUQB098ElCEFQURAH4CiLvEQUFg25ECwKLpiCmKBC6ui0kYILcuXjz6t3Ld1IgACH5BAAFAAEALAAAAAAgACAAAAf/gACCg4SFhoeIiYqLjI2Ohw8Tj44XKlhbk4sKEVZZXAWZgwsxLYMdTJ1RCqEAIA1JSjOCFKhaUSCCoI8kRkpMULIKVFZaXaALN0C6jAVHS01RTFMAVVc8XgBCKNsujwsmS1AaCIJSpQAT2ygUk0AeS0oXhkIvKDihQjEyy4QdNJMgOqxqxC9RCyJFkKwYiKgAkAEE2CWi4CChDSdSFJFQx0ERiCEWQlq4oUjbto6KgCQwIOOJAEUFcBAIInGRgIKsGrrogIhCzUcFgqB40a0QiXpAMj1QJ6kVLgA41P1kxGHbi39HB/A0iaKoo6MvSAgisC0pAGRBXk4SOOjGtiCDFXCGSodCSM6GC7ze3cu3r9+/gAcFAgAh+QQABQACACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjoYkTj8Uj40SPGUMlYsdSzxmSiCbg0IyKIM0TTxnTAqjACAIYGNDgh1Uq1CiAB2VLl9hZGAXsGSrXAUKEjNABY4FRGJjXV0sAD8+aB8ANmItKC6PJAxiXBFIAAIhIYJVUygolI8TCNIxhkAvKDijLidTzgx1oLEJxC5GAReRkLFixZSDhwoAGUBAXiIWQy6smMFBEQl4KDoqenKi5Al+iYSAFJmIwgAUL5opKoCDQBCLM189c9HrEAWcz4LADFeIhD4gmxaAnCDIoCAcIIEuEgqToNEBvVTCI+rIxYAXJAQRgIcUwIIbQQQUPHiD7KCEOhMBTIAnJG7EBVzt6t3Lt6/fvYEAACH5BAAFAAMALAAAAAAgACAAAAf/gACCg4SFhoeIiYqLjI2OhiRVDhSPjQhYPkeViwpjWG5dIJuDBTdBgxRkWGhKCqOCK18QW4IdXKsRogAPHY8FNl8bG2wAIEarRgUKDW4ROI8XHl9rbS0ADhkYbwBIWj1wU48uPx4QYg4ABS1pgm09ZUc0lQtE5SeGR1hEz5sUIWkFDAkAIq9SAQGOAjIC8YLFFBQIExUAMoAAJUU41oVQs0ARCRQgOSyaABKkC0VCSopUJADHjRsTFhXAQSDIRZmvErrodYjCTV9BULw4WYjECxRANn0EGbNYRBwlfzIiKVSe0Ru9UpqsRGHAABKCCIBMCmCBqYiPBKC9MZZUTkJUEIW8PVRgAdG5ePPq3ctXbyAAIfkEAAUABAAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6GQhZDHY+NSFEiRZWLCmtRGXEgm4QgCoMdYhoZYKajAA9ETmqCnRoqY6IACy6VCQgHDQkAIBAaGCMAChIpShyPTzYMDR4oADNQUUMAVXJZOj+PHRdOOR4rAAVST4Ij3joXlS7jOSyGNnA7YRSbHSgvhyAMvBHiqlEBgxNu3MCxqACQAQT2KXKBoiIKGopIWHQ20eJFRUI2NsShcMJIAkEkNixo0AWlQxRUPioQxB+vQiReoACySWNFk8MECMJhUSajCRVfYMx5g1LIijcdKSAwgIQgAhV56roBRGilAgcF3cg6KCxLAEhREDxbqACJqGwI48qdS7fuqEAAIfkEAAUABQAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6GLitsCo+NJRFUM5WLICYRTSMCm4kdc59iIIIgLw+VT2woggp0EVBrogtfblFSjhNeP0hpAAINEUl0AApfZWdyTr4rFkVOBAB1YBFsAD92zlZ1jiBTbw42WwAFL7ECRmZycEYUjxRqbyW9hUfwRiSbIEGCHKLwxoKQUY1AUCjQiAQBAhMWFWjRgkCHRRRQaERBQxGJjRwwbuSoSAhIRg9u3IioqAAOAkAuMmKIsFEBFzINUZi3qUAQFC9cGCKxDsimjxpZghAFAMdGno4eaHzRkeiNiyY1Cn0EgsAAfwAIaDQKYMENIEwr0QRwY+ygtTUUAUzQeDCuoQIkttrdy7ev3799AwEAIfkEAAUABgAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6GBQMDj45sI20ylIsgDG1jBwWaiQp3nl8ggiAyQxSPJCgPqZ1cdAIAJB4pbkeOCmoxF5MCR21cEgAKFTBodmO2jB0hqzM4ADIjRpkOKcw8P48cLAYrIQAFN5MFI252ZRutjiAELFschkVXZWskmgUkC4coXPjgQlQjEDj4MSJBgMCERRPA2MlgYJGCFygy0lCE5MwVH21QjcKoUREBNglY3GC04MaNh4oK4CAARIHBm4gKuOiAiAI8SgWCoHhRsBAJjEA0vcoIE8QzHBlR/Gz0IOOLjUdv8BQStWg8AjcUEsiYFEBLIM+ADrpBdlAonIIRJmQUAhcSCa918+rdy7evqEAAIfkEAAUABwAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6HIAKPjkFFP0CTjB8VXx+ZigI/FRAMkgACCWwdjwVCNIICRKMHkkJ3URlIj0FPITgABQ4VNUcFIDl4KiliposCLygtUyQAIXd0LQAzuClYDo9AKFIhN4ITmAV0GSkwX6uOIBziC4ZEKT4QQpmtr4YddStcfGoEYoI+RkIIEJiwaEIYNxpkLAIBDQWKfojy6NiYRIEiihYvKjrSo2QTEIsW3LjBUNEDD1SohBgIqlmjAi7eGaJA4VOBICheCCxEAhqmSSRCtowkCEfIno8eWHzxquiNVUJCDoVH4AY1AAQsHlUJpIDPQTfEDjJLc9AEiwcP2xYqQGKr3Lt48+rdizcQACH5BAAFAAgALAAAAAAgACAAAAf/gACCg4SFhoeIiYqLjI2Oj5CHCmkhCpGLU0gMMpeJBUOaPwWCAiwyHZAdlgACF0g5NgIALkcRTSWPEy8DQgAFdUh3uCBOVFBMELKMBTcoKC8UAC8/CC8AQ11NTBozj0DOKA+CJOIFEtp4FaiOIBzPLoZeTHge8JAFLtGGHVt1NJ2MQEzoxUgIAQITFj1og4EJm0UCBoD7l8iGHCtWlIBQFHGiIhtZQmpcZPBGQkUPxIhY8hDgoQIUlDnCt84QBX33grwzROIFCiCRSIA7CUIZDnA4Gz1w9uJfzxuohICzx47ADRKCCDgDCmDBDRyjIoUF0OznoLEuJzgj6LJQARJUCtvKnUu3rt25gQAAIfkEAAUACQAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6PkIgkC5GMHEMzN5WKLBcOQ4MCL2oKkCAgggWdJR8FADREbWMfjyQvA0KCaRdEFwACJUZcXQ2ujRwoKC8UAEB1FhwABrJdS76OOMkoD4I0JIJOY11UOaWOIMgvNIYXZOTrkAUuzIYKJ1vwm4oCD0FCxomEECAwYRGQGhpUJPmSz5CAAdoaGrpjpyKPKzISFYCYTGIhBGZCmrFjQJELAjcKKnqwIQoTJk4E6DNUoIPNR/I6IGIxRGe8IMpcGCKR4EsbobW0qQQhE0A2KQ5QQHqQTB0AWzd0CtGW6xEIlN8AEEgGRNCCGzgA4hx0g+wgtfoTJiTrOrNQARJI6+rdy7evX76BAAAh+QQABQAKACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjo+QiCACkYxCTywklYoEaTIsgwUcQJEgBYM3aQYygh1vHiYtj0IvN0KCnVtTAAUrJhBrDo8cKCgvFABCLQYTAGoVwGJbjzjFKA+CCjSCDl9rRkgKjyDEL9uFWxtxNuePBS7IhiAsJ/GbigILQED2iEIEBJop4jCHShImYlAkEjDAWrtDOVKkwEIRwilEBBwquuOmY0cIilwQuCEwEQ4ISpRQmUPgnqECHWJeZPSuwyEQQ4bYhFQgiDEXhhxo0TIG6CMS1gROEpQGih4dMSA9KGYOAIlaNoUYwKOHCCQQIzUByIiCFIAFMiqUdIeqmFleLhQHTSh2K26hAiSM2t3Lt6/fv5sCAQAh+QQABQALACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjo+QiAWRjRQ3BAqUihwoKByEIJOQBaIABJ0vggoJRBeZjjQ3N0KCp1IDAAUyRzkHKI9BqBQAQgMoLgBSNgwNDZ+OOJ0oC4Igr3XMJl6ljCCcL8OFagd0Dh2RBS7hhSBPIeeaiwIkODjriC4EBBOLQAdjZLpAwJXoVCcaio4wicJQgwdFBlEgTJQng0WLDxNRIHCDn6IJHsiAAVPhWTxCBTp0eNUoHbxCAmLEeOmoQLAXyAoxsCLHSE5HJKR5BCFAUJgdWqywgfQAFUISL26cQ6IDqQNIIDiSqNUJCAAFDdyI8Thq0I2ugx4UPQlgQidabA4LFSDxM67du3jz6qUUCAAh+QQABQAMACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKECkBAApOJQCgoD5mDBQWDBJwcggUDUwSQHTc3QoKkKEGCTzMODjSPOJwvHQBCAwMUAEErDkVVLo8TnCgLggIggiwWRUd1kCAcKC/EhVJVeRcKkQUu34UCNwPln4kFQg8Pv4oUBAQTixN5NW1iDVYlkoVCV6IfZLp0iRAhhyKCBhEVaUKR4h17BG7oU/TgjpiPOWi9o6TAXaNz9dRt2ZLSUYEg3ZYVysPjyoaIjUg42wgCEwAjVs7YMQDpQS9dJF7c+FXESlAv2jKSiMUJCAAFErBwMWVu0I2qgxZMe9cMBayRhAqQkIm2rdu3cATjNgoEACH5BAAFAA0ALAAAAAAgACAAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkoQKQDgCk4k4KCgPmYMFBYMEnByDJBwUkB03N0KCpChBgkAsBiGQE5wvHQBCAwOqJCEydWyYjg+cKAuCAiCCHMUzuI8CHCgvqoU4dR8J0JAFLtuGOEHhn4gFNCQkyIkUBAQTiwtEBx4mSECKsSg0FH3YsKaNQST+lgVM5GDMmDAObSiSd6OeIhJHvnyZYwOHukIKFKRjNK6XIQpvLph8VCBINheGjrjBMufVIxLLLIIIKIALDzQ+6Ch4pCxbQBIvvrABgIQHjytYTjwCQeAGCVgoPJApoOBLmadeIokSdAMFka0AaHjAomTAJ10XFIiA4nD1UwESC0Z+3Mu3r9+/kAIBACH5BAAFAA4ALAAAAAAgACAAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkoQCEwsFk4k4KCgLmYOYgwScHIMULpEdBDdCgqMoQYITLyg4kBOcLx0AQgMDFLycLS+QC5ydggIgsigtakCQBRwoL8CFQi1TKKGPBS7WhkKXn4unHdyIFAQEE4tCK0VONh+tia8oNIoxBw0VFR5bFN3Ll+jCl4MHYyhSd6OdIiFEJNy54wAVOUIgMnZzscuQixVsOnYLQs0iIRsZNDQw2YjEMYdPSinggkUFngMiGT3IlQ+ICjQBq/jAggGPl0cgVpEQ9ELFjjEFQHgYimGEgGiDWvjYQQaTEAg+Uvz49OKKjiKm2IT8ROFIlZwXCOPKnUu3LqRAACH5BAAFAA8ALAAAAAAgACAAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkoQFJCSTijgoKAuYiASbHIMdHZEKHARCgqAoQYITLy+Xjw+bL6VCAwMUAEKbrZALv50AAiCvv6qPBRwoL7yFvig4kgUu0IYUNJ6MChTHixQEBBOLHVMrHytSi6wo24ksVUVISD/wn7/4h1MM/gw2XCgSd6PcwDdIbBBhx62QAAUClrkoZYhGDBkKIhUI4kxgoR9NIiDYx4jEr3ICWrgCIUYDFCp5KDaq5WxbDjlYDABwIEJDEiorHoEgcOMSBRU64BgpAEJCzyQmCkCSCoAEjKRhpLrwICKKBU9tkv4YRMEARk8TjvyQ2bCt27dwBONGCgQAIfkEAAUAEAAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6PkJGShAUkJJOKEygoC5iIBJscgyAgkQocBEKCoChBgg8vAzSQD5svHQBCAzcUuZsoOJALv50AAgKCmpuqjwUcKC+9hUKbwZEFLtKGFLOeiwIgBYwUBAQT3y9qCSzMiawo3Yg3dUMXFyeL7/GHUhb+FgYWUeBw45yiDgZmvIlxyVshAeKaucBliIYMNaUgFQgCzYUhL2PaVNHWiMSvcwKeAAEA4ksELnGqKHhUC9osBDxE4PtAJQKYODEegSBw4xIFPFbKbCgAIo8SnzkiOoooBEPSNuJo3KHS5Y2nEVZ4lBjUIc2UmZgm2HCA1qHbt3AF48qVFAgAIfkEAAUAEQAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6PkJGShAUkQpOKDygoC5iIBJscgyAFkQocBJcAoChBgg8vNx2Qmigvs0IDNxQAQpsoD5ALv50AAgKCE7+qjgUctryFQi8oOJIFLtGGHTSejAWljBQEBBOLBUADA0DIiqwo3YkPTy1padbuv/GIQTL+Mq4UUeBww5wiEC1OnJACwpshcJCwzdrG4knDiEFQSAlh6AIEDx8mOnKx6cgcYyFQGDvQpgadDxcbaXqDxQsAJz7wGAAwJE6bEXMSPALxQgwDARSS2IFhwliVMD9/QBJQDAcWOz7aIKPgxEibGJgWqMCqVZCCjTEjUVBix80dh4UQLuChkgZuoQck7Ordy5dQIAAh+QQABQASACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKEBSQuk4oPKCgkmIgEmxyDAgWRChwEQoKgKEGCDwMEIJCaKC8dAEIDNxS5mygLkAu/wQCkghO/qo8FHLa9hUIvKDiSBS7Qhh00noyljRQEBBOLBUC71YusKNyJw7/Zn7/tiO+b8YcUHDfkigVBLwak60bwWhABhkCguIEQUrMiWH4YksHAxhYFkIQgMLMDgrE0L4w5qXDnCJuGjWZY6QFnBoAiGZQkAGBgDsk8LR6lyeAmj4AOS1LguWPMyxwPEthAIvFAEAkmKUR8KdXBgok7UjA9jVrjm4AbrjC5aJIigwmChTxEfYOW0IISbwgwtp1Lt66gQAAh+QQABQATACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKEBUIuk4oPKCgkmIgEmxyDBZIKHARCgqAoQYIPAxwCkJooLx0AQgM3FLibKKmPC74LggKkABO+vI8FHLXLhEIvKDiSBS7QhR00nozHjBQEBBOLBUC6xIurKNyJwpu26r7tiEK+8YoUHDfkigU4BDgA60YQSAkZsgoJCILjm6MJSXrIKWEohIMVaRI6qrJDB5w5AAQ8uSFoho0SH1pAMqEjS5kVAIg0GcMCgBoENoh8ePCohYYUTgR0GBNliRMABergJAIEkpB0QpZEoXKAFIgtPwyAwBQ1ipIK3255okHG6x2Che54rYOWEIkPdQi2tp1Lt66gQAAh+QQABQAUACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKEBUIuk4oPKCgkmIgEmxyDBZIKHARCgqAoQYILN0ECkJooLx0AQgM3FLibKKmPC74LggKkABO+vI8FHLXLhEIvKDiSBS7QhR00nozHjBQEBBOLBUC6nYurKNyJwpsDsorr7YhCvvGLFBw35IoFOAhwqNetGw4HJ+QVInEp0gQlWXhYMHRDBosg3xodgSOnTAUABV60AnBixZYpIx15kGPGzRAAXrjUeAJAioUVbNSAePQECp4iAhSs6WKkBMgpXlac2PlICDEALsJ0iXOElIAXCaphchGnS5g8GbvREOPVRsFCR7waOBvtggGmbAbjyp0LIBAAIfkEAAUAFQAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6PkJGShAVCLpOKDygoJJiIBJscgwWSChwEQoKgKEGCCzdApI+aKC8dAEIDNxS4myi8jwu+C4ICshO+wI4FHLXKg0IvKDiSBS7PhB00noyyjBQEBBOLBUC6qYurKNuJJL433ogDagkxnYlC7/GHLWFNJrcSFcBBIAi7RR2E7ONGCAeRISAOubgUKUgXM24cGKIV6xGJMGWu+JAAoAABagBQhJCC4sEjByHdqFgB4EINCQMABDmxksAjCXbcpMgjQIGJNSZopuQpypGUCFGK3KJRYw0djSWBAFEAycU4QTQgrJlDhCEhCnPWfLFglpADtWoN2g6iIIOFALl48+YNBAAh+QQABQAWACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKEBUIuk4oPKCgkmIgEmxyDBZIKHARCgqAoQYILN0Ckj5ooLx0AQgM3FLibKLyPC74LggKyE77AjgUctcqDQi8oOJIFLs+EHTSejLKMuTcTiwVAupeKQmBKNRI3iiS+BIskKT09Ox/o8YwXTCk12AoVwEEgSMBDHVx442ZogoUYIA65OAcJyBgfKvIVgoci1iMhbXykEJEHADliAIAMe+QExkgodQBskVClFUcUohqB4JIiQxQHBUAwaODkhKAJ0h48YpBBg5OIFCQ0yBNTEAWKjSjIOKHA6p0GCIYwJAQiD9gtYwkZOOAkZ1qTHAeovZ1Ll24gACH5BAAFABcALAAAAAAgACAAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkoQFQi6Tig8oKCSYiASbHJ4ACkEEQoKgKEGCJARABZCaKC8dAEIDNxS3myi7jwu9C4ICsQATvb+OBRy0yoNCLyg4kgUuz4QdNJFCqI3GjCsYMGudiQVAuduKQhg772+KJL0EiyQZWVlwM+y9ootDmoiYg61QARwEghQ8pMAFuFGGHswwAOIQhYWLcLQRAeWCIRLSYD0SAgEPEypVWl0CAETYoyomlXAxAEDNjyHDhPQC4ghEGyZNuswoIIBIkRlSBD148cJbIydNIhCpSMNGkQ8sBnVQAKnDFDVcAXQoUsSLGoiEBHwoYgEFWkI4DS4kWPdW0MO6ePPWDQQAIfkEAAUAGAAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6PkJGShAVCLpOKDygoJJiIBJscngAKQQRCgqAoQYIkBEAFkJooLx0AQgM3FLebKLuPC70LggKxABO9v44FHLTKg0IvKDiSBS7PhB00kS6ojcaMQyIYI52JBUADBNiGQnhWcHAXiiS9oopCUWZmZW/49oxidEnigR0lHASCGDSkgAa4UYYWXEgg4BCFhYomzFHChY0hEtKAQHJRgQqZOF4E0VAgCEgvb40cLCETZoQaAFJipNklpNcERyDm0FwTo4CAIUPUUAPw4MUAjIaIhGnzpmKHGUOm3CMFAlKHEC2MgbgwJMFWiIJYDDkxDO0gBTcKfrqdS7euXUOBAAAh+QQABQAZACwAAAAAIAAgAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKEBUIuk4oPKCgkmIgEmxyeAApBBEKCoChBgiQEQAWQMi0oLx0AQgM3FLibKLyPORC0C4ICsQATvsCOQFBfT8yDQi8oOJI4DsWHHTSPBS4kQgKNyIokXxoZIhuoiQVAAwS3iV52djw8ZQ7nvqKJM9wIFOhFkRBfrBKRoNMEypIGl97heKVgUSUSEUchIsEmBDlDFKQ5WnAgTo0EhkhUAwKJBoI4G+jUEaQAhCAgvtw1emNkwxwJTwAEeTLg1sFN2xgJkLDhS4UTAAqwoMUSwAN5FR3NcMqGnAA1tP4BOAZJgZQXyAqkoaqxEJAnLw1EtqWQta3du3jzKgoEACH5BAAFABoALAAAAAAgACAAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkoQFQi6Tig8oKCSYgx0FgwSbHJ4AaU0/QoKjKEGCJARAoY9zPSkGHQBCAzcUu5sov48SOz1GD4ICtBPBw444STtlT4ZCLyg4kjg/bLSFHTSPBTSWAo3fiSwbTUxJX52JBUADBLqIIEZY+zAwSIokgr3CtyGDQYMOFAkJBkRRiw1kyIxhEA9RARyyQCwCIUSIOFOJXCR4km4QhWePSDiZc6eFIRLYGj6iUIXOgTwJBIHQCABHsI+N2Jg4gODHDQAwB+hauGnBIyIHGCBxCaCVzAX1eDZSk6eImlAFbmwaCKBASUYTkonapA0kIV4EDRS4LWR2rt27ePMeCgQAIfkEAAUAGwAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6PkJGShAVCLpOKDygoJJiDFEKDBJscngAtTSlFgqMoQYIkBEAFkB5ZOlYGAEIDNxS7myi/jwxwWjsSggK0ABPBw444VHBnF4ZCLyg4khMlW8yFHTSPBTRCNOCK6Yhpc2RLER6hiQVAAwQdiSA1UVEaGniIKCIR7BUiAXSaKFQ4Q5GQYEAUSTHRps0IG/MQFcAhC8QiEC5cQDN1iEaaG+sEURjpyIWFPD9uGCKRLeIjEG+OVPmAQhAIjwBwBBvnCIWTKl5iPABAc0C+h5s6Fa1i4cIAVptsLrgHtJGCE2xkAihwY5PBsSkZCSDEYdMCkoUOKHDg0BWu3bt48+pdFAgAIfkEAAUAHAAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6PkJGShAVCLpOKDygoJJiDNEKDBJscngAtUBlVgqMoQYIkBEAFkAdmVmUyAEIDNxS7myi/j0c8Z1Y5ggK0ABPBw44TZDx2dYZCLyg4khNeMsyFHTSPBRQuNOCK6YhSB2JhcTnjiQVAAwQKiQIVXV0RS0suKCIRDIi+O2MSJhyiSEhBRQMYmDDRwME8RAVwyAKxSAAFGh1MKerwwuAhCtAeUYjhhc0DQySymXx04kOdKdsAgOAIAMezRyRW1DnxZFzMASEdbrrkyAUbGWleAmhlcsGNIAIg2esEoMCNTa8ErZsUZNMCkYUUBJkwFq3bt3AF48pFFAgAIfkEAAUAHQAsAAAAACAAIAAAB/+AAIKDhIWGh4iJiouMjY6PkJGShA8XLpOECxOEX01SJJgAU0l4JYIUKkpSHKEVblduRAAUGWQoQYIkBEAFj04wbnZoBgBObTcUAEIozMmOD2EwaDwVghO9ABPMKM6ON9E+FoZCLyg4kg8fFwKHHTSQ7hTYi/OJL0dzEBBO74kFQAMIKEgkIM+aNm3EGGGjiMQ2IP6QfJk4kViiZcwgJuJQBQECJxe6HSqAYxeIRQI6UBgYSpECHEIQURDpCESIBE8uFSJRTuOjF1OeoNgEAMRJADi20XQZQuiLdzwHdFC2TWejAgNQvAAFgEBGQQtu4KjHSMECqzeY4RJEdhIQZgsPWhoSMOGa3Lt48+rdiykQACH5BAAFAB4ALAAAAAAgACAAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkoQLRTMKk4JCFyGEdDs6R5kCBxgiFoIUeDs9Jpk0XBkpKg4AFBqsRIIkBEAFjwwaGVgYMgA2PFgoAEIozhSPExsaKjASggQPghPOKNCPHCMaIjOGQi8oOJIkKzEChx00kAoUHb+M94pCFjkSEiXfEBUAMoAApkRDGlTw4MFEAkUkugFRFIOBRYss9ElU5IKNAwcfTnRQVABHLxCMFChAmWmRABcjD1EI+KgABxQvXBgigW4iJG7OJggCwRJHN5qMCDh7IY/ngJHNnkECgpMENmc+F9xQB6mAi4MAbjgLMihfS6MorLY0JOCB2rVwB+PKnUtXbiAAOwAAAAAAAAAAAA==) #000 50% no-repeat}.ui-lightbox-caption{padding:.2em .4em;display:none}.ui-lightbox-caption-text{margin:.3em 0 .1em 0;float:left}.ui-lightbox-close{float:right;margin:0;padding:.125em}.ui-lightbox-close.ui-state-hover{padding:0}.ui-lightbox-nav-left,.ui-lightbox-nav-right{opacity:.5}.ui-lightbox-nav-left:hover,.ui-lightbox-nav-right:hover{opacity:1}.ui-listbox{padding:.25em;width:10em}.ui-listbox .ui-listbox-list-wrapper{overflow:auto}.ui-listbox .ui-listbox-list{list-style-type:none;margin:0;padding:0}.ui-listbox .ui-listbox-item{padding:.25em;border:0 none;cursor:pointer;font-weight:400;margin-bottom:1px}.ui-listbox .ui-listbox-item>span{vertical-align:middle}.ui-listbox .ui-listbox-item:last-child{margin-bottom:0}.ui-listbox.ui-state-disabled .ui-listbox-item{cursor:default}.ui-listbox-header{margin-bottom:.3em;padding:.125em .2em;position:relative}.ui-listbox-header .ui-chkbox{display:inline-block;vertical-align:middle;cursor:pointer}.ui-listbox-header .ui-listbox-filter-container{display:inline-block;vertical-align:middle;position:relative;width:100%}.ui-listbox-header.ui-listbox-header-w-checkbox .ui-listbox-filter-container{width:calc(100% - 2em)}.ui-listbox-header .ui-listbox-filter-container .fa{position:absolute;top:.25em;left:.25em}.ui-listbox-header .ui-inputtext{padding:.125em .125em .125em 1.25em;width:100%}.ui-listbox-footer{padding:.125em .2em}.ui-menu{width:12.5em;padding:.25em;position:relative}.ui-menu-separator{border-width:1px 0 0 0}.ui-menu.ui-menu-dynamic{position:absolute;display:none;z-index:100000}.ui-menu-list{position:static}.ui-menu .ui-menu-list .ui-menuitem{border:0}.ui-menu .ui-menu-list .ui-widget-header{clear:both;float:left;width:100%;margin:.125em 0;padding:.25em .5em}.ui-menu .ui-menuitem,.ui-menu .ui-menuitem-parent{width:100%;clear:both;margin:.125em 0;padding:0}.ui-menu .ui-menuitem-link{display:block;width:100%;text-decoration:none;font-weight:400;border:1px solid transparent;line-height:1em;padding:.25em;cursor:pointer}.ui-menu .ui-menuitem-link .ui-menuitem-icon{display:inline-block;vertical-align:middle}.ui-menu .ui-menuitem-text{vertical-align:middle}.ui-menu .ui-widget-header h1,.ui-menu .ui-widget-header h2,.ui-menu .ui-widget-header h3,.ui-menu .ui-widget-header h4,.ui-menu .ui-widget-header h5,.ui-menu .ui-widget-header h6{font-size:1em;margin:0 auto}.ui-menu .ui-menu-parent .ui-menu-child{display:none;width:12.5em;padding:.25em;position:absolute;margin:0;text-decoration:none;list-style:none}.ui-menu .ui-menu-parent{position:relative}.ui-menu .ui-menu-parent .ui-submenu-icon{float:right;margin-right:-.25em}.ui-menubutton{padding:0}.ui-menubutton .ui-button{margin:0}.ui-menu.ui-menubar .ui-menubar-root-list>li>a>.ui-submenu-icon{float:none}.ui-menubar{width:auto}.ui-menubar .ui-menubar-root-list{list-style:none;padding:0;margin:0}.ui-menubar .ui-menubar-root-list>.ui-menuitem{display:inline-block;width:auto}.ui-menubar:not(.ui-megamenu-vertical) .ui-menubar-root-list>.ui-menu-separator{display:inline-block;border-width:0 0 0 1px;width:1px;text-indent:-9999999px}.ui-menubar:not(.ui-megamenu-vertical) .ui-menubar-root-list>.ui-menu-separator:before{content:"ui-menu-separator"}.ui-menubar .ui-menu-child .ui-menuitem{width:100%}.ui-menubar .ui-menuitem.ui-menuitem-custom{float:right;margin-top:.25em}.ui-menubar .ui-menubar-options{float:right}.ui-slidemenu .ui-slidemenu-wrapper{position:relative}.ui-slidemenu .ui-slidemenu-content{overflow-x:hidden;overflow-y:auto;position:relative}.ui-slidemenu .ui-menu-list{position:absolute;top:0}.ui-slidemenu .ui-menu-parent{position:static}.ui-slidemenu .ui-menu-child{box-shadow:none;border:0 none;background:none repeat scroll 0 0 transparent}.ui-slidemenu-backward{position:absolute;bottom:0;width:100%;padding:.2em;cursor:pointer;display:none}.ui-slidemenu-backward .fa,.ui-slidemenu-backward span{vertical-align:middle}.ui-slidemenu .ui-slidemenuitem-active>.ui-submenu>ul{display:block!important}.ui-megamenu .ui-g{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.ui-megamenu .ui-megamenu-panel.ui-menu-child{width:auto}.ui-megamenu-vertical,.ui-megamenu .ui-megamenu-panel .ui-menu-list{width:12.5em}.ui-megamenu-vertical .ui-menu-list .ui-menuitem,.ui-megamenu-vertical .ui-menuitem-link{width:100%;box-sizing:border-box}.ui-megamenu-vertical>.ui-menubar-root-list>.ui-menuitem>.ui-menuitem-link>.ui-submenu-icon{float:right}.ui-panelmenu{width:auto}.ui-panelmenu .ui-panelmenu-panel{padding:0;margin:0}.ui-panelmenu .ui-panelmenu-header{cursor:pointer;position:relative;margin:-1px 0 0 0;zoom:1}.ui-panelmenu .ui-panelmenu-header a{display:block;padding:.25em .5em;text-decoration:none}.ui-panelmenu .fa{width:1em;text-align:center;vertical-align:middle;margin-right:.25em}.ui-panelmenu .ui-menuitem-text{margin-left:.125em}.ui-panelmenu span{vertical-align:middle}.ui-panelmenu .ui-panelmenu-content{padding:.2em 0;border-top:0;overflow:auto;zoom:1;outline:0;margin-bottom:1px}.ui-panelmenu .ui-panelmenu-content .ui-menu-parent{overflow:hidden}.ui-panelmenu .ui-panelmenu-content-wrapper{box-sizing:border-box}.ui-panelmenu .ui-panelmenu-content-wrapper-overflown{overflow:hidden}.ui-panelmenu .ui-panelmenu-header.ui-state-disabled,.ui-panelmenu .ui-panelmenu-header.ui-state-disabled a{cursor:default}.ui-panelmenu .ui-menu-list{position:static}.ui-panelmenu .ui-menuitem{margin:1px 0;padding:0}.ui-panelmenu .ui-menu-separator{width:95%;margin:0 auto}.ui-panelmenu .ui-menuitem-link{display:block;text-decoration:none;font-weight:400;border:1px solid transparent;line-height:1em;cursor:pointer;position:relative;padding:.25em .5em}.ui-panelmenu .ui-menu-parent .ui-menu-list{margin-left:1.5em}.ui-menuitem-active>.ui-megamenu-panel,.ui-menuitem-active>.ui-submenu>ul{display:block!important}.ui-menuitem-outline{outline:1px dotted;z-index:1}.ui-fluid .ui-menu:not(.ui-menu-dynamic){width:100%}.ui-message{border:1px solid;margin:0 .25em;padding:.25em .5em;display:inline-block}.ui-fluid .ui-message{display:block}.ui-messages{border:1px solid;margin:.5em 0;padding:1em 1em 1em .5em;display:none;position:relative}.ui-messages-icon{display:inline-block;padding:0;vertical-align:middle}.ui-messages-summary{font-weight:700;margin-left:.25em}.ui-messages-detail{margin-left:.25em}.ui-messages-success{color:#2c832f;background-color:#b4f0b6;border-color:#b4f0b6}.ui-messages-success .ui-messages-close{color:#2c832f}.ui-messages-info{color:#1765a3;background-color:#bfe0fa;border-color:#bfe0fa}.ui-messages-info .ui-messages-close{color:#1765a3}.ui-messages-warn{color:#8a6714;background-color:#ffe9b5;border-color:#ffe9b5}.ui-messages-warn .ui-messages-close{color:#8a6714}.ui-messages-error{color:#ab1a0f;background-color:#ffcbc8;border-color:#ffcbc8}.ui-messages-error .ui-messages-close{color:#ab1a0f}.ui-messages ul{margin:0;padding:0;list-style-type:none;display:inline-block;vertical-align:middle}.ui-messages.ui-messages-noicon ul{margin:0 1.5em 0 0}.ui-messages .ui-messages-close{cursor:pointer;position:absolute;top:5px;right:5px}.ui-multiselect{display:inline-block;position:relative;width:auto;cursor:pointer}.ui-multiselect .ui-multiselect-trigger{border-right:0;border-top:0;border-bottom:0;cursor:pointer;width:1.5em;height:100%;position:absolute;right:0;top:0;padding:0 .25em}.ui-multiselect .ui-multiselect-trigger .fa{margin-top:.4em;margin-left:-.125em}.ui-multiselect .ui-multiselect-label-container{overflow:hidden}.ui-multiselect .ui-multiselect-label{display:block;padding:.25em 2em .25em .25em;width:auto;border:0;cursor:pointer;text-overflow:ellipsis;overflow:hidden}.ui-multiselect.ui-state-disabled .ui-multiselect-label,.ui-multiselect.ui-state-disabled .ui-multiselect-trigger{cursor:auto}.ui-multiselect-panel{padding:.2em;position:absolute;min-width:12em}.ui-multiselect .ui-multiselect-panel{min-width:100%;display:none}.ui-multiselect-panel .ui-multiselect-items-wrapper{overflow:auto;position:relative;padding:.2em 0}.ui-multiselect-panel .ui-multiselect-list{border:0 none}.ui-multiselect-panel .ui-multiselect-item{border:0 none;cursor:pointer;font-weight:400;margin:1px 0;padding:.125em .25em;text-align:left;white-space:nowrap;display:block;position:relative}.ui-multiselect-panel .ui-multiselect-item .ui-chkbox,.ui-multiselect-panel .ui-multiselect-item label{display:inline-block;vertical-align:middle}.ui-multiselect-header{margin-bottom:.3em;padding:.25em;position:relative;text-align:left}.ui-multiselect-header .ui-chkbox{display:inline-block;vertical-align:middle;cursor:pointer}.ui-multiselect-header .ui-multiselect-filter-container{position:relative;display:inline-block;vertical-align:middle;width:65%}.ui-multiselect-header.ui-multiselect-header-no-toggleall .ui-multiselect-filter-container{width:85%}.ui-multiselect-header .ui-multiselect-filter-container .fa{position:absolute;top:.25em;left:.125em}.ui-multiselect-header .ui-inputtext{padding:.125em .125em .125em 1.25em;width:100%}.ui-multiselect-header .ui-multiselect-close{position:absolute;right:.375em;top:.375em;display:block;font-size:1em;border:0 none}.ui-multiselect-header a.ui-multiselect-all,.ui-multiselect-header a.ui-multiselect-none{float:left;margin-right:10px;display:block}.ui-multiselect-header .ui-multiselect-close.ui-state-hover{padding:0}.ui-fluid .ui-multiselect{width:100%;box-sizing:border-box}.ui-orderlist{display:table}.ui-orderlist .ui-orderlist-controls{height:12.5em;padding:0 .25em;vertical-align:middle;display:table-cell}.ui-orderlist .ui-orderlist-controls .ui-button{display:block;margin-bottom:.25em}.ui-orderlist .ui-orderlist-container{display:table-cell;vertical-align:top}.ui-orderlist .ui-orderlist-list{list-style-type:none;margin:0;padding:0;overflow:auto;height:12.5em;width:12.5em}.ui-orderlist .ui-orderlist-caption{text-align:center;padding:.5em .75em;border-bottom:0 none}.ui-orderlist .ui-orderlist-list .ui-orderlist-item{margin:1px;padding:.125em;cursor:pointer;border:0 none;font-weight:inherit}.ui-orderlist .ui-orderlist-filter-container{position:relative;width:100%;padding:.5em .6em;border-bottom:0 none}.ui-orderlist .ui-orderlist-filter-container .ui-inputtext{text-indent:1.1em;width:100%}.ui-orderlist .ui-orderlist-filter-container .fa{position:absolute;top:50%;left:1em;margin-top:-.6em}.ui-orderlist.ui-state-disabled .ui-button,.ui-orderlist.ui-state-disabled .ui-orderlist-item{cursor:default}.ui-orderlist.ui-state-disabled .ui-orderlist-list{overflow:hidden}.ui-orderlist.ui-orderlist-responsive{width:100%}.ui-orderlist.ui-orderlist-responsive .ui-orderlist-controls{width:16.66666%;padding-right:.5em}.ui-orderlist.ui-orderlist-responsive .ui-orderlist-list-container{width:83.33333%}.ui-orderlist.ui-orderlist-responsive .ui-orderlist-caption,.ui-orderlist.ui-orderlist-responsive .ui-orderlist-controls>.ui-button,.ui-orderlist.ui-orderlist-responsive .ui-orderlist-list{width:100%}.ui-orderlist .ui-orderlist-droppoint{height:6px;list-style-type:none}@media(max-width:40em){.ui-orderlist.ui-orderlist-responsive .ui-orderlist-controls{text-align:center;width:100%;display:inline-block;height:auto}.ui-orderlist.ui-orderlist-responsive .ui-orderlist-controls .ui-button{display:inline;width:20%;display:inline-block}.ui-orderlist.ui-orderlist-responsive .ui-orderlist-list-container{width:100%}}.ui-organizationchart .ui-organizationchart-table{border-spacing:0;border-collapse:separate}.ui-organizationchart .ui-organizationchart-table>tr>td{text-align:center;vertical-align:top;padding:0;padding:0 .75em}.ui-organizationchart .ui-organizationchart-node-content{padding:.5em .75em;display:inline-block;position:relative}.ui-organizationchart .ui-organizationchart-node-content .ui-node-toggler{position:absolute;bottom:-9px;margin-left:-8px;z-index:2;left:50%}.ui-organizationchart .ui-organizationchart-line-down{margin:0 auto;height:20px;width:1px;float:none}.ui-organizationchart .ui-organizationchart-line-left,.ui-organizationchart .ui-organizationchart-line-right{float:none;border-radius:0}.ui-organizationchart .ui-organizationchart-node-content.ui-organizationchart-selectable-node{cursor:pointer}.ui-overlaypanel{padding:0;margin:0;position:absolute}.ui-overlaypanel-content{padding:.5em 1em}.ui-overlaypanel-close{position:absolute;top:-.5em;right:-.5em;border-radius:100%}.ui-paginator{margin:0;text-align:center;padding:.125em}.ui-paginator .ui-paginator-top{border-bottom:0 none}.ui-paginator .ui-paginator-bottom{border-top:0 none}.ui-paginator .ui-paginator-current,.ui-paginator .ui-paginator-first,.ui-paginator .ui-paginator-last,.ui-paginator .ui-paginator-next,.ui-paginator .ui-paginator-page,.ui-paginator .ui-paginator-pages,.ui-paginator .ui-paginator-prev{display:inline-block;padding:.125em .375em;zoom:1;margin-left:.063em;margin-right:.063em;text-decoration:none;vertical-align:middle}.ui-paginator .ui-paginator-first,.ui-paginator .ui-paginator-last,.ui-paginator .ui-paginator-next,.ui-paginator .ui-paginator-page,.ui-paginator .ui-paginator-prev{cursor:pointer}.ui-paginator .ui-paginator-current,.ui-paginator .ui-paginator-rpp-options{margin-left:1em;margin-right:1em;background-image:none}.ui-paginator .ui-paginator-jtp-select option,.ui-paginator .ui-paginator-rpp-options option{background-image:none;border:0 none;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}.ui-paginator a.ui-state-disabled{outline:0 none}.ui-paginator .ui-dropdown{min-width:4em;margin-left:.375em}.ui-panel{padding:.2em}.ui-panel .ui-panel-titlebar{padding:.5em .75em}.ui-panel .ui-panel-titlebar-icon{float:right;cursor:pointer;margin-left:.2em;margin-top:-.1em}.ui-panel .ui-panel-content{border:0;background:0;padding:.5em .75em}.ui-panel .ui-panel-footer{border-width:1px 0 0;padding:.25em .5em;text-align:left}.ui-panel-content-wrapper-overflown{overflow:hidden}.ui-password-panel{padding:.25em .5em;width:10em;margin-top:2px}.ui-password-panel .ui-password-meter{height:10px;background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAoCAYAAAAcwQPnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABb9JREFUeNrsnMtOI0cUhk9ffJVjZxIUg2aA2bBlZsmsshgpmuUom7xGHiO7kFfgCRLlBUZZIYFQyCKLMFJAIQwOGF/Gt3ZfnPNXU3YZsBQam5StOlKP2/1101Xn/FWu/q2xdXBw8GUURd8S0VsyYeLh8aNt29tuGIbb5XL5ZbFYNCkx8eBoNptvK5XKc9eyrJeZTIa63e4Quq5LjuOIfd/3iWe0BzNWMaVSKbHPYqYgCIaM2yAYXnENrtWRIcDQl8FgIBheZ5m3easFtARNuTjY7/fFDWTicBE29fhDGDqYTqdFQ9CJmw1CY3Ac13qepyVDgMlCgKmimkXe5rEWuJ8QNv7BbIUk4YZyJOJCVclJGUYONjBs8sZy5GSzWXE+Ot/r9bRkCDApKjB1BphF3ua1FvJvWvv7+wOpcjQK0el0xm6az+cTMRwHl7MiuDpyCoWCUDsa1Gq1hjOATgzHwHAOjoGpM0DS3Dw2e6xaQLhCcOqNjaiMqKaRtzFhGVEZUU1LVCJ/e3t7f/IJz82DsolpBYvs2GZRbfN+3aTDxJSiDk3xot7GHNY1+TAxpXjHmvoVzvt35XI5N6/Oe7PZpHq9Tmtra6akmjnvOZhbpZ0dudojWl6GQYHVHtH5OZH0bJIyHAPDOTgGpiwwaWmJeDUY719eEq8G/zPzXr8Wi9K7zD7jvGvgvNPxMaxlovV1oosLIphgJycjcSRlEBVYrYZexEx1tFdWiNrteDs7I2o07sXkE1BLEZxx3jVy3qlSIdrYiGcFPJIeHcVCQORyyRhGDBgEUa3GTPlOUggODcS9Ieyrq3sz6QLLjhrnXQ/n3ZXrFDHb8FpFiGB3l0g2CGuvra37MziwYBAbRgUY7iNjc3M0cx0eEp2eJmKNN2/E7hULT/orspN3eS/3ZdLPgpAm+VlgSPZd/pIuTPpZODbJz5pG3m4574TP3EnCuS+ToiqVJotqdXWycBIwY5Lq6rzPsagQRlT6Oe8+n+DOudMrOmlCL+f9Z+zPc0eMqPR03t/xm3OTDxPGeV9Mx3ohvkG47bx3f4lJ0OJV3qXyOcOLwuwyv/I6P+JFYQ+TW6Qfw3MImM3nDKKYDRR3P73EDxbXDr7H/QtbWjGv8I1YXMN7WiznPaxwC+pckA+jBNgZfuRY5xMumPf4keNkVEidGEQF5tdYTGHMIsU1z67wNe14657x4Glox/rpeBCo/6llMZx37/frYskW5PgZfiOevUJ+RG0dxUXTjVlOzFAgvxqzUHH3ITiIzOOB0znmv3GlJetlx79BWBzn/fT7UQJcXm892YpnMJ8LVtvlQgb6MbgkYBBb5McsUDyz4uZo5moccvVO9WTZZ9RwGsNvEBbLeb8pKjs1ucg6MCmqVGmyqHKrk4usC2NRUenFAjvvRlT/u6ikCIzzbsJ8g7DIzvuixIJ8gzB03n/gNz+ZspqYtvNufm3GxEycd/FrM39Ud0aLwfQSpa+d4Y53SX3FNU7K0k6B8pmleBEZtKijuPuOlaZCdpk/CmwKoz61euf82Rxpxyx+1gFzbHhFkWCh4u7PIm/zVotPM6/GnfcGDDuOQnaF/LAtto/dM/IU1zgpy7glSuVy1PYq1PPr3KCRu+/YGSrl17lzFxSEPW7HyaixGjGICqzn1ygahIKFirs/i7zNYy3yzg3nvc7CAkSycFO87yrOcFKWS38mNrBOvyoaNHQ3nBx9Xtjg8y85CR2qto54Jgi1Y5blCIYCdf2qYIHi7s8ib/Nai0KqN+6819rvRYPQjErjkD4qfssXxc1E7JPsMyqXXohR0ez+Rf80fxtNx26Rnj7ZIo9Hjec36O/aLs8EgXbMtlzBAk5aGPmC9RXPLGluHps9Vi2+evr1uEFavDbx7mpsEiY7IoQ7oSOOnZrYWB2YFFUmVZooqmnnbRbssWtxy3k3ojKimoaopPNufm3GxEycd/NrMyam7rz/K8AAIzeBeEI84y8AAAAASUVORK5CYII=) no-repeat 0 0;padding:0;margin:0}.ui-password-info{margin-top:.25em}.ui-password-panel-overlay{position:absolute}.ui-picklist>div{float:left}.ui-picklist .ui-picklist-buttons{height:12.5em;padding:0 .25em}.ui-picklist .ui-picklist-list{list-style-type:none;margin:0;padding:0;overflow:auto;height:12.5em;width:12.5em}.ui-picklist .ui-picklist-list li{margin:1px;padding:.125em}.ui-picklist .ui-button{display:block;margin-bottom:.25em}.ui-picklist .ui-button-text-icon-left{width:100%}.ui-picklist .ui-picklist-item{cursor:pointer;border:0 none;font-weight:inherit}.ui-picklist .ui-picklist-caption{text-align:center;padding:.5em .75em;border-bottom:0 none}.ui-picklist table{width:100%;border-collapse:collapse}.ui-picklist .ui-picklist-filter-container{position:relative;width:100%;padding:.5em .6em;border-bottom:0 none}.ui-picklist .ui-picklist-filter-container .ui-picklist-filter{text-indent:1.1em;width:100%}.ui-picklist .ui-picklist-filter-container .fa{position:absolute;top:50%;left:1em;margin-top:-.6em}.ui-picklist{display:table}.ui-picklist>div{float:none;display:table-cell;vertical-align:top}.ui-picklist .ui-picklist-buttons{vertical-align:middle}.ui-picklist.ui-picklist-vertical{display:table}.ui-picklist.ui-picklist-vertical>div{float:none;display:table-row;vertical-align:top}.ui-picklist.ui-picklist-vertical .ui-picklist-buttons{text-align:center;height:auto}.ui-picklist.ui-picklist-vertical .ui-picklist-buttons .ui-button{display:inline-block}.ui-picklist.ui-picklist-vertical .ui-button{margin-top:.25em}.ui-picklist-outline{outline:1px dotted #000;z-index:1}.ui-picklist .ui-picklist-droppoint{height:6px;list-style-type:none}.ui-picklist .ui-picklist-list .ui-picklist-droppoint-empty{height:100%;list-style-type:none}.ui-picklist-list.ui-picklist-source,.ui-picklist-list.ui-picklist-target{outline:0}.ui-picklist.ui-picklist-responsive *{box-sizing:border-box}.ui-picklist.ui-picklist-responsive{width:100%}.ui-picklist.ui-picklist-responsive .ui-picklist-listwrapper{width:35%}.ui-picklist.ui-picklist-responsive .ui-picklist-listwrapper.ui-picklist-listwrapper-nocontrols{width:45%}.ui-picklist.ui-picklist-responsive .ui-picklist-buttons{width:10%}.ui-picklist.ui-picklist-responsive .ui-picklist-buttons button{width:100%}.ui-picklist.ui-picklist-responsive .ui-picklist-list{width:auto}@media(max-width:40em){.ui-picklist.ui-picklist-responsive{display:block}.ui-picklist.ui-picklist-responsive>div{display:block;width:100%!important}.ui-picklist.ui-picklist-responsive .ui-picklist-buttons{text-align:center;height:auto;padding:.4em 0}.ui-picklist.ui-picklist-responsive .ui-picklist-buttons button{display:inline;width:20%;margin-bottom:0}.ui-picklist.ui-picklist-responsive .ui-picklist-source-controls.ui-picklist-buttons{padding-bottom:.4em}.ui-picklist.ui-picklist-responsive .ui-picklist-target-controls.ui-picklist-buttons{padding-top:.4em}.ui-picklist.ui-picklist-responsive .ui-picklist-buttons .fa-angle-right:before{content:"\F107"}.ui-picklist.ui-picklist-responsive .ui-picklist-buttons .fa-angle-double-right:before{content:"\F103"}.ui-picklist.ui-picklist-responsive .ui-picklist-buttons .fa-angle-left:before{content:"\F106"}.ui-picklist.ui-picklist-responsive .ui-picklist-buttons .fa-angle-double-left:before{content:"\F102"}}.ui-progressbar{height:1.2em;text-align:left;position:relative;overflow:hidden}.ui-progressbar-determinate .ui-progressbar-value{height:100%;width:0;position:absolute;display:none;border:0 none}.ui-progressbar-determinate .ui-progressbar-value-animate{transition:width 1s ease-in-out}.ui-progressbar-determinate .ui-progressbar-label{text-align:center;height:100%;width:100%;position:absolute;display:none;font-weight:700}.ui-progressbar-indeterminate .ui-progressbar-value{border:0 none}.ui-progressbar-indeterminate .ui-progressbar-value:before{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:ui-progressbar-indeterminate-anim 2.1s cubic-bezier(.65,.815,.735,.395) infinite;animation:ui-progressbar-indeterminate-anim 2.1s cubic-bezier(.65,.815,.735,.395) infinite}.ui-progressbar-indeterminate .ui-progressbar-value:after{content:"";position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left,right;-webkit-animation:ui-progressbar-indeterminate-anim-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;animation:ui-progressbar-indeterminate-anim-short 2.1s cubic-bezier(.165,.84,.44,1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes ui-progressbar-indeterminate-anim{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes ui-progressbar-indeterminate-anim{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@-webkit-keyframes ui-progressbar-indeterminate-anim-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes ui-progressbar-indeterminate-anim-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}.ui-progress-spinner{position:relative;margin:0 auto;width:100px;height:100px;display:inline-block}.ui-progress-spinner:before{content:"";display:block;padding-top:100%}.ui-progress-spinner-svg{-webkit-animation:ui-progress-spinner-rotate 2s linear infinite;animation:ui-progress-spinner-rotate 2s linear infinite;height:100%;-webkit-transform-origin:center center;transform-origin:center center;width:100%;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.ui-progress-spinner-circle{stroke-dasharray:1,200;stroke-dashoffset:0;-webkit-animation:ui-progress-spinner-dash 1.5s ease-in-out infinite,ui-progress-spinner-color 6s ease-in-out infinite;animation:ui-progress-spinner-dash 1.5s ease-in-out infinite,ui-progress-spinner-color 6s ease-in-out infinite;stroke-linecap:round}@-webkit-keyframes ui-progress-spinner-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ui-progress-spinner-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes ui-progress-spinner-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes ui-progress-spinner-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@-webkit-keyframes ui-progress-spinner-color{0%,to{stroke:#d62d20}40%{stroke:#0057e7}66%{stroke:#008744}80%,90%{stroke:#ffa700}}@keyframes ui-progress-spinner-color{0%,to{stroke:#d62d20}40%{stroke:#0057e7}66%{stroke:#008744}80%,90%{stroke:#ffa700}}.ui-radiobutton{display:inline-block;cursor:pointer;vertical-align:middle;margin-right:.25em}.ui-radiobutton-box{width:1.125em;height:1.125em;line-height:1.125em;border-radius:100%;text-align:center}.ui-radiobutton-icon{display:block;font-size:.5em;line-height:inherit;margin-top:-1px}.ui-radiobutton,.ui-radiobutton-label{vertical-align:middle}.ui-fluid .fc .ui-button{width:auto}.ui-selectbutton{display:inline-block}.ui-selectbutton.ui-state-error{padding:0}.ui-selectbutton .ui-button.ui-state-focus{outline:0}.ui-sidebar{position:fixed;padding:.5em 1em;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ui-sidebar-left{top:0;left:0;width:20em;height:100%;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.ui-sidebar-right{top:0;right:0;width:20em;height:100%;-webkit-transform:translateX(100%);transform:translateX(100%)}.ui-sidebar-top{top:0;left:0;width:100%;height:10em;-webkit-transform:translateY(-100%);transform:translateY(-100%)}.ui-sidebar-bottom{bottom:0;left:0;width:100%;height:10em;-webkit-transform:translateY(100%);transform:translateY(100%)}.ui-sidebar-full{width:100%;height:100%;left:0;transition:-webkit-transform 0s;transition:transform 0s;transition:transform 0s,-webkit-transform 0s}.ui-sidebar-left.ui-sidebar-active,.ui-sidebar-right.ui-sidebar-active{-webkit-transform:translateX(0);transform:translateX(0)}.ui-sidebar-left.ui-sidebar-sm,.ui-sidebar-right.ui-sidebar-sm{width:20em}.ui-sidebar-left.ui-sidebar-md,.ui-sidebar-right.ui-sidebar-md{width:40em}.ui-sidebar-left.ui-sidebar-lg,.ui-sidebar-right.ui-sidebar-lg{width:60em}.ui-sidebar-bottom.ui-sidebar-active,.ui-sidebar-top.ui-sidebar-active{-webkit-transform:translateY(0);transform:translateY(0)}.ui-sidebar-bottom.ui-sidebar-sm,.ui-sidebar-top.ui-sidebar-sm{height:10em}.ui-sidebar-bottom.ui-sidebar-md,.ui-sidebar-top.ui-sidebar-md{height:20em}.ui-sidebar-bottom.ui-sidebar-lg,.ui-sidebar-top.ui-sidebar-lg{height:30em}.ui-sidebar-mask{position:fixed;width:100%;height:100%}.ui-sidebar-close{float:right}@media screen and (max-width:64em){.ui-sidebar-left.ui-sidebar-lg,.ui-sidebar-left.ui-sidebar-md,.ui-sidebar-right.ui-sidebar-lg,.ui-sidebar-right.ui-sidebar-md{width:20em}}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none;z-index:1}.ui-slider .ui-slider-handle.ui-slider-handle-active{z-index:2}.ui-slider .ui-slider-range{position:absolute;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.25em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.25em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-slider-animate .ui-slider-handle{transition:left .3s}.ui-spinner{display:inline-block;overflow:visible;padding:0;position:relative;vertical-align:middle}.ui-spinner-input{vertical-align:middle;padding-right:1.5em}.ui-spinner-button{cursor:default;display:block;height:50%;margin:0;overflow:hidden;padding:0;position:absolute;right:0;text-align:center;vertical-align:middle;width:1.5em}.ui-spinner .fa{position:absolute;top:50%;left:50%;margin-top:-.5em;margin-left:-.5em;width:1em}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-fluid .ui-spinner{width:100%}.ui-fluid .ui-spinner .ui-spinner-input{padding-right:2em;width:100%}.ui-fluid .ui-spinner .ui-spinner-button{width:1.5em}.ui-fluid .ui-spinner .ui-spinner-button .fa{left:.7em}.ui-splitbutton{position:relative;display:inline-block;zoom:1}.ui-splitbutton .ui-button.ui-splitbutton-menubutton{width:2em}.ui-splitbutton.ui-state-disabled button{cursor:default}.ui-fluid .ui-splitbutton{width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.ui-fluid .ui-splitbutton .ui-button:first-child{width:calc(100% - 2em)}.ui-fluid .ui-splitbutton .ui-button.ui-splitbutton-menubutton{width:2em;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.ui-steps ul{list-style-type:none;padding:0;margin:0}.ui-steps .ui-steps-item{float:left;box-sizing:border-box;cursor:pointer}.ui-steps.ui-steps-readonly .ui-steps-item{cursor:auto}.ui-steps .ui-steps-item .ui-menuitem-link{text-decoration:none;display:block;padding:1em;position:relative;text-align:center}.ui-steps .ui-steps-item.ui-state-disabled .ui-menuitem-link,.ui-steps .ui-steps-item.ui-state-highlight .ui-menuitem-link{cursor:default}.ui-steps .ui-steps-number{font-size:200%;display:block}.ui-steps .ui-steps-title{display:block;white-space:nowrap}@media(max-width:40em){.ui-steps .ui-steps-item .ui-menuitem-link{padding:.5em}.ui-steps .ui-steps-item .ui-steps-title{display:none}}.ui-tabmenu .ui-tabmenu-nav{margin:0;padding:.25em .5em 0 .25em}.ui-tabmenu .ui-tabmenu-nav .ui-tabmenuitem{list-style:none;float:left;position:relative;margin:0 .2em 1px 0;padding:0;white-space:nowrap;display:block;border-bottom:0;top:1px}.ui-tabmenu .ui-tabmenu-nav .ui-tabmenuitem a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabmenu .ui-tabmenu-nav a{padding:.5em 1em}.ui-tabmenu .ui-tabmenu-nav .ui-tabmenuitem .ui-icon{float:left}.ui-tabmenu .ui-tabmenu-nav .ui-tabmenuitem.ui-state-disabled a{cursor:default}.ui-tabview{padding:.25em}.ui-tabview .ui-tabview-nav{margin:0}.ui-tabview .ui-tabview-nav li{list-style:none;float:left;position:relative;margin:0 .125em 1px 0;padding:0;white-space:nowrap}.ui-tabview .ui-tabview-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabview .ui-tabview-nav li.ui-state-disabled a,.ui-tabview .ui-tabview-nav li.ui-state-processing a,.ui-tabview .ui-tabview-nav li.ui-tabview-selected a{cursor:text}.ui-tabview.ui-tabview-collapsible .ui-tabview-nav li.ui-tabview-selected a,.ui-tabview .ui-tabview-nav li a{cursor:pointer}.ui-tabview .ui-tabview-panel{border-width:0;padding:1em;background:0}.ui-tabview .ui-tabview-nav li{display:block}.ui-tabview .ui-tabview-nav li .ui-tabview-left-icon,.ui-tabview .ui-tabview-nav li .ui-tabview-right-icon,.ui-tabview .ui-tabview-nav li .ui-tabview-title{vertical-align:middle}.ui-tabview .ui-tabview-nav li .ui-tabview-close{margin:.5em .3em 0 0;cursor:pointer}.ui-tabview.ui-tabview-top>.ui-tabview-nav li{border-bottom:0;top:1px}.ui-tabview.ui-tabview-top>.ui-tabview-nav{padding:.2em .2em 0}.ui-tabview.ui-tabview-bottom>.ui-tabview-nav{padding:0 .2em .2em}.ui-tabview.ui-tabview-bottom>.ui-tabview-nav li{border-top:0}.ui-tabview-left:after,.ui-tabview-right:after{clear:both;content:".";display:block;height:0;visibility:hidden}.ui-tabview-left>.ui-tabview-nav{float:left;width:25%;height:300px;background-image:none;padding-top:1px}.ui-tabview-left>.ui-tabview-panels{float:right;width:75%}.ui-tabview.ui-tabview-left>.ui-tabview-nav li,.ui-tabview.ui-tabview-right>.ui-tabview-nav li{display:block;float:right;white-space:normal;width:99%}.ui-tabview.ui-tabview-left>.ui-tabview-nav li{margin:0 0 1px 0;border-right:0 none}.ui-tabview.ui-tabview-right>.ui-tabview-nav{float:right;width:25%;height:300px;background-image:none;padding-top:1px}.ui-tabview.ui-tabview-right>.ui-tabview-panels{float:left;width:75%}.ui-tabview.ui-tabview-right>.ui-tabview-nav li{margin:0 0 1px 0;border-left:0 none}.ui-rtl .ui-tabview .ui-tabview-nav li{float:right}.ui-terminal{height:18em;overflow:auto;padding:.25em}.ui-terminal-input{border:0 none;background-color:transparent;color:inherit;padding:0;margin:0 0 0 .125em;width:75%;outline:0;vertical-align:baseline}.ui-terminal-command{margin-left:.125em;-moz-margin-start:.125em}.ui-terminal-input::-ms-clear{display:none}.ui-toolbar{padding:.25em .5em}.ui-toolbar-group-left{float:left}.ui-toolbar-group-right{float:right}.ui-tooltip{position:absolute;display:none;padding:.25em .5em;max-width:12.5em}.ui-tooltip.ui-tooltip-left,.ui-tooltip.ui-tooltip-right{padding:0 .25em}.ui-tooltip.ui-tooltip-bottom,.ui-tooltip.ui-tooltip-top{padding:.25em 0}.ui-tooltip .ui-tooltip-text{padding:.125em .5em;background-color:#4c4c4c;color:#fff;white-space:pre-line}.ui-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.ui-tooltip-right .ui-tooltip-arrow{top:50%;left:0;margin-top:-.25em;border-width:.25em .25em .25em 0;border-right-color:#4c4c4c}.ui-tooltip-left .ui-tooltip-arrow{top:50%;right:0;margin-top:-.25em;border-width:.25em 0 .25em .25em;border-left-color:#4c4c4c}.ui-tooltip.ui-tooltip-top{padding:.25em 0}.ui-tooltip-top .ui-tooltip-arrow{bottom:0;left:50%;margin-left:-.25em;border-width:.25em .25em 0;border-top-color:#4c4c4c}.ui-tooltip-bottom .ui-tooltip-arrow{top:0;left:50%;margin-left:-.25em;border-width:0 .25em .25em;border-bottom-color:#4c4c4c}.ui-tree{width:18em}.ui-tree .ui-treenode-selectable.ui-treenode-content{cursor:pointer}.ui-tree .ui-tree-container{height:100%;margin:0;overflow:auto;padding:.25em;white-space:nowrap}.ui-tree .ui-treenode-children{margin:0;padding:0 0 0 1em}.ui-tree .ui-treenode{background-attachment:scroll;background-color:transparent;background-image:none;background-position:0 0;background-repeat:repeat-y;list-style:none outside none;margin:0;padding:.125em 0 0 0}.ui-tree .ui-treenode-droppoint{height:4px;list-style-type:none}.ui-tree .ui-treenode-droppoint-active{border:0 none}.ui-tree .ui-tree-toggler{cursor:pointer}.ui-tree .ui-tree-toggler,.ui-tree .ui-treenode-icon,.ui-tree .ui-treenode-label{display:inline-block;vertical-align:middle}.ui-tree .ui-treenode-label{padding:0 .25em}.ui-tree .ui-treenode-label.ui-state-highlight,.ui-tree .ui-treenode-label.ui-state-hover{font-weight:400;border:0 none}.ui-tree .ui-treenode.ui-treenode-leaf>.ui-treenode-content>.ui-tree-toggler{visibility:hidden}.ui-tree .ui-chkbox-box{cursor:pointer}.ui-tree .ui-chkbox{display:inline-block;vertical-align:middle}.ui-tree .ui-chkbox .ui-chkbox-icon{margin-left:1px}.ui-fluid .ui-tree{width:100%}.ui-tree-horizontal{width:auto;padding:.5em 0;overflow:auto}.ui-tree.ui-tree-horizontal table,.ui-tree.ui-tree-horizontal td,.ui-tree.ui-tree-horizontal tr{border-collapse:collapse;margin:0;padding:0;vertical-align:middle}.ui-tree.ui-tree-horizontal .ui-tree-toggler{vertical-align:middle;margin:0}.ui-tree-horizontal .ui-treenode-content{font-weight:400;padding:.4em 1em .4em .2em}.ui-tree.ui-tree-horizontal .ui-tree-node-label{margin:0}.ui-tree-horizontal .ui-treenode-parent .ui-treenode-content{font-weight:400;white-space:nowrap}.ui-tree.ui-tree-horizontal .ui-treenode{background:url(line.567f57385ea3dde2c9ae.gif) repeat-x scroll 50% transparent;padding:.25em 2.5em}.ui-tree.ui-tree-horizontal .ui-treenode.ui-treenode-collapsed,.ui-tree.ui-tree-horizontal .ui-treenode.ui-treenode-leaf{padding-right:0}.ui-tree.ui-tree-horizontal .ui-treenode-children{padding:0;margin:0}.ui-tree.ui-tree-horizontal .ui-treenode-connector{width:1px}.ui-tree.ui-tree-horizontal .ui-treenode-connector-table{height:100%;width:1px}.ui-tree.ui-tree-horizontal .ui-treenode-connector-line{background:url(line.567f57385ea3dde2c9ae.gif) repeat-y scroll 0 0 transparent;width:1px}.ui-tree.ui-tree-horizontal table{height:0}.ui-tree.ui-tree-horizontal .ui-chkbox{vertical-align:bottom;margin-right:.25em}.ui-tree.ui-tree-loading{position:relative;min-height:4em}.ui-tree .ui-tree-loading-mask{position:absolute;width:100%;height:100%;-ms-filter:"alpha(opacity=10)";opacity:.1;z-index:1}.ui-tree .ui-tree-loading-content{position:absolute;left:50%;top:50%;z-index:2;margin-top:-1em;margin-left:-1em}.ui-treetable{position:relative}.ui-treetable table{border-collapse:collapse;width:100%;table-layout:fixed}.ui-treetable .ui-treetable-footer,.ui-treetable .ui-treetable-header{text-align:center;padding:.5em .75em}.ui-treetable .ui-treetable-header{border-bottom:0 none}.ui-treetable .ui-treetable-footer{border-top:0 none}.ui-treetable tfoot td,.ui-treetable th{text-align:center}.ui-treetable tbody td,.ui-treetable tfoot td,.ui-treetable thead th{padding:.25em .5em;overflow:hidden;white-space:nowrap;border-width:1px;border-style:solid}.ui-treetable tbody td{border-color:inherit}.ui-treetable tbody td:first-child span{vertical-align:middle}.ui-treetable .ui-treetable-toggler{vertical-align:middle;cursor:pointer;text-decoration:none}.ui-treetable .ui-treetable-checkbox{margin-right:.5em}.ui-treetable .ui-treetable-checkbox .ui-chkbox-icon{margin-left:1px}.ui-treetable .ui-treetable-row.ui-treetable-row-selectable{cursor:pointer}.ui-treetable .ui-treetable-row.ui-state-highlight{border:0 none}.ui-treetable tr.ui-state-hover{border-color:inherit;font-weight:inherit}.ui-treetable .ui-treetable-indent{width:1em;height:1em;float:left}.ui-treetable .ui-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5em;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.ui-treetable .ui-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.ui-treetable-resizable{padding-bottom:1px;overflow:auto}.ui-treetable-resizable tbody td,.ui-treetable-resizable tfoot td,.ui-treetable-resizable thead th{white-space:nowrap}.ui-treetable-resizable th.ui-resizable-column{background-clip:padding-box;position:relative}.ui-treetable td.ui-treetable-child-table-container{padding:0;border:0 none}.ui-treetable .ui-treetable-row{display:table-row;border-bottom:0 transparent}.ui-treetable tbody .ui-treetable-row td{border:0 none}.ui-treetable tbody .ui-treetable-row td input{outline:0 none}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/tsconfig.json b/asterixdb/asterix-app/src/main/resources/dashboard/tsconfig.json
new file mode 100755
index 0000000..0897e9e
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/tsconfig.json
@@ -0,0 +1,32 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+{
+ "compileOnSave": false,
+ "compilerOptions": {
+ "outDir": "./dist/out-tsc",
+ "sourceMap": true,
+ "declaration": false,
+ "moduleResolution": "node",
+ "emitDecoratorMetadata": true,
+ "experimentalDecorators": true,
+ "target": "es5",
+ "typeRoots": [
+ "node_modules/@types"
+ ],
+ "lib": [
+ "es2017",
+ "dom"
+ ]
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/dashboard/tslint.json b/asterixdb/asterix-app/src/main/resources/dashboard/tslint.json
new file mode 100755
index 0000000..1d02629
--- /dev/null
+++ b/asterixdb/asterix-app/src/main/resources/dashboard/tslint.json
@@ -0,0 +1,154 @@
+/*
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+{
+ "rulesDirectory": [
+ "node_modules/codelyzer"
+ ],
+ "rules": {
+ "arrow-return-shorthand": true,
+ "callable-types": true,
+ "class-name": true,
+ "comment-format": [
+ true,
+ "check-space"
+ ],
+ "curly": true,
+ "eofline": true,
+ "forin": true,
+ "import-blacklist": [
+ true,
+ "rxjs",
+ "rxjs/Rx"
+ ],
+ "import-spacing": true,
+ "indent": [
+ true,
+ "spaces"
+ ],
+ "interface-over-type-literal": true,
+ "label-position": true,
+ "max-line-length": [
+ true,
+ 140
+ ],
+ "member-access": false,
+ "member-ordering": [
+ true,
+ {
+ "order": [
+ "static-field",
+ "instance-field",
+ "static-method",
+ "instance-method"
+ ]
+ }
+ ],
+ "no-arg": true,
+ "no-bitwise": true,
+ "no-console": [
+ true,
+ "debug",
+ "info",
+ "time",
+ "timeEnd",
+ "trace"
+ ],
+ "no-construct": true,
+ "no-debugger": true,
+ "no-duplicate-super": true,
+ "no-empty": false,
+ "no-empty-interface": true,
+ "no-eval": true,
+ "no-inferrable-types": [
+ true,
+ "ignore-params"
+ ],
+ "no-misused-new": true,
+ "no-non-null-assertion": true,
+ "no-shadowed-variable": true,
+ "no-string-literal": false,
+ "no-string-throw": true,
+ "no-switch-case-fall-through": true,
+ "no-trailing-whitespace": true,
+ "no-unnecessary-initializer": true,
+ "no-unused-expression": true,
+ "no-use-before-declare": true,
+ "no-var-keyword": true,
+ "object-literal-sort-keys": false,
+ "one-line": [
+ true,
+ "check-open-brace",
+ "check-catch",
+ "check-else",
+ "check-whitespace"
+ ],
+ "prefer-const": true,
+ "quotemark": [
+ true,
+ "single"
+ ],
+ "radix": true,
+ "semicolon": [
+ true,
+ "always"
+ ],
+ "triple-equals": [
+ true,
+ "allow-null-check"
+ ],
+ "typedef-whitespace": [
+ true,
+ {
+ "call-signature": "nospace",
+ "index-signature": "nospace",
+ "parameter": "nospace",
+ "property-declaration": "nospace",
+ "variable-declaration": "nospace"
+ }
+ ],
+ "typeof-compare": true,
+ "unified-signatures": true,
+ "variable-name": false,
+ "whitespace": [
+ true,
+ "check-branch",
+ "check-decl",
+ "check-operator",
+ "check-separator",
+ "check-type"
+ ],
+ "directive-selector": [
+ true,
+ "attribute",
+ "app",
+ "camelCase"
+ ],
+ "component-selector": [
+ true,
+ "element",
+ "app",
+ "kebab-case"
+ ],
+ "use-input-property-decorator": true,
+ "use-output-property-decorator": true,
+ "use-host-property-decorator": true,
+ "no-input-rename": true,
+ "no-output-rename": true,
+ "use-life-cycle-interface": true,
+ "use-pipe-transform-interface": true,
+ "component-class-suffix": true,
+ "directive-class-suffix": true,
+ "invoke-injectable": true
+ }
+}
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/css/bootstrap-theme.min.css b/asterixdb/asterix-app/src/main/resources/queryui/css/bootstrap-theme.min.css
deleted file mode 100644
index 0d35c4a..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/css/bootstrap-theme.min.css
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! Bootstrap v3.3.6 (http://getbootstrap.com) | Copyright 2011-2015 Twitter, Inc. | Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
-/*# sourceMappingURL=bootstrap-theme.min.css.map */
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/css/bootstrap.min.css b/asterixdb/asterix-app/src/main/resources/queryui/css/bootstrap.min.css
deleted file mode 100644
index 4cf729e..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/css/bootstrap.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Bootstrap v3.3.6 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
-/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/css/codemirror.css b/asterixdb/asterix-app/src/main/resources/queryui/css/codemirror.css
deleted file mode 100644
index 04f2561..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/css/codemirror.css
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * Copyright (C) 2016 by Marijn Haverbeke <marijnh@gmail.com> and others
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-/* BASICS */
-
-.CodeMirror {
- /* Set height, width, borders, and global font properties here */
- font-family: monospace;
- height: 300px;
- color: black;
-}
-
-/* PADDING */
-
-.CodeMirror-lines {
- padding: 4px 0; /* Vertical padding around content */
-}
-.CodeMirror pre {
- padding: 0 4px; /* Horizontal padding of content */
-}
-
-.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
- background-color: white; /* The little square between H and V scrollbars */
-}
-
-/* GUTTER */
-
-.CodeMirror-gutters {
- background-color: #FFF;
- white-space: nowrap;
-}
-.CodeMirror-linenumbers {}
-.CodeMirror-linenumber {
- padding: 0 3px 0 5px;
- min-width: 20px;
- text-align: right;
- color: #999;
- white-space: nowrap;
-}
-
-.CodeMirror-guttermarker { color: black; }
-.CodeMirror-guttermarker-subtle { color: #999; }
-
-/* CURSOR */
-
-.CodeMirror-cursor {
- border-left: 1px solid black;
- border-right: none;
- width: 0;
-}
-/* Shown when moving in bi-directional text */
-.CodeMirror div.CodeMirror-secondarycursor {
- border-left: 1px solid silver;
-}
-.cm-fat-cursor .CodeMirror-cursor {
- width: auto;
- border: 0 !important;
- background: #7e7;
-}
-.cm-fat-cursor div.CodeMirror-cursors {
- z-index: 1;
-}
-
-.cm-animate-fat-cursor {
- width: auto;
- border: 0;
- -webkit-animation: blink 1.06s steps(1) infinite;
- -moz-animation: blink 1.06s steps(1) infinite;
- animation: blink 1.06s steps(1) infinite;
- background-color: #7e7;
-}
-@-moz-keyframes blink {
- 0% {}
- 50% { background-color: transparent; }
- 100% {}
-}
-@-webkit-keyframes blink {
- 0% {}
- 50% { background-color: transparent; }
- 100% {}
-}
-@keyframes blink {
- 0% {}
- 50% { background-color: transparent; }
- 100% {}
-}
-
-/* Can style cursor different in overwrite (non-insert) mode */
-.CodeMirror-overwrite .CodeMirror-cursor {}
-
-.cm-tab { display: inline-block; text-decoration: inherit; }
-
-.CodeMirror-ruler {
- border-left: 1px solid #ccc;
- position: absolute;
-}
-
-/* DEFAULT THEME */
-
-.cm-s-default .cm-header {color: blue;}
-.cm-s-default .cm-quote {color: #090;}
-.cm-negative {color: #d44;}
-.cm-positive {color: #292;}
-.cm-header, .cm-strong {font-weight: bold;}
-.cm-em {font-style: italic;}
-.cm-link {text-decoration: underline;}
-.cm-strikethrough {text-decoration: line-through;}
-
-.cm-s-default .cm-keyword {color: #708;}
-.cm-s-default .cm-atom {color: #219;}
-.cm-s-default .cm-number {color: #164;}
-.cm-s-default .cm-def {color: #00f;}
-.cm-s-default .cm-variable,
-.cm-s-default .cm-punctuation,
-.cm-s-default .cm-property,
-.cm-s-default .cm-operator {}
-.cm-s-default .cm-variable-2 {color: #05a;}
-.cm-s-default .cm-variable-3 {color: #085;}
-.cm-s-default .cm-comment {color: #a50;}
-.cm-s-default .cm-string {color: #a11;}
-.cm-s-default .cm-string-2 {color: #f50;}
-.cm-s-default .cm-meta {color: #555;}
-.cm-s-default .cm-qualifier {color: #555;}
-.cm-s-default .cm-builtin {color: #30a;}
-.cm-s-default .cm-bracket {color: #997;}
-.cm-s-default .cm-tag {color: #170;}
-.cm-s-default .cm-attribute {color: #00c;}
-.cm-s-default .cm-hr {color: #999;}
-.cm-s-default .cm-link {color: #00c;}
-
-.cm-s-default .cm-error {color: #f00;}
-.cm-invalidchar {color: #f00;}
-
-.CodeMirror-composing { border-bottom: 2px solid; }
-
-/* Default styles for common addons */
-
-div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
-div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
-.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
-.CodeMirror-activeline-background {background: #e8f2ff;}
-
-/* STOP */
-
-/* The rest of this file contains styles related to the mechanics of
- the editor. You probably shouldn't touch them. */
-
-.CodeMirror {
- position: relative;
- overflow: hidden;
- background: white;
-}
-
-.CodeMirror-scroll {
- overflow: scroll !important; /* Things will break if this is overridden */
- /* 30px is the magic margin used to hide the element's real scrollbars */
- /* See overflow: hidden in .CodeMirror */
- margin-bottom: -30px; margin-right: -30px;
- padding-bottom: 30px;
- height: 100%;
- outline: none; /* Prevent dragging from highlighting the element */
- position: relative;
-}
-.CodeMirror-sizer {
- position: relative;
- border-right: 30px solid transparent;
-}
-
-/* The fake, visible scrollbars. Used to force redraw during scrolling
- before actual scrolling happens, thus preventing shaking and
- flickering artifacts. */
-.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
- position: absolute;
- z-index: 6;
- display: none;
-}
-.CodeMirror-vscrollbar {
- right: 0; top: 0;
- overflow-x: hidden;
- overflow-y: scroll;
-}
-.CodeMirror-hscrollbar {
- bottom: 0; left: 0;
- overflow-y: hidden;
- overflow-x: scroll;
-}
-.CodeMirror-scrollbar-filler {
- right: 0; bottom: 0;
-}
-.CodeMirror-gutter-filler {
- left: 0; bottom: 0;
-}
-
-.CodeMirror-gutters {
- position: absolute; left: 0; top: 0;
- min-height: 100%;
- z-index: 3;
-}
-.CodeMirror-gutter {
- white-space: normal;
- height: 100%;
- display: inline-block;
- vertical-align: top;
- margin-bottom: -30px;
- /* Hack to make IE7 behave */
- *zoom:1;
- *display:inline;
-}
-.CodeMirror-gutter-wrapper {
- position: absolute;
- z-index: 4;
- background: none !important;
- border: none !important;
-}
-.CodeMirror-gutter-background {
- position: absolute;
- top: 0; bottom: 0;
- z-index: 4;
-}
-.CodeMirror-gutter-elt {
- position: absolute;
- cursor: default;
- z-index: 4;
-}
-.CodeMirror-gutter-wrapper {
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
-}
-
-.CodeMirror-lines {
- cursor: text;
- min-height: 1px; /* prevents collapsing before first draw */
-}
-.CodeMirror pre {
- /* Reset some styles that the rest of the page might have set */
- -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
- border-width: 0;
- background: transparent;
- font-family: inherit;
- font-size: inherit;
- margin: 0;
- white-space: pre;
- word-wrap: normal;
- line-height: inherit;
- color: inherit;
- z-index: 2;
- position: relative;
- overflow: visible;
- -webkit-tap-highlight-color: transparent;
- -webkit-font-variant-ligatures: none;
- font-variant-ligatures: none;
-}
-.CodeMirror-wrap pre {
- word-wrap: break-word;
- white-space: pre-wrap;
- word-break: normal;
-}
-
-.CodeMirror-linebackground {
- position: absolute;
- left: 0; right: 0; top: 0; bottom: 0;
- z-index: 0;
-}
-
-.CodeMirror-linewidget {
- position: relative;
- z-index: 2;
- overflow: auto;
-}
-
-.CodeMirror-widget {}
-
-.CodeMirror-code {
- outline: none;
-}
-
-/* Force content-box sizing for the elements where we expect it */
-.CodeMirror-scroll,
-.CodeMirror-sizer,
-.CodeMirror-gutter,
-.CodeMirror-gutters,
-.CodeMirror-linenumber {
- -moz-box-sizing: content-box;
- box-sizing: content-box;
-}
-
-.CodeMirror-measure {
- position: absolute;
- width: 100%;
- height: 0;
- overflow: hidden;
- visibility: hidden;
-}
-
-.CodeMirror-cursor { position: absolute; }
-.CodeMirror-measure pre { position: static; }
-
-div.CodeMirror-cursors {
- visibility: hidden;
- position: relative;
- z-index: 3;
-}
-div.CodeMirror-dragcursors {
- visibility: visible;
-}
-
-.CodeMirror-focused div.CodeMirror-cursors {
- visibility: visible;
-}
-
-.CodeMirror-selected { background: #d9d9d9; }
-.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
-.CodeMirror-crosshair { cursor: crosshair; }
-.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
-.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
-
-.cm-searching {
- background: #ffa;
- background: rgba(255, 255, 0, .4);
-}
-
-/* IE7 hack to prevent it from returning funny offsetTops on the spans */
-.CodeMirror span { *vertical-align: text-bottom; }
-
-/* Used to force a border model for a node */
-.cm-force-border { padding-right: .1px; }
-
-@media print {
- /* Hide the cursor when printing */
- .CodeMirror div.CodeMirror-cursors {
- visibility: hidden;
- }
-}
-
-/* See issue #2901 */
-.cm-tab-wrap-hack:after { content: ''; }
-
-/* Help users use markselection to safely style text background */
-span.CodeMirror-selectedtext { background: none; }
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/css/json-formatter.min.css b/asterixdb/asterix-app/src/main/resources/queryui/css/json-formatter.min.css
deleted file mode 100644
index 4e69a40..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/css/json-formatter.min.css
+++ /dev/null
@@ -1 +0,0 @@
-/*! jsonformatter 0.6.0 - 2016-04-29T03:24:40.680Z | (c) 2014 Mohsen Azimi | http://www.apache.org/licenses/LICENSE-2.0 */.json-formatter-dark.json-formatter-row,.json-formatter-row{font-family:monospace}.json-formatter-dark.json-formatter-row .toggler.open:after,.json-formatter-row .toggler.open:after{transform:rotate(90deg)}.json-formatter-row,.json-formatter-row a,.json-formatter-row a:hover{color:#000;text-decoration:none}.json-formatter-row .json-formatter-row{margin-left:1em}.json-formatter-row .children.empty{opacity:.5;margin-left:1em}.json-formatter-row .children.empty.object:after{content:"No properties"}.json-formatter-row .children.empty.array:after{content:"[]"}.json-formatter-row .string{color:green;white-space:pre;word-wrap:break-word}.json-formatter-row .number{color:#00f}.json-formatter-row .boolean{color:red}.json-formatter-row .null{color:#855A00}.json-formatter-row .undefined{color:#ca0b69}.json-formatter-row .function{color:#FF20ED}.json-formatter-row .date{background-color:rgba(0,0,0,.05)}.json-formatter-row .url{text-decoration:underline;color:#00f;cursor:pointer}.json-formatter-row .bracket{color:#00f}.json-formatter-row .key{color:#00008B;cursor:pointer}.json-formatter-row .constructor-name{cursor:pointer}.json-formatter-row .toggler{font-size:.8em;line-height:1.2em;vertical-align:middle;opacity:.6;cursor:pointer}.json-formatter-row .toggler:after{display:inline-block;transition:transform .1s ease-in;content:"►"}.json-formatter-row>a>.thumbnail-text{opacity:0;transition:opacity .15s ease-in;font-style:italic}.json-formatter-row:hover>a>.thumbnail-text{opacity:.6}.json-formatter-dark.json-formatter-row,.json-formatter-dark.json-formatter-row a,.json-formatter-dark.json-formatter-row a:hover{color:#fff;text-decoration:none}.json-formatter-dark.json-formatter-row .json-formatter-row{margin-left:1em}.json-formatter-dark.json-formatter-row .children.empty{opacity:.5;margin-left:1em}.json-formatter-dark.json-formatter-row .children.empty.object:after{content:"No properties"}.json-formatter-dark.json-formatter-row .children.empty.array:after{content:"[]"}.json-formatter-dark.json-formatter-row .string{color:#31F031;white-space:pre;word-wrap:break-word}.json-formatter-dark.json-formatter-row .number{color:#66C2FF}.json-formatter-dark.json-formatter-row .boolean{color:#EC4242}.json-formatter-dark.json-formatter-row .null{color:#EEC97D}.json-formatter-dark.json-formatter-row .undefined{color:#ef8fbe}.json-formatter-dark.json-formatter-row .function{color:#FD48CB}.json-formatter-dark.json-formatter-row .date{background-color:rgba(255,255,255,.05)}.json-formatter-dark.json-formatter-row .url{text-decoration:underline;color:#027BFF;cursor:pointer}.json-formatter-dark.json-formatter-row .bracket{color:#9494FF}.json-formatter-dark.json-formatter-row .key{color:#23A0DB;cursor:pointer}.json-formatter-dark.json-formatter-row .constructor-name{cursor:pointer}.json-formatter-dark.json-formatter-row .toggler{font-size:.8em;line-height:1.2em;vertical-align:middle;opacity:.6;cursor:pointer}.json-formatter-dark.json-formatter-row .toggler:after{display:inline-block;transition:transform .1s ease-in;content:"►"}.json-formatter-dark.json-formatter-row>a>.thumbnail-text{opacity:0;transition:opacity .15s ease-in;font-style:italic}.json-formatter-dark.json-formatter-row:hover>a>.thumbnail-text{opacity:.6}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/css/master.css b/asterixdb/asterix-app/src/main/resources/queryui/css/master.css
deleted file mode 100644
index d174e9d..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/css/master.css
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-html,body{
- height:100%;
- padding: 0px;
- margin: 0px;
- overflow: hidden;
-}
-.main-container {
- height:100%;
- overflow-x:hidden;
-}
-
-.left-container{
- transition:width .3s ease-out;
- height:100%;
- padding: 25px;
- padding-left : 35px;
- background-color: #ffffff;
- overflow-x: hidden;
- overflow-y: auto;
-}
-.right-container{
- transition:width .3s ease-out;
- height:100%;
- padding: 25px;
- padding-left: 50px !important;
- padding-right: 50px !important;
- background-color: #fafafa;
- background: linear-gradient(to right, #e9e9e9, #fafafa 3%);
- overflow-y: scroll;
-}
-
-.right-toolbar{
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-.left-using-container{
- margin-top: 5vh;
-}
-
-.asterix-nav{
- box-shadow: 0 0px 5px 0 rgba(0, 0, 0, 0.2), 0 0px 20px 0 rgba(0, 0, 0, 0.19);
- border-bottom: 1px solid #5687e4;
-}
-
-.asterix-nav > li{
- background-color: #FFF;
-}
-
-.asterix-nav > li > a{
- color: #cacaca;
-}
-
-.asterix-nav > li:first-child{
- border-top-left-radius: 5px !important;
-}
-
-.asterix-nav > li:last-child{
- border-top-right-radius: 5px !important;
-}
-
-.asterix-nav > li > a:hover, a:focus{
- color: #000 !important;
- background-color: inherit !important;
- border-top-left-radius: inherit !important;
- border-top-right-radius: inherit !important;
- transition: 500ms;
-}
-
-.asterix-tabpage {
- background-color: #FFF;
- box-shadow: 0 0px 5px 0 rgba(0, 0, 0, 0.2), 0 0px 20px 0 rgba(0, 0, 0, 0.19);
- padding : 15px;
-}
-
-.asterix-tabpage-scroll{
- height: 45vh;
- overflow-y: scroll;
- overflow-x:hidden;
- margin-bottom: 15px;
- padding-right: 10px;
-}
-
-.asterix-nav-active {
- background-color: #5687e4 !important;
- color: #FFF !important;
-}
-
-.asterix-nav-active > a{
- color: #FFF !important;
-}
-
-.input-container{
- padding-top: 30px;
-}
-
-.input-container-code{
- border: none !important;
- box-shadow: none !important;
- resize: none;
- overflow-y : auto;
-}
-
-.logo {
- width: 15vh;
-}
-
-.logo-collapsed{
- width : 90%;
- max-width : 15vh;
- transition: .8s ease;
-}
-
-.icon-maximize{
- text-align: right;
- margin-top:15px;
-}
-
-.asterix-button{
- cursor: pointer;
- font-size: 1.4em;
- text-decoration: none;
- color: #AAA;
- margin-right: 8px;
-}
-
-.asterix-button-selected{
- color: #5687e4;
-}
-
-.asterix-button:only-of-type{
- margin-right: 0px;
-}
-
-.asterix-button:hover{
- color: #DDD;
- transition-duration: 200ms;
-}
-
-.asterix-status{
- color: #d7d0cb;
- font-size: 1.3em;
- text-emphasis: none;
-}
-
-.asterix-small{
- color: #d7d0cb !important;
- display: inline-block;
- margin-right: 0.5em;
- margin-top: 0px;
- margin-bottom: 0px;
-}
-
-.asterix-nested{
- color: #f5bd5b !important;
-}
-
-.asterix-inline-item{
- padding: 0px;
- margin: 0px;
- text-decoration: none;
- color: #000;
-}
-
-.asterix-list-view{
- background-color: #FFF;
-}
-
-.asterix-list-wells{
- width: 100%;
- overflow: hidden;
- padding: 10px;
- background-color: #EEE;
- display: flex;
- flex-wrap: wrap;
-}
-
-.asterix-well{
- background-color: #FFF;
- padding: 10px;
- border: 2px solid #d7d0cb;
- border-radius: 5px;
-}
-
-.flex-well{
- flex : 1 1 auto;
- flex-basis: 1;
- margin: 10px;
-}
-
-.margin-bottom{
- margin-bottom: 10px;
-}
-
-.asterix-well:hover{
- background-color: #f6f6f6;
- transition: 200ms;
-}
-
-.asterix-well-right{
- text-align: right;
-}
-
-.asterix-well-row{
- margin-bottom: 10px;
-}
-
-.asterix-table {
- border-bottom: 3px solid #EEE;
- border-left: 3px solid #EEE;
- border-right: 3px solid #EEE;
-}
-.asterix-table tr{
- border-top: 3px solid #EEE !important;
-}
-
-.btn-asterix {
- background-color: #5687e4;
- color: #FFF;
- padding-top: 5px;
- padding-bottom: 5px;
- width: 30%;
- box-shadow: 0 0px 5px 0 rgba(0, 0, 0, 0.2), 0 0px 20px 0 rgba(0, 0, 0, 0.19);
-}
-
-.vh-spacer{
- margin-top: 35px;
-}
-
-::-webkit-scrollbar {
- width: 12px;
-}
-::-webkit-scrollbar-track {
- background-color: #EEE;
-}
-::-webkit-scrollbar-thumb {
- background-color: #CCC;
-}
-::-webkit-scrollbar-thumb:hover {
- background-color: #AAA;
-}
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.eot b/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.eot
deleted file mode 100644
index b93a495..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.eot
+++ /dev/null
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.svg b/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.svg
deleted file mode 100644
index 94fb549..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.svg
+++ /dev/null
@@ -1,288 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
-<font-face units-per-em="1200" ascent="960" descent="-240" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="400" />
-<glyph unicode=" " />
-<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
-<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode=" " />
-<glyph unicode="¥" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
-<glyph unicode=" " horiz-adv-x="650" />
-<glyph unicode=" " horiz-adv-x="1300" />
-<glyph unicode=" " horiz-adv-x="650" />
-<glyph unicode=" " horiz-adv-x="1300" />
-<glyph unicode=" " horiz-adv-x="433" />
-<glyph unicode=" " horiz-adv-x="325" />
-<glyph unicode=" " horiz-adv-x="216" />
-<glyph unicode=" " horiz-adv-x="216" />
-<glyph unicode=" " horiz-adv-x="162" />
-<glyph unicode=" " horiz-adv-x="260" />
-<glyph unicode=" " horiz-adv-x="72" />
-<glyph unicode=" " horiz-adv-x="260" />
-<glyph unicode=" " horiz-adv-x="325" />
-<glyph unicode="€" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
-<glyph unicode="₽" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
-<glyph unicode="−" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="⌛" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
-<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" />
-<glyph unicode="☁" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
-<glyph unicode="⛺" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
-<glyph unicode="✉" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
-<glyph unicode="✏" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
-<glyph unicode="" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
-<glyph unicode="" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
-<glyph unicode="" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
-<glyph unicode="" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
-<glyph unicode="" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
-<glyph unicode="" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
-<glyph unicode="" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
-<glyph unicode="" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
-<glyph unicode="" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
-<glyph unicode="" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
-<glyph unicode="" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
-<glyph unicode="" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
-<glyph unicode="" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
-<glyph unicode="" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
-<glyph unicode="" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
-<glyph unicode="" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
-<glyph unicode="" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
-<glyph unicode="" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
-<glyph unicode="" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
-<glyph unicode="" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
-<glyph unicode="" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
-<glyph unicode="" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
-<glyph unicode="" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
-<glyph unicode="" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
-<glyph unicode="" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
-<glyph unicode="" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
-<glyph unicode="" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
-<glyph unicode="" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
-<glyph unicode="" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
-<glyph unicode="" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
-<glyph unicode="" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
-<glyph unicode="" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
-<glyph unicode="" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
-<glyph unicode="" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
-<glyph unicode="" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
-<glyph unicode="" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
-<glyph unicode="" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
-<glyph unicode="" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
-<glyph unicode="" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
-<glyph unicode="" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
-<glyph unicode="" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
-<glyph unicode="" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
-<glyph unicode="" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
-<glyph unicode="" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
-<glyph unicode="" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
-<glyph unicode="" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
-<glyph unicode="" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
-<glyph unicode="" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
-<glyph unicode="" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
-<glyph unicode="" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
-<glyph unicode="" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
-<glyph unicode="" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
-<glyph unicode="" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
-<glyph unicode="" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
-<glyph unicode="" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
-<glyph unicode="" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
-<glyph unicode="" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
-<glyph unicode="" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
-<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
-<glyph unicode="" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
-<glyph unicode="" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
-<glyph unicode="" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
-<glyph unicode="" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
-<glyph unicode="" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
-<glyph unicode="" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
-<glyph unicode="" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
-<glyph unicode="" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
-<glyph unicode="" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
-<glyph unicode="" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
-<glyph unicode="" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
-<glyph unicode="" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
-<glyph unicode="" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
-<glyph unicode="" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
-<glyph unicode="" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
-<glyph unicode="" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
-<glyph unicode="" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
-<glyph unicode="" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
-<glyph unicode="" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
-<glyph unicode="" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
-<glyph unicode="" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
-<glyph unicode="" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
-<glyph unicode="" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
-<glyph unicode="" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
-<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
-<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
-<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
-<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
-<glyph unicode="" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
-<glyph unicode="" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
-<glyph unicode="" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
-<glyph unicode="" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
-<glyph unicode="" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
-<glyph unicode="" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
-<glyph unicode="" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
-<glyph unicode="" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
-<glyph unicode="" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
-<glyph unicode="" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
-<glyph unicode="" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
-<glyph unicode="" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
-<glyph unicode="" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
-<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
-<glyph unicode="" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
-<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
-<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
-<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
-<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
-<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
-<glyph unicode="" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
-<glyph unicode="" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
-<glyph unicode="" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
-<glyph unicode="" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
-<glyph unicode="" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
-<glyph unicode="" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
-<glyph unicode="" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
-<glyph unicode="" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
-<glyph unicode="" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
-<glyph unicode="" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
-<glyph unicode="" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
-<glyph unicode="" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
-<glyph unicode="" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
-<glyph unicode="" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
-<glyph unicode="" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
-<glyph unicode="" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
-<glyph unicode="" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
-<glyph unicode="" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
-<glyph unicode="" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
-<glyph unicode="" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
-<glyph unicode="" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
-<glyph unicode="" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
-<glyph unicode="" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
-<glyph unicode="" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
-<glyph unicode="" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
-<glyph unicode="" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
-<glyph unicode="" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
-<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
-<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
-<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
-<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
-<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
-<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
-<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
-<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
-<glyph unicode="" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
-<glyph unicode="" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
-<glyph unicode="" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
-<glyph unicode="" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
-<glyph unicode="" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
-<glyph unicode="" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
-<glyph unicode="" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
-<glyph unicode="" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
-<glyph unicode="" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
-<glyph unicode="" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
-<glyph unicode="" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
-<glyph unicode="" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
-<glyph unicode="" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
-<glyph unicode="" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
-<glyph unicode="" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
-<glyph unicode="" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
-<glyph unicode="" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
-<glyph unicode="" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
-<glyph unicode="" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
-<glyph unicode="" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
-<glyph unicode="" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
-<glyph unicode="" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
-<glyph unicode="" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
-<glyph unicode="" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
-<glyph unicode="" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
-<glyph unicode="" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
-<glyph unicode="" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
-<glyph unicode="" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
-<glyph unicode="" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
-<glyph unicode="" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
-<glyph unicode="" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
-<glyph unicode="" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
-<glyph unicode="" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
-<glyph unicode="" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
-<glyph unicode="" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
-<glyph unicode="" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
-<glyph unicode="" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
-<glyph unicode="" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
-<glyph unicode="" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
-<glyph unicode="" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
-<glyph unicode="" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
-<glyph unicode="" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
-<glyph unicode="" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
-<glyph unicode="" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
-<glyph unicode="" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
-<glyph unicode="" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
-<glyph unicode="" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
-<glyph unicode="🔑" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
-<glyph unicode="🚪" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
-</font>
-</defs></svg>
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.ttf b/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.ttf
deleted file mode 100644
index 1413fc6..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.ttf
+++ /dev/null
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.woff b/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.woff
deleted file mode 100644
index 9e61285..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.woff
+++ /dev/null
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.woff2 b/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.woff2
deleted file mode 100644
index 64539b5..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/fonts/glyphicons-halflings-regular.woff2
+++ /dev/null
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/img/asterixlogo-collapsed.png b/asterixdb/asterix-app/src/main/resources/queryui/img/asterixlogo-collapsed.png
deleted file mode 100644
index aa9d127..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/img/asterixlogo-collapsed.png
+++ /dev/null
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/img/finalasterixlogo.png b/asterixdb/asterix-app/src/main/resources/queryui/img/finalasterixlogo.png
deleted file mode 100644
index 10ce431..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/img/finalasterixlogo.png
+++ /dev/null
Binary files differ
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/js/angular.min.js b/asterixdb/asterix-app/src/main/resources/queryui/js/angular.min.js
deleted file mode 100644
index 734260c..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/js/angular.min.js
+++ /dev/null
@@ -1,310 +0,0 @@
-/* AngularJS v1.5.5 http://angularjs.org | (c) 2010-2016 Google, Inc. | License: MIT */
-(function(v){'use strict';function O(a){return function(){var b=arguments[0],d;d="["+(a?a+":":"")+b+"] http://errors.angularjs.org/1.5.5/"+(a?a+"/":"")+b;for(b=1;b<arguments.length;b++){d=d+(1==b?"?":"&")+"p"+(b-1)+"=";var c=encodeURIComponent,e;e=arguments[b];e="function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof e?"undefined":"string"!=typeof e?JSON.stringify(e):e;d+=c(e)}return Error(d)}}function ya(a){if(null==a||Va(a))return!1;if(K(a)||F(a)||B&&a instanceof B)return!0;
-var b="length"in Object(a)&&a.length;return Q(b)&&(0<=b&&(b-1 in a||a instanceof Array)||"function"==typeof a.item)}function q(a,b,d){var c,e;if(a)if(E(a))for(c in a)"prototype"==c||"length"==c||"name"==c||a.hasOwnProperty&&!a.hasOwnProperty(c)||b.call(d,a[c],c,a);else if(K(a)||ya(a)){var f="object"!==typeof a;c=0;for(e=a.length;c<e;c++)(f||c in a)&&b.call(d,a[c],c,a)}else if(a.forEach&&a.forEach!==q)a.forEach(b,d,a);else if(oc(a))for(c in a)b.call(d,a[c],c,a);else if("function"===typeof a.hasOwnProperty)for(c in a)a.hasOwnProperty(c)&&
-b.call(d,a[c],c,a);else for(c in a)ua.call(a,c)&&b.call(d,a[c],c,a);return a}function pc(a,b,d){for(var c=Object.keys(a).sort(),e=0;e<c.length;e++)b.call(d,a[c[e]],c[e]);return c}function qc(a){return function(b,d){a(d,b)}}function Xd(){return++nb}function Nb(a,b,d){for(var c=a.$$hashKey,e=0,f=b.length;e<f;++e){var g=b[e];if(G(g)||E(g))for(var h=Object.keys(g),k=0,l=h.length;k<l;k++){var n=h[k],m=g[n];d&&G(m)?fa(m)?a[n]=new Date(m.valueOf()):Wa(m)?a[n]=new RegExp(m):m.nodeName?a[n]=m.cloneNode(!0):
-Ob(m)?a[n]=m.clone():(G(a[n])||(a[n]=K(m)?[]:{}),Nb(a[n],[m],!0)):a[n]=m}}c?a.$$hashKey=c:delete a.$$hashKey;return a}function R(a){return Nb(a,za.call(arguments,1),!1)}function Yd(a){return Nb(a,za.call(arguments,1),!0)}function X(a){return parseInt(a,10)}function Pb(a,b){return R(Object.create(a),b)}function C(){}function Xa(a){return a}function da(a){return function(){return a}}function rc(a){return E(a.toString)&&a.toString!==ma}function y(a){return"undefined"===typeof a}function x(a){return"undefined"!==
-typeof a}function G(a){return null!==a&&"object"===typeof a}function oc(a){return null!==a&&"object"===typeof a&&!sc(a)}function F(a){return"string"===typeof a}function Q(a){return"number"===typeof a}function fa(a){return"[object Date]"===ma.call(a)}function E(a){return"function"===typeof a}function Wa(a){return"[object RegExp]"===ma.call(a)}function Va(a){return a&&a.window===a}function Ya(a){return a&&a.$evalAsync&&a.$watch}function Da(a){return"boolean"===typeof a}function Zd(a){return a&&Q(a.length)&&
-$d.test(ma.call(a))}function Ob(a){return!(!a||!(a.nodeName||a.prop&&a.attr&&a.find))}function ae(a){var b={};a=a.split(",");var d;for(d=0;d<a.length;d++)b[a[d]]=!0;return b}function va(a){return P(a.nodeName||a[0]&&a[0].nodeName)}function Za(a,b){var d=a.indexOf(b);0<=d&&a.splice(d,1);return d}function qa(a,b){function d(a,b){var d=b.$$hashKey,e;if(K(a)){e=0;for(var f=a.length;e<f;e++)b.push(c(a[e]))}else if(oc(a))for(e in a)b[e]=c(a[e]);else if(a&&"function"===typeof a.hasOwnProperty)for(e in a)a.hasOwnProperty(e)&&
-(b[e]=c(a[e]));else for(e in a)ua.call(a,e)&&(b[e]=c(a[e]));d?b.$$hashKey=d:delete b.$$hashKey;return b}function c(a){if(!G(a))return a;var b=f.indexOf(a);if(-1!==b)return g[b];if(Va(a)||Ya(a))throw Aa("cpws");var b=!1,c=e(a);void 0===c&&(c=K(a)?[]:Object.create(sc(a)),b=!0);f.push(a);g.push(c);return b?d(a,c):c}function e(a){switch(ma.call(a)){case "[object Int8Array]":case "[object Int16Array]":case "[object Int32Array]":case "[object Float32Array]":case "[object Float64Array]":case "[object Uint8Array]":case "[object Uint8ClampedArray]":case "[object Uint16Array]":case "[object Uint32Array]":return new a.constructor(c(a.buffer));
-case "[object ArrayBuffer]":if(!a.slice){var b=new ArrayBuffer(a.byteLength);(new Uint8Array(b)).set(new Uint8Array(a));return b}return a.slice(0);case "[object Boolean]":case "[object Number]":case "[object String]":case "[object Date]":return new a.constructor(a.valueOf());case "[object RegExp]":return b=new RegExp(a.source,a.toString().match(/[^\/]*$/)[0]),b.lastIndex=a.lastIndex,b;case "[object Blob]":return new a.constructor([a],{type:a.type})}if(E(a.cloneNode))return a.cloneNode(!0)}var f=[],
-g=[];if(b){if(Zd(b)||"[object ArrayBuffer]"===ma.call(b))throw Aa("cpta");if(a===b)throw Aa("cpi");K(b)?b.length=0:q(b,function(a,d){"$$hashKey"!==d&&delete b[d]});f.push(a);g.push(b);return d(a,b)}return c(a)}function ha(a,b){if(K(a)){b=b||[];for(var d=0,c=a.length;d<c;d++)b[d]=a[d]}else if(G(a))for(d in b=b||{},a)if("$"!==d.charAt(0)||"$"!==d.charAt(1))b[d]=a[d];return b||a}function pa(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var d=typeof a,c;if(d==typeof b&&
-"object"==d)if(K(a)){if(!K(b))return!1;if((d=a.length)==b.length){for(c=0;c<d;c++)if(!pa(a[c],b[c]))return!1;return!0}}else{if(fa(a))return fa(b)?pa(a.getTime(),b.getTime()):!1;if(Wa(a))return Wa(b)?a.toString()==b.toString():!1;if(Ya(a)||Ya(b)||Va(a)||Va(b)||K(b)||fa(b)||Wa(b))return!1;d=T();for(c in a)if("$"!==c.charAt(0)&&!E(a[c])){if(!pa(a[c],b[c]))return!1;d[c]=!0}for(c in b)if(!(c in d)&&"$"!==c.charAt(0)&&x(b[c])&&!E(b[c]))return!1;return!0}return!1}function $a(a,b,d){return a.concat(za.call(b,
-d))}function tc(a,b){var d=2<arguments.length?za.call(arguments,2):[];return!E(b)||b instanceof RegExp?b:d.length?function(){return arguments.length?b.apply(a,$a(d,arguments,0)):b.apply(a,d)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}}function be(a,b){var d=b;"string"===typeof a&&"$"===a.charAt(0)&&"$"===a.charAt(1)?d=void 0:Va(b)?d="$WINDOW":b&&v.document===b?d="$DOCUMENT":Ya(b)&&(d="$SCOPE");return d}function ab(a,b){if(!y(a))return Q(b)||(b=b?2:null),JSON.stringify(a,be,
-b)}function uc(a){return F(a)?JSON.parse(a):a}function vc(a,b){a=a.replace(ce,"");var d=Date.parse("Jan 01, 1970 00:00:00 "+a)/6E4;return isNaN(d)?b:d}function Qb(a,b,d){d=d?-1:1;var c=a.getTimezoneOffset();b=vc(b,c);d*=b-c;a=new Date(a.getTime());a.setMinutes(a.getMinutes()+d);return a}function wa(a){a=B(a).clone();try{a.empty()}catch(b){}var d=B("<div>").append(a).html();try{return a[0].nodeType===Ma?P(d):d.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+P(b)})}catch(c){return P(d)}}
-function wc(a){try{return decodeURIComponent(a)}catch(b){}}function xc(a){var b={};q((a||"").split("&"),function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=wc(e),x(e)&&(f=x(f)?wc(f):!0,ua.call(b,e)?K(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function Rb(a){var b=[];q(a,function(a,c){K(a)?q(a,function(a){b.push(ja(c,!0)+(!0===a?"":"="+ja(a,!0)))}):b.push(ja(c,!0)+(!0===a?"":"="+ja(a,!0)))});return b.length?b.join("&"):""}
-function ob(a){return ja(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ja(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function de(a,b){var d,c,e=Na.length;for(c=0;c<e;++c)if(d=Na[c]+b,F(d=a.getAttribute(d)))return d;return null}function ee(a,b){var d,c,e={};q(Na,function(b){b+="app";!d&&a.hasAttribute&&a.hasAttribute(b)&&(d=a,c=a.getAttribute(b))});
-q(Na,function(b){b+="app";var e;!d&&(e=a.querySelector("["+b.replace(":","\\:")+"]"))&&(d=e,c=e.getAttribute(b))});d&&(e.strictDi=null!==de(d,"strict-di"),b(d,c?[c]:[],e))}function yc(a,b,d){G(d)||(d={});d=R({strictDi:!1},d);var c=function(){a=B(a);if(a.injector()){var c=a[0]===v.document?"document":wa(a);throw Aa("btstrpd",c.replace(/</,"<").replace(/>/,">"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);
-b.unshift("ng");c=bb(b,d.strictDi);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;v&&e.test(v.name)&&(d.debugInfoEnabled=!0,v.name=v.name.replace(e,""));if(v&&!f.test(v.name))return c();v.name=v.name.replace(f,"");ea.resumeBootstrap=function(a){q(a,function(a){b.push(a)});return c()};E(ea.resumeDeferredBootstrap)&&ea.resumeDeferredBootstrap()}function fe(){v.name=
-"NG_ENABLE_DEBUG_INFO!"+v.name;v.location.reload()}function ge(a){a=ea.element(a).injector();if(!a)throw Aa("test");return a.get("$$testability")}function zc(a,b){b=b||"_";return a.replace(he,function(a,c){return(c?b:"")+a.toLowerCase()})}function ie(){var a;if(!Ac){var b=pb();(Z=y(b)?v.jQuery:b?v[b]:void 0)&&Z.fn.on?(B=Z,R(Z.fn,{scope:Oa.scope,isolateScope:Oa.isolateScope,controller:Oa.controller,injector:Oa.injector,inheritedData:Oa.inheritedData}),a=Z.cleanData,Z.cleanData=function(b){for(var c,
-e=0,f;null!=(f=b[e]);e++)(c=Z._data(f,"events"))&&c.$destroy&&Z(f).triggerHandler("$destroy");a(b)}):B=U;ea.element=B;Ac=!0}}function qb(a,b,d){if(!a)throw Aa("areq",b||"?",d||"required");return a}function Pa(a,b,d){d&&K(a)&&(a=a[a.length-1]);qb(E(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Qa(a,b){if("hasOwnProperty"===a)throw Aa("badname",b);}function Bc(a,b,d){if(!b)return a;b=b.split(".");for(var c,e=a,f=b.length,g=0;g<f;g++)c=
-b[g],a&&(a=(e=a)[c]);return!d&&E(a)?tc(e,a):a}function rb(a){for(var b=a[0],d=a[a.length-1],c,e=1;b!==d&&(b=b.nextSibling);e++)if(c||a[e]!==b)c||(c=B(za.call(a,0,e))),c.push(b);return c||a}function T(){return Object.create(null)}function je(a){function b(a,b,c){return a[b]||(a[b]=c())}var d=O("$injector"),c=O("ng");a=b(a,"angular",Object);a.$$minErr=a.$$minErr||O;return b(a,"module",function(){var a={};return function(f,g,h){if("hasOwnProperty"===f)throw c("badname","module");g&&a.hasOwnProperty(f)&&
-(a[f]=null);return b(a,f,function(){function a(b,d,e,f){f||(f=c);return function(){f[e||"push"]([b,d,arguments]);return M}}function b(a,d){return function(b,e){e&&E(e)&&(e.$$moduleName=f);c.push([a,d,arguments]);return M}}if(!g)throw d("nomod",f);var c=[],e=[],r=[],N=a("$injector","invoke","push",e),M={_invokeQueue:c,_configBlocks:e,_runBlocks:r,requires:g,name:f,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:a("$provide","value"),constant:a("$provide",
-"constant","unshift"),decorator:b("$provide","decorator"),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider","directive"),component:b("$compileProvider","component"),config:N,run:function(a){r.push(a);return this}};h&&N(h);return M})}})}function ke(a){R(a,{bootstrap:yc,copy:qa,extend:R,merge:Yd,equals:pa,element:B,forEach:q,injector:bb,noop:C,bind:tc,toJson:ab,fromJson:uc,identity:Xa,isUndefined:y,
-isDefined:x,isString:F,isFunction:E,isObject:G,isNumber:Q,isElement:Ob,isArray:K,version:le,isDate:fa,lowercase:P,uppercase:sb,callbacks:{counter:0},getTestability:ge,$$minErr:O,$$csp:Ea,reloadWithDebugInfo:fe});Sb=je(v);Sb("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:me});a.provider("$compile",Cc).directive({a:ne,input:Dc,textarea:Dc,form:oe,script:pe,select:qe,style:re,option:se,ngBind:te,ngBindHtml:ue,ngBindTemplate:ve,ngClass:we,ngClassEven:xe,ngClassOdd:ye,ngCloak:ze,ngController:Ae,
-ngForm:Be,ngHide:Ce,ngIf:De,ngInclude:Ee,ngInit:Fe,ngNonBindable:Ge,ngPluralize:He,ngRepeat:Ie,ngShow:Je,ngStyle:Ke,ngSwitch:Le,ngSwitchWhen:Me,ngSwitchDefault:Ne,ngOptions:Oe,ngTransclude:Pe,ngModel:Qe,ngList:Re,ngChange:Se,pattern:Ec,ngPattern:Ec,required:Fc,ngRequired:Fc,minlength:Gc,ngMinlength:Gc,maxlength:Hc,ngMaxlength:Hc,ngValue:Te,ngModelOptions:Ue}).directive({ngInclude:Ve}).directive(tb).directive(Ic);a.provider({$anchorScroll:We,$animate:Xe,$animateCss:Ye,$$animateJs:Ze,$$animateQueue:$e,
-$$AnimateRunner:af,$$animateAsyncRun:bf,$browser:cf,$cacheFactory:df,$controller:ef,$document:ff,$exceptionHandler:gf,$filter:Jc,$$forceReflow:hf,$interpolate:jf,$interval:kf,$http:lf,$httpParamSerializer:mf,$httpParamSerializerJQLike:nf,$httpBackend:of,$xhrFactory:pf,$location:qf,$log:rf,$parse:sf,$rootScope:tf,$q:uf,$$q:vf,$sce:wf,$sceDelegate:xf,$sniffer:yf,$templateCache:zf,$templateRequest:Af,$$testability:Bf,$timeout:Cf,$window:Df,$$rAF:Ef,$$jqLite:Ff,$$HashMap:Gf,$$cookieReader:Hf})}])}function cb(a){return a.replace(If,
-function(a,d,c,e){return e?c.toUpperCase():c}).replace(Jf,"Moz$1")}function Kc(a){a=a.nodeType;return 1===a||!a||9===a}function Lc(a,b){var d,c,e=b.createDocumentFragment(),f=[];if(Tb.test(a)){d=d||e.appendChild(b.createElement("div"));c=(Kf.exec(a)||["",""])[1].toLowerCase();c=ia[c]||ia._default;d.innerHTML=c[1]+a.replace(Lf,"<$1></$2>")+c[2];for(c=c[0];c--;)d=d.lastChild;f=$a(f,d.childNodes);d=e.firstChild;d.textContent=""}else f.push(b.createTextNode(a));e.textContent="";e.innerHTML="";q(f,function(a){e.appendChild(a)});
-return e}function Mc(a,b){var d=a.parentNode;d&&d.replaceChild(b,a);b.appendChild(a)}function U(a){if(a instanceof U)return a;var b;F(a)&&(a=V(a),b=!0);if(!(this instanceof U)){if(b&&"<"!=a.charAt(0))throw Ub("nosel");return new U(a)}if(b){b=v.document;var d;a=(d=Mf.exec(a))?[b.createElement(d[1])]:(d=Lc(a,b))?d.childNodes:[]}Nc(this,a)}function Vb(a){return a.cloneNode(!0)}function ub(a,b){b||db(a);if(a.querySelectorAll)for(var d=a.querySelectorAll("*"),c=0,e=d.length;c<e;c++)db(d[c])}function Oc(a,
-b,d,c){if(x(c))throw Ub("offargs");var e=(c=vb(a))&&c.events,f=c&&c.handle;if(f)if(b){var g=function(b){var c=e[b];x(d)&&Za(c||[],d);x(d)&&c&&0<c.length||(a.removeEventListener(b,f,!1),delete e[b])};q(b.split(" "),function(a){g(a);wb[a]&&g(wb[a])})}else for(b in e)"$destroy"!==b&&a.removeEventListener(b,f,!1),delete e[b]}function db(a,b){var d=a.ng339,c=d&&eb[d];c&&(b?delete c.data[b]:(c.handle&&(c.events.$destroy&&c.handle({},"$destroy"),Oc(a)),delete eb[d],a.ng339=void 0))}function vb(a,b){var d=
-a.ng339,d=d&&eb[d];b&&!d&&(a.ng339=d=++Nf,d=eb[d]={events:{},data:{},handle:void 0});return d}function Wb(a,b,d){if(Kc(a)){var c=x(d),e=!c&&b&&!G(b),f=!b;a=(a=vb(a,!e))&&a.data;if(c)a[b]=d;else{if(f)return a;if(e)return a&&a[b];R(a,b)}}}function xb(a,b){return a.getAttribute?-1<(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+b+" "):!1}function yb(a,b){b&&a.setAttribute&&q(b.split(" "),function(b){a.setAttribute("class",V((" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g,
-" ").replace(" "+V(b)+" "," ")))})}function zb(a,b){if(b&&a.setAttribute){var d=(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");q(b.split(" "),function(a){a=V(a);-1===d.indexOf(" "+a+" ")&&(d+=a+" ")});a.setAttribute("class",V(d))}}function Nc(a,b){if(b)if(b.nodeType)a[a.length++]=b;else{var d=b.length;if("number"===typeof d&&b.window!==b){if(d)for(var c=0;c<d;c++)a[a.length++]=b[c]}else a[a.length++]=b}}function Pc(a,b){return Ab(a,"$"+(b||"ngController")+"Controller")}function Ab(a,
-b,d){9==a.nodeType&&(a=a.documentElement);for(b=K(b)?b:[b];a;){for(var c=0,e=b.length;c<e;c++)if(x(d=B.data(a,b[c])))return d;a=a.parentNode||11===a.nodeType&&a.host}}function Qc(a){for(ub(a,!0);a.firstChild;)a.removeChild(a.firstChild)}function Bb(a,b){b||ub(a);var d=a.parentNode;d&&d.removeChild(a)}function Of(a,b){b=b||v;if("complete"===b.document.readyState)b.setTimeout(a);else B(b).on("load",a)}function Rc(a,b){var d=Cb[b.toLowerCase()];return d&&Sc[va(a)]&&d}function Pf(a,b){var d=function(c,
-d){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=b[d||c.type],g=f?f.length:0;if(g){if(y(c.immediatePropagationStopped)){var h=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0;c.stopPropagation&&c.stopPropagation();h&&h.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};var k=f.specialHandlerWrapper||Qf;1<g&&(f=ha(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||k(a,c,f[l])}};d.elem=
-a;return d}function Qf(a,b,d){d.call(a,b)}function Rf(a,b,d){var c=b.relatedTarget;c&&(c===a||Sf.call(a,c))||d.call(a,b)}function Ff(){this.$get=function(){return R(U,{hasClass:function(a,b){a.attr&&(a=a[0]);return xb(a,b)},addClass:function(a,b){a.attr&&(a=a[0]);return zb(a,b)},removeClass:function(a,b){a.attr&&(a=a[0]);return yb(a,b)}})}}function Fa(a,b){var d=a&&a.$$hashKey;if(d)return"function"===typeof d&&(d=a.$$hashKey()),d;d=typeof a;return d="function"==d||"object"==d&&null!==a?a.$$hashKey=
-d+":"+(b||Xd)():d+":"+a}function Ra(a,b){if(b){var d=0;this.nextUid=function(){return++d}}q(a,this.put,this)}function Tc(a){a=Function.prototype.toString.call(a).replace(Tf,"");return a.match(Uf)||a.match(Vf)}function Wf(a){return(a=Tc(a))?"function("+(a[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function bb(a,b){function d(a){return function(b,c){if(G(b))q(b,qc(a));else return a(b,c)}}function c(a,b){Qa(a,"service");if(E(b)||K(b))b=r.instantiate(b);if(!b.$get)throw Ga("pget",a);return m[a+"Provider"]=
-b}function e(a,b){return function(){var c=w.invoke(b,this);if(y(c))throw Ga("undef",a);return c}}function f(a,b,d){return c(a,{$get:!1!==d?e(a,b):b})}function g(a){qb(y(a)||K(a),"modulesToLoad","not an array");var b=[],c;q(a,function(a){function d(a){var b,c;b=0;for(c=a.length;b<c;b++){var e=a[b],f=r.get(e[0]);f[e[1]].apply(f,e[2])}}if(!n.get(a)){n.put(a,!0);try{F(a)?(c=Sb(a),b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):E(a)?b.push(r.invoke(a)):K(a)?b.push(r.invoke(a)):
-Pa(a,"module")}catch(e){throw K(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1==e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Ga("modulerr",a,e.stack||e.message||e);}}});return b}function h(a,c){function d(b,e){if(a.hasOwnProperty(b)){if(a[b]===k)throw Ga("cdep",b+" <- "+l.join(" <- "));return a[b]}try{return l.unshift(b),a[b]=k,a[b]=c(b,e)}catch(f){throw a[b]===k&&delete a[b],f;}finally{l.shift()}}function e(a,c,f){var g=[];a=bb.$$annotate(a,b,f);for(var h=0,k=a.length;h<k;h++){var l=a[h];
-if("string"!==typeof l)throw Ga("itkn",l);g.push(c&&c.hasOwnProperty(l)?c[l]:d(l,f))}return g}return{invoke:function(a,b,c,d){"string"===typeof c&&(d=c,c=null);c=e(a,c,d);K(a)&&(a=a[a.length-1]);d=11>=Ca?!1:"function"===typeof a&&/^(?:class\s|constructor\()/.test(Function.prototype.toString.call(a));return d?(c.unshift(null),new (Function.prototype.bind.apply(a,c))):a.apply(b,c)},instantiate:function(a,b,c){var d=K(a)?a[a.length-1]:a;a=e(a,b,c);a.unshift(null);return new (Function.prototype.bind.apply(d,
-a))},get:d,annotate:bb.$$annotate,has:function(b){return m.hasOwnProperty(b+"Provider")||a.hasOwnProperty(b)}}}b=!0===b;var k={},l=[],n=new Ra([],!0),m={$provide:{provider:d(c),factory:d(f),service:d(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:d(function(a,b){return f(a,da(b),!1)}),constant:d(function(a,b){Qa(a,"constant");m[a]=b;N[a]=b}),decorator:function(a,b){var c=r.get(a+"Provider"),d=c.$get;c.$get=function(){var a=w.invoke(d,c);return w.invoke(b,null,
-{$delegate:a})}}}},r=m.$injector=h(m,function(a,b){ea.isString(b)&&l.push(b);throw Ga("unpr",l.join(" <- "));}),N={},M=h(N,function(a,b){var c=r.get(a+"Provider",b);return w.invoke(c.$get,c,void 0,a)}),w=M;m.$injectorProvider={$get:da(M)};var p=g(a),w=M.get("$injector");w.strictDi=b;q(p,function(a){a&&w.invoke(a)});return w}function We(){var a=!0;this.disableAutoScrolling=function(){a=!1};this.$get=["$window","$location","$rootScope",function(b,d,c){function e(a){var b=null;Array.prototype.some.call(a,
-function(a){if("a"===va(a))return b=a,!0});return b}function f(a){if(a){a.scrollIntoView();var c;c=g.yOffset;E(c)?c=c():Ob(c)?(c=c[0],c="fixed"!==b.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):Q(c)||(c=0);c&&(a=a.getBoundingClientRect().top,b.scrollBy(0,a-c))}else b.scrollTo(0,0)}function g(a){a=F(a)?a:d.hash();var b;a?(b=h.getElementById(a))?f(b):(b=e(h.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var h=b.document;a&&c.$watch(function(){return d.hash()},function(a,b){a===
-b&&""===a||Of(function(){c.$evalAsync(g)})});return g}]}function fb(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;K(a)&&(a=a.join(" "));K(b)&&(b=b.join(" "));return a+" "+b}function Xf(a){F(a)&&(a=a.split(" "));var b=T();q(a,function(a){a.length&&(b[a]=!0)});return b}function Ha(a){return G(a)?a:{}}function Yf(a,b,d,c){function e(a){try{a.apply(null,za.call(arguments,1))}finally{if(M--,0===M)for(;w.length;)try{w.pop()()}catch(b){d.error(b)}}}function f(){u=null;g();h()}function g(){p=I();
-p=y(p)?null:p;pa(p,L)&&(p=L);L=p}function h(){if(t!==k.url()||H!==p)t=k.url(),H=p,q(J,function(a){a(k.url(),p)})}var k=this,l=a.location,n=a.history,m=a.setTimeout,r=a.clearTimeout,N={};k.isMock=!1;var M=0,w=[];k.$$completeOutstandingRequest=e;k.$$incOutstandingRequestCount=function(){M++};k.notifyWhenNoOutstandingRequests=function(a){0===M?a():w.push(a)};var p,H,t=l.href,z=b.find("base"),u=null,I=c.history?function(){try{return n.state}catch(a){}}:C;g();H=p;k.url=function(b,d,e){y(e)&&(e=null);l!==
-a.location&&(l=a.location);n!==a.history&&(n=a.history);if(b){var f=H===e;if(t===b&&(!c.history||f))return k;var h=t&&Ia(t)===Ia(b);t=b;H=e;if(!c.history||h&&f){if(!h||u)u=b;d?l.replace(b):h?(d=l,e=b.indexOf("#"),e=-1===e?"":b.substr(e),d.hash=e):l.href=b;l.href!==b&&(u=b)}else n[d?"replaceState":"pushState"](e,"",b),g(),H=p;return k}return u||l.href.replace(/%27/g,"'")};k.state=function(){return p};var J=[],D=!1,L=null;k.onUrlChange=function(b){if(!D){if(c.history)B(a).on("popstate",f);B(a).on("hashchange",
-f);D=!0}J.push(b);return b};k.$$applicationDestroyed=function(){B(a).off("hashchange popstate",f)};k.$$checkUrlChange=h;k.baseHref=function(){var a=z.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""};k.defer=function(a,b){var c;M++;c=m(function(){delete N[c];e(a)},b||0);N[c]=!0;return c};k.defer.cancel=function(a){return N[a]?(delete N[a],r(a),e(C),!0):!1}}function cf(){this.$get=["$window","$log","$sniffer","$document",function(a,b,d,c){return new Yf(a,c,b,d)}]}function df(){this.$get=
-function(){function a(a,c){function e(a){a!=m&&(r?r==a&&(r=a.n):r=a,f(a.n,a.p),f(a,m),m=a,m.n=null)}function f(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw O("$cacheFactory")("iid",a);var g=0,h=R({},c,{id:a}),k=T(),l=c&&c.capacity||Number.MAX_VALUE,n=T(),m=null,r=null;return b[a]={put:function(a,b){if(!y(b)){if(l<Number.MAX_VALUE){var c=n[a]||(n[a]={key:a});e(c)}a in k||g++;k[a]=b;g>l&&this.remove(r.key);return b}},get:function(a){if(l<Number.MAX_VALUE){var b=n[a];if(!b)return;e(b)}return k[a]},
-remove:function(a){if(l<Number.MAX_VALUE){var b=n[a];if(!b)return;b==m&&(m=b.p);b==r&&(r=b.n);f(b.n,b.p);delete n[a]}a in k&&(delete k[a],g--)},removeAll:function(){k=T();g=0;n=T();m=r=null},destroy:function(){n=h=k=null;delete b[a]},info:function(){return R({},h,{size:g})}}}var b={};a.info=function(){var a={};q(b,function(b,e){a[e]=b.info()});return a};a.get=function(a){return b[a]};return a}}function zf(){this.$get=["$cacheFactory",function(a){return a("templates")}]}function Cc(a,b){function d(a,
-b,c){var d=/^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/,e=T();q(a,function(a,f){if(a in n)e[f]=n[a];else{var g=a.match(d);if(!g)throw ga("iscp",b,f,a,c?"controller bindings definition":"isolate scope definition");e[f]={mode:g[1][0],collection:"*"===g[2],optional:"?"===g[3],attrName:g[4]||f};g[4]&&(n[a]=e[f])}});return e}function c(a){var b=a.charAt(0);if(!b||b!==P(b))throw ga("baddir",a);if(a!==a.trim())throw ga("baddir",a);}var e={},f=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,g=/(([\w\-]+)(?:\:([^;]+))?;?)/,
-h=ae("ngSrc,ngSrcset,src,srcset"),k=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,l=/^(on[a-z]+|formaction)$/,n=T();this.directive=function M(b,d){Qa(b,"directive");F(b)?(c(b),qb(d,"directiveFactory"),e.hasOwnProperty(b)||(e[b]=[],a.factory(b+"Directive",["$injector","$exceptionHandler",function(a,c){var d=[];q(e[b],function(e,f){try{var g=a.invoke(e);E(g)?g={compile:da(g)}:!g.compile&&g.link&&(g.compile=da(g.link));g.priority=g.priority||0;g.index=f;g.name=g.name||b;g.require=g.require||g.controller&&g.name;g.restrict=
-g.restrict||"EA";g.$$moduleName=e.$$moduleName;d.push(g)}catch(h){c(h)}});return d}])),e[b].push(d)):q(b,qc(M));return this};this.component=function(a,b){function c(a){function e(b){return E(b)||K(b)?function(c,d){return a.invoke(b,this,{$element:c,$attrs:d})}:b}var f=b.template||b.templateUrl?b.template:"",g={controller:d,controllerAs:Uc(b.controller)||b.controllerAs||"$ctrl",template:e(f),templateUrl:e(b.templateUrl),transclude:b.transclude,scope:{},bindToController:b.bindings||{},restrict:"E",
-require:b.require};q(b,function(a,b){"$"===b.charAt(0)&&(g[b]=a)});return g}var d=b.controller||function(){};q(b,function(a,b){"$"===b.charAt(0)&&(c[b]=a,E(d)&&(d[b]=a))});c.$inject=["$injector"];return this.directive(a,c)};this.aHrefSanitizationWhitelist=function(a){return x(a)?(b.aHrefSanitizationWhitelist(a),this):b.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(a){return x(a)?(b.imgSrcSanitizationWhitelist(a),this):b.imgSrcSanitizationWhitelist()};var m=!0;this.debugInfoEnabled=
-function(a){return x(a)?(m=a,this):m};var r=10;this.onChangesTtl=function(a){return arguments.length?(r=a,this):r};this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(a,b,c,n,t,z,u,I,J,D){function L(){try{if(!--qa)throw Z=void 0,ga("infchng",r);u.$apply(function(){for(var a=0,b=Z.length;a<b;++a)Z[a]();Z=void 0})}finally{qa++}}function S(a,b){if(b){var c=Object.keys(b),d,e,f;d=0;for(e=c.length;d<
-e;d++)f=c[d],this[f]=b[f]}else this.$attr={};this.$$element=a}function $(a,b,c){na.innerHTML="<span "+b+">";b=na.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name);d.value=c;a.attributes.setNamedItem(d)}function A(a,b){try{a.addClass(b)}catch(c){}}function ba(a,b,c,d,e){a instanceof B||(a=B(a));for(var f=/\S+/,g=0,h=a.length;g<h;g++){var k=a[g];k.nodeType===Ma&&k.nodeValue.match(f)&&Mc(k,a[g]=v.document.createElement("span"))}var l=s(a,b,a,c,d,e);ba.$$addScopeClass(a);var m=null;return function(b,
-c,d){qb(b,"scope");e&&e.needsNewScope&&(b=b.$parent.$new());d=d||{};var f=d.parentBoundTranscludeFn,g=d.transcludeControllers;d=d.futureParentElement;f&&f.$$boundTransclude&&(f=f.$$boundTransclude);m||(m=(d=d&&d[0])?"foreignobject"!==va(d)&&ma.call(d).match(/SVG/)?"svg":"html":"html");d="html"!==m?B(ca(m,B("<div>").append(a).html())):c?Oa.clone.call(a):a;if(g)for(var h in g)d.data("$"+h+"Controller",g[h].instance);ba.$$addScopeInfo(d,b);c&&c(d,b);l&&l(b,d,d,f);return d}}function s(a,b,c,d,e,f){function g(a,
-c,d,e){var f,k,l,m,n,t,p;if(r)for(p=Array(c.length),m=0;m<h.length;m+=3)f=h[m],p[f]=c[f];else p=c;m=0;for(n=h.length;m<n;)k=p[h[m++]],c=h[m++],f=h[m++],c?(c.scope?(l=a.$new(),ba.$$addScopeInfo(B(k),l)):l=a,t=c.transcludeOnThisElement?ka(a,c.transclude,e):!c.templateOnThisElement&&e?e:!e&&b?ka(a,b):null,c(f,l,k,d,t)):f&&f(a,k.childNodes,void 0,e)}for(var h=[],k,l,m,n,r,t=0;t<a.length;t++){k=new S;l=x(a[t],[],k,0===t?d:void 0,e);(f=l.length?Ba(l,a[t],k,b,c,null,[],[],f):null)&&f.scope&&ba.$$addScopeClass(k.$$element);
-k=f&&f.terminal||!(m=a[t].childNodes)||!m.length?null:s(m,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b);if(f||k)h.push(t,f,k),n=!0,r=r||f;f=null}return n?g:null}function ka(a,b,c){function d(e,f,g,h,k){e||(e=a.$new(!1,k),e.$$transcluded=!0);return b(e,f,{parentBoundTranscludeFn:c,transcludeControllers:g,futureParentElement:h})}var e=d.$$slots=T(),f;for(f in b.$$slots)e[f]=b.$$slots[f]?ka(a,b.$$slots[f],c):null;return d}function x(a,b,c,d,e){var h=c.$attr,k;switch(a.nodeType){case 1:la(b,
-xa(va(a)),"E",d,e);for(var l,m,n,t=a.attributes,r=0,p=t&&t.length;r<p;r++){var I=!1,D=!1;l=t[r];k=l.name;m=V(l.value);l=xa(k);if(n=ya.test(l))k=k.replace(Vc,"").substr(8).replace(/_(.)/g,function(a,b){return b.toUpperCase()});(l=l.match(Aa))&&Q(l[1])&&(I=k,D=k.substr(0,k.length-5)+"end",k=k.substr(0,k.length-6));l=xa(k.toLowerCase());h[l]=k;if(n||!c.hasOwnProperty(l))c[l]=m,Rc(a,l)&&(c[l]=!0);fa(a,b,m,l,n);la(b,l,"A",d,e,I,D)}a=a.className;G(a)&&(a=a.animVal);if(F(a)&&""!==a)for(;k=g.exec(a);)l=xa(k[2]),
-la(b,l,"C",d,e)&&(c[l]=V(k[3])),a=a.substr(k.index+k[0].length);break;case Ma:if(11===Ca)for(;a.parentNode&&a.nextSibling&&a.nextSibling.nodeType===Ma;)a.nodeValue+=a.nextSibling.nodeValue,a.parentNode.removeChild(a.nextSibling);X(b,a.nodeValue);break;case 8:try{if(k=f.exec(a.nodeValue))l=xa(k[1]),la(b,l,"M",d,e)&&(c[l]=V(k[2]))}catch(J){}}b.sort(Y);return b}function Wc(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw ga("uterdir",b,c);1==a.nodeType&&(a.hasAttribute(b)&&
-e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return B(d)}function Xc(a,b,c){return function(d,e,f,g,h){e=Wc(e[0],b,c);return a(d,e,f,g,h)}}function Yb(a,b,c,d,e,f){var g;return a?ba(b,c,d,e,f):function(){g||(g=ba(b,c,d,e,f),b=c=f=null);return g.apply(this,arguments)}}function Ba(a,b,d,e,f,g,h,k,l){function m(a,b,c,d){if(a){c&&(a=Xc(a,c,d));a.require=A.require;a.directiveName=M;if(D===A||A.$$isolateScope)a=ha(a,{isolateScope:!0});h.push(a)}if(b){c&&(b=Xc(b,c,d));
-b.require=A.require;b.directiveName=M;if(D===A||A.$$isolateScope)b=ha(b,{isolateScope:!0});k.push(b)}}function n(a,c,e,f,g){function l(a,b,c,d){var e;Ya(a)||(d=c,c=b,b=a,a=void 0);H&&(e=u);c||(c=H?z.parent():z);if(d){var f=g.$$slots[d];if(f)return f(a,b,e,c,$);if(y(f))throw ga("noslot",d,wa(z));}else return g(a,b,e,c,$)}var m,t,p,A,w,u,L,z;b===e?(f=d,z=d.$$element):(z=B(e),f=new S(z,d));w=c;D?A=c.$new(!0):r&&(w=c.$parent);g&&(L=l,L.$$boundTransclude=g,L.isSlotFilled=function(a){return!!g.$$slots[a]});
-I&&(u=O(z,f,L,I,A,c,D));D&&(ba.$$addScopeInfo(z,A,!0,!(J&&(J===D||J===D.$$originalDirective))),ba.$$addScopeClass(z,!0),A.$$isolateBindings=D.$$isolateBindings,t=ia(c,f,A,A.$$isolateBindings,D),t.removeWatches&&A.$on("$destroy",t.removeWatches));for(m in u){t=I[m];p=u[m];var Xb=t.$$bindings.bindToController;p.bindingInfo=p.identifier&&Xb?ia(w,f,p.instance,Xb,t):{};var M=p();M!==p.instance&&(p.instance=M,z.data("$"+t.name+"Controller",M),p.bindingInfo.removeWatches&&p.bindingInfo.removeWatches(),p.bindingInfo=
-ia(w,f,p.instance,Xb,t))}q(I,function(a,b){var c=a.require;a.bindToController&&!K(c)&&G(c)&&R(u[b].instance,gb(b,c,z,u))});q(u,function(a){var b=a.instance;E(b.$onChanges)&&b.$onChanges(a.bindingInfo.initialChanges);E(b.$onInit)&&b.$onInit();E(b.$onDestroy)&&w.$on("$destroy",function(){b.$onDestroy()})});m=0;for(t=h.length;m<t;m++)p=h[m],ja(p,p.isolateScope?A:c,z,f,p.require&&gb(p.directiveName,p.require,z,u),L);var $=c;D&&(D.template||null===D.templateUrl)&&($=A);a&&a($,e.childNodes,void 0,g);for(m=
-k.length-1;0<=m;m--)p=k[m],ja(p,p.isolateScope?A:c,z,f,p.require&&gb(p.directiveName,p.require,z,u),L);q(u,function(a){a=a.instance;E(a.$postLink)&&a.$postLink()})}l=l||{};for(var t=-Number.MAX_VALUE,r=l.newScopeDirective,I=l.controllerDirectives,D=l.newIsolateScopeDirective,J=l.templateDirective,w=l.nonTlbTranscludeDirective,u=!1,L=!1,H=l.hasElementTranscludeDirective,z=d.$$element=B(b),A,M,$,s=e,Sa,ka=!1,C=!1,v,F=0,Ba=a.length;F<Ba;F++){A=a[F];var P=A.$$start,Q=A.$$end;P&&(z=Wc(b,P,Q));$=void 0;
-if(t>A.priority)break;if(v=A.scope)A.templateUrl||(G(v)?(W("new/isolated scope",D||r,A,z),D=A):W("new/isolated scope",D,A,z)),r=r||A;M=A.name;if(!ka&&(A.replace&&(A.templateUrl||A.template)||A.transclude&&!A.$$tlb)){for(v=F+1;ka=a[v++];)if(ka.transclude&&!ka.$$tlb||ka.replace&&(ka.templateUrl||ka.template)){C=!0;break}ka=!0}!A.templateUrl&&A.controller&&(v=A.controller,I=I||T(),W("'"+M+"' controller",I[M],A,z),I[M]=A);if(v=A.transclude)if(u=!0,A.$$tlb||(W("transclusion",w,A,z),w=A),"element"==v)H=
-!0,t=A.priority,$=z,z=d.$$element=B(ba.$$createComment(M,d[M])),b=z[0],da(f,za.call($,0),b),$[0].$$parentNode=$[0].parentNode,s=Yb(C,$,e,t,g&&g.name,{nonTlbTranscludeDirective:w});else{var la=T();$=B(Vb(b)).contents();if(G(v)){$=[];var Y=T(),X=T();q(v,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a;Y[a]=b;la[b]=null;X[b]=c});q(z.contents(),function(a){var b=Y[xa(va(a))];b?(X[b]=!0,la[b]=la[b]||[],la[b].push(a)):$.push(a)});q(X,function(a,b){if(!a)throw ga("reqslot",b);});for(var Z in la)la[Z]&&
-(la[Z]=Yb(C,la[Z],e))}z.empty();s=Yb(C,$,e,void 0,void 0,{needsNewScope:A.$$isolateScope||A.$$newScope});s.$$slots=la}if(A.template)if(L=!0,W("template",J,A,z),J=A,v=E(A.template)?A.template(z,d):A.template,v=ta(v),A.replace){g=A;$=Tb.test(v)?Yc(ca(A.templateNamespace,V(v))):[];b=$[0];if(1!=$.length||1!==b.nodeType)throw ga("tplrt",M,"");da(f,z,b);Ba={$attr:{}};v=x(b,[],Ba);var ea=a.splice(F+1,a.length-(F+1));(D||r)&&Zc(v,D,r);a=a.concat(v).concat(ea);U(d,Ba);Ba=a.length}else z.html(v);if(A.templateUrl)L=
-!0,W("template",J,A,z),J=A,A.replace&&(g=A),n=aa(a.splice(F,a.length-F),z,d,f,u&&s,h,k,{controllerDirectives:I,newScopeDirective:r!==A&&r,newIsolateScopeDirective:D,templateDirective:J,nonTlbTranscludeDirective:w}),Ba=a.length;else if(A.compile)try{Sa=A.compile(z,d,s),E(Sa)?m(null,Sa,P,Q):Sa&&m(Sa.pre,Sa.post,P,Q)}catch(fa){c(fa,wa(z))}A.terminal&&(n.terminal=!0,t=Math.max(t,A.priority))}n.scope=r&&!0===r.scope;n.transcludeOnThisElement=u;n.templateOnThisElement=L;n.transclude=s;l.hasElementTranscludeDirective=
-H;return n}function gb(a,b,c,d){var e;if(F(b)){var f=b.match(k);b=b.substring(f[0].length);var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance;if(!e){var h="$"+b+"Controller";e=g?c.inheritedData(h):c.data(h)}if(!e&&!f)throw ga("ctreq",b,a);}else if(K(b))for(e=[],g=0,f=b.length;g<f;g++)e[g]=gb(a,b[g],c,d);else G(b)&&(e={},q(b,function(b,f){e[f]=gb(a,b,c,d)}));return e||null}function O(a,b,c,d,e,f,g){var h=T(),k;for(k in d){var l=d[k],m={$scope:l===g||l.$$isolateScope?e:f,
-$element:a,$attrs:b,$transclude:c},n=l.controller;"@"==n&&(n=b[l.name]);m=z(n,m,!0,l.controllerAs);h[l.name]=m;a.data("$"+l.name+"Controller",m.instance)}return h}function Zc(a,b,c){for(var d=0,e=a.length;d<e;d++)a[d]=Pb(a[d],{$$isolateScope:b,$$newScope:c})}function la(b,f,g,h,k,l,m){if(f===k)return null;k=null;if(e.hasOwnProperty(f)){var n;f=a.get(f+"Directive");for(var t=0,r=f.length;t<r;t++)try{if(n=f[t],(y(h)||h>n.priority)&&-1!=n.restrict.indexOf(g)){l&&(n=Pb(n,{$$start:l,$$end:m}));if(!n.$$bindings){var I=
-n,D=n,A=n.name,J={isolateScope:null,bindToController:null};G(D.scope)&&(!0===D.bindToController?(J.bindToController=d(D.scope,A,!0),J.isolateScope={}):J.isolateScope=d(D.scope,A,!1));G(D.bindToController)&&(J.bindToController=d(D.bindToController,A,!0));if(G(J.bindToController)){var w=D.controller,z=D.controllerAs;if(!w)throw ga("noctrl",A);if(!Uc(w,z))throw ga("noident",A);}var u=I.$$bindings=J;G(u.isolateScope)&&(n.$$isolateBindings=u.isolateScope)}b.push(n);k=n}}catch(L){c(L)}}return k}function Q(b){if(e.hasOwnProperty(b))for(var c=
-a.get(b+"Directive"),d=0,f=c.length;d<f;d++)if(b=c[d],b.multiElement)return!0;return!1}function U(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;q(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});q(b,function(b,f){"class"==f?(A(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function aa(a,b,c,d,e,f,
-g,h){var k=[],l,m,t=b[0],p=a.shift(),r=Pb(p,{templateUrl:null,transclude:null,replace:null,$$originalDirective:p}),I=E(p.templateUrl)?p.templateUrl(b,c):p.templateUrl,D=p.templateNamespace;b.empty();n(I).then(function(n){var J,w;n=ta(n);if(p.replace){n=Tb.test(n)?Yc(ca(D,V(n))):[];J=n[0];if(1!=n.length||1!==J.nodeType)throw ga("tplrt",p.name,I);n={$attr:{}};da(d,b,J);var z=x(J,[],n);G(p.scope)&&Zc(z,!0);a=z.concat(a);U(c,n)}else J=t,b.html(n);a.unshift(r);l=Ba(a,J,c,e,b,p,f,g,h);q(d,function(a,c){a==
-J&&(d[c]=b[0])});for(m=s(b[0].childNodes,e);k.length;){n=k.shift();w=k.shift();var u=k.shift(),L=k.shift(),z=b[0];if(!n.$$destroyed){if(w!==t){var S=w.className;h.hasElementTranscludeDirective&&p.replace||(z=Vb(J));da(u,B(w),z);A(B(z),S)}w=l.transcludeOnThisElement?ka(n,l.transclude,L):L;l(m,n,z,d,w)}}k=null});return function(a,b,c,d,e){a=e;b.$$destroyed||(k?k.push(b,c,d,a):(l.transcludeOnThisElement&&(a=ka(b,l.transclude,e)),l(m,b,c,d,a)))}}function Y(a,b){var c=b.priority-a.priority;return 0!==
-c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function W(a,b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw ga("multidir",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),a,wa(d));}function X(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;b&&ba.$$addBindingClass(a);return function(a,c){var e=c.parent();b||ba.$$addBindingClass(e);ba.$$addBindingInfo(e,d.expressions);a.$watch(d,function(a){c[0].nodeValue=a})}}})}function ca(a,b){a=
-P(a||"html");switch(a){case "svg":case "math":var c=v.document.createElement("div");c.innerHTML="<"+a+">"+b+"</"+a+">";return c.childNodes[0].childNodes;default:return b}}function ea(a,b){if("srcdoc"==b)return I.HTML;var c=va(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return I.RESOURCE_URL}function fa(a,c,d,e,f){var g=ea(a,e);f=h[e]||f;var k=b(d,!0,g,f);if(k){if("multiple"===e&&"select"===va(a))throw ga("selmulti",wa(a));c.push({priority:100,compile:function(){return{pre:function(a,
-c,h){c=h.$$observers||(h.$$observers=T());if(l.test(e))throw ga("nodomevents");var m=h[e];m!==d&&(k=m&&b(m,!0,g,f),d=m);k&&(h[e]=k(a),(c[e]||(c[e]=[])).$$inter=!0,(h.$$observers&&h.$$observers[e].$$scope||a).$watch(k,function(a,b){"class"===e&&a!=b?h.$updateClass(a,b):h.$set(e,a)}))}}}})}}function da(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g<h;g++)if(a[g]==d){a[g++]=c;h=g+e-1;for(var k=a.length;g<k;g++,h++)h<k?a[g]=a[h]:delete a[g];a.length-=e-1;a.context===d&&(a.context=
-c);break}f&&f.replaceChild(c,d);a=v.document.createDocumentFragment();for(g=0;g<e;g++)a.appendChild(b[g]);B.hasData(d)&&(B.data(c,B.data(d)),B(d).off("$destroy"));B.cleanData(a.querySelectorAll("*"));for(g=1;g<e;g++)delete b[g];b[0]=c;b.length=1}function ha(a,b){return R(function(){return a.apply(null,arguments)},a,b)}function ja(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(h){c(h,wa(d))}}function ia(a,c,d,e,f){function g(b,c,e){E(d.$onChanges)&&c!==e&&(Z||(a.$$postDigest(L),Z=[]),m||(m={},Z.push(h)),m[b]&&
-(e=m[b].previousValue),m[b]=new Db(e,c))}function h(){d.$onChanges(m);m=void 0}var k=[],l={},m;q(e,function(e,h){var m=e.attrName,n=e.optional,p,r,I,D;switch(e.mode){case "@":n||ua.call(c,m)||(d[h]=c[m]=void 0);c.$observe(m,function(a){if(F(a)||Da(a))g(h,a,d[h]),d[h]=a});c.$$observers[m].$$scope=a;p=c[m];F(p)?d[h]=b(p)(a):Da(p)&&(d[h]=p);l[h]=new Db(Zb,d[h]);break;case "=":if(!ua.call(c,m)){if(n)break;c[m]=void 0}if(n&&!c[m])break;r=t(c[m]);D=r.literal?pa:function(a,b){return a===b||a!==a&&b!==b};
-I=r.assign||function(){p=d[h]=r(a);throw ga("nonassign",c[m],m,f.name);};p=d[h]=r(a);n=function(b){D(b,d[h])||(D(b,p)?I(a,b=d[h]):d[h]=b);return p=b};n.$stateful=!0;n=e.collection?a.$watchCollection(c[m],n):a.$watch(t(c[m],n),null,r.literal);k.push(n);break;case "<":if(!ua.call(c,m)){if(n)break;c[m]=void 0}if(n&&!c[m])break;r=t(c[m]);d[h]=r(a);l[h]=new Db(Zb,d[h]);n=a.$watch(r,function(a,b){a===b&&(b=d[h]);g(h,a,b);d[h]=a},r.literal);k.push(n);break;case "&":r=c.hasOwnProperty(m)?t(c[m]):C;if(r===
-C&&n)break;d[h]=function(b){return r(a,b)}}});return{initialChanges:l,removeWatches:k.length&&function(){for(var a=0,b=k.length;a<b;++a)k[a]()}}}var oa=/^\w/,na=v.document.createElement("div"),qa=r,Z;S.prototype={$normalize:xa,$addClass:function(a){a&&0<a.length&&J.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&J.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=$c(a,b);c&&c.length&&J.addClass(this.$$element,c);(c=$c(b,a))&&c.length&&J.removeClass(this.$$element,
-c)},$set:function(a,b,d,e){var f=Rc(this.$$element[0],a),g=ad[a],h=a;f?(this.$$element.prop(a,b),e=f):g&&(this[g]=b,h=g);this[a]=b;e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=zc(a,"-"));f=va(this.$$element);if("a"===f&&("href"===a||"xlinkHref"===a)||"img"===f&&"src"===a)this[a]=b=D(b,"src"===a);else if("img"===f&&"srcset"===a){for(var f="",g=V(b),k=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,k=/\s/.test(g)?k:/(,)/,g=g.split(k),k=Math.floor(g.length/2),l=0;l<k;l++)var m=2*l,f=f+D(V(g[m]),!0),f=
-f+(" "+V(g[m+1]));g=V(g[2*l]).split(/\s/);f+=D(V(g[0]),!0);2===g.length&&(f+=" "+V(g[1]));this[a]=b=f}!1!==d&&(null===b||y(b)?this.$$element.removeAttr(e):oa.test(e)?this.$$element.attr(e,b):$(this.$$element[0],e,b));(a=this.$$observers)&&q(a[h],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers=T()),e=d[a]||(d[a]=[]);e.push(b);u.$evalAsync(function(){e.$$inter||!c.hasOwnProperty(a)||y(c[a])||b(c[a])});return function(){Za(e,b)}}};var ra=b.startSymbol(),
-sa=b.endSymbol(),ta="{{"==ra&&"}}"==sa?Xa:function(a){return a.replace(/\{\{/g,ra).replace(/}}/g,sa)},ya=/^ngAttr[A-Z]/,Aa=/^(.+)Start$/;ba.$$addBindingInfo=m?function(a,b){var c=a.data("$binding")||[];K(b)?c=c.concat(b):c.push(b);a.data("$binding",c)}:C;ba.$$addBindingClass=m?function(a){A(a,"ng-binding")}:C;ba.$$addScopeInfo=m?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:C;ba.$$addScopeClass=m?function(a,b){A(a,b?"ng-isolate-scope":"ng-scope")}:C;ba.$$createComment=
-function(a,b){var c="";m&&(c=" "+(a||"")+": "+(b||"")+" ");return v.document.createComment(c)};return ba}]}function Db(a,b){this.previousValue=a;this.currentValue=b}function xa(a){return cb(a.replace(Vc,""))}function $c(a,b){var d="",c=a.split(/\s+/),e=b.split(/\s+/),f=0;a:for(;f<c.length;f++){for(var g=c[f],h=0;h<e.length;h++)if(g==e[h])continue a;d+=(0<d.length?" ":"")+g}return d}function Yc(a){a=B(a);var b=a.length;if(1>=b)return a;for(;b--;)8===a[b].nodeType&&Zf.call(a,b,1);return a}function Uc(a,
-b){if(b&&F(b))return b;if(F(a)){var d=bd.exec(a);if(d)return d[3]}}function ef(){var a={},b=!1;this.has=function(b){return a.hasOwnProperty(b)};this.register=function(b,c){Qa(b,"controller");G(b)?R(a,b):a[b]=c};this.allowGlobals=function(){b=!0};this.$get=["$injector","$window",function(d,c){function e(a,b,c,d){if(!a||!G(a.$scope))throw O("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,g,h,k){var l,n,m;h=!0===h;k&&F(k)&&(m=k);if(F(f)){k=f.match(bd);if(!k)throw $f("ctrlfmt",f);n=k[1];m=
-m||k[3];f=a.hasOwnProperty(n)?a[n]:Bc(g.$scope,n,!0)||(b?Bc(c,n,!0):void 0);Pa(f,n,!0)}if(h)return h=(K(f)?f[f.length-1]:f).prototype,l=Object.create(h||null),m&&e(g,m,l,n||f.name),R(function(){var a=d.invoke(f,l,g,n);a!==l&&(G(a)||E(a))&&(l=a,m&&e(g,m,l,n||f.name));return l},{instance:l,identifier:m});l=d.instantiate(f,g,n);m&&e(g,m,l,n||f.name);return l}}]}function ff(){this.$get=["$window",function(a){return B(a.document)}]}function gf(){this.$get=["$log",function(a){return function(b,d){a.error.apply(a,
-arguments)}}]}function $b(a){return G(a)?fa(a)?a.toISOString():ab(a):a}function mf(){this.$get=function(){return function(a){if(!a)return"";var b=[];pc(a,function(a,c){null===a||y(a)||(K(a)?q(a,function(a){b.push(ja(c)+"="+ja($b(a)))}):b.push(ja(c)+"="+ja($b(a))))});return b.join("&")}}}function nf(){this.$get=function(){return function(a){function b(a,e,f){null===a||y(a)||(K(a)?q(a,function(a,c){b(a,e+"["+(G(a)?c:"")+"]")}):G(a)&&!fa(a)?pc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):d.push(ja(e)+
-"="+ja($b(a))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function ac(a,b){if(F(a)){var d=a.replace(ag,"").trim();if(d){var c=b("Content-Type");(c=c&&0===c.indexOf(cd))||(c=(c=d.match(bg))&&cg[c[0]].test(d));c&&(a=uc(d))}}return a}function dd(a){var b=T(),d;F(a)?q(a.split("\n"),function(a){d=a.indexOf(":");var e=P(V(a.substr(0,d)));a=V(a.substr(d+1));e&&(b[e]=b[e]?b[e]+", "+a:a)}):G(a)&&q(a,function(a,d){var f=P(d),g=V(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function ed(a){var b;
-return function(d){b||(b=dd(a));return d?(d=b[P(d)],void 0===d&&(d=null),d):b}}function fd(a,b,d,c){if(E(c))return c(a,b,d);q(c,function(c){a=c(a,b,d)});return a}function lf(){var a=this.defaults={transformResponse:[ac],transformRequest:[function(a){return G(a)&&"[object File]"!==ma.call(a)&&"[object Blob]"!==ma.call(a)&&"[object FormData]"!==ma.call(a)?ab(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ha(bc),put:ha(bc),patch:ha(bc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",
-paramSerializer:"$httpParamSerializer"},b=!1;this.useApplyAsync=function(a){return x(a)?(b=!!a,this):b};var d=!0;this.useLegacyPromiseExtensions=function(a){return x(a)?(d=!!a,this):d};var c=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,g,h,k,l){function n(b){function c(a){var b=R({},a);b.data=fd(a.data,a.headers,a.status,f.transformResponse);a=a.status;return 200<=a&&300>a?b:k.reject(b)}function e(a,b){var c,d={};q(a,function(a,
-e){E(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a});return d}if(!G(b))throw O("$http")("badreq",b);if(!F(b.url))throw O("$http")("badreq",b.url);var f=R({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer},b);f.headers=function(b){var c=a.headers,d=R({},b.headers),f,g,h,c=R({},c.common,c[P(b.method)]);a:for(f in c){g=P(f);for(h in d)if(P(h)===g)continue a;d[f]=c[f]}return e(d,ha(b))}(b);f.method=sb(f.method);f.paramSerializer=F(f.paramSerializer)?
-l.get(f.paramSerializer):f.paramSerializer;var g=[function(b){var d=b.headers,e=fd(b.data,ed(d),void 0,b.transformRequest);y(e)&&q(d,function(a,b){"content-type"===P(b)&&delete d[b]});y(b.withCredentials)&&!y(a.withCredentials)&&(b.withCredentials=a.withCredentials);return m(b,e).then(c,c)},void 0],h=k.when(f);for(q(M,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;){b=g.shift();var n=g.shift(),
-h=h.then(b,n)}d?(h.success=function(a){Pa(a,"fn");h.then(function(b){a(b.data,b.status,b.headers,f)});return h},h.error=function(a){Pa(a,"fn");h.then(null,function(b){a(b.data,b.status,b.headers,f)});return h}):(h.success=gd("success"),h.error=gd("error"));return h}function m(c,d){function g(a){if(a){var c={};q(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}});return c}}function l(a,c,d,e){function f(){m(c,a,d,e)}L&&(200<=a&&300>a?L.put(A,[a,c,dd(d),
-e]):L.remove(A));b?h.$applyAsync(f):(f(),h.$$phase||h.$apply())}function m(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?J.resolve:J.reject)({data:a,status:b,headers:ed(d),config:c,statusText:e})}function u(a){m(a.data,a.status,ha(a.headers()),a.statusText)}function I(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var J=k.defer(),D=J.promise,L,S,M=c.headers,A=r(c.url,c.paramSerializer(c.params));n.pendingRequests.push(c);D.then(I,I);!c.cache&&!a.cache||!1===c.cache||"GET"!==c.method&&
-"JSONP"!==c.method||(L=G(c.cache)?c.cache:G(a.cache)?a.cache:N);L&&(S=L.get(A),x(S)?S&&E(S.then)?S.then(u,u):K(S)?m(S[1],S[0],ha(S[2]),S[3]):m(S,200,{},"OK"):L.put(A,D));y(S)&&((S=hd(c.url)?f()[c.xsrfCookieName||a.xsrfCookieName]:void 0)&&(M[c.xsrfHeaderName||a.xsrfHeaderName]=S),e(c.method,A,d,l,M,c.timeout,c.withCredentials,c.responseType,g(c.eventHandlers),g(c.uploadEventHandlers)));return D}function r(a,b){0<b.length&&(a+=(-1==a.indexOf("?")?"?":"&")+b);return a}var N=g("$http");a.paramSerializer=
-F(a.paramSerializer)?l.get(a.paramSerializer):a.paramSerializer;var M=[];q(c,function(a){M.unshift(F(a)?l.get(a):l.invoke(a))});n.pendingRequests=[];(function(a){q(arguments,function(a){n[a]=function(b,c){return n(R({},c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){q(arguments,function(a){n[a]=function(b,c,d){return n(R({},d||{},{method:a,url:b,data:c}))}})})("post","put","patch");n.defaults=a;return n}]}function pf(){this.$get=function(){return function(){return new v.XMLHttpRequest}}}
-function of(){this.$get=["$browser","$window","$document","$xhrFactory",function(a,b,d,c){return dg(a,c,a.defer,b.angular.callbacks,d[0])}]}function dg(a,b,d,c,e){function f(a,b,d){var f=e.createElement("script"),n=null;f.type="text/javascript";f.src=a;f.async=!0;n=function(a){f.removeEventListener("load",n,!1);f.removeEventListener("error",n,!1);e.body.removeChild(f);f=null;var g=-1,N="unknown";a&&("load"!==a.type||c[b].called||(a={type:"error"}),N=a.type,g="error"===a.type?404:200);d&&d(g,N)};f.addEventListener("load",
-n,!1);f.addEventListener("error",n,!1);e.body.appendChild(f);return n}return function(e,h,k,l,n,m,r,N,M,w){function p(){z&&z();u&&u.abort()}function H(b,c,e,f,g){x(J)&&d.cancel(J);z=u=null;b(c,e,f,g);a.$$completeOutstandingRequest(C)}a.$$incOutstandingRequestCount();h=h||a.url();if("jsonp"==P(e)){var t="_"+(c.counter++).toString(36);c[t]=function(a){c[t].data=a;c[t].called=!0};var z=f(h.replace("JSON_CALLBACK","angular.callbacks."+t),t,function(a,b){H(l,a,c[t].data,"",b);c[t]=C})}else{var u=b(e,h);
-u.open(e,h,!0);q(n,function(a,b){x(a)&&u.setRequestHeader(b,a)});u.onload=function(){var a=u.statusText||"",b="response"in u?u.response:u.responseText,c=1223===u.status?204:u.status;0===c&&(c=b?200:"file"==ra(h).protocol?404:0);H(l,c,b,u.getAllResponseHeaders(),a)};e=function(){H(l,-1,null,null,"")};u.onerror=e;u.onabort=e;q(M,function(a,b){u.addEventListener(b,a)});q(w,function(a,b){u.upload.addEventListener(b,a)});r&&(u.withCredentials=!0);if(N)try{u.responseType=N}catch(I){if("json"!==N)throw I;
-}u.send(y(k)?null:k)}if(0<m)var J=d(p,m);else m&&E(m.then)&&m.then(p)}}function jf(){var a="{{",b="}}";this.startSymbol=function(b){return b?(a=b,this):a};this.endSymbol=function(a){return a?(b=a,this):b};this.$get=["$parse","$exceptionHandler","$sce",function(d,c,e){function f(a){return"\\\\\\"+a}function g(c){return c.replace(m,a).replace(r,b)}function h(a,b,c,d){var e;return e=a.$watch(function(a){e();return d(a)},b,c)}function k(f,k,m,r){function H(a){try{var b=a;a=m?e.getTrusted(m,b):e.valueOf(b);
-var d;if(r&&!x(a))d=a;else if(null==a)d="";else{switch(typeof a){case "string":break;case "number":a=""+a;break;default:a=ab(a)}d=a}return d}catch(g){c(Ja.interr(f,g))}}if(!f.length||-1===f.indexOf(a)){var t;k||(k=g(f),t=da(k),t.exp=f,t.expressions=[],t.$$watchDelegate=h);return t}r=!!r;var z,u,I=0,J=[],D=[];t=f.length;for(var L=[],S=[];I<t;)if(-1!=(z=f.indexOf(a,I))&&-1!=(u=f.indexOf(b,z+l)))I!==z&&L.push(g(f.substring(I,z))),I=f.substring(z+l,u),J.push(I),D.push(d(I,H)),I=u+n,S.push(L.length),L.push("");
-else{I!==t&&L.push(g(f.substring(I)));break}m&&1<L.length&&Ja.throwNoconcat(f);if(!k||J.length){var q=function(a){for(var b=0,c=J.length;b<c;b++){if(r&&y(a[b]))return;L[S[b]]=a[b]}return L.join("")};return R(function(a){var b=0,d=J.length,e=Array(d);try{for(;b<d;b++)e[b]=D[b](a);return q(e)}catch(g){c(Ja.interr(f,g))}},{exp:f,expressions:J,$$watchDelegate:function(a,b){var c;return a.$watchGroup(D,function(d,e){var f=q(d);E(b)&&b.call(this,f,d!==e?c:f,a);c=f})}})}}var l=a.length,n=b.length,m=new RegExp(a.replace(/./g,
-f),"g"),r=new RegExp(b.replace(/./g,f),"g");k.startSymbol=function(){return a};k.endSymbol=function(){return b};return k}]}function kf(){this.$get=["$rootScope","$window","$q","$$q","$browser",function(a,b,d,c,e){function f(f,k,l,n){function m(){r?f.apply(null,N):f(p)}var r=4<arguments.length,N=r?za.call(arguments,4):[],q=b.setInterval,w=b.clearInterval,p=0,H=x(n)&&!n,t=(H?c:d).defer(),z=t.promise;l=x(l)?l:0;z.$$intervalId=q(function(){H?e.defer(m):a.$evalAsync(m);t.notify(p++);0<l&&p>=l&&(t.resolve(p),
-w(z.$$intervalId),delete g[z.$$intervalId]);H||a.$apply()},k);g[z.$$intervalId]=t;return z}var g={};f.cancel=function(a){return a&&a.$$intervalId in g?(g[a.$$intervalId].reject("canceled"),b.clearInterval(a.$$intervalId),delete g[a.$$intervalId],!0):!1};return f}]}function cc(a){a=a.split("/");for(var b=a.length;b--;)a[b]=ob(a[b]);return a.join("/")}function id(a,b){var d=ra(a);b.$$protocol=d.protocol;b.$$host=d.hostname;b.$$port=X(d.port)||eg[d.protocol]||null}function jd(a,b){var d="/"!==a.charAt(0);
-d&&(a="/"+a);var c=ra(a);b.$$path=decodeURIComponent(d&&"/"===c.pathname.charAt(0)?c.pathname.substring(1):c.pathname);b.$$search=xc(c.search);b.$$hash=decodeURIComponent(c.hash);b.$$path&&"/"!=b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function na(a,b){if(0===b.indexOf(a))return b.substr(a.length)}function Ia(a){var b=a.indexOf("#");return-1==b?a:a.substr(0,b)}function hb(a){return a.replace(/(#.+)|#$/,"$1")}function dc(a,b,d){this.$$html5=!0;d=d||"";id(a,this);this.$$parse=function(a){var d=na(b,
-a);if(!F(d))throw Eb("ipthprfx",a,b);jd(d,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Rb(this.$$search),d=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=cc(this.$$path)+(a?"?"+a:"")+d;this.$$absUrl=b+this.$$url.substr(1)};this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;x(f=na(a,c))?(g=f,g=x(f=na(d,f))?b+(na("/",f)||f):a+g):x(f=na(b,c))?g=b+f:b==c+"/"&&(g=b);g&&this.$$parse(g);return!!g}}function ec(a,b,d){id(a,this);
-this.$$parse=function(c){var e=na(a,c)||na(b,c),f;y(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",y(e)&&(a=c,this.replace())):(f=na(d,e),y(f)&&(f=e));jd(f,this);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?f[1]:c);this.$$path=c;this.$$compose()};this.$$compose=function(){var b=Rb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=cc(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=a+(this.$$url?d+this.$$url:"")};this.$$parseLinkUrl=
-function(b,d){return Ia(a)==Ia(b)?(this.$$parse(b),!0):!1}}function kd(a,b,d){this.$$html5=!0;ec.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a==Ia(c)?f=c:(g=na(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$compose=function(){var b=Rb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=cc(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=a+d+this.$$url}}function Fb(a){return function(){return this[a]}}function ld(a,
-b){return function(d){if(y(d))return this[a];this[a]=b(d);this.$$compose();return this}}function qf(){var a="",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return x(b)?(a=b,this):a};this.html5Mode=function(a){return Da(a)?(b.enabled=a,this):G(a)?(Da(a.enabled)&&(b.enabled=a.enabled),Da(a.requireBase)&&(b.requireBase=a.requireBase),Da(a.rewriteLinks)&&(b.rewriteLinks=a.rewriteLinks),this):b};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(d,
-c,e,f,g){function h(a,b,d){var e=l.url(),f=l.$$state;try{c.url(a,b,d),l.$$state=c.state()}catch(g){throw l.url(e),l.$$state=f,g;}}function k(a,b){d.$broadcast("$locationChangeSuccess",l.absUrl(),a,l.$$state,b)}var l,n;n=c.baseHref();var m=c.url(),r;if(b.enabled){if(!n&&b.requireBase)throw Eb("nobase");r=m.substring(0,m.indexOf("/",m.indexOf("//")+2))+(n||"/");n=e.history?dc:kd}else r=Ia(m),n=ec;var N=r.substr(0,Ia(r).lastIndexOf("/")+1);l=new n(r,N,"#"+a);l.$$parseLinkUrl(m,m);l.$$state=c.state();
-var q=/^\s*(javascript|mailto):/i;f.on("click",function(a){if(b.rewriteLinks&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!=a.which&&2!=a.button){for(var e=B(a.target);"a"!==va(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),k=e.attr("href")||e.attr("xlink:href");G(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=ra(h.animVal).href);q.test(h)||!h||e.attr("target")||a.isDefaultPrevented()||!l.$$parseLinkUrl(h,k)||(a.preventDefault(),l.absUrl()!=c.url()&&(d.$apply(),g.angular["ff-684208-preventDefault"]=
-!0))}});hb(l.absUrl())!=hb(m)&&c.url(l.absUrl(),!0);var w=!0;c.onUrlChange(function(a,b){y(na(N,a))?g.location.href=a:(d.$evalAsync(function(){var c=l.absUrl(),e=l.$$state,f;a=hb(a);l.$$parse(a);l.$$state=b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;l.absUrl()===a&&(f?(l.$$parse(c),l.$$state=e,h(c,!1,e)):(w=!1,k(c,e)))}),d.$$phase||d.$digest())});d.$watch(function(){var a=hb(c.url()),b=hb(l.absUrl()),f=c.state(),g=l.$$replace,m=a!==b||l.$$html5&&e.history&&f!==l.$$state;if(w||
-m)w=!1,d.$evalAsync(function(){var b=l.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,l.$$state,f).defaultPrevented;l.absUrl()===b&&(c?(l.$$parse(a),l.$$state=f):(m&&h(b,g,f===l.$$state?null:l.$$state),k(a,f)))});l.$$replace=!1});return l}]}function rf(){var a=!0,b=this;this.debugEnabled=function(b){return x(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&
-(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=d.console||{},e=b[a]||b.log||C;a=!1;try{a=!!e.apply}catch(k){}return a?function(){var a=[];q(arguments,function(b){a.push(c(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,arguments)}}()}}]}function Ta(a,b){if("__defineGetter__"===a||"__defineSetter__"===a||"__lookupGetter__"===a||"__lookupSetter__"===
-a||"__proto__"===a)throw ca("isecfld",b);return a}function fg(a){return a+""}function sa(a,b){if(a){if(a.constructor===a)throw ca("isecfn",b);if(a.window===a)throw ca("isecwindow",b);if(a.children&&(a.nodeName||a.prop&&a.attr&&a.find))throw ca("isecdom",b);if(a===Object)throw ca("isecobj",b);}return a}function md(a,b){if(a){if(a.constructor===a)throw ca("isecfn",b);if(a===gg||a===hg||a===ig)throw ca("isecff",b);}}function Gb(a,b){if(a&&(a===(0).constructor||a===(!1).constructor||a==="".constructor||
-a==={}.constructor||a===[].constructor||a===Function.constructor))throw ca("isecaf",b);}function jg(a,b){return"undefined"!==typeof a?a:b}function nd(a,b){return"undefined"===typeof a?b:"undefined"===typeof b?a:a+b}function aa(a,b){var d,c;switch(a.type){case s.Program:d=!0;q(a.body,function(a){aa(a.expression,b);d=d&&a.expression.constant});a.constant=d;break;case s.Literal:a.constant=!0;a.toWatch=[];break;case s.UnaryExpression:aa(a.argument,b);a.constant=a.argument.constant;a.toWatch=a.argument.toWatch;
-break;case s.BinaryExpression:aa(a.left,b);aa(a.right,b);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case s.LogicalExpression:aa(a.left,b);aa(a.right,b);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case s.ConditionalExpression:aa(a.test,b);aa(a.alternate,b);aa(a.consequent,b);a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case s.Identifier:a.constant=
-!1;a.toWatch=[a];break;case s.MemberExpression:aa(a.object,b);a.computed&&aa(a.property,b);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=[a];break;case s.CallExpression:d=a.filter?!b(a.callee.name).$stateful:!1;c=[];q(a.arguments,function(a){aa(a,b);d=d&&a.constant;a.constant||c.push.apply(c,a.toWatch)});a.constant=d;a.toWatch=a.filter&&!b(a.callee.name).$stateful?c:[a];break;case s.AssignmentExpression:aa(a.left,b);aa(a.right,b);a.constant=a.left.constant&&a.right.constant;
-a.toWatch=[a];break;case s.ArrayExpression:d=!0;c=[];q(a.elements,function(a){aa(a,b);d=d&&a.constant;a.constant||c.push.apply(c,a.toWatch)});a.constant=d;a.toWatch=c;break;case s.ObjectExpression:d=!0;c=[];q(a.properties,function(a){aa(a.value,b);d=d&&a.value.constant;a.value.constant||c.push.apply(c,a.value.toWatch)});a.constant=d;a.toWatch=c;break;case s.ThisExpression:a.constant=!1;a.toWatch=[];break;case s.LocalsExpression:a.constant=!1,a.toWatch=[]}}function od(a){if(1==a.length){a=a[0].expression;
-var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function pd(a){return a.type===s.Identifier||a.type===s.MemberExpression}function qd(a){if(1===a.body.length&&pd(a.body[0].expression))return{type:s.AssignmentExpression,left:a.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function rd(a){return 0===a.body.length||1===a.body.length&&(a.body[0].expression.type===s.Literal||a.body[0].expression.type===s.ArrayExpression||a.body[0].expression.type===s.ObjectExpression)}function sd(a,
-b){this.astBuilder=a;this.$filter=b}function td(a,b){this.astBuilder=a;this.$filter=b}function Hb(a){return"constructor"==a}function fc(a){return E(a.valueOf)?a.valueOf():kg.call(a)}function sf(){var a=T(),b=T(),d={"true":!0,"false":!1,"null":null,undefined:void 0},c,e;this.addLiteral=function(a,b){d[a]=b};this.setIdentifierFns=function(a,b){c=a;e=b;return this};this.$get=["$filter",function(f){function g(c,d,e){var g,k,D;e=e||H;switch(typeof c){case "string":D=c=c.trim();var q=e?b:a;g=q[D];if(!g){":"===
-c.charAt(0)&&":"===c.charAt(1)&&(k=!0,c=c.substring(2));g=e?p:w;var S=new gc(g);g=(new hc(S,f,g)).parse(c);g.constant?g.$$watchDelegate=r:k?g.$$watchDelegate=g.literal?m:n:g.inputs&&(g.$$watchDelegate=l);e&&(g=h(g));q[D]=g}return N(g,d);case "function":return N(c,d);default:return N(C,d)}}function h(a){function b(c,d,e,f){var g=H;H=!0;try{return a(c,d,e,f)}finally{H=g}}if(!a)return a;b.$$watchDelegate=a.$$watchDelegate;b.assign=h(a.assign);b.constant=a.constant;b.literal=a.literal;for(var c=0;a.inputs&&
-c<a.inputs.length;++c)a.inputs[c]=h(a.inputs[c]);b.inputs=a.inputs;return b}function k(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=fc(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function l(a,b,c,d,e){var f=d.inputs,g;if(1===f.length){var h=k,f=f[0];return a.$watch(function(a){var b=f(a);k(b,h)||(g=d(a,void 0,void 0,[b]),h=b&&fc(b));return g},b,c,e)}for(var l=[],m=[],n=0,r=f.length;n<r;n++)l[n]=k,m[n]=null;return a.$watch(function(a){for(var b=!1,c=0,e=f.length;c<e;c++){var h=f[c](a);
-if(b||(b=!k(h,l[c])))m[c]=h,l[c]=h&&fc(h)}b&&(g=d(a,void 0,void 0,m));return g},b,c,e)}function n(a,b,c,d){var e,f;return e=a.$watch(function(a){return d(a)},function(a,c,d){f=a;E(b)&&b.apply(this,arguments);x(a)&&d.$$postDigest(function(){x(f)&&e()})},c)}function m(a,b,c,d){function e(a){var b=!0;q(a,function(a){x(a)||(b=!1)});return b}var f,g;return f=a.$watch(function(a){return d(a)},function(a,c,d){g=a;E(b)&&b.call(this,a,c,d);e(a)&&d.$$postDigest(function(){e(g)&&f()})},c)}function r(a,b,c,d){var e;
-return e=a.$watch(function(a){e();return d(a)},b,c)}function N(a,b){if(!b)return a;var c=a.$$watchDelegate,d=!1,c=c!==m&&c!==n?function(c,e,f,g){f=d&&g?g[0]:a(c,e,f,g);return b(f,c,e)}:function(c,d,e,f){e=a(c,d,e,f);c=b(e,c,d);return x(e)?c:e};a.$$watchDelegate&&a.$$watchDelegate!==l?c.$$watchDelegate=a.$$watchDelegate:b.$stateful||(c.$$watchDelegate=l,d=!a.inputs,c.inputs=a.inputs?a.inputs:[a]);return c}var M=Ea().noUnsafeEval,w={csp:M,expensiveChecks:!1,literals:qa(d),isIdentifierStart:E(c)&&c,
-isIdentifierContinue:E(e)&&e},p={csp:M,expensiveChecks:!0,literals:qa(d),isIdentifierStart:E(c)&&c,isIdentifierContinue:E(e)&&e},H=!1;g.$$runningExpensiveChecks=function(){return H};return g}]}function uf(){this.$get=["$rootScope","$exceptionHandler",function(a,b){return ud(function(b){a.$evalAsync(b)},b)}]}function vf(){this.$get=["$browser","$exceptionHandler",function(a,b){return ud(function(b){a.defer(b)},b)}]}function ud(a,b){function d(){this.$$state={status:0}}function c(a,b){return function(c){b.call(a,
-c)}}function e(c){!c.processScheduled&&c.pending&&(c.processScheduled=!0,a(function(){var a,d,e;e=c.pending;c.processScheduled=!1;c.pending=void 0;for(var f=0,g=e.length;f<g;++f){d=e[f][0];a=e[f][c.status];try{E(a)?d.resolve(a(c.value)):1===c.status?d.resolve(c.value):d.reject(c.value)}catch(h){d.reject(h),b(h)}}}))}function f(){this.promise=new d}var g=O("$q",TypeError);R(d.prototype,{then:function(a,b,c){if(y(a)&&y(b)&&y(c))return this;var d=new f;this.$$state.pending=this.$$state.pending||[];this.$$state.pending.push([d,
-a,b,c]);0<this.$$state.status&&e(this.$$state);return d.promise},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return k(b,!0,a)},function(b){return k(b,!1,a)},b)}});R(f.prototype,{resolve:function(a){this.promise.$$state.status||(a===this.promise?this.$$reject(g("qcycle",a)):this.$$resolve(a))},$$resolve:function(a){function d(a){k||(k=!0,h.$$resolve(a))}function f(a){k||(k=!0,h.$$reject(a))}var g,h=this,k=!1;try{if(G(a)||E(a))g=a&&a.then;E(g)?
-(this.promise.$$state.status=-1,g.call(a,d,f,c(this,this.notify))):(this.promise.$$state.value=a,this.promise.$$state.status=1,e(this.promise.$$state))}catch(l){f(l),b(l)}},reject:function(a){this.promise.$$state.status||this.$$reject(a)},$$reject:function(a){this.promise.$$state.value=a;this.promise.$$state.status=2;e(this.promise.$$state)},notify:function(c){var d=this.promise.$$state.pending;0>=this.promise.$$state.status&&d&&d.length&&a(function(){for(var a,e,f=0,g=d.length;f<g;f++){e=d[f][0];
-a=d[f][3];try{e.notify(E(a)?a(c):c)}catch(h){b(h)}}})}});var h=function(a,b){var c=new f;b?c.resolve(a):c.reject(a);return c.promise},k=function(a,b,c){var d=null;try{E(c)&&(d=c())}catch(e){return h(e,!1)}return d&&E(d.then)?d.then(function(){return h(a,b)},function(a){return h(a,!1)}):h(a,b)},l=function(a,b,c,d){var e=new f;e.resolve(a);return e.promise.then(b,c,d)},n=function(a){if(!E(a))throw g("norslvr",a);var b=new f;a(function(a){b.resolve(a)},function(a){b.reject(a)});return b.promise};n.prototype=
-d.prototype;n.defer=function(){var a=new f;a.resolve=c(a,a.resolve);a.reject=c(a,a.reject);a.notify=c(a,a.notify);return a};n.reject=function(a){var b=new f;b.reject(a);return b.promise};n.when=l;n.resolve=l;n.all=function(a){var b=new f,c=0,d=K(a)?[]:{};q(a,function(a,e){c++;l(a).then(function(a){d.hasOwnProperty(e)||(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})});0===c&&b.resolve(d);return b.promise};return n}function Ef(){this.$get=["$window","$timeout",function(a,
-b){var d=a.requestAnimationFrame||a.webkitRequestAnimationFrame,c=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||a.webkitCancelRequestAnimationFrame,e=!!d,f=e?function(a){var b=d(a);return function(){c(b)}}:function(a){var c=b(a,16.66,!1);return function(){b.cancel(c)}};f.supported=e;return f}]}function tf(){function a(a){function b(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$id=++nb;this.$$ChildScope=
-null}b.prototype=a;return b}var b=10,d=O("$rootScope"),c=null,e=null;this.digestTtl=function(a){arguments.length&&(b=a);return b};this.$get=["$exceptionHandler","$parse","$browser",function(f,g,h){function k(a){a.currentScope.$$destroyed=!0}function l(a){9===Ca&&(a.$$childHead&&l(a.$$childHead),a.$$nextSibling&&l(a.$$nextSibling));a.$parent=a.$$nextSibling=a.$$prevSibling=a.$$childHead=a.$$childTail=a.$root=a.$$watchers=null}function n(){this.$id=++nb;this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=
-this.$$prevSibling=this.$$childHead=this.$$childTail=null;this.$root=this;this.$$destroyed=!1;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$$isolateBindings=null}function m(a){if(H.$$phase)throw d("inprog",H.$$phase);H.$$phase=a}function r(a,b){do a.$$watchersCount+=b;while(a=a.$parent)}function N(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function s(){}function w(){for(;u.length;)try{u.shift()()}catch(a){f(a)}e=
-null}function p(){null===e&&(e=h.defer(function(){H.$apply(w)}))}n.prototype={constructor:n,$new:function(b,c){var d;c=c||this;b?(d=new n,d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=a(this)),d=new this.$$ChildScope);d.$parent=c;d.$$prevSibling=c.$$childTail;c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d;(b||c!=this)&&d.$on("$destroy",k);return d},$watch:function(a,b,d,e){var f=g(a);if(f.$$watchDelegate)return f.$$watchDelegate(this,b,d,f,
-a);var h=this,k=h.$$watchers,l={fn:b,last:s,get:f,exp:e||a,eq:!!d};c=null;E(b)||(l.fn=C);k||(k=h.$$watchers=[]);k.unshift(l);r(this,1);return function(){0<=Za(k,l)&&r(h,-1);c=null}},$watchGroup:function(a,b){function c(){h=!1;k?(k=!1,b(e,e,g)):b(e,d,g)}var d=Array(a.length),e=Array(a.length),f=[],g=this,h=!1,k=!0;if(!a.length){var l=!0;g.$evalAsync(function(){l&&b(e,e,g)});return function(){l=!1}}if(1===a.length)return this.$watch(a[0],function(a,c,f){e[0]=a;d[0]=c;b(e,a===c?e:d,f)});q(a,function(a,
-b){var k=g.$watch(a,function(a,f){e[b]=a;d[b]=f;h||(h=!0,g.$evalAsync(c))});f.push(k)});return function(){for(;f.length;)f.shift()()}},$watchCollection:function(a,b){function c(a){e=a;var b,d,g,h;if(!y(e)){if(G(e))if(ya(e))for(f!==m&&(f=m,t=f.length=0,l++),a=e.length,t!==a&&(l++,f.length=t=a),b=0;b<a;b++)h=f[b],g=e[b],d=h!==h&&g!==g,d||h===g||(l++,f[b]=g);else{f!==r&&(f=r={},t=0,l++);a=0;for(b in e)ua.call(e,b)&&(a++,g=e[b],h=f[b],b in f?(d=h!==h&&g!==g,d||h===g||(l++,f[b]=g)):(t++,f[b]=g,l++));if(t>
-a)for(b in l++,f)ua.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,h,k=1<b.length,l=0,n=g(a,c),m=[],r={},p=!0,t=0;return this.$watch(n,function(){p?(p=!1,b(e,e,d)):b(e,h,d);if(k)if(G(e))if(ya(e)){h=Array(e.length);for(var a=0;a<e.length;a++)h[a]=e[a]}else for(a in h={},e)ua.call(e,a)&&(h[a]=e[a]);else h=e})},$digest:function(){var a,g,k,l,n,r,p,q,N=b,u,x=[],y,v;m("$digest");h.$$checkUrlChange();this===H&&null!==e&&(h.defer.cancel(e),w());c=null;do{q=!1;
-for(u=this;t.length;){try{v=t.shift(),v.scope.$eval(v.expression,v.locals)}catch(C){f(C)}c=null}a:do{if(r=u.$$watchers)for(p=r.length;p--;)try{if(a=r[p])if(n=a.get,(g=n(u))!==(k=a.last)&&!(a.eq?pa(g,k):"number"===typeof g&&"number"===typeof k&&isNaN(g)&&isNaN(k)))q=!0,c=a,a.last=a.eq?qa(g,null):g,l=a.fn,l(g,k===s?g:k,u),5>N&&(y=4-N,x[y]||(x[y]=[]),x[y].push({msg:E(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:g,oldVal:k}));else if(a===c){q=!1;break a}}catch(F){f(F)}if(!(r=u.$$watchersCount&&
-u.$$childHead||u!==this&&u.$$nextSibling))for(;u!==this&&!(r=u.$$nextSibling);)u=u.$parent}while(u=r);if((q||t.length)&&!N--)throw H.$$phase=null,d("infdig",b,x);}while(q||t.length);for(H.$$phase=null;z.length;)try{z.shift()()}catch(B){f(B)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===H&&h.$$applicationDestroyed();r(this,-this.$$watchersCount);for(var b in this.$$listenerCount)N(this,this.$$listenerCount[b],b);a&&a.$$childHead==
-this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=C;this.$on=this.$watch=this.$watchGroup=function(){return C};this.$$listeners={};this.$$nextSibling=null;l(this)}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){H.$$phase||
-t.length||h.defer(function(){t.length&&H.$digest()});t.push({scope:this,expression:g(a),locals:b})},$$postDigest:function(a){z.push(a)},$apply:function(a){try{m("$apply");try{return this.$eval(a)}finally{H.$$phase=null}}catch(b){f(b)}finally{try{H.$digest()}catch(c){throw f(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&u.push(b);a=g(a);p()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=
-0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,N(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,g=!1,h={name:a,targetScope:e,stopPropagation:function(){g=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=$a([h],arguments,1),l,n;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(n=d.length;l<n;l++)if(d[l])try{d[l].apply(null,k)}catch(m){f(m)}else d.splice(l,1),l--,n--;if(g)return h.currentScope=null,h;e=e.$parent}while(e);
-h.currentScope=null;return h},$broadcast:function(a,b){var c=this,d=this,e={name:a,targetScope:this,preventDefault:function(){e.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[a])return e;for(var g=$a([e],arguments,1),h,k;c=d;){e.currentScope=c;d=c.$$listeners[a]||[];h=0;for(k=d.length;h<k;h++)if(d[h])try{d[h].apply(null,g)}catch(l){f(l)}else d.splice(h,1),h--,k--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}e.currentScope=
-null;return e}};var H=new n,t=H.$$asyncQueue=[],z=H.$$postDigestQueue=[],u=H.$$applyAsyncQueue=[];return H}]}function me(){var a=/^\s*(https?|ftp|mailto|tel|file):/,b=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(b){return x(b)?(a=b,this):a};this.imgSrcSanitizationWhitelist=function(a){return x(a)?(b=a,this):b};this.$get=function(){return function(d,c){var e=c?b:a,f;f=ra(d).href;return""===f||f.match(e)?d:"unsafe:"+f}}}function lg(a){if("self"===a)return a;
-if(F(a)){if(-1<a.indexOf("***"))throw ta("iwcard",a);a=vd(a).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*");return new RegExp("^"+a+"$")}if(Wa(a))return new RegExp("^"+a.source+"$");throw ta("imatcher");}function wd(a){var b=[];x(a)&&q(a,function(a){b.push(lg(a))});return b}function xf(){this.SCE_CONTEXTS=oa;var a=["self"],b=[];this.resourceUrlWhitelist=function(b){arguments.length&&(a=wd(b));return a};this.resourceUrlBlacklist=function(a){arguments.length&&(b=wd(a));return b};this.$get=["$injector",
-function(d){function c(a,b){return"self"===a?hd(b):!!a.exec(b.href)}function e(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};return b}var f=function(a){throw ta("unsafe");};d.has("$sanitize")&&(f=d.get("$sanitize"));var g=e(),h={};h[oa.HTML]=e(g);h[oa.CSS]=e(g);h[oa.URL]=e(g);h[oa.JS]=e(g);h[oa.RESOURCE_URL]=
-e(h[oa.URL]);return{trustAs:function(a,b){var c=h.hasOwnProperty(a)?h[a]:null;if(!c)throw ta("icontext",a,b);if(null===b||y(b)||""===b)return b;if("string"!==typeof b)throw ta("itype",a);return new c(b)},getTrusted:function(d,e){if(null===e||y(e)||""===e)return e;var g=h.hasOwnProperty(d)?h[d]:null;if(g&&e instanceof g)return e.$$unwrapTrustedValue();if(d===oa.RESOURCE_URL){var g=ra(e.toString()),m,r,q=!1;m=0;for(r=a.length;m<r;m++)if(c(a[m],g)){q=!0;break}if(q)for(m=0,r=b.length;m<r;m++)if(c(b[m],
-g)){q=!1;break}if(q)return e;throw ta("insecurl",e.toString());}if(d===oa.HTML)return f(e);throw ta("unsafe");},valueOf:function(a){return a instanceof g?a.$$unwrapTrustedValue():a}}}]}function wf(){var a=!0;this.enabled=function(b){arguments.length&&(a=!!b);return a};this.$get=["$parse","$sceDelegate",function(b,d){if(a&&8>Ca)throw ta("iequirks");var c=ha(oa);c.isEnabled=function(){return a};c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b},
-c.valueOf=Xa);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs,f=c.getTrusted,g=c.trustAs;q(oa,function(a,b){var d=P(b);c[cb("parse_as_"+d)]=function(b){return e(a,b)};c[cb("get_trusted_"+d)]=function(b){return f(a,b)};c[cb("trust_as_"+d)]=function(b){return g(a,b)}});return c}]}function yf(){this.$get=["$window","$document",function(a,b){var d={},c=!(a.chrome&&a.chrome.app&&a.chrome.app.runtime)&&a.history&&a.history.pushState,
-e=X((/android (\d+)/.exec(P((a.navigator||{}).userAgent))||[])[1]),f=/Boxee/i.test((a.navigator||{}).userAgent),g=b[0]||{},h,k=/^(Moz|webkit|ms)(?=[A-Z])/,l=g.body&&g.body.style,n=!1,m=!1;if(l){for(var r in l)if(n=k.exec(r)){h=n[0];h=h.substr(0,1).toUpperCase()+h.substr(1);break}h||(h="WebkitOpacity"in l&&"webkit");n=!!("transition"in l||h+"Transition"in l);m=!!("animation"in l||h+"Animation"in l);!e||n&&m||(n=F(l.webkitTransition),m=F(l.webkitAnimation))}return{history:!(!c||4>e||f),hasEvent:function(a){if("input"===
-a&&11>=Ca)return!1;if(y(d[a])){var b=g.createElement("div");d[a]="on"+a in b}return d[a]},csp:Ea(),vendorPrefix:h,transitions:n,animations:m,android:e}}]}function Af(){var a;this.httpOptions=function(b){return b?(a=b,this):a};this.$get=["$templateCache","$http","$q","$sce",function(b,d,c,e){function f(g,h){f.totalPendingRequests++;F(g)&&b.get(g)||(g=e.getTrustedResourceUrl(g));var k=d.defaults&&d.defaults.transformResponse;K(k)?k=k.filter(function(a){return a!==ac}):k===ac&&(k=null);return d.get(g,
-R({cache:b,transformResponse:k},a))["finally"](function(){f.totalPendingRequests--}).then(function(a){b.put(g,a.data);return a.data},function(a){if(!h)throw mg("tpload",g,a.status,a.statusText);return c.reject(a)})}f.totalPendingRequests=0;return f}]}function Bf(){this.$get=["$rootScope","$browser","$location",function(a,b,d){return{findBindings:function(a,b,d){a=a.getElementsByClassName("ng-binding");var g=[];q(a,function(a){var c=ea.element(a).data("$binding");c&&q(c,function(c){d?(new RegExp("(^|\\s)"+
-vd(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!=c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-","data-ng-","ng\\:"],h=0;h<g.length;++h){var k=a.querySelectorAll("["+g[h]+"model"+(d?"=":"*=")+'"'+b+'"]');if(k.length)return k}},getLocation:function(){return d.url()},setLocation:function(b){b!==d.url()&&(d.url(b),a.$digest())},whenStable:function(a){b.notifyWhenNoOutstandingRequests(a)}}}]}function Cf(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",
-function(a,b,d,c,e){function f(f,k,l){E(f)||(l=k,k=f,f=C);var n=za.call(arguments,3),m=x(l)&&!l,r=(m?c:d).defer(),q=r.promise,s;s=b.defer(function(){try{r.resolve(f.apply(null,n))}catch(b){r.reject(b),e(b)}finally{delete g[q.$$timeoutId]}m||a.$apply()},k);q.$$timeoutId=s;g[s]=r;return q}var g={};f.cancel=function(a){return a&&a.$$timeoutId in g?(g[a.$$timeoutId].reject("canceled"),delete g[a.$$timeoutId],b.defer.cancel(a.$$timeoutId)):!1};return f}]}function ra(a){Ca&&(Y.setAttribute("href",a),a=
-Y.href);Y.setAttribute("href",a);return{href:Y.href,protocol:Y.protocol?Y.protocol.replace(/:$/,""):"",host:Y.host,search:Y.search?Y.search.replace(/^\?/,""):"",hash:Y.hash?Y.hash.replace(/^#/,""):"",hostname:Y.hostname,port:Y.port,pathname:"/"===Y.pathname.charAt(0)?Y.pathname:"/"+Y.pathname}}function hd(a){a=F(a)?ra(a):a;return a.protocol===xd.protocol&&a.host===xd.host}function Df(){this.$get=da(v)}function yd(a){function b(a){try{return decodeURIComponent(a)}catch(b){return a}}var d=a[0]||{},
-c={},e="";return function(){var a,g,h,k,l;a=d.cookie||"";if(a!==e)for(e=a,a=e.split("; "),c={},h=0;h<a.length;h++)g=a[h],k=g.indexOf("="),0<k&&(l=b(g.substring(0,k)),y(c[l])&&(c[l]=b(g.substring(k+1))));return c}}function Hf(){this.$get=yd}function Jc(a){function b(d,c){if(G(d)){var e={};q(d,function(a,c){e[c]=b(c,a)});return e}return a.factory(d+"Filter",c)}this.register=b;this.$get=["$injector",function(a){return function(b){return a.get(b+"Filter")}}];b("currency",zd);b("date",Ad);b("filter",ng);
-b("json",og);b("limitTo",pg);b("lowercase",qg);b("number",Bd);b("orderBy",Cd);b("uppercase",rg)}function ng(){return function(a,b,d){if(!ya(a)){if(null==a)return a;throw O("filter")("notarray",a);}var c;switch(ic(b)){case "function":break;case "boolean":case "null":case "number":case "string":c=!0;case "object":b=sg(b,d,c);break;default:return a}return Array.prototype.filter.call(a,b)}}function sg(a,b,d){var c=G(a)&&"$"in a;!0===b?b=pa:E(b)||(b=function(a,b){if(y(a))return!1;if(null===a||null===b)return a===
-b;if(G(b)||G(a)&&!rc(a))return!1;a=P(""+a);b=P(""+b);return-1!==a.indexOf(b)});return function(e){return c&&!G(e)?Ka(e,a.$,b,!1):Ka(e,a,b,d)}}function Ka(a,b,d,c,e){var f=ic(a),g=ic(b);if("string"===g&&"!"===b.charAt(0))return!Ka(a,b.substring(1),d,c);if(K(a))return a.some(function(a){return Ka(a,b,d,c)});switch(f){case "object":var h;if(c){for(h in a)if("$"!==h.charAt(0)&&Ka(a[h],b,d,!0))return!0;return e?!1:Ka(a,b,d,!1)}if("object"===g){for(h in b)if(e=b[h],!E(e)&&!y(e)&&(f="$"===h,!Ka(f?a:a[h],
-e,d,f,f)))return!1;return!0}return d(a,b);case "function":return!1;default:return d(a,b)}}function ic(a){return null===a?"null":typeof a}function zd(a){var b=a.NUMBER_FORMATS;return function(a,c,e){y(c)&&(c=b.CURRENCY_SYM);y(e)&&(e=b.PATTERNS[1].maxFrac);return null==a?a:Dd(a,b.PATTERNS[1],b.GROUP_SEP,b.DECIMAL_SEP,e).replace(/\u00A4/g,c)}}function Bd(a){var b=a.NUMBER_FORMATS;return function(a,c){return null==a?a:Dd(a,b.PATTERNS[0],b.GROUP_SEP,b.DECIMAL_SEP,c)}}function tg(a){var b=0,d,c,e,f,g;-1<
-(c=a.indexOf(Ed))&&(a=a.replace(Ed,""));0<(e=a.search(/e/i))?(0>c&&(c=e),c+=+a.slice(e+1),a=a.substring(0,e)):0>c&&(c=a.length);for(e=0;a.charAt(e)==jc;e++);if(e==(g=a.length))d=[0],c=1;else{for(g--;a.charAt(g)==jc;)g--;c-=e;d=[];for(f=0;e<=g;e++,f++)d[f]=+a.charAt(e)}c>Fd&&(d=d.splice(0,Fd-1),b=c-1,c=1);return{d:d,e:b,i:c}}function ug(a,b,d,c){var e=a.d,f=e.length-a.i;b=y(b)?Math.min(Math.max(d,f),c):+b;d=b+a.i;c=e[d];if(0<d){e.splice(Math.max(a.i,d));for(var g=d;g<e.length;g++)e[g]=0}else for(f=
-Math.max(0,f),a.i=1,e.length=Math.max(1,d=b+1),e[0]=0,g=1;g<d;g++)e[g]=0;if(5<=c)if(0>d-1){for(c=0;c>d;c--)e.unshift(0),a.i++;e.unshift(1);a.i++}else e[d-1]++;for(;f<Math.max(0,b);f++)e.push(0);if(b=e.reduceRight(function(a,b,c,d){b+=a;d[c]=b%10;return Math.floor(b/10)},0))e.unshift(b),a.i++}function Dd(a,b,d,c,e){if(!F(a)&&!Q(a)||isNaN(a))return"";var f=!isFinite(a),g=!1,h=Math.abs(a)+"",k="";if(f)k="\u221e";else{g=tg(h);ug(g,e,b.minFrac,b.maxFrac);k=g.d;h=g.i;e=g.e;f=[];for(g=k.reduce(function(a,
-b){return a&&!b},!0);0>h;)k.unshift(0),h++;0<h?f=k.splice(h):(f=k,k=[0]);h=[];for(k.length>=b.lgSize&&h.unshift(k.splice(-b.lgSize).join(""));k.length>b.gSize;)h.unshift(k.splice(-b.gSize).join(""));k.length&&h.unshift(k.join(""));k=h.join(d);f.length&&(k+=c+f.join(""));e&&(k+="e+"+e)}return 0>a&&!g?b.negPre+k+b.negSuf:b.posPre+k+b.posSuf}function Ib(a,b,d,c){var e="";if(0>a||c&&0>=a)c?a=-a+1:(a=-a,e="-");for(a=""+a;a.length<b;)a=jc+a;d&&(a=a.substr(a.length-b));return e+a}function W(a,b,d,c,e){d=
-d||0;return function(f){f=f["get"+a]();if(0<d||f>-d)f+=d;0===f&&-12==d&&(f=12);return Ib(f,b,c,e)}}function ib(a,b,d){return function(c,e){var f=c["get"+a](),g=sb((d?"STANDALONE":"")+(b?"SHORT":"")+a);return e[g][f]}}function Gd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function Hd(a){return function(b){var d=Gd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-+d;b=1+Math.round(b/6048E5);return Ib(b,a)}}function kc(a,b){return 0>=a.getFullYear()?
-b.ERAS[0]:b.ERAS[1]}function Ad(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,k=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=X(b[9]+b[10]),g=X(b[9]+b[11]));h.call(a,X(b[1]),X(b[2])-1,X(b[3]));f=X(b[4]||0)-f;g=X(b[5]||0)-g;h=X(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));k.call(a,f,g,h,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,d,f){var g="",h=
-[],k,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;F(c)&&(c=vg.test(c)?X(c):b(c));Q(c)&&(c=new Date(c));if(!fa(c)||!isFinite(c.getTime()))return c;for(;d;)(l=wg.exec(d))?(h=$a(h,l,1),d=h.pop()):(h.push(d),d=null);var n=c.getTimezoneOffset();f&&(n=vc(f,n),c=Qb(c,f,!0));q(h,function(b){k=xg[b];g+=k?k(c,a.DATETIME_FORMATS,n):"''"===b?"'":b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function og(){return function(a,b){y(b)&&(b=2);return ab(a,b)}}function pg(){return function(a,b,d){b=Infinity===
-Math.abs(Number(b))?Number(b):X(b);if(isNaN(b))return a;Q(a)&&(a=a.toString());if(!K(a)&&!F(a))return a;d=!d||isNaN(d)?0:X(d);d=0>d?Math.max(0,a.length+d):d;return 0<=b?a.slice(d,d+b):0===d?a.slice(b,a.length):a.slice(Math.max(0,d+b),d)}}function Cd(a){function b(b,d){d=d?-1:1;return b.map(function(b){var c=1,h=Xa;if(E(b))h=b;else if(F(b)){if("+"==b.charAt(0)||"-"==b.charAt(0))c="-"==b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(h=a(b),h.constant))var k=h(),h=function(a){return a[k]}}return{get:h,
-descending:c*d}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}return function(a,e,f){if(null==a)return a;if(!ya(a))throw O("orderBy")("notarray",a);K(e)||(e=[e]);0===e.length&&(e=["+"]);var g=b(e,f);g.push({get:function(){return{}},descending:f?-1:1});a=Array.prototype.map.call(a,function(a,b){return{value:a,predicateValues:g.map(function(c){var e=c.get(a);c=typeof e;if(null===e)c="string",e="null";else if("string"===c)e=e.toLowerCase();else if("object"===
-c)a:{if("function"===typeof e.valueOf&&(e=e.valueOf(),d(e)))break a;if(rc(e)&&(e=e.toString(),d(e)))break a;e=b}return{value:e,type:c}})}});a.sort(function(a,b){for(var c=0,d=0,e=g.length;d<e;++d){var c=a.predicateValues[d],f=b.predicateValues[d],q=0;c.type===f.type?c.value!==f.value&&(q=c.value<f.value?-1:1):q=c.type<f.type?-1:1;if(c=q*g[d].descending)break}return c});return a=a.map(function(a){return a.value})}}function La(a){E(a)&&(a={link:a});a.restrict=a.restrict||"AC";return da(a)}function Id(a,
-b,d,c,e){var f=this,g=[];f.$error={};f.$$success={};f.$pending=void 0;f.$name=e(b.name||b.ngForm||"")(d);f.$dirty=!1;f.$pristine=!0;f.$valid=!0;f.$invalid=!1;f.$submitted=!1;f.$$parentForm=Jb;f.$rollbackViewValue=function(){q(g,function(a){a.$rollbackViewValue()})};f.$commitViewValue=function(){q(g,function(a){a.$commitViewValue()})};f.$addControl=function(a){Qa(a.$name,"input");g.push(a);a.$name&&(f[a.$name]=a);a.$$parentForm=f};f.$$renameControl=function(a,b){var c=a.$name;f[c]===a&&delete f[c];
-f[b]=a;a.$name=b};f.$removeControl=function(a){a.$name&&f[a.$name]===a&&delete f[a.$name];q(f.$pending,function(b,c){f.$setValidity(c,null,a)});q(f.$error,function(b,c){f.$setValidity(c,null,a)});q(f.$$success,function(b,c){f.$setValidity(c,null,a)});Za(g,a);a.$$parentForm=Jb};Jd({ctrl:this,$element:a,set:function(a,b,c){var d=a[b];d?-1===d.indexOf(c)&&d.push(c):a[b]=[c]},unset:function(a,b,c){var d=a[b];d&&(Za(d,c),0===d.length&&delete a[b])},$animate:c});f.$setDirty=function(){c.removeClass(a,Ua);
-c.addClass(a,Kb);f.$dirty=!0;f.$pristine=!1;f.$$parentForm.$setDirty()};f.$setPristine=function(){c.setClass(a,Ua,Kb+" ng-submitted");f.$dirty=!1;f.$pristine=!0;f.$submitted=!1;q(g,function(a){a.$setPristine()})};f.$setUntouched=function(){q(g,function(a){a.$setUntouched()})};f.$setSubmitted=function(){c.addClass(a,"ng-submitted");f.$submitted=!0;f.$$parentForm.$setSubmitted()}}function lc(a){a.$formatters.push(function(b){return a.$isEmpty(b)?b:b.toString()})}function jb(a,b,d,c,e,f){var g=P(b[0].type);
-if(!e.android){var h=!1;b.on("compositionstart",function(){h=!0});b.on("compositionend",function(){h=!1;l()})}var k,l=function(a){k&&(f.defer.cancel(k),k=null);if(!h){var e=b.val();a=a&&a.type;"password"===g||d.ngTrim&&"false"===d.ngTrim||(e=V(e));(c.$viewValue!==e||""===e&&c.$$hasNativeValidators)&&c.$setViewValue(e,a)}};if(e.hasEvent("input"))b.on("input",l);else{var n=function(a,b,c){k||(k=f.defer(function(){k=null;b&&b.value===c||l(a)}))};b.on("keydown",function(a){var b=a.keyCode;91===b||15<
-b&&19>b||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut",n)}b.on("change",l);if(Kd[g]&&c.$$hasNativeValidators&&g===d.type)b.on("keydown wheel mousedown",function(a){if(!k){var b=this.validity,c=b.badInput,d=b.typeMismatch;k=f.defer(function(){k=null;b.badInput===c&&b.typeMismatch===d||l(a)})}});c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Lb(a,b){return function(d,c){var e,f;if(fa(d))return d;if(F(d)){'"'==d.charAt(0)&&
-'"'==d.charAt(d.length-1)&&(d=d.substring(1,d.length-1));if(yg.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},q(e,function(a,c){c<b.length&&(f[b[c]]=+a)}),new Date(f.yyyy,f.MM-1,f.dd,f.HH,f.mm,f.ss||0,1E3*f.sss||0)}return NaN}}function kb(a,b,d,c){return function(e,f,g,h,k,l,n){function m(a){return a&&
-!(a.getTime&&a.getTime()!==a.getTime())}function r(a){return x(a)&&!fa(a)?d(a)||void 0:a}Ld(e,f,g,h);jb(e,f,g,h,k,l);var q=h&&h.$options&&h.$options.timezone,s;h.$$parserName=a;h.$parsers.push(function(a){if(h.$isEmpty(a))return null;if(b.test(a))return a=d(a,s),q&&(a=Qb(a,q)),a});h.$formatters.push(function(a){if(a&&!fa(a))throw lb("datefmt",a);if(m(a))return(s=a)&&q&&(s=Qb(s,q,!0)),n("date")(a,c,q);s=null;return""});if(x(g.min)||g.ngMin){var w;h.$validators.min=function(a){return!m(a)||y(w)||d(a)>=
-w};g.$observe("min",function(a){w=r(a);h.$validate()})}if(x(g.max)||g.ngMax){var p;h.$validators.max=function(a){return!m(a)||y(p)||d(a)<=p};g.$observe("max",function(a){p=r(a);h.$validate()})}}}function Ld(a,b,d,c){(c.$$hasNativeValidators=G(b[0].validity))&&c.$parsers.push(function(a){var c=b.prop("validity")||{};return c.badInput||c.typeMismatch?void 0:a})}function Md(a,b,d,c,e){if(x(c)){a=a(c);if(!a.constant)throw lb("constexpr",d,c);return a(b)}return e}function mc(a,b){a="ngClass"+a;return["$animate",
-function(d){function c(a,b){var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],n=0;n<b.length;n++)if(e==b[n])continue a;c.push(e)}return c}function e(a){var b=[];return K(a)?(q(a,function(a){b=b.concat(e(a))}),b):F(a)?a.split(" "):G(a)?(q(a,function(a,c){a&&(b=b.concat(c.split(" ")))}),b):a}return{restrict:"AC",link:function(f,g,h){function k(a){a=l(a,1);h.$addClass(a)}function l(a,b){var c=g.data("$classCounts")||T(),d=[];q(a,function(a){if(0<b||c[a])c[a]=(c[a]||0)+b,c[a]===+(0<b)&&d.push(a)});g.data("$classCounts",
-c);return d.join(" ")}function n(a,b){var e=c(b,a),f=c(a,b),e=l(e,1),f=l(f,-1);e&&e.length&&d.addClass(g,e);f&&f.length&&d.removeClass(g,f)}function m(a){if(!0===b||f.$index%2===b){var c=e(a||[]);if(!r)k(c);else if(!pa(a,r)){var d=e(r);n(d,c)}}r=K(a)?a.map(function(a){return ha(a)}):ha(a)}var r;f.$watch(h[a],m,!0);h.$observe("class",function(b){m(f.$eval(h[a]))});"ngClass"!==a&&f.$watch("$index",function(c,d){var g=c&1;if(g!==(d&1)){var m=e(f.$eval(h[a]));g===b?k(m):(g=l(m,-1),h.$removeClass(g))}})}}}]}
-function Jd(a){function b(a,b){b&&!f[a]?(k.addClass(e,a),f[a]=!0):!b&&f[a]&&(k.removeClass(e,a),f[a]=!1)}function d(a,c){a=a?"-"+zc(a,"-"):"";b(mb+a,!0===c);b(Nd+a,!1===c)}var c=a.ctrl,e=a.$element,f={},g=a.set,h=a.unset,k=a.$animate;f[Nd]=!(f[mb]=e.hasClass(mb));c.$setValidity=function(a,e,f){y(e)?(c.$pending||(c.$pending={}),g(c.$pending,a,f)):(c.$pending&&h(c.$pending,a,f),Od(c.$pending)&&(c.$pending=void 0));Da(e)?e?(h(c.$error,a,f),g(c.$$success,a,f)):(g(c.$error,a,f),h(c.$$success,a,f)):(h(c.$error,
-a,f),h(c.$$success,a,f));c.$pending?(b(Pd,!0),c.$valid=c.$invalid=void 0,d("",null)):(b(Pd,!1),c.$valid=Od(c.$error),c.$invalid=!c.$valid,d("",c.$valid));e=c.$pending&&c.$pending[a]?void 0:c.$error[a]?!1:c.$$success[a]?!0:null;d(a,e);c.$$parentForm.$setValidity(a,e,c)}}function Od(a){if(a)for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}var zg=/^\/(.+)\/([a-z]*)$/,ua=Object.prototype.hasOwnProperty,P=function(a){return F(a)?a.toLowerCase():a},sb=function(a){return F(a)?a.toUpperCase():a},Ca,
-B,Z,za=[].slice,Zf=[].splice,Ag=[].push,ma=Object.prototype.toString,sc=Object.getPrototypeOf,Aa=O("ng"),ea=v.angular||(v.angular={}),Sb,nb=0;Ca=v.document.documentMode;C.$inject=[];Xa.$inject=[];var K=Array.isArray,$d=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,V=function(a){return F(a)?a.trim():a},vd=function(a){return a.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Ea=function(){if(!x(Ea.rules)){var a=v.document.querySelector("[ng-csp]")||
-v.document.querySelector("[data-ng-csp]");if(a){var b=a.getAttribute("ng-csp")||a.getAttribute("data-ng-csp");Ea.rules={noUnsafeEval:!b||-1!==b.indexOf("no-unsafe-eval"),noInlineStyle:!b||-1!==b.indexOf("no-inline-style")}}else{a=Ea;try{new Function(""),b=!1}catch(d){b=!0}a.rules={noUnsafeEval:b,noInlineStyle:!1}}}return Ea.rules},pb=function(){if(x(pb.name_))return pb.name_;var a,b,d=Na.length,c,e;for(b=0;b<d;++b)if(c=Na[b],a=v.document.querySelector("["+c.replace(":","\\:")+"jq]")){e=a.getAttribute(c+
-"jq");break}return pb.name_=e},ce=/:/g,Na=["ng-","data-ng-","ng:","x-ng-"],he=/[A-Z]/g,Ac=!1,Ma=3,le={full:"1.5.5",major:1,minor:5,dot:5,codeName:"material-conspiration"};U.expando="ng339";var eb=U.cache={},Nf=1;U._data=function(a){return this.cache[a[this.expando]]||{}};var If=/([\:\-\_]+(.))/g,Jf=/^moz([A-Z])/,wb={mouseleave:"mouseout",mouseenter:"mouseover"},Ub=O("jqLite"),Mf=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Tb=/<|&#?\w+;/,Kf=/<([\w:-]+)/,Lf=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
-ia={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option;ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead;ia.th=ia.td;var Sf=v.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Oa=U.prototype={ready:function(a){function b(){d||(d=!0,a())}var d=!1;"complete"===
-v.document.readyState?v.setTimeout(b):(this.on("DOMContentLoaded",b),U(v).on("load",b))},toString:function(){var a=[];q(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},eq:function(a){return 0<=a?B(this[a]):B(this[this.length+a])},length:0,push:Ag,sort:[].sort,splice:[].splice},Cb={};q("multiple selected checked disabled readOnly required open".split(" "),function(a){Cb[P(a)]=a});var Sc={};q("input select option textarea button form details".split(" "),function(a){Sc[a]=!0});var ad={ngMinlength:"minlength",
-ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};q({data:Wb,removeData:db,hasData:function(a){for(var b in eb[a.ng339])return!0;return!1},cleanData:function(a){for(var b=0,d=a.length;b<d;b++)db(a[b])}},function(a,b){U[b]=a});q({data:Wb,inheritedData:Ab,scope:function(a){return B.data(a,"$scope")||Ab(a.parentNode||a,["$isolateScope","$scope"])},isolateScope:function(a){return B.data(a,"$isolateScope")||B.data(a,"$isolateScopeNoTemplate")},controller:Pc,injector:function(a){return Ab(a,
-"$injector")},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:xb,css:function(a,b,d){b=cb(b);if(x(d))a.style[b]=d;else return a.style[b]},attr:function(a,b,d){var c=a.nodeType;if(c!==Ma&&2!==c&&8!==c)if(c=P(b),Cb[c])if(x(d))d?(a[b]=!0,a.setAttribute(b,c)):(a[b]=!1,a.removeAttribute(c));else return a[b]||(a.attributes.getNamedItem(b)||C).specified?c:void 0;else if(x(d))a.setAttribute(b,d);else if(a.getAttribute)return a=a.getAttribute(b,2),null===a?void 0:a},prop:function(a,b,d){if(x(d))a[b]=
-d;else return a[b]},text:function(){function a(a,d){if(y(d)){var c=a.nodeType;return 1===c||c===Ma?a.textContent:""}a.textContent=d}a.$dv="";return a}(),val:function(a,b){if(y(b)){if(a.multiple&&"select"===va(a)){var d=[];q(a.options,function(a){a.selected&&d.push(a.value||a.text)});return 0===d.length?null:d}return a.value}a.value=b},html:function(a,b){if(y(b))return a.innerHTML;ub(a,!0);a.innerHTML=b},empty:Qc},function(a,b){U.prototype[b]=function(b,c){var e,f,g=this.length;if(a!==Qc&&y(2==a.length&&
-a!==xb&&a!==Pc?b:c)){if(G(b)){for(e=0;e<g;e++)if(a===Wb)a(this[e],b);else for(f in b)a(this[e],f,b[f]);return this}e=a.$dv;g=y(e)?Math.min(g,1):g;for(f=0;f<g;f++){var h=a(this[f],b,c);e=e?e+h:h}return e}for(e=0;e<g;e++)a(this[e],b,c);return this}});q({removeData:db,on:function(a,b,d,c){if(x(c))throw Ub("onargs");if(Kc(a)){c=vb(a,!0);var e=c.events,f=c.handle;f||(f=c.handle=Pf(a,e));c=0<=b.indexOf(" ")?b.split(" "):[b];for(var g=c.length,h=function(b,c,g){var h=e[b];h||(h=e[b]=[],h.specialHandlerWrapper=
-c,"$destroy"===b||g||a.addEventListener(b,f,!1));h.push(d)};g--;)b=c[g],wb[b]?(h(wb[b],Rf),h(b,void 0,!0)):h(b)}},off:Oc,one:function(a,b,d){a=B(a);a.on(b,function e(){a.off(b,d);a.off(b,e)});a.on(b,d)},replaceWith:function(a,b){var d,c=a.parentNode;ub(a);q(new U(b),function(b){d?c.insertBefore(b,d.nextSibling):c.replaceChild(b,a);d=b})},children:function(a){var b=[];q(a.childNodes,function(a){1===a.nodeType&&b.push(a)});return b},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,
-b){var d=a.nodeType;if(1===d||11===d){b=new U(b);for(var d=0,c=b.length;d<c;d++)a.appendChild(b[d])}},prepend:function(a,b){if(1===a.nodeType){var d=a.firstChild;q(new U(b),function(b){a.insertBefore(b,d)})}},wrap:function(a,b){Mc(a,B(b).eq(0).clone()[0])},remove:Bb,detach:function(a){Bb(a,!0)},after:function(a,b){var d=a,c=a.parentNode;b=new U(b);for(var e=0,f=b.length;e<f;e++){var g=b[e];c.insertBefore(g,d.nextSibling);d=g}},addClass:zb,removeClass:yb,toggleClass:function(a,b,d){b&&q(b.split(" "),
-function(b){var e=d;y(e)&&(e=!xb(a,b));(e?zb:yb)(a,b)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){return a.nextElementSibling},find:function(a,b){return a.getElementsByTagName?a.getElementsByTagName(b):[]},clone:Vb,triggerHandler:function(a,b,d){var c,e,f=b.type||b,g=vb(a);if(g=(g=g&&g.events)&&g[f])c={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=
-!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:C,type:f,target:a},b.type&&(c=R(c,b)),b=ha(g),e=d?[c].concat(d):[c],q(b,function(b){c.isImmediatePropagationStopped()||b.apply(a,e)})}},function(a,b){U.prototype[b]=function(b,c,e){for(var f,g=0,h=this.length;g<h;g++)y(f)?(f=a(this[g],b,c,e),x(f)&&(f=B(f))):Nc(f,a(this[g],b,c,e));return x(f)?f:this};U.prototype.bind=U.prototype.on;U.prototype.unbind=U.prototype.off});Ra.prototype={put:function(a,
-b){this[Fa(a,this.nextUid)]=b},get:function(a){return this[Fa(a,this.nextUid)]},remove:function(a){var b=this[a=Fa(a,this.nextUid)];delete this[a];return b}};var Gf=[function(){this.$get=[function(){return Ra}]}],Uf=/^([^\(]+?)=>/,Vf=/^[^\(]*\(\s*([^\)]*)\)/m,Bg=/,/,Cg=/^\s*(_?)(\S+?)\1\s*$/,Tf=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ga=O("$injector");bb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw F(d)&&d||(d=a.name||Wf(a)),Ga("strictdi",d);
-b=Tc(a);q(b[1].split(Bg),function(a){a.replace(Cg,function(a,b,d){c.push(d)})})}a.$inject=c}}else K(a)?(b=a.length-1,Pa(a[b],"fn"),c=a.slice(0,b)):Pa(a,"fn",!0);return c};var Qd=O("$animate"),Ze=function(){this.$get=C},$e=function(){var a=new Ra,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=F(b)?b.split(" "):K(b)?b:[],q(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){q(b,function(b){var c=a.get(b);if(c){var d=Xf(b.attr("class")),e="",f="";q(c,
-function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});q(b,function(a){e&&zb(a,e);f&&yb(a,f)});a.remove(b)}});b.length=0}return{enabled:C,on:C,off:C,pin:C,push:function(g,h,k,l){l&&l();k=k||{};k.from&&g.css(k.from);k.to&&g.css(k.to);if(k.addClass||k.removeClass)if(h=k.addClass,l=k.removeClass,k=a.get(g)||{},h=e(k,h,!0),l=e(k,l,!1),h||l)a.put(g,k),b.push(g),1===b.length&&c.$$postDigest(f);g=new d;g.complete();return g}}}]},Xe=["$provide",function(a){var b=this;this.$$registeredAnimations=
-Object.create(null);this.register=function(d,c){if(d&&"."!==d.charAt(0))throw Qd("notcsel",d);var e=d+"-animation";b.$$registeredAnimations[d.substr(1)]=e;a.factory(e,c)};this.classNameFilter=function(a){if(1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?a:null)&&/(\s+|\/)ng-animate(\s+|\/)/.test(this.$$classNameFilter.toString()))throw Qd("nongcls","ng-animate");return this.$$classNameFilter};this.$get=["$$animateQueue",function(a){function b(a,c,d){if(d){var h;a:{for(h=0;h<d.length;h++){var k=
-d[h];if(1===k.nodeType){h=k;break a}}h=void 0}!h||h.parentNode||h.previousElementSibling||(d=null)}d?d.after(a):c.prepend(a)}return{on:a.on,off:a.off,pin:a.pin,enabled:a.enabled,cancel:function(a){a.end&&a.end()},enter:function(e,f,g,h){f=f&&B(f);g=g&&B(g);f=f||g.parent();b(e,f,g);return a.push(e,"enter",Ha(h))},move:function(e,f,g,h){f=f&&B(f);g=g&&B(g);f=f||g.parent();b(e,f,g);return a.push(e,"move",Ha(h))},leave:function(b,c){return a.push(b,"leave",Ha(c),function(){b.remove()})},addClass:function(b,
-c,g){g=Ha(g);g.addClass=fb(g.addclass,c);return a.push(b,"addClass",g)},removeClass:function(b,c,g){g=Ha(g);g.removeClass=fb(g.removeClass,c);return a.push(b,"removeClass",g)},setClass:function(b,c,g,h){h=Ha(h);h.addClass=fb(h.addClass,c);h.removeClass=fb(h.removeClass,g);return a.push(b,"setClass",h)},animate:function(b,c,g,h,k){k=Ha(k);k.from=k.from?R(k.from,c):c;k.to=k.to?R(k.to,g):g;k.tempClasses=fb(k.tempClasses,h||"ng-inline-animate");return a.push(b,"animate",k)}}}]}],bf=function(){this.$get=
-["$$rAF",function(a){function b(b){d.push(b);1<d.length||a(function(){for(var a=0;a<d.length;a++)d[a]();d=[]})}var d=[];return function(){var a=!1;b(function(){a=!0});return function(d){a?d():b(d)}}}]},af=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$document","$timeout",function(a,b,d,c,e){function f(a){this.setHost(a);var b=d();this._doneCallbacks=[];this._tick=function(a){var d=c[0];d&&d.hidden?e(a,0,!1):b(a)};this._state=0}f.chain=function(a,b){function c(){if(d===a.length)b(!0);
-else a[d](function(a){!1===a?b(!1):(d++,c())})}var d=0;c()};f.all=function(a,b){function c(f){e=e&&f;++d===a.length&&b(e)}var d=0,e=!0;q(a,function(a){a.done(c)})};f.prototype={setHost:function(a){this.host=a||{}},done:function(a){2===this._state?a():this._doneCallbacks.push(a)},progress:C,getPromise:function(){if(!this.promise){var b=this;this.promise=a(function(a,c){b.done(function(b){!1===b?c():a()})})}return this.promise},then:function(a,b){return this.getPromise().then(a,b)},"catch":function(a){return this.getPromise()["catch"](a)},
-"finally":function(a){return this.getPromise()["finally"](a)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end();this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel();this._resolve(!1)},complete:function(a){var b=this;0===b._state&&(b._state=1,b._tick(function(){b._resolve(a)}))},_resolve:function(a){2!==this._state&&(q(this._doneCallbacks,function(b){b(a)}),this._doneCallbacks.length=
-0,this._state=2)}};return f}]},Ye=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(a,b,d){return function(b,e){function f(){a(function(){g.addClass&&(b.addClass(g.addClass),g.addClass=null);g.removeClass&&(b.removeClass(g.removeClass),g.removeClass=null);g.to&&(b.css(g.to),g.to=null);h||k.complete();h=!0});return k}var g=e||{};g.$$prepared||(g=qa(g));g.cleanupStyles&&(g.from=g.to=null);g.from&&(b.css(g.from),g.from=null);var h,k=new d;return{start:f,end:f}}}]},ga=O("$compile"),Zb=new function(){};
-Cc.$inject=["$provide","$$sanitizeUriProvider"];Db.prototype.isFirstChange=function(){return this.previousValue===Zb};var Vc=/^((?:x|data)[\:\-_])/i,$f=O("$controller"),bd=/^(\S+)(\s+as\s+([\w$]+))?$/,hf=function(){this.$get=["$document",function(a){return function(b){b?!b.nodeType&&b instanceof B&&(b=b[0]):b=a[0].body;return b.offsetWidth+1}}]},cd="application/json",bc={"Content-Type":cd+";charset=utf-8"},bg=/^\[|^\{(?!\{)/,cg={"[":/]$/,"{":/}$/},ag=/^\)\]\}',?\n/,Dg=O("$http"),gd=function(a){return function(){throw Dg("legacy",
-a);}},Ja=ea.$interpolateMinErr=O("$interpolate");Ja.throwNoconcat=function(a){throw Ja("noconcat",a);};Ja.interr=function(a,b){return Ja("interr",a,b.toString())};var Eg=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,eg={http:80,https:443,ftp:21},Eb=O("$location"),Fg={$$html5:!1,$$replace:!1,absUrl:Fb("$$absUrl"),url:function(a){if(y(a))return this.$$url;var b=Eg.exec(a);(b[1]||""===a)&&this.path(decodeURIComponent(b[1]));(b[2]||b[1]||""===a)&&this.search(b[3]||"");this.hash(b[5]||"");return this},protocol:Fb("$$protocol"),
-host:Fb("$$host"),port:Fb("$$port"),path:ld("$$path",function(a){a=null!==a?a.toString():"";return"/"==a.charAt(0)?a:"/"+a}),search:function(a,b){switch(arguments.length){case 0:return this.$$search;case 1:if(F(a)||Q(a))a=a.toString(),this.$$search=xc(a);else if(G(a))a=qa(a,{}),q(a,function(b,c){null==b&&delete a[c]}),this.$$search=a;else throw Eb("isrcharg");break;default:y(b)||null===b?delete this.$$search[a]:this.$$search[a]=b}this.$$compose();return this},hash:ld("$$hash",function(a){return null!==
-a?a.toString():""}),replace:function(){this.$$replace=!0;return this}};q([kd,ec,dc],function(a){a.prototype=Object.create(Fg);a.prototype.state=function(b){if(!arguments.length)return this.$$state;if(a!==dc||!this.$$html5)throw Eb("nostate");this.$$state=y(b)?null:b;return this}});var ca=O("$parse"),gg=Function.prototype.call,hg=Function.prototype.apply,ig=Function.prototype.bind,Mb=T();q("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(a){Mb[a]=!0});var Gg={n:"\n",f:"\f",r:"\r",
-t:"\t",v:"\v","'":"'",'"':'"'},gc=function(a){this.options=a};gc.prototype={constructor:gc,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index<this.text.length;)if(a=this.text.charAt(this.index),'"'===a||"'"===a)this.readString(a);else if(this.isNumber(a)||"."===a&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(a,"(){}[].,;:?"))this.tokens.push({index:this.index,text:a}),this.index++;else if(this.isWhitespace(a))this.index++;
-else{var b=a+this.peek(),d=b+this.peek(2),c=Mb[b],e=Mb[d];Mb[a]||c||e?(a=e?d:c?b:a,this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(a,b){return-1!==b.indexOf(a)},peek:function(a){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||
-"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdentifierStart:function(a){return this.options.isIdentifierStart?this.options.isIdentifierStart(a,this.codePointAt(a)):this.isValidIdentifierStart(a)},isValidIdentifierStart:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isIdentifierContinue:function(a){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(a,this.codePointAt(a)):this.isValidIdentifierContinue(a)},isValidIdentifierContinue:function(a,b){return this.isValidIdentifierStart(a,
-b)||this.isNumber(a)},codePointAt:function(a){return 1===a.length?a.charCodeAt(0):(a.charCodeAt(0)<<10)+a.charCodeAt(1)-56613888},peekMultichar:function(){var a=this.text.charAt(this.index),b=this.peek();if(!b)return a;var d=a.charCodeAt(0),c=b.charCodeAt(0);return 55296<=d&&56319>=d&&56320<=c&&57343>=c?a+b:a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,d){d=d||this.index;b=x(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw ca("lexerr",
-a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index<this.text.length;){var d=P(this.text.charAt(this.index));if("."==d||this.isNumber(d))a+=d;else{var c=this.peek();if("e"==d&&this.isExpOperator(c))a+=d;else if(this.isExpOperator(d)&&c&&this.isNumber(c)&&"e"==a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||c&&this.isNumber(c)||"e"!=a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:b,text:a,constant:!0,value:Number(a)})},
-readIdent:function(){var a=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var b=this.peekMultichar();if(!this.isIdentifierContinue(b))break;this.index+=b.length}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var b=this.index;this.index++;for(var d="",c=a,e=!1;this.index<this.text.length;){var f=this.text.charAt(this.index),c=c+f;if(e)"u"===f?(e=this.text.substring(this.index+1,this.index+5),e.match(/[\da-f]{4}/i)||
-this.throwError("Invalid unicode escape [\\u"+e+"]"),this.index+=4,d+=String.fromCharCode(parseInt(e,16))):d+=Gg[f]||f,e=!1;else if("\\"===f)e=!0;else{if(f===a){this.index++;this.tokens.push({index:b,text:c,constant:!0,value:d});return}d+=f}this.index++}this.throwError("Unterminated quote",b)}};var s=function(a,b){this.lexer=a;this.options=b};s.Program="Program";s.ExpressionStatement="ExpressionStatement";s.AssignmentExpression="AssignmentExpression";s.ConditionalExpression="ConditionalExpression";
-s.LogicalExpression="LogicalExpression";s.BinaryExpression="BinaryExpression";s.UnaryExpression="UnaryExpression";s.CallExpression="CallExpression";s.MemberExpression="MemberExpression";s.Identifier="Identifier";s.Literal="Literal";s.ArrayExpression="ArrayExpression";s.Property="Property";s.ObjectExpression="ObjectExpression";s.ThisExpression="ThisExpression";s.LocalsExpression="LocalsExpression";s.NGValueParameter="NGValueParameter";s.prototype={ast:function(a){this.text=a;this.tokens=this.lexer.lex(a);
-a=this.program();0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]);return a},program:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.expressionStatement()),!this.expect(";"))return{type:s.Program,body:a}},expressionStatement:function(){return{type:s.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var a=this.expression();this.expect("|");)a=this.filter(a);return a},expression:function(){return this.assignment()},
-assignment:function(){var a=this.ternary();this.expect("=")&&(a={type:s.AssignmentExpression,left:a,right:this.assignment(),operator:"="});return a},ternary:function(){var a=this.logicalOR(),b,d;return this.expect("?")&&(b=this.expression(),this.consume(":"))?(d=this.expression(),{type:s.ConditionalExpression,test:a,alternate:b,consequent:d}):a},logicalOR:function(){for(var a=this.logicalAND();this.expect("||");)a={type:s.LogicalExpression,operator:"||",left:a,right:this.logicalAND()};return a},logicalAND:function(){for(var a=
-this.equality();this.expect("&&");)a={type:s.LogicalExpression,operator:"&&",left:a,right:this.equality()};return a},equality:function(){for(var a=this.relational(),b;b=this.expect("==","!=","===","!==");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.relational()};return a},relational:function(){for(var a=this.additive(),b;b=this.expect("<",">","<=",">=");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),
-b;b=this.expect("+","-");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:s.BinaryExpression,operator:b.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:s.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):
-this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?a=qa(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?a={type:s.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:s.CallExpression,
-callee:a,arguments:this.parseArguments()},this.consume(")")):"["===b.text?(a={type:s.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:s.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:s.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return b},parseArguments:function(){var a=[];if(")"!==
-this.peekToken().text){do a.push(this.expression());while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:s.Identifier,name:a.text}},constant:function(){return{type:s.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:s.ArrayExpression,elements:a}},
-object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;b={type:s.Property,kind:"init"};this.peek().constant?b.key=this.constant():this.peek().identifier?b.key=this.identifier():this.throwError("invalid key",this.peek());this.consume(":");b.value=this.expression();a.push(b)}while(this.expect(","))}this.consume("}");return{type:s.ObjectExpression,properties:a}},throwError:function(a,b){throw ca("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0===
-this.tokens.length)throw ca("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw ca("ueoe",this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,e){if(this.tokens.length>a){a=this.tokens[a];var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))?
-(this.tokens.shift(),a):!1},selfReferential:{"this":{type:s.ThisExpression},$locals:{type:s.LocalsExpression}}};sd.prototype={compile:function(a,b){var d=this,c=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:b,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};aa(c,d.$filter);var e="",f;this.stage="assign";if(f=qd(c))this.state.computing="assign",e=this.nextId(),this.recurse(f,e),this.return_(e),e="fn.assign="+this.generateFunction("assign","s,v,l");f=od(c.body);
-d.stage="inputs";q(f,function(a,b){var c="fn"+b;d.state[c]={vars:[],body:[],own:{}};d.state.computing=c;var e=d.nextId();d.recurse(a,e);d.return_(e);d.state.inputs.push(c);a.watchId=b});this.state.computing="fn";this.stage="main";this.recurse(c);e='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+e+this.watchFns()+"return fn;";e=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext",
-"ifDefined","plus","text",e))(this.$filter,Ta,sa,md,fg,Gb,jg,nd,a);this.state=this.stage=void 0;e.literal=rd(c);e.constant=c.constant;return e},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;q(b,function(b){a.push("var "+b+"="+d.generateFunction(b,"s"))});b.length&&a.push("fn.inputs=["+b.join(",")+"];");return a.join("")},generateFunction:function(a,b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;q(this.state.filters,
-function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,b,d,c,e,f){var g,h,k=this,l,n;c=c||C;if(!f&&x(a.watchId))b=b||this.nextId(),this.if_("i",this.lazyAssign(b,this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case s.Program:q(a.body,function(b,c){k.recurse(b.expression,
-void 0,void 0,function(a){h=a});c!==a.body.length-1?k.current().body.push(h,";"):k.return_(h)});break;case s.Literal:n=this.escape(a.value);this.assign(b,n);c(n);break;case s.UnaryExpression:this.recurse(a.argument,void 0,void 0,function(a){h=a});n=a.operator+"("+this.ifDefined(h,0)+")";this.assign(b,n);c(n);break;case s.BinaryExpression:this.recurse(a.left,void 0,void 0,function(a){g=a});this.recurse(a.right,void 0,void 0,function(a){h=a});n="+"===a.operator?this.plus(g,h):"-"===a.operator?this.ifDefined(g,
-0)+a.operator+this.ifDefined(h,0):"("+g+")"+a.operator+"("+h+")";this.assign(b,n);c(n);break;case s.LogicalExpression:b=b||this.nextId();k.recurse(a.left,b);k.if_("&&"===a.operator?b:k.not(b),k.lazyRecurse(a.right,b));c(b);break;case s.ConditionalExpression:b=b||this.nextId();k.recurse(a.test,b);k.if_(b,k.lazyRecurse(a.alternate,b),k.lazyRecurse(a.consequent,b));c(b);break;case s.Identifier:b=b||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",
-a.name)+"?l:s"),d.computed=!1,d.name=a.name);Ta(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){e&&1!==e&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(b,k.nonComputedMember("s",a.name))})},b&&k.lazyAssign(b,k.nonComputedMember("l",a.name)));(k.state.expensiveChecks||Hb(a.name))&&k.addEnsureSafeObject(b);c(b);break;case s.MemberExpression:g=d&&(d.context=this.nextId())||
-this.nextId();b=b||this.nextId();k.recurse(a.object,g,void 0,function(){k.if_(k.notNull(g),function(){e&&1!==e&&k.addEnsureSafeAssignContext(g);if(a.computed)h=k.nextId(),k.recurse(a.property,h),k.getStringValue(h),k.addEnsureSafeMemberName(h),e&&1!==e&&k.if_(k.not(k.computedMember(g,h)),k.lazyAssign(k.computedMember(g,h),"{}")),n=k.ensureSafeObject(k.computedMember(g,h)),k.assign(b,n),d&&(d.computed=!0,d.name=h);else{Ta(a.property.name);e&&1!==e&&k.if_(k.not(k.nonComputedMember(g,a.property.name)),
-k.lazyAssign(k.nonComputedMember(g,a.property.name),"{}"));n=k.nonComputedMember(g,a.property.name);if(k.state.expensiveChecks||Hb(a.property.name))n=k.ensureSafeObject(n);k.assign(b,n);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(b,"undefined")});c(b)},!!e);break;case s.CallExpression:b=b||this.nextId();a.filter?(h=k.filter(a.callee.name),l=[],q(a.arguments,function(a){var b=k.nextId();k.recurse(a,b);l.push(b)}),n=h+"("+l.join(",")+")",k.assign(b,n),c(b)):(h=k.nextId(),g={},l=
-[],k.recurse(a.callee,h,g,function(){k.if_(k.notNull(h),function(){k.addEnsureSafeFunction(h);q(a.arguments,function(a){k.recurse(a,k.nextId(),void 0,function(a){l.push(k.ensureSafeObject(a))})});g.name?(k.state.expensiveChecks||k.addEnsureSafeObject(g.context),n=k.member(g.context,g.name,g.computed)+"("+l.join(",")+")"):n=h+"("+l.join(",")+")";n=k.ensureSafeObject(n);k.assign(b,n)},function(){k.assign(b,"undefined")});c(b)}));break;case s.AssignmentExpression:h=this.nextId();g={};if(!pd(a.left))throw ca("lval");
-this.recurse(a.left,void 0,g,function(){k.if_(k.notNull(g.context),function(){k.recurse(a.right,h);k.addEnsureSafeObject(k.member(g.context,g.name,g.computed));k.addEnsureSafeAssignContext(g.context);n=k.member(g.context,g.name,g.computed)+a.operator+h;k.assign(b,n);c(b||n)})},1);break;case s.ArrayExpression:l=[];q(a.elements,function(a){k.recurse(a,k.nextId(),void 0,function(a){l.push(a)})});n="["+l.join(",")+"]";this.assign(b,n);c(n);break;case s.ObjectExpression:l=[];q(a.properties,function(a){k.recurse(a.value,
-k.nextId(),void 0,function(b){l.push(k.escape(a.key.type===s.Identifier?a.key.name:""+a.key.value)+":"+b)})});n="{"+l.join(",")+"}";this.assign(b,n);c(n);break;case s.ThisExpression:this.assign(b,"s");c("s");break;case s.LocalsExpression:this.assign(b,"l");c("l");break;case s.NGValueParameter:this.assign(b,"v"),c("v")}},getHasOwnProperty:function(a,b){var d=a+"."+b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")"));return c[d]},assign:function(a,b){if(a)return this.current().body.push(a,
-"=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,b,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,"){");b();c.push("}");d&&(c.push("else{"),d(),c.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+
-"!=null"},nonComputedMember:function(a,b){var d=/[^$_a-zA-Z0-9]/g;return/[$_a-zA-Z][$_a-zA-Z0-9]*/.test(b)?a+"."+b:a+'["'+b.replace(d,this.stringEscapeFn)+'"]'},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,d){return d?this.computedMember(a,b):this.nonComputedMember(a,b)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),
-";")},addEnsureSafeAssignContext:function(a){this.current().body.push(this.ensureSafeAssignContext(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},getStringValue:function(a){this.assign(a,"getStringValue("+a+")")},ensureSafeAssignContext:function(a){return"ensureSafeAssignContext("+a+",text)"},lazyRecurse:function(a,b,d,c,e,f){var g=
-this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(F(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(Q(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw ca("esc");},nextId:function(a,
-b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};td.prototype={compile:function(a,b){var d=this,c=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=b;aa(c,d.$filter);var e,f;if(e=qd(c))f=this.recurse(e);e=od(c.body);var g;e&&(g=[],q(e,function(a,b){var c=d.recurse(a);a.input=c;g.push(c);a.watchId=b}));var h=[];q(c.body,function(a){h.push(d.recurse(a.expression))});e=0===c.body.length?C:1===
-c.body.length?h[0]:function(a,b){var c;q(h,function(d){c=d(a,b)});return c};f&&(e.assign=function(a,b,c){return f(a,c,b)});g&&(e.inputs=g);e.literal=rd(c);e.constant=c.constant;return e},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case s.Literal:return this.value(a.value,b);case s.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case s.BinaryExpression:return c=this.recurse(a.left),e=this.recurse(a.right),
-this["binary"+a.operator](c,e,b);case s.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case s.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case s.Identifier:return Ta(a.name,f.expression),f.identifier(a.name,f.expensiveChecks||Hb(a.name),b,d,f.expression);case s.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(Ta(a.property.name,f.expression),
-e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c,e,b,d,f.expression):this.nonComputedMember(c,e,f.expensiveChecks,b,d,f.expression);case s.CallExpression:return g=[],q(a.arguments,function(a){g.push(f.recurse(a))}),a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var m=[],r=0;r<g.length;++r)m.push(g[r](a,c,d,f));a=e.apply(void 0,m,f);return b?{context:void 0,name:void 0,value:a}:a}:function(a,
-c,d,n){var m=e(a,c,d,n),r;if(null!=m.value){sa(m.context,f.expression);md(m.value,f.expression);r=[];for(var q=0;q<g.length;++q)r.push(sa(g[q](a,c,d,n),f.expression));r=sa(m.value.apply(m.context,r),f.expression)}return b?{value:r}:r};case s.AssignmentExpression:return c=this.recurse(a.left,!0,1),e=this.recurse(a.right),function(a,d,g,n){var m=c(a,d,g,n);a=e(a,d,g,n);sa(m.value,f.expression);Gb(m.context);m.context[m.name]=a;return b?{value:a}:a};case s.ArrayExpression:return g=[],q(a.elements,function(a){g.push(f.recurse(a))}),
-function(a,c,d,e){for(var f=[],r=0;r<g.length;++r)f.push(g[r](a,c,d,e));return b?{value:f}:f};case s.ObjectExpression:return g=[],q(a.properties,function(a){g.push({key:a.key.type===s.Identifier?a.key.name:""+a.key.value,value:f.recurse(a.value)})}),function(a,c,d,e){for(var f={},r=0;r<g.length;++r)f[g[r].key]=g[r].value(a,c,d,e);return b?{value:f}:f};case s.ThisExpression:return function(a){return b?{value:a}:a};case s.LocalsExpression:return function(a,c){return b?{value:c}:c};case s.NGValueParameter:return function(a,
-c,d){return b?{value:d}:d}}},"unary+":function(a,b){return function(d,c,e,f){d=a(d,c,e,f);d=x(d)?+d:0;return b?{value:d}:d}},"unary-":function(a,b){return function(d,c,e,f){d=a(d,c,e,f);d=x(d)?-d:0;return b?{value:d}:d}},"unary!":function(a,b){return function(d,c,e,f){d=!a(d,c,e,f);return b?{value:d}:d}},"binary+":function(a,b,d){return function(c,e,f,g){var h=a(c,e,f,g);c=b(c,e,f,g);h=nd(h,c);return d?{value:h}:h}},"binary-":function(a,b,d){return function(c,e,f,g){var h=a(c,e,f,g);c=b(c,e,f,g);
-h=(x(h)?h:0)-(x(c)?c:0);return d?{value:h}:h}},"binary*":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)*b(c,e,f,g);return d?{value:c}:c}},"binary/":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)/b(c,e,f,g);return d?{value:c}:c}},"binary%":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)%b(c,e,f,g);return d?{value:c}:c}},"binary===":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)===b(c,e,f,g);return d?{value:c}:c}},"binary!==":function(a,b,d){return function(c,e,f,g){c=a(c,
-e,f,g)!==b(c,e,f,g);return d?{value:c}:c}},"binary==":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)==b(c,e,f,g);return d?{value:c}:c}},"binary!=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)!=b(c,e,f,g);return d?{value:c}:c}},"binary<":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<b(c,e,f,g);return d?{value:c}:c}},"binary>":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,
-g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)||b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,h){e=a(e,f,g,h)?b(e,f,g,h):d(e,f,g,h);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:void 0,
-name:void 0,value:a}:a}},identifier:function(a,b,d,c,e){return function(f,g,h,k){f=g&&a in g?g:f;c&&1!==c&&f&&!f[a]&&(f[a]={});g=f?f[a]:void 0;b&&sa(g,e);return d?{context:f,name:a,value:g}:g}},computedMember:function(a,b,d,c,e){return function(f,g,h,k){var l=a(f,g,h,k),n,m;null!=l&&(n=b(f,g,h,k),n+="",Ta(n,e),c&&1!==c&&(Gb(l),l&&!l[n]&&(l[n]={})),m=l[n],sa(m,e));return d?{context:l,name:n,value:m}:m}},nonComputedMember:function(a,b,d,c,e,f){return function(g,h,k,l){g=a(g,h,k,l);e&&1!==e&&(Gb(g),
-g&&!g[b]&&(g[b]={}));h=null!=g?g[b]:void 0;(d||Hb(b))&&sa(h,f);return c?{context:g,name:b,value:h}:h}},inputs:function(a,b){return function(d,c,e,f){return f?f[b]:a(d,c,e)}}};var hc=function(a,b,d){this.lexer=a;this.$filter=b;this.options=d;this.ast=new s(a,d);this.astCompiler=d.csp?new td(this.ast,b):new sd(this.ast,b)};hc.prototype={constructor:hc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};var kg=Object.prototype.valueOf,ta=O("$sce"),oa={HTML:"html",CSS:"css",
-URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},mg=O("$compile"),Y=v.document.createElement("a"),xd=ra(v.location.href);yd.$inject=["$document"];Jc.$inject=["$provide"];var Fd=22,Ed=".",jc="0";zd.$inject=["$locale"];Bd.$inject=["$locale"];var xg={yyyy:W("FullYear",4,0,!1,!0),yy:W("FullYear",2,0,!0,!0),y:W("FullYear",1,0,!1,!0),MMMM:ib("Month"),MMM:ib("Month",!0),MM:W("Month",2,1),M:W("Month",1,1),LLLL:ib("Month",!1,!0),dd:W("Date",2),d:W("Date",1),HH:W("Hours",2),H:W("Hours",1),hh:W("Hours",2,-12),
-h:W("Hours",1,-12),mm:W("Minutes",2),m:W("Minutes",1),ss:W("Seconds",2),s:W("Seconds",1),sss:W("Milliseconds",3),EEEE:ib("Day"),EEE:ib("Day",!0),a:function(a,b){return 12>a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Ib(Math[0<a?"floor":"ceil"](a/60),2)+Ib(Math.abs(a%60),2))},ww:Hd(2),w:Hd(1),G:kc,GG:kc,GGG:kc,GGGG:function(a,b){return 0>=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},wg=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,
-vg=/^\-?\d+$/;Ad.$inject=["$locale"];var qg=da(P),rg=da(sb);Cd.$inject=["$parse"];var ne=da({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===ma.call(b.prop("href"))?"xlink:href":"href";b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),tb={};q(Cb,function(a,b){function d(a,d,e){a.$watch(e[c],function(a){e.$set(b,!!a)})}if("multiple"!=a){var c=xa("ng-"+b),e=d;"checked"===a&&(e=function(a,
-b,e){e.ngModel!==e[c]&&d(a,b,e)});tb[c]=function(){return{restrict:"A",priority:100,link:e}}}});q(ad,function(a,b){tb[b]=function(){return{priority:100,link:function(a,c,e){if("ngPattern"===b&&"/"==e.ngPattern.charAt(0)&&(c=e.ngPattern.match(zg))){e.$set("ngPattern",new RegExp(c[1],c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});q(["src","srcset","href"],function(a){var b=xa("ng-"+a);tb[b]=function(){return{priority:99,link:function(d,c,e){var f=a,g=a;"href"===a&&"[object SVGAnimatedString]"===
-ma.call(c.prop("href"))&&(g="xlinkHref",e.$attr[g]="xlink:href",f=null);e.$observe(b,function(b){b?(e.$set(g,b),Ca&&f&&c.prop(f,e[g])):"href"===a&&e.$set(g,null)})}}}});var Jb={$addControl:C,$$renameControl:function(a,b){a.$name=b},$removeControl:C,$setValidity:C,$setDirty:C,$setPristine:C,$setSubmitted:C};Id.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Rd=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||C}return{name:"form",
-restrict:a?"EAC":"E",require:["form","^^?form"],controller:Id,compile:function(d,f){d.addClass(Ua).addClass(mb);var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,e,f){var m=f[0];if(!("action"in e)){var r=function(b){a.$apply(function(){m.$commitViewValue();m.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",r,!1);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",r,!1)},0,!1)})}(f[1]||m.$$parentForm).$addControl(m);var q=g?c(m.$name):C;g&&
-(q(a,m),e.$observe(g,function(b){m.$name!==b&&(q(a,void 0),m.$$parentForm.$$renameControl(m,b),q=c(m.$name),q(a,m))}));d.on("$destroy",function(){m.$$parentForm.$removeControl(m);q(a,void 0);R(m,Jb)})}}}}}]},oe=Rd(),Be=Rd(!0),yg=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,Hg=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Ig=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,
-Jg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Sd=/^(\d{4,})-(\d{2})-(\d{2})$/,Td=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,nc=/^(\d{4,})-W(\d\d)$/,Ud=/^(\d{4,})-(\d\d)$/,Vd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Kd=T();q(["date","datetime-local","month","time","week"],function(a){Kd[a]=!0});var Wd={text:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);lc(c)},date:kb("date",Sd,Lb(Sd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":kb("datetimelocal",Td,Lb(Td,"yyyy MM dd HH mm ss sss".split(" ")),
-"yyyy-MM-ddTHH:mm:ss.sss"),time:kb("time",Vd,Lb(Vd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:kb("week",nc,function(a,b){if(fa(a))return a;if(F(a)){nc.lastIndex=0;var d=nc.exec(a);if(d){var c=+d[1],e=+d[2],f=d=0,g=0,h=0,k=Gd(c),e=7*(e-1);b&&(d=b.getHours(),f=b.getMinutes(),g=b.getSeconds(),h=b.getMilliseconds());return new Date(c,0,k.getDate()+e,d,f,g,h)}}return NaN},"yyyy-Www"),month:kb("month",Ud,Lb(Ud,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f){Ld(a,b,d,c);jb(a,b,d,c,e,f);c.$$parserName=
-"number";c.$parsers.push(function(a){if(c.$isEmpty(a))return null;if(Jg.test(a))return parseFloat(a)});c.$formatters.push(function(a){if(!c.$isEmpty(a)){if(!Q(a))throw lb("numfmt",a);a=a.toString()}return a});if(x(d.min)||d.ngMin){var g;c.$validators.min=function(a){return c.$isEmpty(a)||y(g)||a>=g};d.$observe("min",function(a){x(a)&&!Q(a)&&(a=parseFloat(a,10));g=Q(a)&&!isNaN(a)?a:void 0;c.$validate()})}if(x(d.max)||d.ngMax){var h;c.$validators.max=function(a){return c.$isEmpty(a)||y(h)||a<=h};d.$observe("max",
-function(a){x(a)&&!Q(a)&&(a=parseFloat(a,10));h=Q(a)&&!isNaN(a)?a:void 0;c.$validate()})}},url:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);lc(c);c.$$parserName="url";c.$validators.url=function(a,b){var d=a||b;return c.$isEmpty(d)||Hg.test(d)}},email:function(a,b,d,c,e,f){jb(a,b,d,c,e,f);lc(c);c.$$parserName="email";c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||Ig.test(d)}},radio:function(a,b,d,c){y(d.name)&&b.attr("name",++nb);b.on("click",function(a){b[0].checked&&c.$setViewValue(d.value,
-a&&a.type)});c.$render=function(){b[0].checked=d.value==c.$viewValue};d.$observe("value",c.$render)},checkbox:function(a,b,d,c,e,f,g,h){var k=Md(h,a,"ngTrueValue",d.ngTrueValue,!0),l=Md(h,a,"ngFalseValue",d.ngFalseValue,!1);b.on("click",function(a){c.$setViewValue(b[0].checked,a&&a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty=function(a){return!1===a};c.$formatters.push(function(a){return pa(a,k)});c.$parsers.push(function(a){return a?k:l})},hidden:C,button:C,submit:C,reset:C,
-file:C},Dc=["$browser","$sniffer","$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,h){h[0]&&(Wd[P(g.type)]||Wd.text)(e,f,g,h[0],b,a,d,c)}}}}],Kg=/^(true|false|\d+)$/,Te=function(){return{restrict:"A",priority:100,compile:function(a,b){return Kg.test(b.ngValue)?function(a,b,e){e.$set("value",a.$eval(e.ngValue))}:function(a,b,e){a.$watch(e.ngValue,function(a){e.$set("value",a)})}}}},te=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b);
-return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];b.$watch(e.ngBind,function(a){c.textContent=y(a)?"":a})}}}}],ve=["$interpolate","$compile",function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=y(a)?"":a})}}}}],ue=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g=
-b(e.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(c);return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){c.html(a.getTrustedHtml(f(b))||"")})}}}}],Se=da({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),we=mc("",!0),ye=mc("Odd",0),xe=mc("Even",1),ze=La({compile:function(a,b){b.$set("ngCloak",void 0);a.removeClass("ng-cloak")}}),Ae=[function(){return{restrict:"A",scope:!0,controller:"@",
-priority:500}}],Ic={},Lg={blur:!0,focus:!0};q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var b=xa("ng-"+a);Ic[b]=["$parse","$rootScope",function(d,c){return{restrict:"A",compile:function(e,f){var g=d(f[b],null,!0);return function(b,d){d.on(a,function(d){var e=function(){g(b,{$event:d})};Lg[a]&&c.$$phase?b.$evalAsync(e):b.$apply(e)})}}}}]});var De=["$animate","$compile",function(a,
-b){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(d,c,e,f,g){var h,k,l;d.$watch(e.ngIf,function(d){d?k||g(function(d,f){k=f;d[d.length++]=b.$$createComment("end ngIf",e.ngIf);h={clone:d};a.enter(d,c.parent(),c)}):(l&&(l.remove(),l=null),k&&(k.$destroy(),k=null),h&&(l=rb(h.clone),a.leave(l).then(function(){l=null}),h=null))})}}}],Ee=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0,
-transclude:"element",controller:ea.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",h=e.autoscroll;return function(c,e,n,m,r){var q=0,s,w,p,y=function(){w&&(w.remove(),w=null);s&&(s.$destroy(),s=null);p&&(d.leave(p).then(function(){w=null}),w=p,p=null)};c.$watch(f,function(f){var n=function(){!x(h)||h&&!c.$eval(h)||b()},u=++q;f?(a(f,!0).then(function(a){if(!c.$$destroyed&&u===q){var b=c.$new();m.template=a;a=r(b,function(a){y();d.enter(a,null,e).then(n)});s=b;p=a;s.$emit("$includeContentLoaded",
-f);c.$eval(g)}},function(){c.$$destroyed||u!==q||(y(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(y(),m.template=null)})}}}}],Ve=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(b,d,c,e){ma.call(d[0]).match(/SVG/)?(d.empty(),a(Lc(e.template,v.document).childNodes)(b,function(a){d.append(a)},{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],Fe=La({priority:450,compile:function(){return{pre:function(a,
-b,d){a.$eval(d.ngInit)}}}}),Re=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=b.attr(d.$attr.ngList)||", ",f="false"!==d.ngTrim,g=f?V(e):e;c.$parsers.push(function(a){if(!y(a)){var b=[];a&&q(a.split(g),function(a){a&&b.push(f?V(a):a)});return b}});c.$formatters.push(function(a){if(K(a))return a.join(e)});c.$isEmpty=function(a){return!a||!a.length}}}},mb="ng-valid",Nd="ng-invalid",Ua="ng-pristine",Kb="ng-dirty",Pd="ng-pending",lb=O("ngModel"),Mg=["$scope",
-"$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,b,d,c,e,f,g,h,k,l){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=void 0;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=void 0;this.$name=l(d.name||"",!1)(a);
-this.$$parentForm=Jb;var n=e(d.ngModel),m=n.assign,r=n,s=m,v=null,w,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var b=e(d.ngModel+"()"),f=e(d.ngModel+"($$$p)");r=function(a){var c=n(a);E(c)&&(c=b(a));return c};s=function(a,b){E(n(a))?f(a,{$$$p:b}):m(a,b)}}else if(!n.assign)throw lb("nonassign",d.ngModel,wa(c));};this.$render=C;this.$isEmpty=function(a){return y(a)||""===a||null===a||a!==a};this.$$updateEmptyClasses=function(a){p.$isEmpty(a)?(f.removeClass(c,"ng-not-empty"),
-f.addClass(c,"ng-empty")):(f.removeClass(c,"ng-empty"),f.addClass(c,"ng-not-empty"))};var H=0;Jd({ctrl:this,$element:c,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]},$animate:f});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;f.removeClass(c,Kb);f.addClass(c,Ua)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;f.removeClass(c,Ua);f.addClass(c,Kb);p.$$parentForm.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;f.setClass(c,"ng-untouched","ng-touched")};
-this.$setTouched=function(){p.$touched=!0;p.$untouched=!1;f.setClass(c,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){g.cancel(v);p.$viewValue=p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!Q(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,b=p.$valid,c=p.$modelValue,d=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(e){d||b===e||(p.$modelValue=e?a:void 0,p.$modelValue!==c&&p.$$writeModelToScope())})}};
-this.$$runValidators=function(a,b,c){function d(){var c=!0;q(p.$validators,function(d,e){var g=d(a,b);c=c&&g;f(e,g)});return c?!0:(q(p.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;q(p.$asyncValidators,function(e,g){var h=e(a,b);if(!h||!E(h.then))throw lb("nopromise",h);f(g,void 0);c.push(h.then(function(){f(g,!0)},function(){d=!1;f(g,!1)}))});c.length?k.all(c).then(function(){g(d)},C):g(!0)}function f(a,b){h===H&&p.$setValidity(a,b)}function g(a){h===H&&c(a)}H++;var h=
-H;(function(){var a=p.$$parserName||"parse";if(y(w))f(a,null);else return w||(q(p.$validators,function(a,b){f(b,null)}),q(p.$asyncValidators,function(a,b){f(b,null)})),f(a,w),w;return!0})()?d()?e():g(!1):g(!1)};this.$commitViewValue=function(){var a=p.$viewValue;g.cancel(v);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$updateEmptyClasses(a),p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var b=p.$$lastCommittedViewValue;
-if(w=y(b)?void 0:!0)for(var c=0;c<p.$parsers.length;c++)if(b=p.$parsers[c](b),y(b)){w=!1;break}Q(p.$modelValue)&&isNaN(p.$modelValue)&&(p.$modelValue=r(a));var d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$rawModelValue=b;e&&(p.$modelValue=b,p.$modelValue!==d&&p.$$writeModelToScope());p.$$runValidators(b,p.$$lastCommittedViewValue,function(a){e||(p.$modelValue=a?b:void 0,p.$modelValue!==d&&p.$$writeModelToScope())})};this.$$writeModelToScope=function(){s(a,p.$modelValue);q(p.$viewChangeListeners,
-function(a){try{a()}catch(c){b(c)}})};this.$setViewValue=function(a,b){p.$viewValue=a;p.$options&&!p.$options.updateOnDefault||p.$$debounceViewValueCommit(b)};this.$$debounceViewValueCommit=function(b){var c=0,d=p.$options;d&&x(d.debounce)&&(d=d.debounce,Q(d)?c=d:Q(d[b])?c=d[b]:Q(d["default"])&&(c=d["default"]));g.cancel(v);c?v=g(function(){p.$commitViewValue()},c):h.$$phase?p.$commitViewValue():a.$apply(function(){p.$commitViewValue()})};a.$watch(function(){var b=r(a);if(b!==p.$modelValue&&(p.$modelValue===
-p.$modelValue||b===b)){p.$modelValue=p.$$rawModelValue=b;w=void 0;for(var c=p.$formatters,d=c.length,e=b;d--;)e=c[d](e);p.$viewValue!==e&&(p.$$updateEmptyClasses(e),p.$viewValue=p.$$lastCommittedViewValue=e,p.$render(),p.$$runValidators(b,e,C))}return b})}],Qe=["$rootScope",function(a){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Mg,priority:1,compile:function(b){b.addClass(Ua).addClass("ng-untouched").addClass(mb);return{pre:function(a,b,e,f){var g=f[0];b=f[1]||
-g.$$parentForm;g.$$setOptions(f[2]&&f[2].$options);b.$addControl(g);e.$observe("name",function(a){g.$name!==a&&g.$$parentForm.$$renameControl(g,a)});a.$on("$destroy",function(){g.$$parentForm.$removeControl(g)})},post:function(b,c,e,f){var g=f[0];if(g.$options&&g.$options.updateOn)c.on(g.$options.updateOn,function(a){g.$$debounceViewValueCommit(a&&a.type)});c.on("blur",function(){g.$touched||(a.$$phase?b.$evalAsync(g.$setTouched):b.$apply(g.$setTouched))})}}}}}],Ng=/(\s+|^)default(\s+|$)/,Ue=function(){return{restrict:"A",
-controller:["$scope","$attrs",function(a,b){var d=this;this.$options=qa(a.$eval(b.ngModelOptions));x(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=V(this.$options.updateOn.replace(Ng,function(){d.$options.updateOnDefault=!0;return" "}))):this.$options.updateOnDefault=!0}]}},Ge=La({terminal:!0,priority:1E3}),Og=O("ngOptions"),Pg=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,
-Oe=["$compile","$document","$parse",function(a,b,d){function c(a,b,c){function e(a,b,c,d,f){this.selectValue=a;this.viewValue=b;this.label=c;this.group=d;this.disabled=f}function f(a){var b;if(!q&&ya(a))b=a;else{b=[];for(var c in a)a.hasOwnProperty(c)&&"$"!==c.charAt(0)&&b.push(c)}return b}var m=a.match(Pg);if(!m)throw Og("iexp",a,wa(b));var r=m[5]||m[7],q=m[6];a=/ as /.test(m[0])&&m[1];var s=m[9];b=d(m[2]?m[1]:r);var w=a&&d(a)||b,p=s&&d(s),v=s?function(a,b){return p(c,b)}:function(a){return Fa(a)},
-t=function(a,b){return v(a,L(a,b))},z=d(m[2]||m[1]),u=d(m[3]||""),y=d(m[4]||""),x=d(m[8]),D={},L=q?function(a,b){D[q]=b;D[r]=a;return D}:function(a){D[r]=a;return D};return{trackBy:s,getTrackByValue:t,getWatchables:d(x,function(a){var b=[];a=a||[];for(var d=f(a),e=d.length,g=0;g<e;g++){var h=a===d?g:d[g],l=a[h],h=L(l,h),l=v(l,h);b.push(l);if(m[2]||m[1])l=z(c,h),b.push(l);m[4]&&(h=y(c,h),b.push(h))}return b}),getOptions:function(){for(var a=[],b={},d=x(c)||[],g=f(d),h=g.length,m=0;m<h;m++){var p=d===
-g?m:g[m],q=L(d[p],p),r=w(c,q),p=v(r,q),D=z(c,q),N=u(c,q),q=y(c,q),r=new e(p,r,D,N,q);a.push(r);b[p]=r}return{items:a,selectValueMap:b,getOptionFromViewValue:function(a){return b[t(a)]},getViewValueFromOption:function(a){return s?ea.copy(a.viewValue):a.viewValue}}}}}var e=v.document.createElement("option"),f=v.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(a,b,c,d){d[0].registerOption=C},post:function(d,h,k,l){function n(a,b){a.element=
-b;b.disabled=a.disabled;a.label!==b.label&&(b.label=a.label,b.textContent=a.label);a.value!==b.value&&(b.value=a.selectValue)}function m(){var a=u&&r.readValue();if(u)for(var b=u.items.length-1;0<=b;b--){var c=u.items[b];c.group?Bb(c.element.parentNode):Bb(c.element)}u=I.getOptions();var d={};t&&h.prepend(w);u.items.forEach(function(a){var b;if(x(a.group)){b=d[a.group];b||(b=f.cloneNode(!1),E.appendChild(b),b.label=a.group,d[a.group]=b);var c=e.cloneNode(!1)}else b=E,c=e.cloneNode(!1);b.appendChild(c);
-n(a,c)});h[0].appendChild(E);s.$render();s.$isEmpty(a)||(b=r.readValue(),(I.trackBy||v?pa(a,b):a===b)||(s.$setViewValue(b),s.$render()))}var r=l[0],s=l[1],v=k.multiple,w;l=0;for(var p=h.children(),y=p.length;l<y;l++)if(""===p[l].value){w=p.eq(l);break}var t=!!w,z=B(e.cloneNode(!1));z.val("?");var u,I=c(k.ngOptions,h,d),E=b[0].createDocumentFragment();v?(s.$isEmpty=function(a){return!a||0===a.length},r.writeValue=function(a){u.items.forEach(function(a){a.element.selected=!1});a&&a.forEach(function(a){if(a=
-u.getOptionFromViewValue(a))a.element.selected=!0})},r.readValue=function(){var a=h.val()||[],b=[];q(a,function(a){(a=u.selectValueMap[a])&&!a.disabled&&b.push(u.getViewValueFromOption(a))});return b},I.trackBy&&d.$watchCollection(function(){if(K(s.$viewValue))return s.$viewValue.map(function(a){return I.getTrackByValue(a)})},function(){s.$render()})):(r.writeValue=function(a){var b=u.getOptionFromViewValue(a);b?(h[0].value!==b.selectValue&&(z.remove(),t||w.remove(),h[0].value=b.selectValue,b.element.selected=
-!0),b.element.setAttribute("selected","selected")):null===a||t?(z.remove(),t||h.prepend(w),h.val(""),w.prop("selected",!0),w.attr("selected",!0)):(t||w.remove(),h.prepend(z),h.val("?"),z.prop("selected",!0),z.attr("selected",!0))},r.readValue=function(){var a=u.selectValueMap[h.val()];return a&&!a.disabled?(t||w.remove(),z.remove(),u.getViewValueFromOption(a)):null},I.trackBy&&d.$watch(function(){return I.getTrackByValue(s.$viewValue)},function(){s.$render()}));t?(w.remove(),a(w)(d),w.removeClass("ng-scope")):
-w=B(e.cloneNode(!1));h.empty();m();d.$watchCollection(I.getWatchables,m)}}}}],He=["$locale","$interpolate","$log",function(a,b,d){var c=/{}/g,e=/^when(Minus)?(.+)$/;return{link:function(f,g,h){function k(a){g.text(a||"")}var l=h.count,n=h.$attr.when&&g.attr(h.$attr.when),m=h.offset||0,r=f.$eval(n)||{},s={},v=b.startSymbol(),w=b.endSymbol(),p=v+l+"-"+m+w,x=ea.noop,t;q(h,function(a,b){var c=e.exec(b);c&&(c=(c[1]?"-":"")+P(c[2]),r[c]=g.attr(h.$attr[b]))});q(r,function(a,d){s[d]=b(a.replace(c,p))});f.$watch(l,
-function(b){var c=parseFloat(b),e=isNaN(c);e||c in r||(c=a.pluralCat(c-m));c===t||e&&Q(t)&&isNaN(t)||(x(),e=s[c],y(e)?(null!=b&&d.debug("ngPluralize: no rule defined for '"+c+"' in "+n),x=C,k()):x=f.$watch(e,k),t=c)})}}}],Ie=["$parse","$animate","$compile",function(a,b,d){var c=O("ngRepeat"),e=function(a,b,c,d,e,n,m){a[c]=d;e&&(a[e]=n);a.$index=b;a.$first=0===b;a.$last=b===m-1;a.$middle=!(a.$first||a.$last);a.$odd=!(a.$even=0===(b&1))};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,
-terminal:!0,$$tlb:!0,compile:function(f,g){var h=g.ngRepeat,k=d.$$createComment("end ngRepeat",h),l=h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!l)throw c("iexp",h);var n=l[1],m=l[2],r=l[3],s=l[4],l=n.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!l)throw c("iidexp",n);var v=l[3]||l[1],w=l[2];if(r&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(r)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(r)))throw c("badident",
-r);var p,y,t,z,u={$id:Fa};s?p=a(s):(t=function(a,b){return Fa(b)},z=function(a){return a});return function(a,d,f,g,l){p&&(y=function(b,c,d){w&&(u[w]=b);u[v]=c;u.$index=d;return p(a,u)});var n=T();a.$watchCollection(m,function(f){var g,m,p=d[0],s,u=T(),x,D,E,C,F,B,G;r&&(a[r]=f);if(ya(f))F=f,m=y||t;else for(G in m=y||z,F=[],f)ua.call(f,G)&&"$"!==G.charAt(0)&&F.push(G);x=F.length;G=Array(x);for(g=0;g<x;g++)if(D=f===F?g:F[g],E=f[D],C=m(D,E,g),n[C])B=n[C],delete n[C],u[C]=B,G[g]=B;else{if(u[C])throw q(G,
-function(a){a&&a.scope&&(n[a.id]=a)}),c("dupes",h,C,E);G[g]={id:C,scope:void 0,clone:void 0};u[C]=!0}for(s in n){B=n[s];C=rb(B.clone);b.leave(C);if(C[0].parentNode)for(g=0,m=C.length;g<m;g++)C[g].$$NG_REMOVED=!0;B.scope.$destroy()}for(g=0;g<x;g++)if(D=f===F?g:F[g],E=f[D],B=G[g],B.scope){s=p;do s=s.nextSibling;while(s&&s.$$NG_REMOVED);B.clone[0]!=s&&b.move(rb(B.clone),null,p);p=B.clone[B.clone.length-1];e(B.scope,g,v,E,w,D,x)}else l(function(a,c){B.scope=c;var d=k.cloneNode(!1);a[a.length++]=d;b.enter(a,
-null,p);p=d;B.clone=a;u[B.id]=B;e(B.scope,g,v,E,w,D,x)});n=u})}}}}],Je=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,d,c){b.$watch(c.ngShow,function(b){a[b?"removeClass":"addClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],Ce=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,d,c){b.$watch(c.ngHide,function(b){a[b?"addClass":"removeClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],Ke=La(function(a,b,d){a.$watch(d.ngStyle,function(a,
-d){d&&a!==d&&q(d,function(a,c){b.css(c,"")});a&&b.css(a)},!0)}),Le=["$animate","$compile",function(a,b){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(d,c,e,f){var g=[],h=[],k=[],l=[],n=function(a,b){return function(){a.splice(b,1)}};d.$watch(e.ngSwitch||e.on,function(c){var d,e;d=0;for(e=k.length;d<e;++d)a.cancel(k[d]);d=k.length=0;for(e=l.length;d<e;++d){var s=rb(h[d].clone);l[d].$destroy();(k[d]=a.leave(s)).then(n(k,d))}h.length=0;l.length=0;(g=f.cases["!"+
-c]||f.cases["?"])&&q(g,function(c){c.transclude(function(d,e){l.push(e);var f=c.element;d[d.length++]=b.$$createComment("end ngSwitchWhen");h.push({clone:d});a.enter(d,f.parent(),f)})})})}}}],Me=La({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){c.cases["!"+d.ngSwitchWhen]=c.cases["!"+d.ngSwitchWhen]||[];c.cases["!"+d.ngSwitchWhen].push({transclude:e,element:b})}}),Ne=La({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,
-b,d,c,e){c.cases["?"]=c.cases["?"]||[];c.cases["?"].push({transclude:e,element:b})}}),Qg=O("ngTransclude"),Pe=La({restrict:"EAC",link:function(a,b,d,c,e){d.ngTransclude===d.$attr.ngTransclude&&(d.ngTransclude="");if(!e)throw Qg("orphan",wa(b));e(function(a){a.length&&(b.empty(),b.append(a))},null,d.ngTransclude||d.ngTranscludeSlot)}}),pe=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(b,d){"text/ng-template"==d.type&&a.put(d.id,b[0].text)}}}],Rg={$setViewValue:C,$render:C},
-Sg=["$element","$scope",function(a,b){var d=this,c=new Ra;d.ngModelCtrl=Rg;d.unknownOption=B(v.document.createElement("option"));d.renderUnknownOption=function(b){b="? "+Fa(b)+" ?";d.unknownOption.val(b);a.prepend(d.unknownOption);a.val(b)};b.$on("$destroy",function(){d.renderUnknownOption=C});d.removeUnknownOption=function(){d.unknownOption.parent()&&d.unknownOption.remove()};d.readValue=function(){d.removeUnknownOption();return a.val()};d.writeValue=function(b){d.hasOption(b)?(d.removeUnknownOption(),
-a.val(b),""===b&&d.emptyOption.prop("selected",!0)):null==b&&d.emptyOption?(d.removeUnknownOption(),a.val("")):d.renderUnknownOption(b)};d.addOption=function(a,b){if(8!==b[0].nodeType){Qa(a,'"option value"');""===a&&(d.emptyOption=b);var g=c.get(a)||0;c.put(a,g+1);d.ngModelCtrl.$render();b[0].hasAttribute("selected")&&(b[0].selected=!0)}};d.removeOption=function(a){var b=c.get(a);b&&(1===b?(c.remove(a),""===a&&(d.emptyOption=void 0)):c.put(a,b-1))};d.hasOption=function(a){return!!c.get(a)};d.registerOption=
-function(a,b,c,h,k){if(h){var l;c.$observe("value",function(a){x(l)&&d.removeOption(l);l=a;d.addOption(a,b)})}else k?a.$watch(k,function(a,e){c.$set("value",a);e!==a&&d.removeOption(e);d.addOption(a,b)}):d.addOption(c.value,b);b.on("$destroy",function(){d.removeOption(c.value);d.ngModelCtrl.$render()})}}],qe=function(){return{restrict:"E",require:["select","?ngModel"],controller:Sg,priority:1,link:{pre:function(a,b,d,c){var e=c[1];if(e){var f=c[0];f.ngModelCtrl=e;b.on("change",function(){a.$apply(function(){e.$setViewValue(f.readValue())})});
-if(d.multiple){f.readValue=function(){var a=[];q(b.find("option"),function(b){b.selected&&a.push(b.value)});return a};f.writeValue=function(a){var c=new Ra(a);q(b.find("option"),function(a){a.selected=x(c.get(a.value))})};var g,h=NaN;a.$watch(function(){h!==e.$viewValue||pa(g,e.$viewValue)||(g=ha(e.$viewValue),e.$render());h=e.$viewValue});e.$isEmpty=function(a){return!a||0===a.length}}}},post:function(a,b,d,c){var e=c[1];if(e){var f=c[0];e.$render=function(){f.writeValue(e.$viewValue)}}}}}},se=["$interpolate",
-function(a){return{restrict:"E",priority:100,compile:function(b,d){if(x(d.value))var c=a(d.value,!0);else{var e=a(b.text(),!0);e||d.$set("value",b.text())}return function(a,b,d){var k=b.parent();(k=k.data("$selectController")||k.parent().data("$selectController"))&&k.registerOption(a,b,d,c,e)}}}}],re=da({restrict:"E",terminal:!1}),Fc=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){c&&(d.required=!0,c.$validators.required=function(a,b){return!d.required||!c.$isEmpty(b)},d.$observe("required",
-function(){c.$validate()}))}}},Ec=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e,f=d.ngPattern||d.pattern;d.$observe("pattern",function(a){F(a)&&0<a.length&&(a=new RegExp("^"+a+"$"));if(a&&!a.test)throw O("ngPattern")("noregexp",f,a,wa(b));e=a||void 0;c.$validate()});c.$validators.pattern=function(a,b){return c.$isEmpty(b)||y(e)||e.test(b)}}}}},Hc=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e=-1;d.$observe("maxlength",function(a){a=
-X(a);e=isNaN(a)?-1:a;c.$validate()});c.$validators.maxlength=function(a,b){return 0>e||c.$isEmpty(b)||b.length<=e}}}}},Gc=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,d,c){if(c){var e=0;d.$observe("minlength",function(a){e=X(a)||0;c.$validate()});c.$validators.minlength=function(a,b){return c.$isEmpty(b)||b.length>=e}}}}};v.angular.bootstrap?v.console&&console.log("WARNING: Tried to load angular more than once."):(ie(),ke(ea),ea.module("ngLocale",[],["$provide",function(a){function b(a){a+=
-"";var b=a.indexOf(".");return-1==b?0:a.length-b-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "),
-WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(a,
-c){var e=a|0,f=c;void 0===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),B(v.document).ready(function(){ee(v.document,yc)}))})(window);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');
-//# sourceMappingURL=angular.min.js.map
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/js/aql-mode.js b/asterixdb/asterix-app/src/main/resources/queryui/js/aql-mode.js
deleted file mode 100644
index 861a507..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/js/aql-mode.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-CodeMirror.defineMode("aql", function() {
-
- var KEYWORD_MATCH = ["return","select","for","from","at","in","let","with","where","order","by","asc","desc","group",
- "keeping","limit","offset","distinct","dataset","or","and"];
- var VAR_MATCH = /[$][a-zA-Z]+(\d*)/;
- var DOT_MATCH = /[.](\S)*/;
- var DOUBLE_QUOTE_MATCH = /["].*["]/;
- var SINGLE_QUOTE_MATCH = /['].*[']/;
- var BREAK_POINT = /(\s)/;
- return {
- startState: function() {return {inString: false};},
- token: function(stream, state) {
-
- if (state.newLine == undefined)state.newLine = true;
-
- //match variable reference
- if (stream.match(VAR_MATCH)) {
- return "variable-2";
- }
-
- if (stream.match(DOT_MATCH)) {
- return "variable-3";
- }
-
- //string variable match
- if (stream.match(DOUBLE_QUOTE_MATCH)) {
- return "string";
- }
- if (stream.match(SINGLE_QUOTE_MATCH)) {
- return "string";
- }
-
- //keyword match
- for (i in KEYWORD_MATCH){
- if (state.newLine && stream.match(KEYWORD_MATCH[i])){
- return "keyword";
- }
- }
- if (stream.peek() === " " || stream.peek() === null){
- state.newLine = true;
- }else{
- state.newLine = false;
- }
- stream.next();
-
- }
- };
-});
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/js/bootstrap.min.js b/asterixdb/asterix-app/src/main/resources/queryui/js/bootstrap.min.js
deleted file mode 100644
index a74bb45..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/js/bootstrap.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
- /*! Bootstrap v3.3.6 (http://getbootstrap.com) | Copyright 2011-2015 Twitter, Inc. | Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");
-d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/js/codemirror.js b/asterixdb/asterix-app/src/main/resources/queryui/js/codemirror.js
deleted file mode 100644
index b27c2d6..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/js/codemirror.js
+++ /dev/null
@@ -1,8927 +0,0 @@
-/*
- * Copyright (C) 2016 by Marijn Haverbeke <marijnh@gmail.com> and others
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-// This is CodeMirror (http://codemirror.net), a code editor
-// implemented in JavaScript on top of the browser's DOM.
-//
-// You can find some technical background for some of the code below
-// at http://marijnhaverbeke.nl/blog/#cm-internals .
-
-(function(mod) {
- if (typeof exports == "object" && typeof module == "object") // CommonJS
- module.exports = mod();
- else if (typeof define == "function" && define.amd) // AMD
- return define([], mod);
- else // Plain browser env
- (this || window).CodeMirror = mod();
-})(function() {
- "use strict";
-
- // BROWSER SNIFFING
-
- // Kludges for bugs and behavior differences that can't be feature
- // detected are enabled based on userAgent etc sniffing.
- var userAgent = navigator.userAgent;
- var platform = navigator.platform;
-
- var gecko = /gecko\/\d/i.test(userAgent);
- var ie_upto10 = /MSIE \d/.test(userAgent);
- var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent);
- var ie = ie_upto10 || ie_11up;
- var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : ie_11up[1]);
- var webkit = /WebKit\//.test(userAgent);
- var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent);
- var chrome = /Chrome\//.test(userAgent);
- var presto = /Opera\//.test(userAgent);
- var safari = /Apple Computer/.test(navigator.vendor);
- var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent);
- var phantom = /PhantomJS/.test(userAgent);
-
- var ios = /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent);
- // This is woefully incomplete. Suggestions for alternative methods welcome.
- var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);
- var mac = ios || /Mac/.test(platform);
- var chromeOS = /\bCrOS\b/.test(userAgent);
- var windows = /win/i.test(platform);
-
- var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/);
- if (presto_version) presto_version = Number(presto_version[1]);
- if (presto_version && presto_version >= 15) { presto = false; webkit = true; }
- // Some browsers use the wrong event properties to signal cmd/ctrl on OS X
- var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));
- var captureRightClick = gecko || (ie && ie_version >= 9);
-
- // Optimize some code when these features are not used.
- var sawReadOnlySpans = false, sawCollapsedSpans = false;
-
- // EDITOR CONSTRUCTOR
-
- // A CodeMirror instance represents an editor. This is the object
- // that user code is usually dealing with.
-
- function CodeMirror(place, options) {
- if (!(this instanceof CodeMirror)) return new CodeMirror(place, options);
-
- this.options = options = options ? copyObj(options) : {};
- // Determine effective options based on given values and defaults.
- copyObj(defaults, options, false);
- setGuttersForLineNumbers(options);
-
- var doc = options.value;
- if (typeof doc == "string") doc = new Doc(doc, options.mode, null, options.lineSeparator);
- this.doc = doc;
-
- var input = new CodeMirror.inputStyles[options.inputStyle](this);
- var display = this.display = new Display(place, doc, input);
- display.wrapper.CodeMirror = this;
- updateGutters(this);
- themeChanged(this);
- if (options.lineWrapping)
- this.display.wrapper.className += " CodeMirror-wrap";
- if (options.autofocus && !mobile) display.input.focus();
- initScrollbars(this);
-
- this.state = {
- keyMaps: [], // stores maps added by addKeyMap
- overlays: [], // highlighting overlays, as added by addOverlay
- modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info
- overwrite: false,
- delayingBlurEvent: false,
- focused: false,
- suppressEdits: false, // used to disable editing during key handlers when in readOnly mode
- pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in input.poll
- selectingText: false,
- draggingText: false,
- highlight: new Delayed(), // stores highlight worker timeout
- keySeq: null, // Unfinished key sequence
- specialChars: null
- };
-
- var cm = this;
-
- // Override magic textarea content restore that IE sometimes does
- // on our hidden textarea on reload
- if (ie && ie_version < 11) setTimeout(function() { cm.display.input.reset(true); }, 20);
-
- registerEventHandlers(this);
- ensureGlobalHandlers();
-
- startOperation(this);
- this.curOp.forceUpdate = true;
- attachDoc(this, doc);
-
- if ((options.autofocus && !mobile) || cm.hasFocus())
- setTimeout(bind(onFocus, this), 20);
- else
- onBlur(this);
-
- for (var opt in optionHandlers) if (optionHandlers.hasOwnProperty(opt))
- optionHandlers[opt](this, options[opt], Init);
- maybeUpdateLineNumberWidth(this);
- if (options.finishInit) options.finishInit(this);
- for (var i = 0; i < initHooks.length; ++i) initHooks[i](this);
- endOperation(this);
- // Suppress optimizelegibility in Webkit, since it breaks text
- // measuring on line wrapping boundaries.
- if (webkit && options.lineWrapping &&
- getComputedStyle(display.lineDiv).textRendering == "optimizelegibility")
- display.lineDiv.style.textRendering = "auto";
- }
-
- // DISPLAY CONSTRUCTOR
-
- // The display handles the DOM integration, both for input reading
- // and content drawing. It holds references to DOM nodes and
- // display-related state.
-
- function Display(place, doc, input) {
- var d = this;
- this.input = input;
-
- // Covers bottom-right square when both scrollbars are present.
- d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler");
- d.scrollbarFiller.setAttribute("cm-not-content", "true");
- // Covers bottom of gutter when coverGutterNextToScrollbar is on
- // and h scrollbar is present.
- d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler");
- d.gutterFiller.setAttribute("cm-not-content", "true");
- // Will contain the actual code, positioned to cover the viewport.
- d.lineDiv = elt("div", null, "CodeMirror-code");
- // Elements are added to these to represent selection and cursors.
- d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1");
- d.cursorDiv = elt("div", null, "CodeMirror-cursors");
- // A visibility: hidden element used to find the size of things.
- d.measure = elt("div", null, "CodeMirror-measure");
- // When lines outside of the viewport are measured, they are drawn in this.
- d.lineMeasure = elt("div", null, "CodeMirror-measure");
- // Wraps everything that needs to exist inside the vertically-padded coordinate system
- d.lineSpace = elt("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],
- null, "position: relative; outline: none");
- // Moved around its parent to cover visible view.
- d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative");
- // Set to the height of the document, allowing scrolling.
- d.sizer = elt("div", [d.mover], "CodeMirror-sizer");
- d.sizerWidth = null;
- // Behavior of elts with overflow: auto and padding is
- // inconsistent across browsers. This is used to ensure the
- // scrollable area is big enough.
- d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;");
- // Will contain the gutters, if any.
- d.gutters = elt("div", null, "CodeMirror-gutters");
- d.lineGutter = null;
- // Actual scrollable element.
- d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll");
- d.scroller.setAttribute("tabIndex", "-1");
- // The element in which the editor lives.
- d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror");
-
- // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)
- if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }
- if (!webkit && !(gecko && mobile)) d.scroller.draggable = true;
-
- if (place) {
- if (place.appendChild) place.appendChild(d.wrapper);
- else place(d.wrapper);
- }
-
- // Current rendered range (may be bigger than the view window).
- d.viewFrom = d.viewTo = doc.first;
- d.reportedViewFrom = d.reportedViewTo = doc.first;
- // Information about the rendered lines.
- d.view = [];
- d.renderedView = null;
- // Holds info about a single rendered line when it was rendered
- // for measurement, while not in view.
- d.externalMeasured = null;
- // Empty space (in pixels) above the view
- d.viewOffset = 0;
- d.lastWrapHeight = d.lastWrapWidth = 0;
- d.updateLineNumbers = null;
-
- d.nativeBarWidth = d.barHeight = d.barWidth = 0;
- d.scrollbarsClipped = false;
-
- // Used to only resize the line number gutter when necessary (when
- // the amount of lines crosses a boundary that makes its width change)
- d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;
- // Set to true when a non-horizontal-scrolling line widget is
- // added. As an optimization, line widget aligning is skipped when
- // this is false.
- d.alignWidgets = false;
-
- d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
-
- // Tracks the maximum line length so that the horizontal scrollbar
- // can be kept static when scrolling.
- d.maxLine = null;
- d.maxLineLength = 0;
- d.maxLineChanged = false;
-
- // Used for measuring wheel scrolling granularity
- d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;
-
- // True when shift is held down.
- d.shift = false;
-
- // Used to track whether anything happened since the context menu
- // was opened.
- d.selForContextMenu = null;
-
- d.activeTouch = null;
-
- input.init(d);
- }
-
- // STATE UPDATES
-
- // Used to get the editor into a consistent state again when options change.
-
- function loadMode(cm) {
- cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption);
- resetModeState(cm);
- }
-
- function resetModeState(cm) {
- cm.doc.iter(function(line) {
- if (line.stateAfter) line.stateAfter = null;
- if (line.styles) line.styles = null;
- });
- cm.doc.frontier = cm.doc.first;
- startWorker(cm, 100);
- cm.state.modeGen++;
- if (cm.curOp) regChange(cm);
- }
-
- function wrappingChanged(cm) {
- if (cm.options.lineWrapping) {
- addClass(cm.display.wrapper, "CodeMirror-wrap");
- cm.display.sizer.style.minWidth = "";
- cm.display.sizerWidth = null;
- } else {
- rmClass(cm.display.wrapper, "CodeMirror-wrap");
- findMaxLine(cm);
- }
- estimateLineHeights(cm);
- regChange(cm);
- clearCaches(cm);
- setTimeout(function(){updateScrollbars(cm);}, 100);
- }
-
- // Returns a function that estimates the height of a line, to use as
- // first approximation until the line becomes visible (and is thus
- // properly measurable).
- function estimateHeight(cm) {
- var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;
- var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);
- return function(line) {
- if (lineIsHidden(cm.doc, line)) return 0;
-
- var widgetsHeight = 0;
- if (line.widgets) for (var i = 0; i < line.widgets.length; i++) {
- if (line.widgets[i].height) widgetsHeight += line.widgets[i].height;
- }
-
- if (wrapping)
- return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th;
- else
- return widgetsHeight + th;
- };
- }
-
- function estimateLineHeights(cm) {
- var doc = cm.doc, est = estimateHeight(cm);
- doc.iter(function(line) {
- var estHeight = est(line);
- if (estHeight != line.height) updateLineHeight(line, estHeight);
- });
- }
-
- function themeChanged(cm) {
- cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") +
- cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-");
- clearCaches(cm);
- }
-
- function guttersChanged(cm) {
- updateGutters(cm);
- regChange(cm);
- setTimeout(function(){alignHorizontally(cm);}, 20);
- }
-
- // Rebuild the gutter elements, ensure the margin to the left of the
- // code matches their width.
- function updateGutters(cm) {
- var gutters = cm.display.gutters, specs = cm.options.gutters;
- removeChildren(gutters);
- for (var i = 0; i < specs.length; ++i) {
- var gutterClass = specs[i];
- var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass));
- if (gutterClass == "CodeMirror-linenumbers") {
- cm.display.lineGutter = gElt;
- gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
- }
- }
- gutters.style.display = i ? "" : "none";
- updateGutterSpace(cm);
- }
-
- function updateGutterSpace(cm) {
- var width = cm.display.gutters.offsetWidth;
- cm.display.sizer.style.marginLeft = width + "px";
- }
-
- // Compute the character length of a line, taking into account
- // collapsed ranges (see markText) that might hide parts, and join
- // other lines onto it.
- function lineLength(line) {
- if (line.height == 0) return 0;
- var len = line.text.length, merged, cur = line;
- while (merged = collapsedSpanAtStart(cur)) {
- var found = merged.find(0, true);
- cur = found.from.line;
- len += found.from.ch - found.to.ch;
- }
- cur = line;
- while (merged = collapsedSpanAtEnd(cur)) {
- var found = merged.find(0, true);
- len -= cur.text.length - found.from.ch;
- cur = found.to.line;
- len += cur.text.length - found.to.ch;
- }
- return len;
- }
-
- // Find the longest line in the document.
- function findMaxLine(cm) {
- var d = cm.display, doc = cm.doc;
- d.maxLine = getLine(doc, doc.first);
- d.maxLineLength = lineLength(d.maxLine);
- d.maxLineChanged = true;
- doc.iter(function(line) {
- var len = lineLength(line);
- if (len > d.maxLineLength) {
- d.maxLineLength = len;
- d.maxLine = line;
- }
- });
- }
-
- // Make sure the gutters options contains the element
- // "CodeMirror-linenumbers" when the lineNumbers option is true.
- function setGuttersForLineNumbers(options) {
- var found = indexOf(options.gutters, "CodeMirror-linenumbers");
- if (found == -1 && options.lineNumbers) {
- options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]);
- } else if (found > -1 && !options.lineNumbers) {
- options.gutters = options.gutters.slice(0);
- options.gutters.splice(found, 1);
- }
- }
-
- // SCROLLBARS
-
- // Prepare DOM reads needed to update the scrollbars. Done in one
- // shot to minimize update/measure roundtrips.
- function measureForScrollbars(cm) {
- var d = cm.display, gutterW = d.gutters.offsetWidth;
- var docH = Math.round(cm.doc.height + paddingVert(cm.display));
- return {
- clientHeight: d.scroller.clientHeight,
- viewHeight: d.wrapper.clientHeight,
- scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,
- viewWidth: d.wrapper.clientWidth,
- barLeft: cm.options.fixedGutter ? gutterW : 0,
- docHeight: docH,
- scrollHeight: docH + scrollGap(cm) + d.barHeight,
- nativeBarWidth: d.nativeBarWidth,
- gutterWidth: gutterW
- };
- }
-
- function NativeScrollbars(place, scroll, cm) {
- this.cm = cm;
- var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar");
- var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
- place(vert); place(horiz);
-
- on(vert, "scroll", function() {
- if (vert.clientHeight) scroll(vert.scrollTop, "vertical");
- });
- on(horiz, "scroll", function() {
- if (horiz.clientWidth) scroll(horiz.scrollLeft, "horizontal");
- });
-
- this.checkedZeroWidth = false;
- // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).
- if (ie && ie_version < 8) this.horiz.style.minHeight = this.vert.style.minWidth = "18px";
- }
-
- NativeScrollbars.prototype = copyObj({
- update: function(measure) {
- var needsH = measure.scrollWidth > measure.clientWidth + 1;
- var needsV = measure.scrollHeight > measure.clientHeight + 1;
- var sWidth = measure.nativeBarWidth;
-
- if (needsV) {
- this.vert.style.display = "block";
- this.vert.style.bottom = needsH ? sWidth + "px" : "0";
- var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);
- // A bug in IE8 can cause this value to be negative, so guard it.
- this.vert.firstChild.style.height =
- Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px";
- } else {
- this.vert.style.display = "";
- this.vert.firstChild.style.height = "0";
- }
-
- if (needsH) {
- this.horiz.style.display = "block";
- this.horiz.style.right = needsV ? sWidth + "px" : "0";
- this.horiz.style.left = measure.barLeft + "px";
- var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);
- this.horiz.firstChild.style.width =
- (measure.scrollWidth - measure.clientWidth + totalWidth) + "px";
- } else {
- this.horiz.style.display = "";
- this.horiz.firstChild.style.width = "0";
- }
-
- if (!this.checkedZeroWidth && measure.clientHeight > 0) {
- if (sWidth == 0) this.zeroWidthHack();
- this.checkedZeroWidth = true;
- }
-
- return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0};
- },
- setScrollLeft: function(pos) {
- if (this.horiz.scrollLeft != pos) this.horiz.scrollLeft = pos;
- if (this.disableHoriz) this.enableZeroWidthBar(this.horiz, this.disableHoriz);
- },
- setScrollTop: function(pos) {
- if (this.vert.scrollTop != pos) this.vert.scrollTop = pos;
- if (this.disableVert) this.enableZeroWidthBar(this.vert, this.disableVert);
- },
- zeroWidthHack: function() {
- var w = mac && !mac_geMountainLion ? "12px" : "18px";
- this.horiz.style.height = this.vert.style.width = w;
- this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none";
- this.disableHoriz = new Delayed;
- this.disableVert = new Delayed;
- },
- enableZeroWidthBar: function(bar, delay) {
- bar.style.pointerEvents = "auto";
- function maybeDisable() {
- // To find out whether the scrollbar is still visible, we
- // check whether the element under the pixel in the bottom
- // left corner of the scrollbar box is the scrollbar box
- // itself (when the bar is still visible) or its filler child
- // (when the bar is hidden). If it is still visible, we keep
- // it enabled, if it's hidden, we disable pointer events.
- var box = bar.getBoundingClientRect();
- var elt = document.elementFromPoint(box.left + 1, box.bottom - 1);
- if (elt != bar) bar.style.pointerEvents = "none";
- else delay.set(1000, maybeDisable);
- }
- delay.set(1000, maybeDisable);
- },
- clear: function() {
- var parent = this.horiz.parentNode;
- parent.removeChild(this.horiz);
- parent.removeChild(this.vert);
- }
- }, NativeScrollbars.prototype);
-
- function NullScrollbars() {}
-
- NullScrollbars.prototype = copyObj({
- update: function() { return {bottom: 0, right: 0}; },
- setScrollLeft: function() {},
- setScrollTop: function() {},
- clear: function() {}
- }, NullScrollbars.prototype);
-
- CodeMirror.scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars};
-
- function initScrollbars(cm) {
- if (cm.display.scrollbars) {
- cm.display.scrollbars.clear();
- if (cm.display.scrollbars.addClass)
- rmClass(cm.display.wrapper, cm.display.scrollbars.addClass);
- }
-
- cm.display.scrollbars = new CodeMirror.scrollbarModel[cm.options.scrollbarStyle](function(node) {
- cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);
- // Prevent clicks in the scrollbars from killing focus
- on(node, "mousedown", function() {
- if (cm.state.focused) setTimeout(function() { cm.display.input.focus(); }, 0);
- });
- node.setAttribute("cm-not-content", "true");
- }, function(pos, axis) {
- if (axis == "horizontal") setScrollLeft(cm, pos);
- else setScrollTop(cm, pos);
- }, cm);
- if (cm.display.scrollbars.addClass)
- addClass(cm.display.wrapper, cm.display.scrollbars.addClass);
- }
-
- function updateScrollbars(cm, measure) {
- if (!measure) measure = measureForScrollbars(cm);
- var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;
- updateScrollbarsInner(cm, measure);
- for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {
- if (startWidth != cm.display.barWidth && cm.options.lineWrapping)
- updateHeightsInViewport(cm);
- updateScrollbarsInner(cm, measureForScrollbars(cm));
- startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;
- }
- }
-
- // Re-synchronize the fake scrollbars with the actual size of the
- // content.
- function updateScrollbarsInner(cm, measure) {
- var d = cm.display;
- var sizes = d.scrollbars.update(measure);
-
- d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px";
- d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px";
- d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent"
-
- if (sizes.right && sizes.bottom) {
- d.scrollbarFiller.style.display = "block";
- d.scrollbarFiller.style.height = sizes.bottom + "px";
- d.scrollbarFiller.style.width = sizes.right + "px";
- } else d.scrollbarFiller.style.display = "";
- if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {
- d.gutterFiller.style.display = "block";
- d.gutterFiller.style.height = sizes.bottom + "px";
- d.gutterFiller.style.width = measure.gutterWidth + "px";
- } else d.gutterFiller.style.display = "";
- }
-
- // Compute the lines that are visible in a given viewport (defaults
- // the the current scroll position). viewport may contain top,
- // height, and ensure (see op.scrollToPos) properties.
- function visibleLines(display, doc, viewport) {
- var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;
- top = Math.floor(top - paddingTop(display));
- var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;
-
- var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);
- // Ensure is a {from: {line, ch}, to: {line, ch}} object, and
- // forces those lines into the viewport (if possible).
- if (viewport && viewport.ensure) {
- var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;
- if (ensureFrom < from) {
- from = ensureFrom;
- to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);
- } else if (Math.min(ensureTo, doc.lastLine()) >= to) {
- from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);
- to = ensureTo;
- }
- }
- return {from: from, to: Math.max(to, from + 1)};
- }
-
- // LINE NUMBERS
-
- // Re-align line numbers and gutter marks to compensate for
- // horizontal scrolling.
- function alignHorizontally(cm) {
- var display = cm.display, view = display.view;
- if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return;
- var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
- var gutterW = display.gutters.offsetWidth, left = comp + "px";
- for (var i = 0; i < view.length; i++) if (!view[i].hidden) {
- if (cm.options.fixedGutter && view[i].gutter)
- view[i].gutter.style.left = left;
- var align = view[i].alignable;
- if (align) for (var j = 0; j < align.length; j++)
- align[j].style.left = left;
- }
- if (cm.options.fixedGutter)
- display.gutters.style.left = (comp + gutterW) + "px";
- }
-
- // Used to ensure that the line number gutter is still the right
- // size for the current document size. Returns true when an update
- // is needed.
- function maybeUpdateLineNumberWidth(cm) {
- if (!cm.options.lineNumbers) return false;
- var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
- if (last.length != display.lineNumChars) {
- var test = display.measure.appendChild(elt("div", [elt("div", last)],
- "CodeMirror-linenumber CodeMirror-gutter-elt"));
- var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
- display.lineGutter.style.width = "";
- display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;
- display.lineNumWidth = display.lineNumInnerWidth + padding;
- display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
- display.lineGutter.style.width = display.lineNumWidth + "px";
- updateGutterSpace(cm);
- return true;
- }
- return false;
- }
-
- function lineNumberFor(options, i) {
- return String(options.lineNumberFormatter(i + options.firstLineNumber));
- }
-
- // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,
- // but using getBoundingClientRect to get a sub-pixel-accurate
- // result.
- function compensateForHScroll(display) {
- return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left;
- }
-
- // DISPLAY DRAWING
-
- function DisplayUpdate(cm, viewport, force) {
- var display = cm.display;
-
- this.viewport = viewport;
- // Store some values that we'll need later (but don't want to force a relayout for)
- this.visible = visibleLines(display, cm.doc, viewport);
- this.editorIsHidden = !display.wrapper.offsetWidth;
- this.wrapperHeight = display.wrapper.clientHeight;
- this.wrapperWidth = display.wrapper.clientWidth;
- this.oldDisplayWidth = displayWidth(cm);
- this.force = force;
- this.dims = getDimensions(cm);
- this.events = [];
- }
-
- DisplayUpdate.prototype.signal = function(emitter, type) {
- if (hasHandler(emitter, type))
- this.events.push(arguments);
- };
- DisplayUpdate.prototype.finish = function() {
- for (var i = 0; i < this.events.length; i++)
- signal.apply(null, this.events[i]);
- };
-
- function maybeClipScrollbars(cm) {
- var display = cm.display;
- if (!display.scrollbarsClipped && display.scroller.offsetWidth) {
- display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;
- display.heightForcer.style.height = scrollGap(cm) + "px";
- display.sizer.style.marginBottom = -display.nativeBarWidth + "px";
- display.sizer.style.borderRightWidth = scrollGap(cm) + "px";
- display.scrollbarsClipped = true;
- }
- }
-
- // Does the actual updating of the line display. Bails out
- // (returning false) when there is nothing to be done and forced is
- // false.
- function updateDisplayIfNeeded(cm, update) {
- var display = cm.display, doc = cm.doc;
-
- if (update.editorIsHidden) {
- resetView(cm);
- return false;
- }
-
- // Bail out if the visible area is already rendered and nothing changed.
- if (!update.force &&
- update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&
- (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&
- display.renderedView == display.view && countDirtyView(cm) == 0)
- return false;
-
- if (maybeUpdateLineNumberWidth(cm)) {
- resetView(cm);
- update.dims = getDimensions(cm);
- }
-
- // Compute a suitable new viewport (from & to)
- var end = doc.first + doc.size;
- var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);
- var to = Math.min(end, update.visible.to + cm.options.viewportMargin);
- if (display.viewFrom < from && from - display.viewFrom < 20) from = Math.max(doc.first, display.viewFrom);
- if (display.viewTo > to && display.viewTo - to < 20) to = Math.min(end, display.viewTo);
- if (sawCollapsedSpans) {
- from = visualLineNo(cm.doc, from);
- to = visualLineEndNo(cm.doc, to);
- }
-
- var different = from != display.viewFrom || to != display.viewTo ||
- display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;
- adjustView(cm, from, to);
-
- display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));
- // Position the mover div to align with the current scroll position
- cm.display.mover.style.top = display.viewOffset + "px";
-
- var toUpdate = countDirtyView(cm);
- if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&
- (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))
- return false;
-
- // For big changes, we hide the enclosing element during the
- // update, since that speeds up the operations on most browsers.
- var focused = activeElt();
- if (toUpdate > 4) display.lineDiv.style.display = "none";
- patchDisplay(cm, display.updateLineNumbers, update.dims);
- if (toUpdate > 4) display.lineDiv.style.display = "";
- display.renderedView = display.view;
- // There might have been a widget with a focused element that got
- // hidden or updated, if so re-focus it.
- if (focused && activeElt() != focused && focused.offsetHeight) focused.focus();
-
- // Prevent selection and cursors from interfering with the scroll
- // width and height.
- removeChildren(display.cursorDiv);
- removeChildren(display.selectionDiv);
- display.gutters.style.height = display.sizer.style.minHeight = 0;
-
- if (different) {
- display.lastWrapHeight = update.wrapperHeight;
- display.lastWrapWidth = update.wrapperWidth;
- startWorker(cm, 400);
- }
-
- display.updateLineNumbers = null;
-
- return true;
- }
-
- function postUpdateDisplay(cm, update) {
- var viewport = update.viewport;
-
- for (var first = true;; first = false) {
- if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {
- // Clip forced viewport to actual scrollable area.
- if (viewport && viewport.top != null)
- viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)};
- // Updated line heights might result in the drawn area not
- // actually covering the viewport. Keep looping until it does.
- update.visible = visibleLines(cm.display, cm.doc, viewport);
- if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)
- break;
- }
- if (!updateDisplayIfNeeded(cm, update)) break;
- updateHeightsInViewport(cm);
- var barMeasure = measureForScrollbars(cm);
- updateSelection(cm);
- updateScrollbars(cm, barMeasure);
- setDocumentHeight(cm, barMeasure);
- }
-
- update.signal(cm, "update", cm);
- if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {
- update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo);
- cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;
- }
- }
-
- function updateDisplaySimple(cm, viewport) {
- var update = new DisplayUpdate(cm, viewport);
- if (updateDisplayIfNeeded(cm, update)) {
- updateHeightsInViewport(cm);
- postUpdateDisplay(cm, update);
- var barMeasure = measureForScrollbars(cm);
- updateSelection(cm);
- updateScrollbars(cm, barMeasure);
- setDocumentHeight(cm, barMeasure);
- update.finish();
- }
- }
-
- function setDocumentHeight(cm, measure) {
- cm.display.sizer.style.minHeight = measure.docHeight + "px";
- cm.display.heightForcer.style.top = measure.docHeight + "px";
- cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px";
- }
-
- // Read the actual heights of the rendered lines, and update their
- // stored heights to match.
- function updateHeightsInViewport(cm) {
- var display = cm.display;
- var prevBottom = display.lineDiv.offsetTop;
- for (var i = 0; i < display.view.length; i++) {
- var cur = display.view[i], height;
- if (cur.hidden) continue;
- if (ie && ie_version < 8) {
- var bot = cur.node.offsetTop + cur.node.offsetHeight;
- height = bot - prevBottom;
- prevBottom = bot;
- } else {
- var box = cur.node.getBoundingClientRect();
- height = box.bottom - box.top;
- }
- var diff = cur.line.height - height;
- if (height < 2) height = textHeight(display);
- if (diff > .001 || diff < -.001) {
- updateLineHeight(cur.line, height);
- updateWidgetHeight(cur.line);
- if (cur.rest) for (var j = 0; j < cur.rest.length; j++)
- updateWidgetHeight(cur.rest[j]);
- }
- }
- }
-
- // Read and store the height of line widgets associated with the
- // given line.
- function updateWidgetHeight(line) {
- if (line.widgets) for (var i = 0; i < line.widgets.length; ++i)
- line.widgets[i].height = line.widgets[i].node.parentNode.offsetHeight;
- }
-
- // Do a bulk-read of the DOM positions and sizes needed to draw the
- // view, so that we don't interleave reading and writing to the DOM.
- function getDimensions(cm) {
- var d = cm.display, left = {}, width = {};
- var gutterLeft = d.gutters.clientLeft;
- for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {
- left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft;
- width[cm.options.gutters[i]] = n.clientWidth;
- }
- return {fixedPos: compensateForHScroll(d),
- gutterTotalWidth: d.gutters.offsetWidth,
- gutterLeft: left,
- gutterWidth: width,
- wrapperWidth: d.wrapper.clientWidth};
- }
-
- // Sync the actual display DOM structure with display.view, removing
- // nodes for lines that are no longer in view, and creating the ones
- // that are not there yet, and updating the ones that are out of
- // date.
- function patchDisplay(cm, updateNumbersFrom, dims) {
- var display = cm.display, lineNumbers = cm.options.lineNumbers;
- var container = display.lineDiv, cur = container.firstChild;
-
- function rm(node) {
- var next = node.nextSibling;
- // Works around a throw-scroll bug in OS X Webkit
- if (webkit && mac && cm.display.currentWheelTarget == node)
- node.style.display = "none";
- else
- node.parentNode.removeChild(node);
- return next;
- }
-
- var view = display.view, lineN = display.viewFrom;
- // Loop over the elements in the view, syncing cur (the DOM nodes
- // in display.lineDiv) with the view as we go.
- for (var i = 0; i < view.length; i++) {
- var lineView = view[i];
- if (lineView.hidden) {
- } else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet
- var node = buildLineElement(cm, lineView, lineN, dims);
- container.insertBefore(node, cur);
- } else { // Already drawn
- while (cur != lineView.node) cur = rm(cur);
- var updateNumber = lineNumbers && updateNumbersFrom != null &&
- updateNumbersFrom <= lineN && lineView.lineNumber;
- if (lineView.changes) {
- if (indexOf(lineView.changes, "gutter") > -1) updateNumber = false;
- updateLineForChanges(cm, lineView, lineN, dims);
- }
- if (updateNumber) {
- removeChildren(lineView.lineNumber);
- lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));
- }
- cur = lineView.node.nextSibling;
- }
- lineN += lineView.size;
- }
- while (cur) cur = rm(cur);
- }
-
- // When an aspect of a line changes, a string is added to
- // lineView.changes. This updates the relevant part of the line's
- // DOM structure.
- function updateLineForChanges(cm, lineView, lineN, dims) {
- for (var j = 0; j < lineView.changes.length; j++) {
- var type = lineView.changes[j];
- if (type == "text") updateLineText(cm, lineView);
- else if (type == "gutter") updateLineGutter(cm, lineView, lineN, dims);
- else if (type == "class") updateLineClasses(lineView);
- else if (type == "widget") updateLineWidgets(cm, lineView, dims);
- }
- lineView.changes = null;
- }
-
- // Lines with gutter elements, widgets or a background class need to
- // be wrapped, and have the extra elements added to the wrapper div
- function ensureLineWrapped(lineView) {
- if (lineView.node == lineView.text) {
- lineView.node = elt("div", null, null, "position: relative");
- if (lineView.text.parentNode)
- lineView.text.parentNode.replaceChild(lineView.node, lineView.text);
- lineView.node.appendChild(lineView.text);
- if (ie && ie_version < 8) lineView.node.style.zIndex = 2;
- }
- return lineView.node;
- }
-
- function updateLineBackground(lineView) {
- var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass;
- if (cls) cls += " CodeMirror-linebackground";
- if (lineView.background) {
- if (cls) lineView.background.className = cls;
- else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }
- } else if (cls) {
- var wrap = ensureLineWrapped(lineView);
- lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild);
- }
- }
-
- // Wrapper around buildLineContent which will reuse the structure
- // in display.externalMeasured when possible.
- function getLineContent(cm, lineView) {
- var ext = cm.display.externalMeasured;
- if (ext && ext.line == lineView.line) {
- cm.display.externalMeasured = null;
- lineView.measure = ext.measure;
- return ext.built;
- }
- return buildLineContent(cm, lineView);
- }
-
- // Redraw the line's text. Interacts with the background and text
- // classes because the mode may output tokens that influence these
- // classes.
- function updateLineText(cm, lineView) {
- var cls = lineView.text.className;
- var built = getLineContent(cm, lineView);
- if (lineView.text == lineView.node) lineView.node = built.pre;
- lineView.text.parentNode.replaceChild(built.pre, lineView.text);
- lineView.text = built.pre;
- if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {
- lineView.bgClass = built.bgClass;
- lineView.textClass = built.textClass;
- updateLineClasses(lineView);
- } else if (cls) {
- lineView.text.className = cls;
- }
- }
-
- function updateLineClasses(lineView) {
- updateLineBackground(lineView);
- if (lineView.line.wrapClass)
- ensureLineWrapped(lineView).className = lineView.line.wrapClass;
- else if (lineView.node != lineView.text)
- lineView.node.className = "";
- var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass;
- lineView.text.className = textClass || "";
- }
-
- function updateLineGutter(cm, lineView, lineN, dims) {
- if (lineView.gutter) {
- lineView.node.removeChild(lineView.gutter);
- lineView.gutter = null;
- }
- if (lineView.gutterBackground) {
- lineView.node.removeChild(lineView.gutterBackground);
- lineView.gutterBackground = null;
- }
- if (lineView.line.gutterClass) {
- var wrap = ensureLineWrapped(lineView);
- lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass,
- "left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) +
- "px; width: " + dims.gutterTotalWidth + "px");
- wrap.insertBefore(lineView.gutterBackground, lineView.text);
- }
- var markers = lineView.line.gutterMarkers;
- if (cm.options.lineNumbers || markers) {
- var wrap = ensureLineWrapped(lineView);
- var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", "left: " +
- (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px");
- cm.display.input.setUneditable(gutterWrap);
- wrap.insertBefore(gutterWrap, lineView.text);
- if (lineView.line.gutterClass)
- gutterWrap.className += " " + lineView.line.gutterClass;
- if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"]))
- lineView.lineNumber = gutterWrap.appendChild(
- elt("div", lineNumberFor(cm.options, lineN),
- "CodeMirror-linenumber CodeMirror-gutter-elt",
- "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: "
- + cm.display.lineNumInnerWidth + "px"));
- if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) {
- var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];
- if (found)
- gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " +
- dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px"));
- }
- }
- }
-
- function updateLineWidgets(cm, lineView, dims) {
- if (lineView.alignable) lineView.alignable = null;
- for (var node = lineView.node.firstChild, next; node; node = next) {
- var next = node.nextSibling;
- if (node.className == "CodeMirror-linewidget")
- lineView.node.removeChild(node);
- }
- insertLineWidgets(cm, lineView, dims);
- }
-
- // Build a line's DOM representation from scratch
- function buildLineElement(cm, lineView, lineN, dims) {
- var built = getLineContent(cm, lineView);
- lineView.text = lineView.node = built.pre;
- if (built.bgClass) lineView.bgClass = built.bgClass;
- if (built.textClass) lineView.textClass = built.textClass;
-
- updateLineClasses(lineView);
- updateLineGutter(cm, lineView, lineN, dims);
- insertLineWidgets(cm, lineView, dims);
- return lineView.node;
- }
-
- // A lineView may contain multiple logical lines (when merged by
- // collapsed spans). The widgets for all of them need to be drawn.
- function insertLineWidgets(cm, lineView, dims) {
- insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);
- if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)
- insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false);
- }
-
- function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {
- if (!line.widgets) return;
- var wrap = ensureLineWrapped(lineView);
- for (var i = 0, ws = line.widgets; i < ws.length; ++i) {
- var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget");
- if (!widget.handleMouseEvents) node.setAttribute("cm-ignore-events", "true");
- positionLineWidget(widget, node, lineView, dims);
- cm.display.input.setUneditable(node);
- if (allowAbove && widget.above)
- wrap.insertBefore(node, lineView.gutter || lineView.text);
- else
- wrap.appendChild(node);
- signalLater(widget, "redraw");
- }
- }
-
- function positionLineWidget(widget, node, lineView, dims) {
- if (widget.noHScroll) {
- (lineView.alignable || (lineView.alignable = [])).push(node);
- var width = dims.wrapperWidth;
- node.style.left = dims.fixedPos + "px";
- if (!widget.coverGutter) {
- width -= dims.gutterTotalWidth;
- node.style.paddingLeft = dims.gutterTotalWidth + "px";
- }
- node.style.width = width + "px";
- }
- if (widget.coverGutter) {
- node.style.zIndex = 5;
- node.style.position = "relative";
- if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px";
- }
- }
-
- // POSITION OBJECT
-
- // A Pos instance represents a position within the text.
- var Pos = CodeMirror.Pos = function(line, ch) {
- if (!(this instanceof Pos)) return new Pos(line, ch);
- this.line = line; this.ch = ch;
- };
-
- // Compare two positions, return 0 if they are the same, a negative
- // number when a is less, and a positive number otherwise.
- var cmp = CodeMirror.cmpPos = function(a, b) { return a.line - b.line || a.ch - b.ch; };
-
- function copyPos(x) {return Pos(x.line, x.ch);}
- function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; }
- function minPos(a, b) { return cmp(a, b) < 0 ? a : b; }
-
- // INPUT HANDLING
-
- function ensureFocus(cm) {
- if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }
- }
-
- // This will be set to a {lineWise: bool, text: [string]} object, so
- // that, when pasting, we know what kind of selections the copied
- // text was made out of.
- var lastCopied = null;
-
- function applyTextInput(cm, inserted, deleted, sel, origin) {
- var doc = cm.doc;
- cm.display.shift = false;
- if (!sel) sel = doc.sel;
-
- var paste = cm.state.pasteIncoming || origin == "paste";
- var textLines = doc.splitLines(inserted), multiPaste = null
- // When pasing N lines into N selections, insert one line per selection
- if (paste && sel.ranges.length > 1) {
- if (lastCopied && lastCopied.text.join("\n") == inserted) {
- if (sel.ranges.length % lastCopied.text.length == 0) {
- multiPaste = [];
- for (var i = 0; i < lastCopied.text.length; i++)
- multiPaste.push(doc.splitLines(lastCopied.text[i]));
- }
- } else if (textLines.length == sel.ranges.length) {
- multiPaste = map(textLines, function(l) { return [l]; });
- }
- }
-
- // Normal behavior is to insert the new text into every selection
- for (var i = sel.ranges.length - 1; i >= 0; i--) {
- var range = sel.ranges[i];
- var from = range.from(), to = range.to();
- if (range.empty()) {
- if (deleted && deleted > 0) // Handle deletion
- from = Pos(from.line, from.ch - deleted);
- else if (cm.state.overwrite && !paste) // Handle overwrite
- to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length));
- else if (lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == inserted)
- from = to = Pos(from.line, 0)
- }
- var updateInput = cm.curOp.updateInput;
- var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines,
- origin: origin || (paste ? "paste" : cm.state.cutIncoming ? "cut" : "+input")};
- makeChange(cm.doc, changeEvent);
- signalLater(cm, "inputRead", cm, changeEvent);
- }
- if (inserted && !paste)
- triggerElectric(cm, inserted);
-
- ensureCursorVisible(cm);
- cm.curOp.updateInput = updateInput;
- cm.curOp.typing = true;
- cm.state.pasteIncoming = cm.state.cutIncoming = false;
- }
-
- function handlePaste(e, cm) {
- var pasted = e.clipboardData && e.clipboardData.getData("text/plain");
- if (pasted) {
- e.preventDefault();
- if (!cm.isReadOnly() && !cm.options.disableInput)
- runInOp(cm, function() { applyTextInput(cm, pasted, 0, null, "paste"); });
- return true;
- }
- }
-
- function triggerElectric(cm, inserted) {
- // When an 'electric' character is inserted, immediately trigger a reindent
- if (!cm.options.electricChars || !cm.options.smartIndent) return;
- var sel = cm.doc.sel;
-
- for (var i = sel.ranges.length - 1; i >= 0; i--) {
- var range = sel.ranges[i];
- if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) continue;
- var mode = cm.getModeAt(range.head);
- var indented = false;
- if (mode.electricChars) {
- for (var j = 0; j < mode.electricChars.length; j++)
- if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {
- indented = indentLine(cm, range.head.line, "smart");
- break;
- }
- } else if (mode.electricInput) {
- if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))
- indented = indentLine(cm, range.head.line, "smart");
- }
- if (indented) signalLater(cm, "electricInput", cm, range.head.line);
- }
- }
-
- function copyableRanges(cm) {
- var text = [], ranges = [];
- for (var i = 0; i < cm.doc.sel.ranges.length; i++) {
- var line = cm.doc.sel.ranges[i].head.line;
- var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};
- ranges.push(lineRange);
- text.push(cm.getRange(lineRange.anchor, lineRange.head));
- }
- return {text: text, ranges: ranges};
- }
-
- function disableBrowserMagic(field) {
- field.setAttribute("autocorrect", "off");
- field.setAttribute("autocapitalize", "off");
- field.setAttribute("spellcheck", "false");
- }
-
- // TEXTAREA INPUT STYLE
-
- function TextareaInput(cm) {
- this.cm = cm;
- // See input.poll and input.reset
- this.prevInput = "";
-
- // Flag that indicates whether we expect input to appear real soon
- // now (after some event like 'keypress' or 'input') and are
- // polling intensively.
- this.pollingFast = false;
- // Self-resetting timeout for the poller
- this.polling = new Delayed();
- // Tracks when input.reset has punted to just putting a short
- // string into the textarea instead of the full selection.
- this.inaccurateSelection = false;
- // Used to work around IE issue with selection being forgotten when focus moves away from textarea
- this.hasSelection = false;
- this.composing = null;
- };
-
- function hiddenTextarea() {
- var te = elt("textarea", null, null, "position: absolute; padding: 0; width: 1px; height: 1em; outline: none");
- var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;");
- // The textarea is kept positioned near the cursor to prevent the
- // fact that it'll be scrolled into view on input from scrolling
- // our fake cursor out of view. On webkit, when wrap=off, paste is
- // very slow. So make the area wide instead.
- if (webkit) te.style.width = "1000px";
- else te.setAttribute("wrap", "off");
- // If border: 0; -- iOS fails to open keyboard (issue #1287)
- if (ios) te.style.border = "1px solid black";
- disableBrowserMagic(te);
- return div;
- }
-
- TextareaInput.prototype = copyObj({
- init: function(display) {
- var input = this, cm = this.cm;
-
- // Wraps and hides input textarea
- var div = this.wrapper = hiddenTextarea();
- // The semihidden textarea that is focused when the editor is
- // focused, and receives input.
- var te = this.textarea = div.firstChild;
- display.wrapper.insertBefore(div, display.wrapper.firstChild);
-
- // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)
- if (ios) te.style.width = "0px";
-
- on(te, "input", function() {
- if (ie && ie_version >= 9 && input.hasSelection) input.hasSelection = null;
- input.poll();
- });
-
- on(te, "paste", function(e) {
- if (signalDOMEvent(cm, e) || handlePaste(e, cm)) return
-
- cm.state.pasteIncoming = true;
- input.fastPoll();
- });
-
- function prepareCopyCut(e) {
- if (signalDOMEvent(cm, e)) return
- if (cm.somethingSelected()) {
- lastCopied = {lineWise: false, text: cm.getSelections()};
- if (input.inaccurateSelection) {
- input.prevInput = "";
- input.inaccurateSelection = false;
- te.value = lastCopied.text.join("\n");
- selectInput(te);
- }
- } else if (!cm.options.lineWiseCopyCut) {
- return;
- } else {
- var ranges = copyableRanges(cm);
- lastCopied = {lineWise: true, text: ranges.text};
- if (e.type == "cut") {
- cm.setSelections(ranges.ranges, null, sel_dontScroll);
- } else {
- input.prevInput = "";
- te.value = ranges.text.join("\n");
- selectInput(te);
- }
- }
- if (e.type == "cut") cm.state.cutIncoming = true;
- }
- on(te, "cut", prepareCopyCut);
- on(te, "copy", prepareCopyCut);
-
- on(display.scroller, "paste", function(e) {
- if (eventInWidget(display, e) || signalDOMEvent(cm, e)) return;
- cm.state.pasteIncoming = true;
- input.focus();
- });
-
- // Prevent normal selection in the editor (we handle our own)
- on(display.lineSpace, "selectstart", function(e) {
- if (!eventInWidget(display, e)) e_preventDefault(e);
- });
-
- on(te, "compositionstart", function() {
- var start = cm.getCursor("from");
- if (input.composing) input.composing.range.clear()
- input.composing = {
- start: start,
- range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"})
- };
- });
- on(te, "compositionend", function() {
- if (input.composing) {
- input.poll();
- input.composing.range.clear();
- input.composing = null;
- }
- });
- },
-
- prepareSelection: function() {
- // Redraw the selection and/or cursor
- var cm = this.cm, display = cm.display, doc = cm.doc;
- var result = prepareSelection(cm);
-
- // Move the hidden textarea near the cursor to prevent scrolling artifacts
- if (cm.options.moveInputWithCursor) {
- var headPos = cursorCoords(cm, doc.sel.primary().head, "div");
- var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();
- result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,
- headPos.top + lineOff.top - wrapOff.top));
- result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,
- headPos.left + lineOff.left - wrapOff.left));
- }
-
- return result;
- },
-
- showSelection: function(drawn) {
- var cm = this.cm, display = cm.display;
- removeChildrenAndAdd(display.cursorDiv, drawn.cursors);
- removeChildrenAndAdd(display.selectionDiv, drawn.selection);
- if (drawn.teTop != null) {
- this.wrapper.style.top = drawn.teTop + "px";
- this.wrapper.style.left = drawn.teLeft + "px";
- }
- },
-
- // Reset the input to correspond to the selection (or to be empty,
- // when not typing and nothing is selected)
- reset: function(typing) {
- if (this.contextMenuPending) return;
- var minimal, selected, cm = this.cm, doc = cm.doc;
- if (cm.somethingSelected()) {
- this.prevInput = "";
- var range = doc.sel.primary();
- minimal = hasCopyEvent &&
- (range.to().line - range.from().line > 100 || (selected = cm.getSelection()).length > 1000);
- var content = minimal ? "-" : selected || cm.getSelection();
- this.textarea.value = content;
- if (cm.state.focused) selectInput(this.textarea);
- if (ie && ie_version >= 9) this.hasSelection = content;
- } else if (!typing) {
- this.prevInput = this.textarea.value = "";
- if (ie && ie_version >= 9) this.hasSelection = null;
- }
- this.inaccurateSelection = minimal;
- },
-
- getField: function() { return this.textarea; },
-
- supportsTouch: function() { return false; },
-
- focus: function() {
- if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) {
- try { this.textarea.focus(); }
- catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM
- }
- },
-
- blur: function() { this.textarea.blur(); },
-
- resetPosition: function() {
- this.wrapper.style.top = this.wrapper.style.left = 0;
- },
-
- receivedFocus: function() { this.slowPoll(); },
-
- // Poll for input changes, using the normal rate of polling. This
- // runs as long as the editor is focused.
- slowPoll: function() {
- var input = this;
- if (input.pollingFast) return;
- input.polling.set(this.cm.options.pollInterval, function() {
- input.poll();
- if (input.cm.state.focused) input.slowPoll();
- });
- },
-
- // When an event has just come in that is likely to add or change
- // something in the input textarea, we poll faster, to ensure that
- // the change appears on the screen quickly.
- fastPoll: function() {
- var missed = false, input = this;
- input.pollingFast = true;
- function p() {
- var changed = input.poll();
- if (!changed && !missed) {missed = true; input.polling.set(60, p);}
- else {input.pollingFast = false; input.slowPoll();}
- }
- input.polling.set(20, p);
- },
-
- // Read input from the textarea, and update the document to match.
- // When something is selected, it is present in the textarea, and
- // selected (unless it is huge, in which case a placeholder is
- // used). When nothing is selected, the cursor sits after previously
- // seen text (can be empty), which is stored in prevInput (we must
- // not reset the textarea when typing, because that breaks IME).
- poll: function() {
- var cm = this.cm, input = this.textarea, prevInput = this.prevInput;
- // Since this is called a *lot*, try to bail out as cheaply as
- // possible when it is clear that nothing happened. hasSelection
- // will be the case when there is a lot of text in the textarea,
- // in which case reading its value would be expensive.
- if (this.contextMenuPending || !cm.state.focused ||
- (hasSelection(input) && !prevInput && !this.composing) ||
- cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)
- return false;
-
- var text = input.value;
- // If nothing changed, bail.
- if (text == prevInput && !cm.somethingSelected()) return false;
- // Work around nonsensical selection resetting in IE9/10, and
- // inexplicable appearance of private area unicode characters on
- // some key combos in Mac (#2689).
- if (ie && ie_version >= 9 && this.hasSelection === text ||
- mac && /[\uf700-\uf7ff]/.test(text)) {
- cm.display.input.reset();
- return false;
- }
-
- if (cm.doc.sel == cm.display.selForContextMenu) {
- var first = text.charCodeAt(0);
- if (first == 0x200b && !prevInput) prevInput = "\u200b";
- if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo"); }
- }
- // Find the part of the input that is actually new
- var same = 0, l = Math.min(prevInput.length, text.length);
- while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same;
-
- var self = this;
- runInOp(cm, function() {
- applyTextInput(cm, text.slice(same), prevInput.length - same,
- null, self.composing ? "*compose" : null);
-
- // Don't leave long text in the textarea, since it makes further polling slow
- if (text.length > 1000 || text.indexOf("\n") > -1) input.value = self.prevInput = "";
- else self.prevInput = text;
-
- if (self.composing) {
- self.composing.range.clear();
- self.composing.range = cm.markText(self.composing.start, cm.getCursor("to"),
- {className: "CodeMirror-composing"});
- }
- });
- return true;
- },
-
- ensurePolled: function() {
- if (this.pollingFast && this.poll()) this.pollingFast = false;
- },
-
- onKeyPress: function() {
- if (ie && ie_version >= 9) this.hasSelection = null;
- this.fastPoll();
- },
-
- onContextMenu: function(e) {
- var input = this, cm = input.cm, display = cm.display, te = input.textarea;
- var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;
- if (!pos || presto) return; // Opera is difficult.
-
- // Reset the current text selection only if the click is done outside of the selection
- // and 'resetSelectionOnContextMenu' option is true.
- var reset = cm.options.resetSelectionOnContextMenu;
- if (reset && cm.doc.sel.contains(pos) == -1)
- operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll);
-
- var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;
- input.wrapper.style.cssText = "position: absolute"
- var wrapperBox = input.wrapper.getBoundingClientRect()
- te.style.cssText = "position: absolute; width: 30px; height: 30px; top: " + (e.clientY - wrapperBox.top - 5) +
- "px; left: " + (e.clientX - wrapperBox.left - 5) + "px; z-index: 1000; background: " +
- (ie ? "rgba(255, 255, 255, .05)" : "transparent") +
- "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";
- if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712)
- display.input.focus();
- if (webkit) window.scrollTo(null, oldScrollY);
- display.input.reset();
- // Adds "Select all" to context menu in FF
- if (!cm.somethingSelected()) te.value = input.prevInput = " ";
- input.contextMenuPending = true;
- display.selForContextMenu = cm.doc.sel;
- clearTimeout(display.detectingSelectAll);
-
- // Select-all will be greyed out if there's nothing to select, so
- // this adds a zero-width space so that we can later check whether
- // it got selected.
- function prepareSelectAllHack() {
- if (te.selectionStart != null) {
- var selected = cm.somethingSelected();
- var extval = "\u200b" + (selected ? te.value : "");
- te.value = "\u21da"; // Used to catch context-menu undo
- te.value = extval;
- input.prevInput = selected ? "" : "\u200b";
- te.selectionStart = 1; te.selectionEnd = extval.length;
- // Re-set this, in case some other handler touched the
- // selection in the meantime.
- display.selForContextMenu = cm.doc.sel;
- }
- }
- function rehide() {
- input.contextMenuPending = false;
- input.wrapper.style.cssText = oldWrapperCSS
- te.style.cssText = oldCSS;
- if (ie && ie_version < 9) display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos);
-
- // Try to detect the user choosing select-all
- if (te.selectionStart != null) {
- if (!ie || (ie && ie_version < 9)) prepareSelectAllHack();
- var i = 0, poll = function() {
- if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&
- te.selectionEnd > 0 && input.prevInput == "\u200b")
- operation(cm, commands.selectAll)(cm);
- else if (i++ < 10) display.detectingSelectAll = setTimeout(poll, 500);
- else display.input.reset();
- };
- display.detectingSelectAll = setTimeout(poll, 200);
- }
- }
-
- if (ie && ie_version >= 9) prepareSelectAllHack();
- if (captureRightClick) {
- e_stop(e);
- var mouseup = function() {
- off(window, "mouseup", mouseup);
- setTimeout(rehide, 20);
- };
- on(window, "mouseup", mouseup);
- } else {
- setTimeout(rehide, 50);
- }
- },
-
- readOnlyChanged: function(val) {
- if (!val) this.reset();
- },
-
- setUneditable: nothing,
-
- needsContentAttribute: false
- }, TextareaInput.prototype);
-
- // CONTENTEDITABLE INPUT STYLE
-
- function ContentEditableInput(cm) {
- this.cm = cm;
- this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;
- this.polling = new Delayed();
- this.gracePeriod = false;
- }
-
- ContentEditableInput.prototype = copyObj({
- init: function(display) {
- var input = this, cm = input.cm;
- var div = input.div = display.lineDiv;
- disableBrowserMagic(div);
-
- on(div, "paste", function(e) {
- if (!signalDOMEvent(cm, e)) handlePaste(e, cm);
- })
-
- on(div, "compositionstart", function(e) {
- var data = e.data;
- input.composing = {sel: cm.doc.sel, data: data, startData: data};
- if (!data) return;
- var prim = cm.doc.sel.primary();
- var line = cm.getLine(prim.head.line);
- var found = line.indexOf(data, Math.max(0, prim.head.ch - data.length));
- if (found > -1 && found <= prim.head.ch)
- input.composing.sel = simpleSelection(Pos(prim.head.line, found),
- Pos(prim.head.line, found + data.length));
- });
- on(div, "compositionupdate", function(e) {
- input.composing.data = e.data;
- });
- on(div, "compositionend", function(e) {
- var ours = input.composing;
- if (!ours) return;
- if (e.data != ours.startData && !/\u200b/.test(e.data))
- ours.data = e.data;
- // Need a small delay to prevent other code (input event,
- // selection polling) from doing damage when fired right after
- // compositionend.
- setTimeout(function() {
- if (!ours.handled)
- input.applyComposition(ours);
- if (input.composing == ours)
- input.composing = null;
- }, 50);
- });
-
- on(div, "touchstart", function() {
- input.forceCompositionEnd();
- });
-
- on(div, "input", function() {
- if (input.composing) return;
- if (cm.isReadOnly() || !input.pollContent())
- runInOp(input.cm, function() {regChange(cm);});
- });
-
- function onCopyCut(e) {
- if (signalDOMEvent(cm, e)) return
- if (cm.somethingSelected()) {
- lastCopied = {lineWise: false, text: cm.getSelections()};
- if (e.type == "cut") cm.replaceSelection("", null, "cut");
- } else if (!cm.options.lineWiseCopyCut) {
- return;
- } else {
- var ranges = copyableRanges(cm);
- lastCopied = {lineWise: true, text: ranges.text};
- if (e.type == "cut") {
- cm.operation(function() {
- cm.setSelections(ranges.ranges, 0, sel_dontScroll);
- cm.replaceSelection("", null, "cut");
- });
- }
- }
- // iOS exposes the clipboard API, but seems to discard content inserted into it
- if (e.clipboardData && !ios) {
- e.preventDefault();
- e.clipboardData.clearData();
- e.clipboardData.setData("text/plain", lastCopied.text.join("\n"));
- } else {
- // Old-fashioned briefly-focus-a-textarea hack
- var kludge = hiddenTextarea(), te = kludge.firstChild;
- cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);
- te.value = lastCopied.text.join("\n");
- var hadFocus = document.activeElement;
- selectInput(te);
- setTimeout(function() {
- cm.display.lineSpace.removeChild(kludge);
- hadFocus.focus();
- }, 50);
- }
- }
- on(div, "copy", onCopyCut);
- on(div, "cut", onCopyCut);
- },
-
- prepareSelection: function() {
- var result = prepareSelection(this.cm, false);
- result.focus = this.cm.state.focused;
- return result;
- },
-
- showSelection: function(info, takeFocus) {
- if (!info || !this.cm.display.view.length) return;
- if (info.focus || takeFocus) this.showPrimarySelection();
- this.showMultipleSelections(info);
- },
-
- showPrimarySelection: function() {
- var sel = window.getSelection(), prim = this.cm.doc.sel.primary();
- var curAnchor = domToPos(this.cm, sel.anchorNode, sel.anchorOffset);
- var curFocus = domToPos(this.cm, sel.focusNode, sel.focusOffset);
- if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&
- cmp(minPos(curAnchor, curFocus), prim.from()) == 0 &&
- cmp(maxPos(curAnchor, curFocus), prim.to()) == 0)
- return;
-
- var start = posToDOM(this.cm, prim.from());
- var end = posToDOM(this.cm, prim.to());
- if (!start && !end) return;
-
- var view = this.cm.display.view;
- var old = sel.rangeCount && sel.getRangeAt(0);
- if (!start) {
- start = {node: view[0].measure.map[2], offset: 0};
- } else if (!end) { // FIXME dangerously hacky
- var measure = view[view.length - 1].measure;
- var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;
- end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};
- }
-
- try { var rng = range(start.node, start.offset, end.offset, end.node); }
- catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
- if (rng) {
- if (!gecko && this.cm.state.focused) {
- sel.collapse(start.node, start.offset);
- if (!rng.collapsed) sel.addRange(rng);
- } else {
- sel.removeAllRanges();
- sel.addRange(rng);
- }
- if (old && sel.anchorNode == null) sel.addRange(old);
- else if (gecko) this.startGracePeriod();
- }
- this.rememberSelection();
- },
-
- startGracePeriod: function() {
- var input = this;
- clearTimeout(this.gracePeriod);
- this.gracePeriod = setTimeout(function() {
- input.gracePeriod = false;
- if (input.selectionChanged())
- input.cm.operation(function() { input.cm.curOp.selectionChanged = true; });
- }, 20);
- },
-
- showMultipleSelections: function(info) {
- removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);
- removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);
- },
-
- rememberSelection: function() {
- var sel = window.getSelection();
- this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;
- this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;
- },
-
- selectionInEditor: function() {
- var sel = window.getSelection();
- if (!sel.rangeCount) return false;
- var node = sel.getRangeAt(0).commonAncestorContainer;
- return contains(this.div, node);
- },
-
- focus: function() {
- if (this.cm.options.readOnly != "nocursor") this.div.focus();
- },
- blur: function() { this.div.blur(); },
- getField: function() { return this.div; },
-
- supportsTouch: function() { return true; },
-
- receivedFocus: function() {
- var input = this;
- if (this.selectionInEditor())
- this.pollSelection();
- else
- runInOp(this.cm, function() { input.cm.curOp.selectionChanged = true; });
-
- function poll() {
- if (input.cm.state.focused) {
- input.pollSelection();
- input.polling.set(input.cm.options.pollInterval, poll);
- }
- }
- this.polling.set(this.cm.options.pollInterval, poll);
- },
-
- selectionChanged: function() {
- var sel = window.getSelection();
- return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||
- sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset;
- },
-
- pollSelection: function() {
- if (!this.composing && !this.gracePeriod && this.selectionChanged()) {
- var sel = window.getSelection(), cm = this.cm;
- this.rememberSelection();
- var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);
- var head = domToPos(cm, sel.focusNode, sel.focusOffset);
- if (anchor && head) runInOp(cm, function() {
- setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);
- if (anchor.bad || head.bad) cm.curOp.selectionChanged = true;
- });
- }
- },
-
- pollContent: function() {
- var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();
- var from = sel.from(), to = sel.to();
- if (from.line < display.viewFrom || to.line > display.viewTo - 1) return false;
-
- var fromIndex;
- if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {
- var fromLine = lineNo(display.view[0].line);
- var fromNode = display.view[0].node;
- } else {
- var fromLine = lineNo(display.view[fromIndex].line);
- var fromNode = display.view[fromIndex - 1].node.nextSibling;
- }
- var toIndex = findViewIndex(cm, to.line);
- if (toIndex == display.view.length - 1) {
- var toLine = display.viewTo - 1;
- var toNode = display.lineDiv.lastChild;
- } else {
- var toLine = lineNo(display.view[toIndex + 1].line) - 1;
- var toNode = display.view[toIndex + 1].node.previousSibling;
- }
-
- var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));
- var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));
- while (newText.length > 1 && oldText.length > 1) {
- if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }
- else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }
- else break;
- }
-
- var cutFront = 0, cutEnd = 0;
- var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);
- while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))
- ++cutFront;
- var newBot = lst(newText), oldBot = lst(oldText);
- var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),
- oldBot.length - (oldText.length == 1 ? cutFront : 0));
- while (cutEnd < maxCutEnd &&
- newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))
- ++cutEnd;
-
- newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd);
- newText[0] = newText[0].slice(cutFront);
-
- var chFrom = Pos(fromLine, cutFront);
- var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);
- if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {
- replaceRange(cm.doc, newText, chFrom, chTo, "+input");
- return true;
- }
- },
-
- ensurePolled: function() {
- this.forceCompositionEnd();
- },
- reset: function() {
- this.forceCompositionEnd();
- },
- forceCompositionEnd: function() {
- if (!this.composing || this.composing.handled) return;
- this.applyComposition(this.composing);
- this.composing.handled = true;
- this.div.blur();
- this.div.focus();
- },
- applyComposition: function(composing) {
- if (this.cm.isReadOnly())
- operation(this.cm, regChange)(this.cm)
- else if (composing.data && composing.data != composing.startData)
- operation(this.cm, applyTextInput)(this.cm, composing.data, 0, composing.sel);
- },
-
- setUneditable: function(node) {
- node.contentEditable = "false"
- },
-
- onKeyPress: function(e) {
- e.preventDefault();
- if (!this.cm.isReadOnly())
- operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0);
- },
-
- readOnlyChanged: function(val) {
- this.div.contentEditable = String(val != "nocursor")
- },
-
- onContextMenu: nothing,
- resetPosition: nothing,
-
- needsContentAttribute: true
- }, ContentEditableInput.prototype);
-
- function posToDOM(cm, pos) {
- var view = findViewForLine(cm, pos.line);
- if (!view || view.hidden) return null;
- var line = getLine(cm.doc, pos.line);
- var info = mapFromLineView(view, line, pos.line);
-
- var order = getOrder(line), side = "left";
- if (order) {
- var partPos = getBidiPartAt(order, pos.ch);
- side = partPos % 2 ? "right" : "left";
- }
- var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);
- result.offset = result.collapse == "right" ? result.end : result.start;
- return result;
- }
-
- function badPos(pos, bad) { if (bad) pos.bad = true; return pos; }
-
- function domToPos(cm, node, offset) {
- var lineNode;
- if (node == cm.display.lineDiv) {
- lineNode = cm.display.lineDiv.childNodes[offset];
- if (!lineNode) return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true);
- node = null; offset = 0;
- } else {
- for (lineNode = node;; lineNode = lineNode.parentNode) {
- if (!lineNode || lineNode == cm.display.lineDiv) return null;
- if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) break;
- }
- }
- for (var i = 0; i < cm.display.view.length; i++) {
- var lineView = cm.display.view[i];
- if (lineView.node == lineNode)
- return locateNodeInLineView(lineView, node, offset);
- }
- }
-
- function locateNodeInLineView(lineView, node, offset) {
- var wrapper = lineView.text.firstChild, bad = false;
- if (!node || !contains(wrapper, node)) return badPos(Pos(lineNo(lineView.line), 0), true);
- if (node == wrapper) {
- bad = true;
- node = wrapper.childNodes[offset];
- offset = 0;
- if (!node) {
- var line = lineView.rest ? lst(lineView.rest) : lineView.line;
- return badPos(Pos(lineNo(line), line.text.length), bad);
- }
- }
-
- var textNode = node.nodeType == 3 ? node : null, topNode = node;
- if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {
- textNode = node.firstChild;
- if (offset) offset = textNode.nodeValue.length;
- }
- while (topNode.parentNode != wrapper) topNode = topNode.parentNode;
- var measure = lineView.measure, maps = measure.maps;
-
- function find(textNode, topNode, offset) {
- for (var i = -1; i < (maps ? maps.length : 0); i++) {
- var map = i < 0 ? measure.map : maps[i];
- for (var j = 0; j < map.length; j += 3) {
- var curNode = map[j + 2];
- if (curNode == textNode || curNode == topNode) {
- var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);
- var ch = map[j] + offset;
- if (offset < 0 || curNode != textNode) ch = map[j + (offset ? 1 : 0)];
- return Pos(line, ch);
- }
- }
- }
- }
- var found = find(textNode, topNode, offset);
- if (found) return badPos(found, bad);
-
- // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems
- for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {
- found = find(after, after.firstChild, 0);
- if (found)
- return badPos(Pos(found.line, found.ch - dist), bad);
- else
- dist += after.textContent.length;
- }
- for (var before = topNode.previousSibling, dist = offset; before; before = before.previousSibling) {
- found = find(before, before.firstChild, -1);
- if (found)
- return badPos(Pos(found.line, found.ch + dist), bad);
- else
- dist += after.textContent.length;
- }
- }
-
- function domTextBetween(cm, from, to, fromLine, toLine) {
- var text = "", closing = false, lineSep = cm.doc.lineSeparator();
- function recognizeMarker(id) { return function(marker) { return marker.id == id; }; }
- function walk(node) {
- if (node.nodeType == 1) {
- var cmText = node.getAttribute("cm-text");
- if (cmText != null) {
- if (cmText == "") cmText = node.textContent.replace(/\u200b/g, "");
- text += cmText;
- return;
- }
- var markerID = node.getAttribute("cm-marker"), range;
- if (markerID) {
- var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));
- if (found.length && (range = found[0].find()))
- text += getBetween(cm.doc, range.from, range.to).join(lineSep);
- return;
- }
- if (node.getAttribute("contenteditable") == "false") return;
- for (var i = 0; i < node.childNodes.length; i++)
- walk(node.childNodes[i]);
- if (/^(pre|div|p)$/i.test(node.nodeName))
- closing = true;
- } else if (node.nodeType == 3) {
- var val = node.nodeValue;
- if (!val) return;
- if (closing) {
- text += lineSep;
- closing = false;
- }
- text += val;
- }
- }
- for (;;) {
- walk(from);
- if (from == to) break;
- from = from.nextSibling;
- }
- return text;
- }
-
- CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput};
-
- // SELECTION / CURSOR
-
- // Selection objects are immutable. A new one is created every time
- // the selection changes. A selection is one or more non-overlapping
- // (and non-touching) ranges, sorted, and an integer that indicates
- // which one is the primary selection (the one that's scrolled into
- // view, that getCursor returns, etc).
- function Selection(ranges, primIndex) {
- this.ranges = ranges;
- this.primIndex = primIndex;
- }
-
- Selection.prototype = {
- primary: function() { return this.ranges[this.primIndex]; },
- equals: function(other) {
- if (other == this) return true;
- if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) return false;
- for (var i = 0; i < this.ranges.length; i++) {
- var here = this.ranges[i], there = other.ranges[i];
- if (cmp(here.anchor, there.anchor) != 0 || cmp(here.head, there.head) != 0) return false;
- }
- return true;
- },
- deepCopy: function() {
- for (var out = [], i = 0; i < this.ranges.length; i++)
- out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head));
- return new Selection(out, this.primIndex);
- },
- somethingSelected: function() {
- for (var i = 0; i < this.ranges.length; i++)
- if (!this.ranges[i].empty()) return true;
- return false;
- },
- contains: function(pos, end) {
- if (!end) end = pos;
- for (var i = 0; i < this.ranges.length; i++) {
- var range = this.ranges[i];
- if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)
- return i;
- }
- return -1;
- }
- };
-
- function Range(anchor, head) {
- this.anchor = anchor; this.head = head;
- }
-
- Range.prototype = {
- from: function() { return minPos(this.anchor, this.head); },
- to: function() { return maxPos(this.anchor, this.head); },
- empty: function() {
- return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch;
- }
- };
-
- // Take an unsorted, potentially overlapping set of ranges, and
- // build a selection out of it. 'Consumes' ranges array (modifying
- // it).
- function normalizeSelection(ranges, primIndex) {
- var prim = ranges[primIndex];
- ranges.sort(function(a, b) { return cmp(a.from(), b.from()); });
- primIndex = indexOf(ranges, prim);
- for (var i = 1; i < ranges.length; i++) {
- var cur = ranges[i], prev = ranges[i - 1];
- if (cmp(prev.to(), cur.from()) >= 0) {
- var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());
- var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;
- if (i <= primIndex) --primIndex;
- ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));
- }
- }
- return new Selection(ranges, primIndex);
- }
-
- function simpleSelection(anchor, head) {
- return new Selection([new Range(anchor, head || anchor)], 0);
- }
-
- // Most of the external API clips given positions to make sure they
- // actually exist within the document.
- function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));}
- function clipPos(doc, pos) {
- if (pos.line < doc.first) return Pos(doc.first, 0);
- var last = doc.first + doc.size - 1;
- if (pos.line > last) return Pos(last, getLine(doc, last).text.length);
- return clipToLen(pos, getLine(doc, pos.line).text.length);
- }
- function clipToLen(pos, linelen) {
- var ch = pos.ch;
- if (ch == null || ch > linelen) return Pos(pos.line, linelen);
- else if (ch < 0) return Pos(pos.line, 0);
- else return pos;
- }
- function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;}
- function clipPosArray(doc, array) {
- for (var out = [], i = 0; i < array.length; i++) out[i] = clipPos(doc, array[i]);
- return out;
- }
-
- // SELECTION UPDATES
-
- // The 'scroll' parameter given to many of these indicated whether
- // the new cursor position should be scrolled into view after
- // modifying the selection.
-
- // If shift is held or the extend flag is set, extends a range to
- // include a given position (and optionally a second position).
- // Otherwise, simply returns the range between the given positions.
- // Used for cursor motion and such.
- function extendRange(doc, range, head, other) {
- if (doc.cm && doc.cm.display.shift || doc.extend) {
- var anchor = range.anchor;
- if (other) {
- var posBefore = cmp(head, anchor) < 0;
- if (posBefore != (cmp(other, anchor) < 0)) {
- anchor = head;
- head = other;
- } else if (posBefore != (cmp(head, other) < 0)) {
- head = other;
- }
- }
- return new Range(anchor, head);
- } else {
- return new Range(other || head, head);
- }
- }
-
- // Extend the primary selection range, discard the rest.
- function extendSelection(doc, head, other, options) {
- setSelection(doc, new Selection([extendRange(doc, doc.sel.primary(), head, other)], 0), options);
- }
-
- // Extend all selections (pos is an array of selections with length
- // equal the number of selections)
- function extendSelections(doc, heads, options) {
- for (var out = [], i = 0; i < doc.sel.ranges.length; i++)
- out[i] = extendRange(doc, doc.sel.ranges[i], heads[i], null);
- var newSel = normalizeSelection(out, doc.sel.primIndex);
- setSelection(doc, newSel, options);
- }
-
- // Updates a single range in the selection.
- function replaceOneSelection(doc, i, range, options) {
- var ranges = doc.sel.ranges.slice(0);
- ranges[i] = range;
- setSelection(doc, normalizeSelection(ranges, doc.sel.primIndex), options);
- }
-
- // Reset the selection to a single range.
- function setSimpleSelection(doc, anchor, head, options) {
- setSelection(doc, simpleSelection(anchor, head), options);
- }
-
- // Give beforeSelectionChange handlers a change to influence a
- // selection update.
- function filterSelectionChange(doc, sel, options) {
- var obj = {
- ranges: sel.ranges,
- update: function(ranges) {
- this.ranges = [];
- for (var i = 0; i < ranges.length; i++)
- this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),
- clipPos(doc, ranges[i].head));
- },
- origin: options && options.origin
- };
- signal(doc, "beforeSelectionChange", doc, obj);
- if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj);
- if (obj.ranges != sel.ranges) return normalizeSelection(obj.ranges, obj.ranges.length - 1);
- else return sel;
- }
-
- function setSelectionReplaceHistory(doc, sel, options) {
- var done = doc.history.done, last = lst(done);
- if (last && last.ranges) {
- done[done.length - 1] = sel;
- setSelectionNoUndo(doc, sel, options);
- } else {
- setSelection(doc, sel, options);
- }
- }
-
- // Set a new selection.
- function setSelection(doc, sel, options) {
- setSelectionNoUndo(doc, sel, options);
- addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);
- }
-
- function setSelectionNoUndo(doc, sel, options) {
- if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange"))
- sel = filterSelectionChange(doc, sel, options);
-
- var bias = options && options.bias ||
- (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);
- setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));
-
- if (!(options && options.scroll === false) && doc.cm)
- ensureCursorVisible(doc.cm);
- }
-
- function setSelectionInner(doc, sel) {
- if (sel.equals(doc.sel)) return;
-
- doc.sel = sel;
-
- if (doc.cm) {
- doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true;
- signalCursorActivity(doc.cm);
- }
- signalLater(doc, "cursorActivity", doc);
- }
-
- // Verify that the selection does not partially select any atomic
- // marked ranges.
- function reCheckSelection(doc) {
- setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false), sel_dontScroll);
- }
-
- // Return a selection that does not partially select any atomic
- // ranges.
- function skipAtomicInSelection(doc, sel, bias, mayClear) {
- var out;
- for (var i = 0; i < sel.ranges.length; i++) {
- var range = sel.ranges[i];
- var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];
- var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);
- var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);
- if (out || newAnchor != range.anchor || newHead != range.head) {
- if (!out) out = sel.ranges.slice(0, i);
- out[i] = new Range(newAnchor, newHead);
- }
- }
- return out ? normalizeSelection(out, sel.primIndex) : sel;
- }
-
- function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {
- var line = getLine(doc, pos.line);
- if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {
- var sp = line.markedSpans[i], m = sp.marker;
- if ((sp.from == null || (m.inclusiveLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&
- (sp.to == null || (m.inclusiveRight ? sp.to >= pos.ch : sp.to > pos.ch))) {
- if (mayClear) {
- signal(m, "beforeCursorEnter");
- if (m.explicitlyCleared) {
- if (!line.markedSpans) break;
- else {--i; continue;}
- }
- }
- if (!m.atomic) continue;
-
- if (oldPos) {
- var near = m.find(dir < 0 ? 1 : -1), diff;
- if (dir < 0 ? m.inclusiveRight : m.inclusiveLeft)
- near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null);
- if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))
- return skipAtomicInner(doc, near, pos, dir, mayClear);
- }
-
- var far = m.find(dir < 0 ? -1 : 1);
- if (dir < 0 ? m.inclusiveLeft : m.inclusiveRight)
- far = movePos(doc, far, dir, far.line == pos.line ? line : null);
- return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null;
- }
- }
- return pos;
- }
-
- // Ensure a given position is not inside an atomic range.
- function skipAtomic(doc, pos, oldPos, bias, mayClear) {
- var dir = bias || 1;
- var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||
- (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||
- skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||
- (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));
- if (!found) {
- doc.cantEdit = true;
- return Pos(doc.first, 0);
- }
- return found;
- }
-
- function movePos(doc, pos, dir, line) {
- if (dir < 0 && pos.ch == 0) {
- if (pos.line > doc.first) return clipPos(doc, Pos(pos.line - 1));
- else return null;
- } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {
- if (pos.line < doc.first + doc.size - 1) return Pos(pos.line + 1, 0);
- else return null;
- } else {
- return new Pos(pos.line, pos.ch + dir);
- }
- }
-
- // SELECTION DRAWING
-
- function updateSelection(cm) {
- cm.display.input.showSelection(cm.display.input.prepareSelection());
- }
-
- function prepareSelection(cm, primary) {
- var doc = cm.doc, result = {};
- var curFragment = result.cursors = document.createDocumentFragment();
- var selFragment = result.selection = document.createDocumentFragment();
-
- for (var i = 0; i < doc.sel.ranges.length; i++) {
- if (primary === false && i == doc.sel.primIndex) continue;
- var range = doc.sel.ranges[i];
- if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) continue;
- var collapsed = range.empty();
- if (collapsed || cm.options.showCursorWhenSelecting)
- drawSelectionCursor(cm, range.head, curFragment);
- if (!collapsed)
- drawSelectionRange(cm, range, selFragment);
- }
- return result;
- }
-
- // Draws a cursor for the given range
- function drawSelectionCursor(cm, head, output) {
- var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine);
-
- var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor"));
- cursor.style.left = pos.left + "px";
- cursor.style.top = pos.top + "px";
- cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px";
-
- if (pos.other) {
- // Secondary cursor, shown when on a 'jump' in bi-directional text
- var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor"));
- otherCursor.style.display = "";
- otherCursor.style.left = pos.other.left + "px";
- otherCursor.style.top = pos.other.top + "px";
- otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px";
- }
- }
-
- // Draws the given range as a highlighted selection
- function drawSelectionRange(cm, range, output) {
- var display = cm.display, doc = cm.doc;
- var fragment = document.createDocumentFragment();
- var padding = paddingH(cm.display), leftSide = padding.left;
- var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
-
- function add(left, top, width, bottom) {
- if (top < 0) top = 0;
- top = Math.round(top);
- bottom = Math.round(bottom);
- fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left +
- "px; top: " + top + "px; width: " + (width == null ? rightSide - left : width) +
- "px; height: " + (bottom - top) + "px"));
- }
-
- function drawForLine(line, fromArg, toArg) {
- var lineObj = getLine(doc, line);
- var lineLen = lineObj.text.length;
- var start, end;
- function coords(ch, bias) {
- return charCoords(cm, Pos(line, ch), "div", lineObj, bias);
- }
-
- iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) {
- var leftPos = coords(from, "left"), rightPos, left, right;
- if (from == to) {
- rightPos = leftPos;
- left = right = leftPos.left;
- } else {
- rightPos = coords(to - 1, "right");
- if (dir == "rtl") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }
- left = leftPos.left;
- right = rightPos.right;
- }
- if (fromArg == null && from == 0) left = leftSide;
- if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part
- add(left, leftPos.top, null, leftPos.bottom);
- left = leftSide;
- if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top);
- }
- if (toArg == null && to == lineLen) right = rightSide;
- if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)
- start = leftPos;
- if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)
- end = rightPos;
- if (left < leftSide + 1) left = leftSide;
- add(left, rightPos.top, right - left, rightPos.bottom);
- });
- return {start: start, end: end};
- }
-
- var sFrom = range.from(), sTo = range.to();
- if (sFrom.line == sTo.line) {
- drawForLine(sFrom.line, sFrom.ch, sTo.ch);
- } else {
- var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);
- var singleVLine = visualLine(fromLine) == visualLine(toLine);
- var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;
- var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;
- if (singleVLine) {
- if (leftEnd.top < rightStart.top - 2) {
- add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);
- add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);
- } else {
- add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);
- }
- }
- if (leftEnd.bottom < rightStart.top)
- add(leftSide, leftEnd.bottom, null, rightStart.top);
- }
-
- output.appendChild(fragment);
- }
-
- // Cursor-blinking
- function restartBlink(cm) {
- if (!cm.state.focused) return;
- var display = cm.display;
- clearInterval(display.blinker);
- var on = true;
- display.cursorDiv.style.visibility = "";
- if (cm.options.cursorBlinkRate > 0)
- display.blinker = setInterval(function() {
- display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden";
- }, cm.options.cursorBlinkRate);
- else if (cm.options.cursorBlinkRate < 0)
- display.cursorDiv.style.visibility = "hidden";
- }
-
- // HIGHLIGHT WORKER
-
- function startWorker(cm, time) {
- if (cm.doc.mode.startState && cm.doc.frontier < cm.display.viewTo)
- cm.state.highlight.set(time, bind(highlightWorker, cm));
- }
-
- function highlightWorker(cm) {
- var doc = cm.doc;
- if (doc.frontier < doc.first) doc.frontier = doc.first;
- if (doc.frontier >= cm.display.viewTo) return;
- var end = +new Date + cm.options.workTime;
- var state = copyState(doc.mode, getStateBefore(cm, doc.frontier));
- var changedLines = [];
-
- doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function(line) {
- if (doc.frontier >= cm.display.viewFrom) { // Visible
- var oldStyles = line.styles, tooLong = line.text.length > cm.options.maxHighlightLength;
- var highlighted = highlightLine(cm, line, tooLong ? copyState(doc.mode, state) : state, true);
- line.styles = highlighted.styles;
- var oldCls = line.styleClasses, newCls = highlighted.classes;
- if (newCls) line.styleClasses = newCls;
- else if (oldCls) line.styleClasses = null;
- var ischange = !oldStyles || oldStyles.length != line.styles.length ||
- oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);
- for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i];
- if (ischange) changedLines.push(doc.frontier);
- line.stateAfter = tooLong ? state : copyState(doc.mode, state);
- } else {
- if (line.text.length <= cm.options.maxHighlightLength)
- processLine(cm, line.text, state);
- line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null;
- }
- ++doc.frontier;
- if (+new Date > end) {
- startWorker(cm, cm.options.workDelay);
- return true;
- }
- });
- if (changedLines.length) runInOp(cm, function() {
- for (var i = 0; i < changedLines.length; i++)
- regLineChange(cm, changedLines[i], "text");
- });
- }
-
- // Finds the line to start with when starting a parse. Tries to
- // find a line with a stateAfter, so that it can start with a
- // valid state. If that fails, it returns the line with the
- // smallest indentation, which tends to need the least context to
- // parse correctly.
- function findStartLine(cm, n, precise) {
- var minindent, minline, doc = cm.doc;
- var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
- for (var search = n; search > lim; --search) {
- if (search <= doc.first) return doc.first;
- var line = getLine(doc, search - 1);
- if (line.stateAfter && (!precise || search <= doc.frontier)) return search;
- var indented = countColumn(line.text, null, cm.options.tabSize);
- if (minline == null || minindent > indented) {
- minline = search - 1;
- minindent = indented;
- }
- }
- return minline;
- }
-
- function getStateBefore(cm, n, precise) {
- var doc = cm.doc, display = cm.display;
- if (!doc.mode.startState) return true;
- var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter;
- if (!state) state = startState(doc.mode);
- else state = copyState(doc.mode, state);
- doc.iter(pos, n, function(line) {
- processLine(cm, line.text, state);
- var save = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo;
- line.stateAfter = save ? copyState(doc.mode, state) : null;
- ++pos;
- });
- if (precise) doc.frontier = pos;
- return state;
- }
-
- // POSITION MEASUREMENT
-
- function paddingTop(display) {return display.lineSpace.offsetTop;}
- function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;}
- function paddingH(display) {
- if (display.cachedPaddingH) return display.cachedPaddingH;
- var e = removeChildrenAndAdd(display.measure, elt("pre", "x"));
- var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;
- var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};
- if (!isNaN(data.left) && !isNaN(data.right)) display.cachedPaddingH = data;
- return data;
- }
-
- function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth; }
- function displayWidth(cm) {
- return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth;
- }
- function displayHeight(cm) {
- return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight;
- }
-
- // Ensure the lineView.wrapping.heights array is populated. This is
- // an array of bottom offsets for the lines that make up a drawn
- // line. When lineWrapping is on, there might be more than one
- // height.
- function ensureLineHeights(cm, lineView, rect) {
- var wrapping = cm.options.lineWrapping;
- var curWidth = wrapping && displayWidth(cm);
- if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {
- var heights = lineView.measure.heights = [];
- if (wrapping) {
- lineView.measure.width = curWidth;
- var rects = lineView.text.firstChild.getClientRects();
- for (var i = 0; i < rects.length - 1; i++) {
- var cur = rects[i], next = rects[i + 1];
- if (Math.abs(cur.bottom - next.bottom) > 2)
- heights.push((cur.bottom + next.top) / 2 - rect.top);
- }
- }
- heights.push(rect.bottom - rect.top);
- }
- }
-
- // Find a line map (mapping character offsets to text nodes) and a
- // measurement cache for the given line number. (A line view might
- // contain multiple lines when collapsed ranges are present.)
- function mapFromLineView(lineView, line, lineN) {
- if (lineView.line == line)
- return {map: lineView.measure.map, cache: lineView.measure.cache};
- for (var i = 0; i < lineView.rest.length; i++)
- if (lineView.rest[i] == line)
- return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]};
- for (var i = 0; i < lineView.rest.length; i++)
- if (lineNo(lineView.rest[i]) > lineN)
- return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i], before: true};
- }
-
- // Render a line into the hidden node display.externalMeasured. Used
- // when measurement is needed for a line that's not in the viewport.
- function updateExternalMeasurement(cm, line) {
- line = visualLine(line);
- var lineN = lineNo(line);
- var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);
- view.lineN = lineN;
- var built = view.built = buildLineContent(cm, view);
- view.text = built.pre;
- removeChildrenAndAdd(cm.display.lineMeasure, built.pre);
- return view;
- }
-
- // Get a {top, bottom, left, right} box (in line-local coordinates)
- // for a given character.
- function measureChar(cm, line, ch, bias) {
- return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias);
- }
-
- // Find a line view that corresponds to the given line number.
- function findViewForLine(cm, lineN) {
- if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)
- return cm.display.view[findViewIndex(cm, lineN)];
- var ext = cm.display.externalMeasured;
- if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)
- return ext;
- }
-
- // Measurement can be split in two steps, the set-up work that
- // applies to the whole line, and the measurement of the actual
- // character. Functions like coordsChar, that need to do a lot of
- // measurements in a row, can thus ensure that the set-up work is
- // only done once.
- function prepareMeasureForLine(cm, line) {
- var lineN = lineNo(line);
- var view = findViewForLine(cm, lineN);
- if (view && !view.text) {
- view = null;
- } else if (view && view.changes) {
- updateLineForChanges(cm, view, lineN, getDimensions(cm));
- cm.curOp.forceUpdate = true;
- }
- if (!view)
- view = updateExternalMeasurement(cm, line);
-
- var info = mapFromLineView(view, line, lineN);
- return {
- line: line, view: view, rect: null,
- map: info.map, cache: info.cache, before: info.before,
- hasHeights: false
- };
- }
-
- // Given a prepared measurement object, measures the position of an
- // actual character (or fetches it from the cache).
- function measureCharPrepared(cm, prepared, ch, bias, varHeight) {
- if (prepared.before) ch = -1;
- var key = ch + (bias || ""), found;
- if (prepared.cache.hasOwnProperty(key)) {
- found = prepared.cache[key];
- } else {
- if (!prepared.rect)
- prepared.rect = prepared.view.text.getBoundingClientRect();
- if (!prepared.hasHeights) {
- ensureLineHeights(cm, prepared.view, prepared.rect);
- prepared.hasHeights = true;
- }
- found = measureCharInner(cm, prepared, ch, bias);
- if (!found.bogus) prepared.cache[key] = found;
- }
- return {left: found.left, right: found.right,
- top: varHeight ? found.rtop : found.top,
- bottom: varHeight ? found.rbottom : found.bottom};
- }
-
- var nullRect = {left: 0, right: 0, top: 0, bottom: 0};
-
- function nodeAndOffsetInLineMap(map, ch, bias) {
- var node, start, end, collapse;
- // First, search the line map for the text node corresponding to,
- // or closest to, the target character.
- for (var i = 0; i < map.length; i += 3) {
- var mStart = map[i], mEnd = map[i + 1];
- if (ch < mStart) {
- start = 0; end = 1;
- collapse = "left";
- } else if (ch < mEnd) {
- start = ch - mStart;
- end = start + 1;
- } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {
- end = mEnd - mStart;
- start = end - 1;
- if (ch >= mEnd) collapse = "right";
- }
- if (start != null) {
- node = map[i + 2];
- if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right"))
- collapse = bias;
- if (bias == "left" && start == 0)
- while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {
- node = map[(i -= 3) + 2];
- collapse = "left";
- }
- if (bias == "right" && start == mEnd - mStart)
- while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {
- node = map[(i += 3) + 2];
- collapse = "right";
- }
- break;
- }
- }
- return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd};
- }
-
- function measureCharInner(cm, prepared, ch, bias) {
- var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);
- var node = place.node, start = place.start, end = place.end, collapse = place.collapse;
-
- var rect;
- if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.
- for (var i = 0; i < 4; i++) { // Retry a maximum of 4 times when nonsense rectangles are returned
- while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) --start;
- while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) ++end;
- if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) {
- rect = node.parentNode.getBoundingClientRect();
- } else if (ie && cm.options.lineWrapping) {
- var rects = range(node, start, end).getClientRects();
- if (rects.length)
- rect = rects[bias == "right" ? rects.length - 1 : 0];
- else
- rect = nullRect;
- } else {
- rect = range(node, start, end).getBoundingClientRect() || nullRect;
- }
- if (rect.left || rect.right || start == 0) break;
- end = start;
- start = start - 1;
- collapse = "right";
- }
- if (ie && ie_version < 11) rect = maybeUpdateRectForZooming(cm.display.measure, rect);
- } else { // If it is a widget, simply get the box for the whole widget.
- if (start > 0) collapse = bias = "right";
- var rects;
- if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)
- rect = rects[bias == "right" ? rects.length - 1 : 0];
- else
- rect = node.getBoundingClientRect();
- }
- if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {
- var rSpan = node.parentNode.getClientRects()[0];
- if (rSpan)
- rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom};
- else
- rect = nullRect;
- }
-
- var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;
- var mid = (rtop + rbot) / 2;
- var heights = prepared.view.measure.heights;
- for (var i = 0; i < heights.length - 1; i++)
- if (mid < heights[i]) break;
- var top = i ? heights[i - 1] : 0, bot = heights[i];
- var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left,
- right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left,
- top: top, bottom: bot};
- if (!rect.left && !rect.right) result.bogus = true;
- if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }
-
- return result;
- }
-
- // Work around problem with bounding client rects on ranges being
- // returned incorrectly when zoomed on IE10 and below.
- function maybeUpdateRectForZooming(measure, rect) {
- if (!window.screen || screen.logicalXDPI == null ||
- screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))
- return rect;
- var scaleX = screen.logicalXDPI / screen.deviceXDPI;
- var scaleY = screen.logicalYDPI / screen.deviceYDPI;
- return {left: rect.left * scaleX, right: rect.right * scaleX,
- top: rect.top * scaleY, bottom: rect.bottom * scaleY};
- }
-
- function clearLineMeasurementCacheFor(lineView) {
- if (lineView.measure) {
- lineView.measure.cache = {};
- lineView.measure.heights = null;
- if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)
- lineView.measure.caches[i] = {};
- }
- }
-
- function clearLineMeasurementCache(cm) {
- cm.display.externalMeasure = null;
- removeChildren(cm.display.lineMeasure);
- for (var i = 0; i < cm.display.view.length; i++)
- clearLineMeasurementCacheFor(cm.display.view[i]);
- }
-
- function clearCaches(cm) {
- clearLineMeasurementCache(cm);
- cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;
- if (!cm.options.lineWrapping) cm.display.maxLineChanged = true;
- cm.display.lineNumChars = null;
- }
-
- function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; }
- function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; }
-
- // Converts a {top, bottom, left, right} box from line-local
- // coordinates into another coordinate system. Context may be one of
- // "line", "div" (display.lineDiv), "local"/null (editor), "window",
- // or "page".
- function intoCoordSystem(cm, lineObj, rect, context) {
- if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) {
- var size = widgetHeight(lineObj.widgets[i]);
- rect.top += size; rect.bottom += size;
- }
- if (context == "line") return rect;
- if (!context) context = "local";
- var yOff = heightAtLine(lineObj);
- if (context == "local") yOff += paddingTop(cm.display);
- else yOff -= cm.display.viewOffset;
- if (context == "page" || context == "window") {
- var lOff = cm.display.lineSpace.getBoundingClientRect();
- yOff += lOff.top + (context == "window" ? 0 : pageScrollY());
- var xOff = lOff.left + (context == "window" ? 0 : pageScrollX());
- rect.left += xOff; rect.right += xOff;
- }
- rect.top += yOff; rect.bottom += yOff;
- return rect;
- }
-
- // Coverts a box from "div" coords to another coordinate system.
- // Context may be "window", "page", "div", or "local"/null.
- function fromCoordSystem(cm, coords, context) {
- if (context == "div") return coords;
- var left = coords.left, top = coords.top;
- // First move into "page" coordinate system
- if (context == "page") {
- left -= pageScrollX();
- top -= pageScrollY();
- } else if (context == "local" || !context) {
- var localBox = cm.display.sizer.getBoundingClientRect();
- left += localBox.left;
- top += localBox.top;
- }
-
- var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();
- return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top};
- }
-
- function charCoords(cm, pos, context, lineObj, bias) {
- if (!lineObj) lineObj = getLine(cm.doc, pos.line);
- return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context);
- }
-
- // Returns a box for a given cursor position, which may have an
- // 'other' property containing the position of the secondary cursor
- // on a bidi boundary.
- function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
- lineObj = lineObj || getLine(cm.doc, pos.line);
- if (!preparedMeasure) preparedMeasure = prepareMeasureForLine(cm, lineObj);
- function get(ch, right) {
- var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight);
- if (right) m.left = m.right; else m.right = m.left;
- return intoCoordSystem(cm, lineObj, m, context);
- }
- function getBidi(ch, partPos) {
- var part = order[partPos], right = part.level % 2;
- if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) {
- part = order[--partPos];
- ch = bidiRight(part) - (part.level % 2 ? 0 : 1);
- right = true;
- } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) {
- part = order[++partPos];
- ch = bidiLeft(part) - part.level % 2;
- right = false;
- }
- if (right && ch == part.to && ch > part.from) return get(ch - 1);
- return get(ch, right);
- }
- var order = getOrder(lineObj), ch = pos.ch;
- if (!order) return get(ch);
- var partPos = getBidiPartAt(order, ch);
- var val = getBidi(ch, partPos);
- if (bidiOther != null) val.other = getBidi(ch, bidiOther);
- return val;
- }
-
- // Used to cheaply estimate the coordinates for a position. Used for
- // intermediate scroll updates.
- function estimateCoords(cm, pos) {
- var left = 0, pos = clipPos(cm.doc, pos);
- if (!cm.options.lineWrapping) left = charWidth(cm.display) * pos.ch;
- var lineObj = getLine(cm.doc, pos.line);
- var top = heightAtLine(lineObj) + paddingTop(cm.display);
- return {left: left, right: left, top: top, bottom: top + lineObj.height};
- }
-
- // Positions returned by coordsChar contain some extra information.
- // xRel is the relative x position of the input coordinates compared
- // to the found position (so xRel > 0 means the coordinates are to
- // the right of the character position, for example). When outside
- // is true, that means the coordinates lie outside the line's
- // vertical range.
- function PosWithInfo(line, ch, outside, xRel) {
- var pos = Pos(line, ch);
- pos.xRel = xRel;
- if (outside) pos.outside = true;
- return pos;
- }
-
- // Compute the character position closest to the given coordinates.
- // Input must be lineSpace-local ("div" coordinate system).
- function coordsChar(cm, x, y) {
- var doc = cm.doc;
- y += cm.display.viewOffset;
- if (y < 0) return PosWithInfo(doc.first, 0, true, -1);
- var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;
- if (lineN > last)
- return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1);
- if (x < 0) x = 0;
-
- var lineObj = getLine(doc, lineN);
- for (;;) {
- var found = coordsCharInner(cm, lineObj, lineN, x, y);
- var merged = collapsedSpanAtEnd(lineObj);
- var mergedPos = merged && merged.find(0, true);
- if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0))
- lineN = lineNo(lineObj = mergedPos.to.line);
- else
- return found;
- }
- }
-
- function coordsCharInner(cm, lineObj, lineNo, x, y) {
- var innerOff = y - heightAtLine(lineObj);
- var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth;
- var preparedMeasure = prepareMeasureForLine(cm, lineObj);
-
- function getX(ch) {
- var sp = cursorCoords(cm, Pos(lineNo, ch), "line", lineObj, preparedMeasure);
- wrongLine = true;
- if (innerOff > sp.bottom) return sp.left - adjust;
- else if (innerOff < sp.top) return sp.left + adjust;
- else wrongLine = false;
- return sp.left;
- }
-
- var bidi = getOrder(lineObj), dist = lineObj.text.length;
- var from = lineLeft(lineObj), to = lineRight(lineObj);
- var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine;
-
- if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1);
- // Do a binary search between these bounds.
- for (;;) {
- if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) {
- var ch = x < fromX || x - fromX <= toX - x ? from : to;
- var xDiff = x - (ch == from ? fromX : toX);
- while (isExtendingChar(lineObj.text.charAt(ch))) ++ch;
- var pos = PosWithInfo(lineNo, ch, ch == from ? fromOutside : toOutside,
- xDiff < -1 ? -1 : xDiff > 1 ? 1 : 0);
- return pos;
- }
- var step = Math.ceil(dist / 2), middle = from + step;
- if (bidi) {
- middle = from;
- for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1);
- }
- var middleX = getX(middle);
- if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;}
- else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;}
- }
- }
-
- var measureText;
- // Compute the default text height.
- function textHeight(display) {
- if (display.cachedTextHeight != null) return display.cachedTextHeight;
- if (measureText == null) {
- measureText = elt("pre");
- // Measure a bunch of lines, for browsers that compute
- // fractional heights.
- for (var i = 0; i < 49; ++i) {
- measureText.appendChild(document.createTextNode("x"));
- measureText.appendChild(elt("br"));
- }
- measureText.appendChild(document.createTextNode("x"));
- }
- removeChildrenAndAdd(display.measure, measureText);
- var height = measureText.offsetHeight / 50;
- if (height > 3) display.cachedTextHeight = height;
- removeChildren(display.measure);
- return height || 1;
- }
-
- // Compute the default character width.
- function charWidth(display) {
- if (display.cachedCharWidth != null) return display.cachedCharWidth;
- var anchor = elt("span", "xxxxxxxxxx");
- var pre = elt("pre", [anchor]);
- removeChildrenAndAdd(display.measure, pre);
- var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;
- if (width > 2) display.cachedCharWidth = width;
- return width || 10;
- }
-
- // OPERATIONS
-
- // Operations are used to wrap a series of changes to the editor
- // state in such a way that each change won't have to update the
- // cursor and display (which would be awkward, slow, and
- // error-prone). Instead, display updates are batched and then all
- // combined and executed at once.
-
- var operationGroup = null;
-
- var nextOpId = 0;
- // Start a new operation.
- function startOperation(cm) {
- cm.curOp = {
- cm: cm,
- viewChanged: false, // Flag that indicates that lines might need to be redrawn
- startHeight: cm.doc.height, // Used to detect need to update scrollbar
- forceUpdate: false, // Used to force a redraw
- updateInput: null, // Whether to reset the input textarea
- typing: false, // Whether this reset should be careful to leave existing text (for compositing)
- changeObjs: null, // Accumulated changes, for firing change events
- cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on
- cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already
- selectionChanged: false, // Whether the selection needs to be redrawn
- updateMaxLine: false, // Set when the widest line needs to be determined anew
- scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet
- scrollToPos: null, // Used to scroll to a specific position
- focus: false,
- id: ++nextOpId // Unique ID
- };
- if (operationGroup) {
- operationGroup.ops.push(cm.curOp);
- } else {
- cm.curOp.ownsGroup = operationGroup = {
- ops: [cm.curOp],
- delayedCallbacks: []
- };
- }
- }
-
- function fireCallbacksForOps(group) {
- // Calls delayed callbacks and cursorActivity handlers until no
- // new ones appear
- var callbacks = group.delayedCallbacks, i = 0;
- do {
- for (; i < callbacks.length; i++)
- callbacks[i].call(null);
- for (var j = 0; j < group.ops.length; j++) {
- var op = group.ops[j];
- if (op.cursorActivityHandlers)
- while (op.cursorActivityCalled < op.cursorActivityHandlers.length)
- op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm);
- }
- } while (i < callbacks.length);
- }
-
- // Finish an operation, updating the display and signalling delayed events
- function endOperation(cm) {
- var op = cm.curOp, group = op.ownsGroup;
- if (!group) return;
-
- try { fireCallbacksForOps(group); }
- finally {
- operationGroup = null;
- for (var i = 0; i < group.ops.length; i++)
- group.ops[i].cm.curOp = null;
- endOperations(group);
- }
- }
-
- // The DOM updates done when an operation finishes are batched so
- // that the minimum number of relayouts are required.
- function endOperations(group) {
- var ops = group.ops;
- for (var i = 0; i < ops.length; i++) // Read DOM
- endOperation_R1(ops[i]);
- for (var i = 0; i < ops.length; i++) // Write DOM (maybe)
- endOperation_W1(ops[i]);
- for (var i = 0; i < ops.length; i++) // Read DOM
- endOperation_R2(ops[i]);
- for (var i = 0; i < ops.length; i++) // Write DOM (maybe)
- endOperation_W2(ops[i]);
- for (var i = 0; i < ops.length; i++) // Read DOM
- endOperation_finish(ops[i]);
- }
-
- function endOperation_R1(op) {
- var cm = op.cm, display = cm.display;
- maybeClipScrollbars(cm);
- if (op.updateMaxLine) findMaxLine(cm);
-
- op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||
- op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||
- op.scrollToPos.to.line >= display.viewTo) ||
- display.maxLineChanged && cm.options.lineWrapping;
- op.update = op.mustUpdate &&
- new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);
- }
-
- function endOperation_W1(op) {
- op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);
- }
-
- function endOperation_R2(op) {
- var cm = op.cm, display = cm.display;
- if (op.updatedDisplay) updateHeightsInViewport(cm);
-
- op.barMeasure = measureForScrollbars(cm);
-
- // If the max line changed since it was last measured, measure it,
- // and ensure the document's width matches it.
- // updateDisplay_W2 will use these properties to do the actual resizing
- if (display.maxLineChanged && !cm.options.lineWrapping) {
- op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;
- cm.display.sizerWidth = op.adjustWidthTo;
- op.barMeasure.scrollWidth =
- Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);
- op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));
- }
-
- if (op.updatedDisplay || op.selectionChanged)
- op.preparedSelection = display.input.prepareSelection(op.focus);
- }
-
- function endOperation_W2(op) {
- var cm = op.cm;
-
- if (op.adjustWidthTo != null) {
- cm.display.sizer.style.minWidth = op.adjustWidthTo + "px";
- if (op.maxScrollLeft < cm.doc.scrollLeft)
- setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true);
- cm.display.maxLineChanged = false;
- }
-
- var takeFocus = op.focus && op.focus == activeElt() && (!document.hasFocus || document.hasFocus())
- if (op.preparedSelection)
- cm.display.input.showSelection(op.preparedSelection, takeFocus);
- if (op.updatedDisplay || op.startHeight != cm.doc.height)
- updateScrollbars(cm, op.barMeasure);
- if (op.updatedDisplay)
- setDocumentHeight(cm, op.barMeasure);
-
- if (op.selectionChanged) restartBlink(cm);
-
- if (cm.state.focused && op.updateInput)
- cm.display.input.reset(op.typing);
- if (takeFocus) ensureFocus(op.cm);
- }
-
- function endOperation_finish(op) {
- var cm = op.cm, display = cm.display, doc = cm.doc;
-
- if (op.updatedDisplay) postUpdateDisplay(cm, op.update);
-
- // Abort mouse wheel delta measurement, when scrolling explicitly
- if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))
- display.wheelStartX = display.wheelStartY = null;
-
- // Propagate the scroll position to the actual DOM scroller
- if (op.scrollTop != null && (display.scroller.scrollTop != op.scrollTop || op.forceScroll)) {
- doc.scrollTop = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop));
- display.scrollbars.setScrollTop(doc.scrollTop);
- display.scroller.scrollTop = doc.scrollTop;
- }
- if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) {
- doc.scrollLeft = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, op.scrollLeft));
- display.scrollbars.setScrollLeft(doc.scrollLeft);
- display.scroller.scrollLeft = doc.scrollLeft;
- alignHorizontally(cm);
- }
- // If we need to scroll a specific position into view, do so.
- if (op.scrollToPos) {
- var coords = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),
- clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);
- if (op.scrollToPos.isCursor && cm.state.focused) maybeScrollWindow(cm, coords);
- }
-
- // Fire events for markers that are hidden/unidden by editing or
- // undoing
- var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;
- if (hidden) for (var i = 0; i < hidden.length; ++i)
- if (!hidden[i].lines.length) signal(hidden[i], "hide");
- if (unhidden) for (var i = 0; i < unhidden.length; ++i)
- if (unhidden[i].lines.length) signal(unhidden[i], "unhide");
-
- if (display.wrapper.offsetHeight)
- doc.scrollTop = cm.display.scroller.scrollTop;
-
- // Fire change events, and delayed event handlers
- if (op.changeObjs)
- signal(cm, "changes", cm, op.changeObjs);
- if (op.update)
- op.update.finish();
- }
-
- // Run the given function in an operation
- function runInOp(cm, f) {
- if (cm.curOp) return f();
- startOperation(cm);
- try { return f(); }
- finally { endOperation(cm); }
- }
- // Wraps a function in an operation. Returns the wrapped function.
- function operation(cm, f) {
- return function() {
- if (cm.curOp) return f.apply(cm, arguments);
- startOperation(cm);
- try { return f.apply(cm, arguments); }
- finally { endOperation(cm); }
- };
- }
- // Used to add methods to editor and doc instances, wrapping them in
- // operations.
- function methodOp(f) {
- return function() {
- if (this.curOp) return f.apply(this, arguments);
- startOperation(this);
- try { return f.apply(this, arguments); }
- finally { endOperation(this); }
- };
- }
- function docMethodOp(f) {
- return function() {
- var cm = this.cm;
- if (!cm || cm.curOp) return f.apply(this, arguments);
- startOperation(cm);
- try { return f.apply(this, arguments); }
- finally { endOperation(cm); }
- };
- }
-
- // VIEW TRACKING
-
- // These objects are used to represent the visible (currently drawn)
- // part of the document. A LineView may correspond to multiple
- // logical lines, if those are connected by collapsed ranges.
- function LineView(doc, line, lineN) {
- // The starting line
- this.line = line;
- // Continuing lines, if any
- this.rest = visualLineContinued(line);
- // Number of logical lines in this visual line
- this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;
- this.node = this.text = null;
- this.hidden = lineIsHidden(doc, line);
- }
-
- // Create a range of LineView objects for the given lines.
- function buildViewArray(cm, from, to) {
- var array = [], nextPos;
- for (var pos = from; pos < to; pos = nextPos) {
- var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);
- nextPos = pos + view.size;
- array.push(view);
- }
- return array;
- }
-
- // Updates the display.view data structure for a given change to the
- // document. From and to are in pre-change coordinates. Lendiff is
- // the amount of lines added or subtracted by the change. This is
- // used for changes that span multiple lines, or change the way
- // lines are divided into visual lines. regLineChange (below)
- // registers single-line changes.
- function regChange(cm, from, to, lendiff) {
- if (from == null) from = cm.doc.first;
- if (to == null) to = cm.doc.first + cm.doc.size;
- if (!lendiff) lendiff = 0;
-
- var display = cm.display;
- if (lendiff && to < display.viewTo &&
- (display.updateLineNumbers == null || display.updateLineNumbers > from))
- display.updateLineNumbers = from;
-
- cm.curOp.viewChanged = true;
-
- if (from >= display.viewTo) { // Change after
- if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)
- resetView(cm);
- } else if (to <= display.viewFrom) { // Change before
- if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {
- resetView(cm);
- } else {
- display.viewFrom += lendiff;
- display.viewTo += lendiff;
- }
- } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap
- resetView(cm);
- } else if (from <= display.viewFrom) { // Top overlap
- var cut = viewCuttingPoint(cm, to, to + lendiff, 1);
- if (cut) {
- display.view = display.view.slice(cut.index);
- display.viewFrom = cut.lineN;
- display.viewTo += lendiff;
- } else {
- resetView(cm);
- }
- } else if (to >= display.viewTo) { // Bottom overlap
- var cut = viewCuttingPoint(cm, from, from, -1);
- if (cut) {
- display.view = display.view.slice(0, cut.index);
- display.viewTo = cut.lineN;
- } else {
- resetView(cm);
- }
- } else { // Gap in the middle
- var cutTop = viewCuttingPoint(cm, from, from, -1);
- var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);
- if (cutTop && cutBot) {
- display.view = display.view.slice(0, cutTop.index)
- .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))
- .concat(display.view.slice(cutBot.index));
- display.viewTo += lendiff;
- } else {
- resetView(cm);
- }
- }
-
- var ext = display.externalMeasured;
- if (ext) {
- if (to < ext.lineN)
- ext.lineN += lendiff;
- else if (from < ext.lineN + ext.size)
- display.externalMeasured = null;
- }
- }
-
- // Register a change to a single line. Type must be one of "text",
- // "gutter", "class", "widget"
- function regLineChange(cm, line, type) {
- cm.curOp.viewChanged = true;
- var display = cm.display, ext = cm.display.externalMeasured;
- if (ext && line >= ext.lineN && line < ext.lineN + ext.size)
- display.externalMeasured = null;
-
- if (line < display.viewFrom || line >= display.viewTo) return;
- var lineView = display.view[findViewIndex(cm, line)];
- if (lineView.node == null) return;
- var arr = lineView.changes || (lineView.changes = []);
- if (indexOf(arr, type) == -1) arr.push(type);
- }
-
- // Clear the view.
- function resetView(cm) {
- cm.display.viewFrom = cm.display.viewTo = cm.doc.first;
- cm.display.view = [];
- cm.display.viewOffset = 0;
- }
-
- // Find the view element corresponding to a given line. Return null
- // when the line isn't visible.
- function findViewIndex(cm, n) {
- if (n >= cm.display.viewTo) return null;
- n -= cm.display.viewFrom;
- if (n < 0) return null;
- var view = cm.display.view;
- for (var i = 0; i < view.length; i++) {
- n -= view[i].size;
- if (n < 0) return i;
- }
- }
-
- function viewCuttingPoint(cm, oldN, newN, dir) {
- var index = findViewIndex(cm, oldN), diff, view = cm.display.view;
- if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)
- return {index: index, lineN: newN};
- for (var i = 0, n = cm.display.viewFrom; i < index; i++)
- n += view[i].size;
- if (n != oldN) {
- if (dir > 0) {
- if (index == view.length - 1) return null;
- diff = (n + view[index].size) - oldN;
- index++;
- } else {
- diff = n - oldN;
- }
- oldN += diff; newN += diff;
- }
- while (visualLineNo(cm.doc, newN) != newN) {
- if (index == (dir < 0 ? 0 : view.length - 1)) return null;
- newN += dir * view[index - (dir < 0 ? 1 : 0)].size;
- index += dir;
- }
- return {index: index, lineN: newN};
- }
-
- // Force the view to cover a given range, adding empty view element
- // or clipping off existing ones as needed.
- function adjustView(cm, from, to) {
- var display = cm.display, view = display.view;
- if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {
- display.view = buildViewArray(cm, from, to);
- display.viewFrom = from;
- } else {
- if (display.viewFrom > from)
- display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view);
- else if (display.viewFrom < from)
- display.view = display.view.slice(findViewIndex(cm, from));
- display.viewFrom = from;
- if (display.viewTo < to)
- display.view = display.view.concat(buildViewArray(cm, display.viewTo, to));
- else if (display.viewTo > to)
- display.view = display.view.slice(0, findViewIndex(cm, to));
- }
- display.viewTo = to;
- }
-
- // Count the number of lines in the view whose DOM representation is
- // out of date (or nonexistent).
- function countDirtyView(cm) {
- var view = cm.display.view, dirty = 0;
- for (var i = 0; i < view.length; i++) {
- var lineView = view[i];
- if (!lineView.hidden && (!lineView.node || lineView.changes)) ++dirty;
- }
- return dirty;
- }
-
- // EVENT HANDLERS
-
- // Attach the necessary event handlers when initializing the editor
- function registerEventHandlers(cm) {
- var d = cm.display;
- on(d.scroller, "mousedown", operation(cm, onMouseDown));
- // Older IE's will not fire a second mousedown for a double click
- if (ie && ie_version < 11)
- on(d.scroller, "dblclick", operation(cm, function(e) {
- if (signalDOMEvent(cm, e)) return;
- var pos = posFromMouse(cm, e);
- if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return;
- e_preventDefault(e);
- var word = cm.findWordAt(pos);
- extendSelection(cm.doc, word.anchor, word.head);
- }));
- else
- on(d.scroller, "dblclick", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); });
- // Some browsers fire contextmenu *after* opening the menu, at
- // which point we can't mess with it anymore. Context menu is
- // handled in onMouseDown for these browsers.
- if (!captureRightClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);});
-
- // Used to suppress mouse event handling when a touch happens
- var touchFinished, prevTouch = {end: 0};
- function finishTouch() {
- if (d.activeTouch) {
- touchFinished = setTimeout(function() {d.activeTouch = null;}, 1000);
- prevTouch = d.activeTouch;
- prevTouch.end = +new Date;
- }
- };
- function isMouseLikeTouchEvent(e) {
- if (e.touches.length != 1) return false;
- var touch = e.touches[0];
- return touch.radiusX <= 1 && touch.radiusY <= 1;
- }
- function farAway(touch, other) {
- if (other.left == null) return true;
- var dx = other.left - touch.left, dy = other.top - touch.top;
- return dx * dx + dy * dy > 20 * 20;
- }
- on(d.scroller, "touchstart", function(e) {
- if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e)) {
- clearTimeout(touchFinished);
- var now = +new Date;
- d.activeTouch = {start: now, moved: false,
- prev: now - prevTouch.end <= 300 ? prevTouch : null};
- if (e.touches.length == 1) {
- d.activeTouch.left = e.touches[0].pageX;
- d.activeTouch.top = e.touches[0].pageY;
- }
- }
- });
- on(d.scroller, "touchmove", function() {
- if (d.activeTouch) d.activeTouch.moved = true;
- });
- on(d.scroller, "touchend", function(e) {
- var touch = d.activeTouch;
- if (touch && !eventInWidget(d, e) && touch.left != null &&
- !touch.moved && new Date - touch.start < 300) {
- var pos = cm.coordsChar(d.activeTouch, "page"), range;
- if (!touch.prev || farAway(touch, touch.prev)) // Single tap
- range = new Range(pos, pos);
- else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap
- range = cm.findWordAt(pos);
- else // Triple tap
- range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0)));
- cm.setSelection(range.anchor, range.head);
- cm.focus();
- e_preventDefault(e);
- }
- finishTouch();
- });
- on(d.scroller, "touchcancel", finishTouch);
-
- // Sync scrolling between fake scrollbars and real scrollable
- // area, ensure viewport is updated when scrolling.
- on(d.scroller, "scroll", function() {
- if (d.scroller.clientHeight) {
- setScrollTop(cm, d.scroller.scrollTop);
- setScrollLeft(cm, d.scroller.scrollLeft, true);
- signal(cm, "scroll", cm);
- }
- });
-
- // Listen to wheel events in order to try and update the viewport on time.
- on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);});
- on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);});
-
- // Prevent wrapper from ever scrolling
- on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });
-
- d.dragFunctions = {
- enter: function(e) {if (!signalDOMEvent(cm, e)) e_stop(e);},
- over: function(e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},
- start: function(e){onDragStart(cm, e);},
- drop: operation(cm, onDrop),
- leave: function(e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}
- };
-
- var inp = d.input.getField();
- on(inp, "keyup", function(e) { onKeyUp.call(cm, e); });
- on(inp, "keydown", operation(cm, onKeyDown));
- on(inp, "keypress", operation(cm, onKeyPress));
- on(inp, "focus", bind(onFocus, cm));
- on(inp, "blur", bind(onBlur, cm));
- }
-
- function dragDropChanged(cm, value, old) {
- var wasOn = old && old != CodeMirror.Init;
- if (!value != !wasOn) {
- var funcs = cm.display.dragFunctions;
- var toggle = value ? on : off;
- toggle(cm.display.scroller, "dragstart", funcs.start);
- toggle(cm.display.scroller, "dragenter", funcs.enter);
- toggle(cm.display.scroller, "dragover", funcs.over);
- toggle(cm.display.scroller, "dragleave", funcs.leave);
- toggle(cm.display.scroller, "drop", funcs.drop);
- }
- }
-
- // Called when the window resizes
- function onResize(cm) {
- var d = cm.display;
- if (d.lastWrapHeight == d.wrapper.clientHeight && d.lastWrapWidth == d.wrapper.clientWidth)
- return;
- // Might be a text scaling operation, clear size caches.
- d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
- d.scrollbarsClipped = false;
- cm.setSize();
- }
-
- // MOUSE EVENTS
-
- // Return true when the given mouse event happened in a widget
- function eventInWidget(display, e) {
- for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {
- if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") ||
- (n.parentNode == display.sizer && n != display.mover))
- return true;
- }
- }
-
- // Given a mouse event, find the corresponding position. If liberal
- // is false, it checks whether a gutter or scrollbar was clicked,
- // and returns null if it was. forRect is used by rectangular
- // selections, and tries to estimate a character position even for
- // coordinates beyond the right of the text.
- function posFromMouse(cm, e, liberal, forRect) {
- var display = cm.display;
- if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") return null;
-
- var x, y, space = display.lineSpace.getBoundingClientRect();
- // Fails unpredictably on IE[67] when mouse is dragged around quickly.
- try { x = e.clientX - space.left; y = e.clientY - space.top; }
- catch (e) { return null; }
- var coords = coordsChar(cm, x, y), line;
- if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {
- var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;
- coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));
- }
- return coords;
- }
-
- // A mouse down can be a single click, double click, triple click,
- // start of selection drag, start of text drag, new cursor
- // (ctrl-click), rectangle drag (alt-drag), or xwin
- // middle-click-paste. Or it might be a click on something we should
- // not interfere with, such as a scrollbar or widget.
- function onMouseDown(e) {
- var cm = this, display = cm.display;
- if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) return;
- display.shift = e.shiftKey;
-
- if (eventInWidget(display, e)) {
- if (!webkit) {
- // Briefly turn off draggability, to allow widgets to do
- // normal dragging things.
- display.scroller.draggable = false;
- setTimeout(function(){display.scroller.draggable = true;}, 100);
- }
- return;
- }
- if (clickInGutter(cm, e)) return;
- var start = posFromMouse(cm, e);
- window.focus();
-
- switch (e_button(e)) {
- case 1:
- // #3261: make sure, that we're not starting a second selection
- if (cm.state.selectingText)
- cm.state.selectingText(e);
- else if (start)
- leftButtonDown(cm, e, start);
- else if (e_target(e) == display.scroller)
- e_preventDefault(e);
- break;
- case 2:
- if (webkit) cm.state.lastMiddleDown = +new Date;
- if (start) extendSelection(cm.doc, start);
- setTimeout(function() {display.input.focus();}, 20);
- e_preventDefault(e);
- break;
- case 3:
- if (captureRightClick) onContextMenu(cm, e);
- else delayBlurEvent(cm);
- break;
- }
- }
-
- var lastClick, lastDoubleClick;
- function leftButtonDown(cm, e, start) {
- if (ie) setTimeout(bind(ensureFocus, cm), 0);
- else cm.curOp.focus = activeElt();
-
- var now = +new Date, type;
- if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) {
- type = "triple";
- } else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) {
- type = "double";
- lastDoubleClick = {time: now, pos: start};
- } else {
- type = "single";
- lastClick = {time: now, pos: start};
- }
-
- var sel = cm.doc.sel, modifier = mac ? e.metaKey : e.ctrlKey, contained;
- if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&
- type == "single" && (contained = sel.contains(start)) > -1 &&
- (cmp((contained = sel.ranges[contained]).from(), start) < 0 || start.xRel > 0) &&
- (cmp(contained.to(), start) > 0 || start.xRel < 0))
- leftButtonStartDrag(cm, e, start, modifier);
- else
- leftButtonSelect(cm, e, start, type, modifier);
- }
-
- // Start a text drag. When it ends, see if any dragging actually
- // happen, and treat as a click if it didn't.
- function leftButtonStartDrag(cm, e, start, modifier) {
- var display = cm.display, startTime = +new Date;
- var dragEnd = operation(cm, function(e2) {
- if (webkit) display.scroller.draggable = false;
- cm.state.draggingText = false;
- off(document, "mouseup", dragEnd);
- off(display.scroller, "drop", dragEnd);
- if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {
- e_preventDefault(e2);
- if (!modifier && +new Date - 200 < startTime)
- extendSelection(cm.doc, start);
- // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
- if (webkit || ie && ie_version == 9)
- setTimeout(function() {document.body.focus(); display.input.focus();}, 20);
- else
- display.input.focus();
- }
- });
- // Let the drag handler handle this.
- if (webkit) display.scroller.draggable = true;
- cm.state.draggingText = dragEnd;
- // IE's approach to draggable
- if (display.scroller.dragDrop) display.scroller.dragDrop();
- on(document, "mouseup", dragEnd);
- on(display.scroller, "drop", dragEnd);
- }
-
- // Normal selection, as opposed to text dragging.
- function leftButtonSelect(cm, e, start, type, addNew) {
- var display = cm.display, doc = cm.doc;
- e_preventDefault(e);
-
- var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;
- if (addNew && !e.shiftKey) {
- ourIndex = doc.sel.contains(start);
- if (ourIndex > -1)
- ourRange = ranges[ourIndex];
- else
- ourRange = new Range(start, start);
- } else {
- ourRange = doc.sel.primary();
- ourIndex = doc.sel.primIndex;
- }
-
- if (chromeOS ? e.shiftKey && e.metaKey : e.altKey) {
- type = "rect";
- if (!addNew) ourRange = new Range(start, start);
- start = posFromMouse(cm, e, true, true);
- ourIndex = -1;
- } else if (type == "double") {
- var word = cm.findWordAt(start);
- if (cm.display.shift || doc.extend)
- ourRange = extendRange(doc, ourRange, word.anchor, word.head);
- else
- ourRange = word;
- } else if (type == "triple") {
- var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0)));
- if (cm.display.shift || doc.extend)
- ourRange = extendRange(doc, ourRange, line.anchor, line.head);
- else
- ourRange = line;
- } else {
- ourRange = extendRange(doc, ourRange, start);
- }
-
- if (!addNew) {
- ourIndex = 0;
- setSelection(doc, new Selection([ourRange], 0), sel_mouse);
- startSel = doc.sel;
- } else if (ourIndex == -1) {
- ourIndex = ranges.length;
- setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),
- {scroll: false, origin: "*mouse"});
- } else if (ranges.length > 1 && ranges[ourIndex].empty() && type == "single" && !e.shiftKey) {
- setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),
- {scroll: false, origin: "*mouse"});
- startSel = doc.sel;
- } else {
- replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);
- }
-
- var lastPos = start;
- function extendTo(pos) {
- if (cmp(lastPos, pos) == 0) return;
- lastPos = pos;
-
- if (type == "rect") {
- var ranges = [], tabSize = cm.options.tabSize;
- var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);
- var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);
- var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);
- for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));
- line <= end; line++) {
- var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);
- if (left == right)
- ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos)));
- else if (text.length > leftPos)
- ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize))));
- }
- if (!ranges.length) ranges.push(new Range(start, start));
- setSelection(doc, normalizeSelection(startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),
- {origin: "*mouse", scroll: false});
- cm.scrollIntoView(pos);
- } else {
- var oldRange = ourRange;
- var anchor = oldRange.anchor, head = pos;
- if (type != "single") {
- if (type == "double")
- var range = cm.findWordAt(pos);
- else
- var range = new Range(Pos(pos.line, 0), clipPos(doc, Pos(pos.line + 1, 0)));
- if (cmp(range.anchor, anchor) > 0) {
- head = range.head;
- anchor = minPos(oldRange.from(), range.anchor);
- } else {
- head = range.anchor;
- anchor = maxPos(oldRange.to(), range.head);
- }
- }
- var ranges = startSel.ranges.slice(0);
- ranges[ourIndex] = new Range(clipPos(doc, anchor), head);
- setSelection(doc, normalizeSelection(ranges, ourIndex), sel_mouse);
- }
- }
-
- var editorSize = display.wrapper.getBoundingClientRect();
- // Used to ensure timeout re-tries don't fire when another extend
- // happened in the meantime (clearTimeout isn't reliable -- at
- // least on Chrome, the timeouts still happen even when cleared,
- // if the clear happens after their scheduled firing time).
- var counter = 0;
-
- function extend(e) {
- var curCount = ++counter;
- var cur = posFromMouse(cm, e, true, type == "rect");
- if (!cur) return;
- if (cmp(cur, lastPos) != 0) {
- cm.curOp.focus = activeElt();
- extendTo(cur);
- var visible = visibleLines(display, doc);
- if (cur.line >= visible.to || cur.line < visible.from)
- setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150);
- } else {
- var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;
- if (outside) setTimeout(operation(cm, function() {
- if (counter != curCount) return;
- display.scroller.scrollTop += outside;
- extend(e);
- }), 50);
- }
- }
-
- function done(e) {
- cm.state.selectingText = false;
- counter = Infinity;
- e_preventDefault(e);
- display.input.focus();
- off(document, "mousemove", move);
- off(document, "mouseup", up);
- doc.history.lastSelOrigin = null;
- }
-
- var move = operation(cm, function(e) {
- if (!e_button(e)) done(e);
- else extend(e);
- });
- var up = operation(cm, done);
- cm.state.selectingText = up;
- on(document, "mousemove", move);
- on(document, "mouseup", up);
- }
-
- // Determines whether an event happened in the gutter, and fires the
- // handlers for the corresponding event.
- function gutterEvent(cm, e, type, prevent) {
- try { var mX = e.clientX, mY = e.clientY; }
- catch(e) { return false; }
- if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) return false;
- if (prevent) e_preventDefault(e);
-
- var display = cm.display;
- var lineBox = display.lineDiv.getBoundingClientRect();
-
- if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e);
- mY -= lineBox.top - display.viewOffset;
-
- for (var i = 0; i < cm.options.gutters.length; ++i) {
- var g = display.gutters.childNodes[i];
- if (g && g.getBoundingClientRect().right >= mX) {
- var line = lineAtHeight(cm.doc, mY);
- var gutter = cm.options.gutters[i];
- signal(cm, type, cm, line, gutter, e);
- return e_defaultPrevented(e);
- }
- }
- }
-
- function clickInGutter(cm, e) {
- return gutterEvent(cm, e, "gutterClick", true);
- }
-
- // Kludge to work around strange IE behavior where it'll sometimes
- // re-fire a series of drag-related events right after the drop (#1551)
- var lastDrop = 0;
-
- function onDrop(e) {
- var cm = this;
- clearDragCursor(cm);
- if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))
- return;
- e_preventDefault(e);
- if (ie) lastDrop = +new Date;
- var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;
- if (!pos || cm.isReadOnly()) return;
- // Might be a file drop, in which case we simply extract the text
- // and insert it.
- if (files && files.length && window.FileReader && window.File) {
- var n = files.length, text = Array(n), read = 0;
- var loadFile = function(file, i) {
- if (cm.options.allowDropFileTypes &&
- indexOf(cm.options.allowDropFileTypes, file.type) == -1)
- return;
-
- var reader = new FileReader;
- reader.onload = operation(cm, function() {
- var content = reader.result;
- if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) content = "";
- text[i] = content;
- if (++read == n) {
- pos = clipPos(cm.doc, pos);
- var change = {from: pos, to: pos,
- text: cm.doc.splitLines(text.join(cm.doc.lineSeparator())),
- origin: "paste"};
- makeChange(cm.doc, change);
- setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change)));
- }
- });
- reader.readAsText(file);
- };
- for (var i = 0; i < n; ++i) loadFile(files[i], i);
- } else { // Normal drop
- // Don't do a replace if the drop happened inside of the selected text.
- if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {
- cm.state.draggingText(e);
- // Ensure the editor is re-focused
- setTimeout(function() {cm.display.input.focus();}, 20);
- return;
- }
- try {
- var text = e.dataTransfer.getData("Text");
- if (text) {
- if (cm.state.draggingText && !(mac ? e.altKey : e.ctrlKey))
- var selected = cm.listSelections();
- setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));
- if (selected) for (var i = 0; i < selected.length; ++i)
- replaceRange(cm.doc, "", selected[i].anchor, selected[i].head, "drag");
- cm.replaceSelection(text, "around", "paste");
- cm.display.input.focus();
- }
- }
- catch(e){}
- }
- }
-
- function onDragStart(cm, e) {
- if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; }
- if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;
-
- e.dataTransfer.setData("Text", cm.getSelection());
- e.dataTransfer.effectAllowed = "copyMove"
-
- // Use dummy image instead of default browsers image.
- // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.
- if (e.dataTransfer.setDragImage && !safari) {
- var img = elt("img", null, null, "position: fixed; left: 0; top: 0;");
- img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
- if (presto) {
- img.width = img.height = 1;
- cm.display.wrapper.appendChild(img);
- // Force a relayout, or Opera won't use our image for some obscure reason
- img._top = img.offsetTop;
- }
- e.dataTransfer.setDragImage(img, 0, 0);
- if (presto) img.parentNode.removeChild(img);
- }
- }
-
- function onDragOver(cm, e) {
- var pos = posFromMouse(cm, e);
- if (!pos) return;
- var frag = document.createDocumentFragment();
- drawSelectionCursor(cm, pos, frag);
- if (!cm.display.dragCursor) {
- cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors");
- cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);
- }
- removeChildrenAndAdd(cm.display.dragCursor, frag);
- }
-
- function clearDragCursor(cm) {
- if (cm.display.dragCursor) {
- cm.display.lineSpace.removeChild(cm.display.dragCursor);
- cm.display.dragCursor = null;
- }
- }
-
- // SCROLL EVENTS
-
- // Sync the scrollable area and scrollbars, ensure the viewport
- // covers the visible area.
- function setScrollTop(cm, val) {
- if (Math.abs(cm.doc.scrollTop - val) < 2) return;
- cm.doc.scrollTop = val;
- if (!gecko) updateDisplaySimple(cm, {top: val});
- if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val;
- cm.display.scrollbars.setScrollTop(val);
- if (gecko) updateDisplaySimple(cm);
- startWorker(cm, 100);
- }
- // Sync scroller and scrollbar, ensure the gutter elements are
- // aligned.
- function setScrollLeft(cm, val, isScroller) {
- if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return;
- val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
- cm.doc.scrollLeft = val;
- alignHorizontally(cm);
- if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val;
- cm.display.scrollbars.setScrollLeft(val);
- }
-
- // Since the delta values reported on mouse wheel events are
- // unstandardized between browsers and even browser versions, and
- // generally horribly unpredictable, this code starts by measuring
- // the scroll effect that the first few mouse wheel events have,
- // and, from that, detects the way it can convert deltas to pixel
- // offsets afterwards.
- //
- // The reason we want to know the amount a wheel event will scroll
- // is that it gives us a chance to update the display before the
- // actual scrolling happens, reducing flickering.
-
- var wheelSamples = 0, wheelPixelsPerUnit = null;
- // Fill in a browser-detected starting value on browsers where we
- // know one. These don't have to be accurate -- the result of them
- // being wrong would just be a slight flicker on the first wheel
- // scroll (if it is large enough).
- if (ie) wheelPixelsPerUnit = -.53;
- else if (gecko) wheelPixelsPerUnit = 15;
- else if (chrome) wheelPixelsPerUnit = -.7;
- else if (safari) wheelPixelsPerUnit = -1/3;
-
- var wheelEventDelta = function(e) {
- var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
- if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail;
- if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail;
- else if (dy == null) dy = e.wheelDelta;
- return {x: dx, y: dy};
- };
- CodeMirror.wheelEventPixels = function(e) {
- var delta = wheelEventDelta(e);
- delta.x *= wheelPixelsPerUnit;
- delta.y *= wheelPixelsPerUnit;
- return delta;
- };
-
- function onScrollWheel(cm, e) {
- var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
-
- var display = cm.display, scroll = display.scroller;
- // Quit if there's nothing to scroll here
- var canScrollX = scroll.scrollWidth > scroll.clientWidth;
- var canScrollY = scroll.scrollHeight > scroll.clientHeight;
- if (!(dx && canScrollX || dy && canScrollY)) return;
-
- // Webkit browsers on OS X abort momentum scrolls when the target
- // of the scroll event is removed from the scrollable element.
- // This hack (see related code in patchDisplay) makes sure the
- // element is kept around.
- if (dy && mac && webkit) {
- outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {
- for (var i = 0; i < view.length; i++) {
- if (view[i].node == cur) {
- cm.display.currentWheelTarget = cur;
- break outer;
- }
- }
- }
- }
-
- // On some browsers, horizontal scrolling will cause redraws to
- // happen before the gutter has been realigned, causing it to
- // wriggle around in a most unseemly way. When we have an
- // estimated pixels/delta value, we just handle horizontal
- // scrolling entirely here. It'll be slightly off from native, but
- // better than glitching out.
- if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
- if (dy && canScrollY)
- setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));
- setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));
- // Only prevent default scrolling if vertical scrolling is
- // actually possible. Otherwise, it causes vertical scroll
- // jitter on OSX trackpads when deltaX is small and deltaY
- // is large (issue #3579)
- if (!dy || (dy && canScrollY))
- e_preventDefault(e);
- display.wheelStartX = null; // Abort measurement, if in progress
- return;
- }
-
- // 'Project' the visible viewport to cover the area that is being
- // scrolled into view (if we know enough to estimate it).
- if (dy && wheelPixelsPerUnit != null) {
- var pixels = dy * wheelPixelsPerUnit;
- var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
- if (pixels < 0) top = Math.max(0, top + pixels - 50);
- else bot = Math.min(cm.doc.height, bot + pixels + 50);
- updateDisplaySimple(cm, {top: top, bottom: bot});
- }
-
- if (wheelSamples < 20) {
- if (display.wheelStartX == null) {
- display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
- display.wheelDX = dx; display.wheelDY = dy;
- setTimeout(function() {
- if (display.wheelStartX == null) return;
- var movedX = scroll.scrollLeft - display.wheelStartX;
- var movedY = scroll.scrollTop - display.wheelStartY;
- var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
- (movedX && display.wheelDX && movedX / display.wheelDX);
- display.wheelStartX = display.wheelStartY = null;
- if (!sample) return;
- wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
- ++wheelSamples;
- }, 200);
- } else {
- display.wheelDX += dx; display.wheelDY += dy;
- }
- }
- }
-
- // KEY EVENTS
-
- // Run a handler that was bound to a key.
- function doHandleBinding(cm, bound, dropShift) {
- if (typeof bound == "string") {
- bound = commands[bound];
- if (!bound) return false;
- }
- // Ensure previous input has been read, so that the handler sees a
- // consistent view of the document
- cm.display.input.ensurePolled();
- var prevShift = cm.display.shift, done = false;
- try {
- if (cm.isReadOnly()) cm.state.suppressEdits = true;
- if (dropShift) cm.display.shift = false;
- done = bound(cm) != Pass;
- } finally {
- cm.display.shift = prevShift;
- cm.state.suppressEdits = false;
- }
- return done;
- }
-
- function lookupKeyForEditor(cm, name, handle) {
- for (var i = 0; i < cm.state.keyMaps.length; i++) {
- var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);
- if (result) return result;
- }
- return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))
- || lookupKey(name, cm.options.keyMap, handle, cm);
- }
-
- var stopSeq = new Delayed;
- function dispatchKey(cm, name, e, handle) {
- var seq = cm.state.keySeq;
- if (seq) {
- if (isModifierKey(name)) return "handled";
- stopSeq.set(50, function() {
- if (cm.state.keySeq == seq) {
- cm.state.keySeq = null;
- cm.display.input.reset();
- }
- });
- name = seq + " " + name;
- }
- var result = lookupKeyForEditor(cm, name, handle);
-
- if (result == "multi")
- cm.state.keySeq = name;
- if (result == "handled")
- signalLater(cm, "keyHandled", cm, name, e);
-
- if (result == "handled" || result == "multi") {
- e_preventDefault(e);
- restartBlink(cm);
- }
-
- if (seq && !result && /\'$/.test(name)) {
- e_preventDefault(e);
- return true;
- }
- return !!result;
- }
-
- // Handle a key from the keydown event.
- function handleKeyBinding(cm, e) {
- var name = keyName(e, true);
- if (!name) return false;
-
- if (e.shiftKey && !cm.state.keySeq) {
- // First try to resolve full name (including 'Shift-'). Failing
- // that, see if there is a cursor-motion command (starting with
- // 'go') bound to the keyname without 'Shift-'.
- return dispatchKey(cm, "Shift-" + name, e, function(b) {return doHandleBinding(cm, b, true);})
- || dispatchKey(cm, name, e, function(b) {
- if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion)
- return doHandleBinding(cm, b);
- });
- } else {
- return dispatchKey(cm, name, e, function(b) { return doHandleBinding(cm, b); });
- }
- }
-
- // Handle a key from the keypress event
- function handleCharBinding(cm, e, ch) {
- return dispatchKey(cm, "'" + ch + "'", e,
- function(b) { return doHandleBinding(cm, b, true); });
- }
-
- var lastStoppedKey = null;
- function onKeyDown(e) {
- var cm = this;
- cm.curOp.focus = activeElt();
- if (signalDOMEvent(cm, e)) return;
- // IE does strange things with escape.
- if (ie && ie_version < 11 && e.keyCode == 27) e.returnValue = false;
- var code = e.keyCode;
- cm.display.shift = code == 16 || e.shiftKey;
- var handled = handleKeyBinding(cm, e);
- if (presto) {
- lastStoppedKey = handled ? code : null;
- // Opera has no cut event... we try to at least catch the key combo
- if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))
- cm.replaceSelection("", null, "cut");
- }
-
- // Turn mouse into crosshair when Alt is held on Mac.
- if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className))
- showCrossHair(cm);
- }
-
- function showCrossHair(cm) {
- var lineDiv = cm.display.lineDiv;
- addClass(lineDiv, "CodeMirror-crosshair");
-
- function up(e) {
- if (e.keyCode == 18 || !e.altKey) {
- rmClass(lineDiv, "CodeMirror-crosshair");
- off(document, "keyup", up);
- off(document, "mouseover", up);
- }
- }
- on(document, "keyup", up);
- on(document, "mouseover", up);
- }
-
- function onKeyUp(e) {
- if (e.keyCode == 16) this.doc.sel.shift = false;
- signalDOMEvent(this, e);
- }
-
- function onKeyPress(e) {
- var cm = this;
- if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) return;
- var keyCode = e.keyCode, charCode = e.charCode;
- if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}
- if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) return;
- var ch = String.fromCharCode(charCode == null ? keyCode : charCode);
- if (handleCharBinding(cm, e, ch)) return;
- cm.display.input.onKeyPress(e);
- }
-
- // FOCUS/BLUR EVENTS
-
- function delayBlurEvent(cm) {
- cm.state.delayingBlurEvent = true;
- setTimeout(function() {
- if (cm.state.delayingBlurEvent) {
- cm.state.delayingBlurEvent = false;
- onBlur(cm);
- }
- }, 100);
- }
-
- function onFocus(cm) {
- if (cm.state.delayingBlurEvent) cm.state.delayingBlurEvent = false;
-
- if (cm.options.readOnly == "nocursor") return;
- if (!cm.state.focused) {
- signal(cm, "focus", cm);
- cm.state.focused = true;
- addClass(cm.display.wrapper, "CodeMirror-focused");
- // This test prevents this from firing when a context
- // menu is closed (since the input reset would kill the
- // select-all detection hack)
- if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {
- cm.display.input.reset();
- if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue #1730
- }
- cm.display.input.receivedFocus();
- }
- restartBlink(cm);
- }
- function onBlur(cm) {
- if (cm.state.delayingBlurEvent) return;
-
- if (cm.state.focused) {
- signal(cm, "blur", cm);
- cm.state.focused = false;
- rmClass(cm.display.wrapper, "CodeMirror-focused");
- }
- clearInterval(cm.display.blinker);
- setTimeout(function() {if (!cm.state.focused) cm.display.shift = false;}, 150);
- }
-
- // CONTEXT MENU HANDLING
-
- // To make the context menu work, we need to briefly unhide the
- // textarea (making it as unobtrusive as possible) to let the
- // right-click take effect on it.
- function onContextMenu(cm, e) {
- if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) return;
- if (signalDOMEvent(cm, e, "contextmenu")) return;
- cm.display.input.onContextMenu(e);
- }
-
- function contextMenuInGutter(cm, e) {
- if (!hasHandler(cm, "gutterContextMenu")) return false;
- return gutterEvent(cm, e, "gutterContextMenu", false);
- }
-
- // UPDATING
-
- // Compute the position of the end of a change (its 'to' property
- // refers to the pre-change end).
- var changeEnd = CodeMirror.changeEnd = function(change) {
- if (!change.text) return change.to;
- return Pos(change.from.line + change.text.length - 1,
- lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0));
- };
-
- // Adjust a position to refer to the post-change position of the
- // same text, or the end of the change if the change covers it.
- function adjustForChange(pos, change) {
- if (cmp(pos, change.from) < 0) return pos;
- if (cmp(pos, change.to) <= 0) return changeEnd(change);
-
- var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;
- if (pos.line == change.to.line) ch += changeEnd(change).ch - change.to.ch;
- return Pos(line, ch);
- }
-
- function computeSelAfterChange(doc, change) {
- var out = [];
- for (var i = 0; i < doc.sel.ranges.length; i++) {
- var range = doc.sel.ranges[i];
- out.push(new Range(adjustForChange(range.anchor, change),
- adjustForChange(range.head, change)));
- }
- return normalizeSelection(out, doc.sel.primIndex);
- }
-
- function offsetPos(pos, old, nw) {
- if (pos.line == old.line)
- return Pos(nw.line, pos.ch - old.ch + nw.ch);
- else
- return Pos(nw.line + (pos.line - old.line), pos.ch);
- }
-
- // Used by replaceSelections to allow moving the selection to the
- // start or around the replaced test. Hint may be "start" or "around".
- function computeReplacedSel(doc, changes, hint) {
- var out = [];
- var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;
- for (var i = 0; i < changes.length; i++) {
- var change = changes[i];
- var from = offsetPos(change.from, oldPrev, newPrev);
- var to = offsetPos(changeEnd(change), oldPrev, newPrev);
- oldPrev = change.to;
- newPrev = to;
- if (hint == "around") {
- var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;
- out[i] = new Range(inv ? to : from, inv ? from : to);
- } else {
- out[i] = new Range(from, from);
- }
- }
- return new Selection(out, doc.sel.primIndex);
- }
-
- // Allow "beforeChange" event handlers to influence a change
- function filterChange(doc, change, update) {
- var obj = {
- canceled: false,
- from: change.from,
- to: change.to,
- text: change.text,
- origin: change.origin,
- cancel: function() { this.canceled = true; }
- };
- if (update) obj.update = function(from, to, text, origin) {
- if (from) this.from = clipPos(doc, from);
- if (to) this.to = clipPos(doc, to);
- if (text) this.text = text;
- if (origin !== undefined) this.origin = origin;
- };
- signal(doc, "beforeChange", doc, obj);
- if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj);
-
- if (obj.canceled) return null;
- return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin};
- }
-
- // Apply a change to a document, and add it to the document's
- // history, and propagating it to all linked documents.
- function makeChange(doc, change, ignoreReadOnly) {
- if (doc.cm) {
- if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly);
- if (doc.cm.state.suppressEdits) return;
- }
-
- if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) {
- change = filterChange(doc, change, true);
- if (!change) return;
- }
-
- // Possibly split or suppress the update based on the presence
- // of read-only spans in its range.
- var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
- if (split) {
- for (var i = split.length - 1; i >= 0; --i)
- makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text});
- } else {
- makeChangeInner(doc, change);
- }
- }
-
- function makeChangeInner(doc, change) {
- if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) return;
- var selAfter = computeSelAfterChange(doc, change);
- addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);
-
- makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));
- var rebased = [];
-
- linkedDocs(doc, function(doc, sharedHist) {
- if (!sharedHist && indexOf(rebased, doc.history) == -1) {
- rebaseHist(doc.history, change);
- rebased.push(doc.history);
- }
- makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));
- });
- }
-
- // Revert a change stored in a document's history.
- function makeChangeFromHistory(doc, type, allowSelectionOnly) {
- if (doc.cm && doc.cm.state.suppressEdits) return;
-
- var hist = doc.history, event, selAfter = doc.sel;
- var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;
-
- // Verify that there is a useable event (so that ctrl-z won't
- // needlessly clear selection events)
- for (var i = 0; i < source.length; i++) {
- event = source[i];
- if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)
- break;
- }
- if (i == source.length) return;
- hist.lastOrigin = hist.lastSelOrigin = null;
-
- for (;;) {
- event = source.pop();
- if (event.ranges) {
- pushSelectionToHistory(event, dest);
- if (allowSelectionOnly && !event.equals(doc.sel)) {
- setSelection(doc, event, {clearRedo: false});
- return;
- }
- selAfter = event;
- }
- else break;
- }
-
- // Build up a reverse change object to add to the opposite history
- // stack (redo when undoing, and vice versa).
- var antiChanges = [];
- pushSelectionToHistory(selAfter, dest);
- dest.push({changes: antiChanges, generation: hist.generation});
- hist.generation = event.generation || ++hist.maxGeneration;
-
- var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange");
-
- for (var i = event.changes.length - 1; i >= 0; --i) {
- var change = event.changes[i];
- change.origin = type;
- if (filter && !filterChange(doc, change, false)) {
- source.length = 0;
- return;
- }
-
- antiChanges.push(historyChangeFromChange(doc, change));
-
- var after = i ? computeSelAfterChange(doc, change) : lst(source);
- makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));
- if (!i && doc.cm) doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)});
- var rebased = [];
-
- // Propagate to the linked documents
- linkedDocs(doc, function(doc, sharedHist) {
- if (!sharedHist && indexOf(rebased, doc.history) == -1) {
- rebaseHist(doc.history, change);
- rebased.push(doc.history);
- }
- makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));
- });
- }
- }
-
- // Sub-views need their line numbers shifted when text is added
- // above or below them in the parent document.
- function shiftDoc(doc, distance) {
- if (distance == 0) return;
- doc.first += distance;
- doc.sel = new Selection(map(doc.sel.ranges, function(range) {
- return new Range(Pos(range.anchor.line + distance, range.anchor.ch),
- Pos(range.head.line + distance, range.head.ch));
- }), doc.sel.primIndex);
- if (doc.cm) {
- regChange(doc.cm, doc.first, doc.first - distance, distance);
- for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)
- regLineChange(doc.cm, l, "gutter");
- }
- }
-
- // More lower-level change function, handling only a single document
- // (not linked ones).
- function makeChangeSingleDoc(doc, change, selAfter, spans) {
- if (doc.cm && !doc.cm.curOp)
- return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans);
-
- if (change.to.line < doc.first) {
- shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));
- return;
- }
- if (change.from.line > doc.lastLine()) return;
-
- // Clip the change to the size of this doc
- if (change.from.line < doc.first) {
- var shift = change.text.length - 1 - (doc.first - change.from.line);
- shiftDoc(doc, shift);
- change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),
- text: [lst(change.text)], origin: change.origin};
- }
- var last = doc.lastLine();
- if (change.to.line > last) {
- change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),
- text: [change.text[0]], origin: change.origin};
- }
-
- change.removed = getBetween(doc, change.from, change.to);
-
- if (!selAfter) selAfter = computeSelAfterChange(doc, change);
- if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans);
- else updateDoc(doc, change, spans);
- setSelectionNoUndo(doc, selAfter, sel_dontScroll);
- }
-
- // Handle the interaction of a change to a document with the editor
- // that this document is part of.
- function makeChangeSingleDocInEditor(cm, change, spans) {
- var doc = cm.doc, display = cm.display, from = change.from, to = change.to;
-
- var recomputeMaxLength = false, checkWidthStart = from.line;
- if (!cm.options.lineWrapping) {
- checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));
- doc.iter(checkWidthStart, to.line + 1, function(line) {
- if (line == display.maxLine) {
- recomputeMaxLength = true;
- return true;
- }
- });
- }
-
- if (doc.sel.contains(change.from, change.to) > -1)
- signalCursorActivity(cm);
-
- updateDoc(doc, change, spans, estimateHeight(cm));
-
- if (!cm.options.lineWrapping) {
- doc.iter(checkWidthStart, from.line + change.text.length, function(line) {
- var len = lineLength(line);
- if (len > display.maxLineLength) {
- display.maxLine = line;
- display.maxLineLength = len;
- display.maxLineChanged = true;
- recomputeMaxLength = false;
- }
- });
- if (recomputeMaxLength) cm.curOp.updateMaxLine = true;
- }
-
- // Adjust frontier, schedule worker
- doc.frontier = Math.min(doc.frontier, from.line);
- startWorker(cm, 400);
-
- var lendiff = change.text.length - (to.line - from.line) - 1;
- // Remember that these lines changed, for updating the display
- if (change.full)
- regChange(cm);
- else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))
- regLineChange(cm, from.line, "text");
- else
- regChange(cm, from.line, to.line + 1, lendiff);
-
- var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change");
- if (changeHandler || changesHandler) {
- var obj = {
- from: from, to: to,
- text: change.text,
- removed: change.removed,
- origin: change.origin
- };
- if (changeHandler) signalLater(cm, "change", cm, obj);
- if (changesHandler) (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj);
- }
- cm.display.selForContextMenu = null;
- }
-
- function replaceRange(doc, code, from, to, origin) {
- if (!to) to = from;
- if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; }
- if (typeof code == "string") code = doc.splitLines(code);
- makeChange(doc, {from: from, to: to, text: code, origin: origin});
- }
-
- // SCROLLING THINGS INTO VIEW
-
- // If an editor sits on the top or bottom of the window, partially
- // scrolled out of view, this ensures that the cursor is visible.
- function maybeScrollWindow(cm, coords) {
- if (signalDOMEvent(cm, "scrollCursorIntoView")) return;
-
- var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;
- if (coords.top + box.top < 0) doScroll = true;
- else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false;
- if (doScroll != null && !phantom) {
- var scrollNode = elt("div", "\u200b", null, "position: absolute; top: " +
- (coords.top - display.viewOffset - paddingTop(cm.display)) + "px; height: " +
- (coords.bottom - coords.top + scrollGap(cm) + display.barHeight) + "px; left: " +
- coords.left + "px; width: 2px;");
- cm.display.lineSpace.appendChild(scrollNode);
- scrollNode.scrollIntoView(doScroll);
- cm.display.lineSpace.removeChild(scrollNode);
- }
- }
-
- // Scroll a given position into view (immediately), verifying that
- // it actually became visible (as line heights are accurately
- // measured, the position of something may 'drift' during drawing).
- function scrollPosIntoView(cm, pos, end, margin) {
- if (margin == null) margin = 0;
- for (var limit = 0; limit < 5; limit++) {
- var changed = false, coords = cursorCoords(cm, pos);
- var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
- var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left),
- Math.min(coords.top, endCoords.top) - margin,
- Math.max(coords.left, endCoords.left),
- Math.max(coords.bottom, endCoords.bottom) + margin);
- var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
- if (scrollPos.scrollTop != null) {
- setScrollTop(cm, scrollPos.scrollTop);
- if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true;
- }
- if (scrollPos.scrollLeft != null) {
- setScrollLeft(cm, scrollPos.scrollLeft);
- if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true;
- }
- if (!changed) break;
- }
- return coords;
- }
-
- // Scroll a given set of coordinates into view (immediately).
- function scrollIntoView(cm, x1, y1, x2, y2) {
- var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2);
- if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop);
- if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft);
- }
-
- // Calculate a new scroll position needed to scroll the given
- // rectangle into view. Returns an object with scrollTop and
- // scrollLeft properties. When these are undefined, the
- // vertical/horizontal position does not need to be adjusted.
- function calculateScrollPos(cm, x1, y1, x2, y2) {
- var display = cm.display, snapMargin = textHeight(cm.display);
- if (y1 < 0) y1 = 0;
- var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
- var screen = displayHeight(cm), result = {};
- if (y2 - y1 > screen) y2 = y1 + screen;
- var docBottom = cm.doc.height + paddingVert(display);
- var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin;
- if (y1 < screentop) {
- result.scrollTop = atTop ? 0 : y1;
- } else if (y2 > screentop + screen) {
- var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen);
- if (newTop != screentop) result.scrollTop = newTop;
- }
-
- var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
- var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);
- var tooWide = x2 - x1 > screenw;
- if (tooWide) x2 = x1 + screenw;
- if (x1 < 10)
- result.scrollLeft = 0;
- else if (x1 < screenleft)
- result.scrollLeft = Math.max(0, x1 - (tooWide ? 0 : 10));
- else if (x2 > screenw + screenleft - 3)
- result.scrollLeft = x2 + (tooWide ? 0 : 10) - screenw;
- return result;
- }
-
- // Store a relative adjustment to the scroll position in the current
- // operation (to be applied when the operation finishes).
- function addToScrollPos(cm, left, top) {
- if (left != null || top != null) resolveScrollToPos(cm);
- if (left != null)
- cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left;
- if (top != null)
- cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;
- }
-
- // Make sure that at the end of the operation the current cursor is
- // shown.
- function ensureCursorVisible(cm) {
- resolveScrollToPos(cm);
- var cur = cm.getCursor(), from = cur, to = cur;
- if (!cm.options.lineWrapping) {
- from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur;
- to = Pos(cur.line, cur.ch + 1);
- }
- cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin, isCursor: true};
- }
-
- // When an operation has its scrollToPos property set, and another
- // scroll action is applied before the end of the operation, this
- // 'simulates' scrolling that position into view in a cheap way, so
- // that the effect of intermediate scroll commands is not ignored.
- function resolveScrollToPos(cm) {
- var range = cm.curOp.scrollToPos;
- if (range) {
- cm.curOp.scrollToPos = null;
- var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);
- var sPos = calculateScrollPos(cm, Math.min(from.left, to.left),
- Math.min(from.top, to.top) - range.margin,
- Math.max(from.right, to.right),
- Math.max(from.bottom, to.bottom) + range.margin);
- cm.scrollTo(sPos.scrollLeft, sPos.scrollTop);
- }
- }
-
- // API UTILITIES
-
- // Indent the given line. The how parameter can be "smart",
- // "add"/null, "subtract", or "prev". When aggressive is false
- // (typically set to true for forced single-line indents), empty
- // lines are not indented, and places where the mode returns Pass
- // are left alone.
- function indentLine(cm, n, how, aggressive) {
- var doc = cm.doc, state;
- if (how == null) how = "add";
- if (how == "smart") {
- // Fall back to "prev" when the mode doesn't have an indentation
- // method.
- if (!doc.mode.indent) how = "prev";
- else state = getStateBefore(cm, n);
- }
-
- var tabSize = cm.options.tabSize;
- var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);
- if (line.stateAfter) line.stateAfter = null;
- var curSpaceString = line.text.match(/^\s*/)[0], indentation;
- if (!aggressive && !/\S/.test(line.text)) {
- indentation = 0;
- how = "not";
- } else if (how == "smart") {
- indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);
- if (indentation == Pass || indentation > 150) {
- if (!aggressive) return;
- how = "prev";
- }
- }
- if (how == "prev") {
- if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize);
- else indentation = 0;
- } else if (how == "add") {
- indentation = curSpace + cm.options.indentUnit;
- } else if (how == "subtract") {
- indentation = curSpace - cm.options.indentUnit;
- } else if (typeof how == "number") {
- indentation = curSpace + how;
- }
- indentation = Math.max(0, indentation);
-
- var indentString = "", pos = 0;
- if (cm.options.indentWithTabs)
- for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";}
- if (pos < indentation) indentString += spaceStr(indentation - pos);
-
- if (indentString != curSpaceString) {
- replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input");
- line.stateAfter = null;
- return true;
- } else {
- // Ensure that, if the cursor was in the whitespace at the start
- // of the line, it is moved to the end of that space.
- for (var i = 0; i < doc.sel.ranges.length; i++) {
- var range = doc.sel.ranges[i];
- if (range.head.line == n && range.head.ch < curSpaceString.length) {
- var pos = Pos(n, curSpaceString.length);
- replaceOneSelection(doc, i, new Range(pos, pos));
- break;
- }
- }
- }
- }
-
- // Utility for applying a change to a line by handle or number,
- // returning the number and optionally registering the line as
- // changed.
- function changeLine(doc, handle, changeType, op) {
- var no = handle, line = handle;
- if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle));
- else no = lineNo(handle);
- if (no == null) return null;
- if (op(line, no) && doc.cm) regLineChange(doc.cm, no, changeType);
- return line;
- }
-
- // Helper for deleting text near the selection(s), used to implement
- // backspace, delete, and similar functionality.
- function deleteNearSelection(cm, compute) {
- var ranges = cm.doc.sel.ranges, kill = [];
- // Build up a set of ranges to kill first, merging overlapping
- // ranges.
- for (var i = 0; i < ranges.length; i++) {
- var toKill = compute(ranges[i]);
- while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {
- var replaced = kill.pop();
- if (cmp(replaced.from, toKill.from) < 0) {
- toKill.from = replaced.from;
- break;
- }
- }
- kill.push(toKill);
- }
- // Next, remove those actual ranges.
- runInOp(cm, function() {
- for (var i = kill.length - 1; i >= 0; i--)
- replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete");
- ensureCursorVisible(cm);
- });
- }
-
- // Used for horizontal relative motion. Dir is -1 or 1 (left or
- // right), unit can be "char", "column" (like char, but doesn't
- // cross line boundaries), "word" (across next word), or "group" (to
- // the start of next group of word or non-word-non-whitespace
- // chars). The visually param controls whether, in right-to-left
- // text, direction 1 means to move towards the next index in the
- // string, or towards the character to the right of the current
- // position. The resulting position will have a hitSide=true
- // property if it reached the end of the document.
- function findPosH(doc, pos, dir, unit, visually) {
- var line = pos.line, ch = pos.ch, origDir = dir;
- var lineObj = getLine(doc, line);
- function findNextLine() {
- var l = line + dir;
- if (l < doc.first || l >= doc.first + doc.size) return false
- line = l;
- return lineObj = getLine(doc, l);
- }
- function moveOnce(boundToLine) {
- var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true);
- if (next == null) {
- if (!boundToLine && findNextLine()) {
- if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj);
- else ch = dir < 0 ? lineObj.text.length : 0;
- } else return false
- } else ch = next;
- return true;
- }
-
- if (unit == "char") {
- moveOnce()
- } else if (unit == "column") {
- moveOnce(true)
- } else if (unit == "word" || unit == "group") {
- var sawType = null, group = unit == "group";
- var helper = doc.cm && doc.cm.getHelper(pos, "wordChars");
- for (var first = true;; first = false) {
- if (dir < 0 && !moveOnce(!first)) break;
- var cur = lineObj.text.charAt(ch) || "\n";
- var type = isWordChar(cur, helper) ? "w"
- : group && cur == "\n" ? "n"
- : !group || /\s/.test(cur) ? null
- : "p";
- if (group && !first && !type) type = "s";
- if (sawType && sawType != type) {
- if (dir < 0) {dir = 1; moveOnce();}
- break;
- }
-
- if (type) sawType = type;
- if (dir > 0 && !moveOnce(!first)) break;
- }
- }
- var result = skipAtomic(doc, Pos(line, ch), pos, origDir, true);
- if (!cmp(pos, result)) result.hitSide = true;
- return result;
- }
-
- // For relative vertical movement. Dir may be -1 or 1. Unit can be
- // "page" or "line". The resulting position will have a hitSide=true
- // property if it reached the end of the document.
- function findPosV(cm, pos, dir, unit) {
- var doc = cm.doc, x = pos.left, y;
- if (unit == "page") {
- var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);
- y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display));
- } else if (unit == "line") {
- y = dir > 0 ? pos.bottom + 3 : pos.top - 3;
- }
- for (;;) {
- var target = coordsChar(cm, x, y);
- if (!target.outside) break;
- if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; }
- y += dir * 5;
- }
- return target;
- }
-
- // EDITOR METHODS
-
- // The publicly visible API. Note that methodOp(f) means
- // 'wrap f in an operation, performed on its `this` parameter'.
-
- // This is not the complete set of editor methods. Most of the
- // methods defined on the Doc type are also injected into
- // CodeMirror.prototype, for backwards compatibility and
- // convenience.
-
- CodeMirror.prototype = {
- constructor: CodeMirror,
- focus: function(){window.focus(); this.display.input.focus();},
-
- setOption: function(option, value) {
- var options = this.options, old = options[option];
- if (options[option] == value && option != "mode") return;
- options[option] = value;
- if (optionHandlers.hasOwnProperty(option))
- operation(this, optionHandlers[option])(this, value, old);
- },
-
- getOption: function(option) {return this.options[option];},
- getDoc: function() {return this.doc;},
-
- addKeyMap: function(map, bottom) {
- this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map));
- },
- removeKeyMap: function(map) {
- var maps = this.state.keyMaps;
- for (var i = 0; i < maps.length; ++i)
- if (maps[i] == map || maps[i].name == map) {
- maps.splice(i, 1);
- return true;
- }
- },
-
- addOverlay: methodOp(function(spec, options) {
- var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);
- if (mode.startState) throw new Error("Overlays may not be stateful.");
- this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque});
- this.state.modeGen++;
- regChange(this);
- }),
- removeOverlay: methodOp(function(spec) {
- var overlays = this.state.overlays;
- for (var i = 0; i < overlays.length; ++i) {
- var cur = overlays[i].modeSpec;
- if (cur == spec || typeof spec == "string" && cur.name == spec) {
- overlays.splice(i, 1);
- this.state.modeGen++;
- regChange(this);
- return;
- }
- }
- }),
-
- indentLine: methodOp(function(n, dir, aggressive) {
- if (typeof dir != "string" && typeof dir != "number") {
- if (dir == null) dir = this.options.smartIndent ? "smart" : "prev";
- else dir = dir ? "add" : "subtract";
- }
- if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive);
- }),
- indentSelection: methodOp(function(how) {
- var ranges = this.doc.sel.ranges, end = -1;
- for (var i = 0; i < ranges.length; i++) {
- var range = ranges[i];
- if (!range.empty()) {
- var from = range.from(), to = range.to();
- var start = Math.max(end, from.line);
- end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;
- for (var j = start; j < end; ++j)
- indentLine(this, j, how);
- var newRanges = this.doc.sel.ranges;
- if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)
- replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll);
- } else if (range.head.line > end) {
- indentLine(this, range.head.line, how, true);
- end = range.head.line;
- if (i == this.doc.sel.primIndex) ensureCursorVisible(this);
- }
- }
- }),
-
- // Fetch the parser token for a given character. Useful for hacks
- // that want to inspect the mode state (say, for completion).
- getTokenAt: function(pos, precise) {
- return takeToken(this, pos, precise);
- },
-
- getLineTokens: function(line, precise) {
- return takeToken(this, Pos(line), precise, true);
- },
-
- getTokenTypeAt: function(pos) {
- pos = clipPos(this.doc, pos);
- var styles = getLineStyles(this, getLine(this.doc, pos.line));
- var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;
- var type;
- if (ch == 0) type = styles[2];
- else for (;;) {
- var mid = (before + after) >> 1;
- if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid;
- else if (styles[mid * 2 + 1] < ch) before = mid + 1;
- else { type = styles[mid * 2 + 2]; break; }
- }
- var cut = type ? type.indexOf("cm-overlay ") : -1;
- return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1);
- },
-
- getModeAt: function(pos) {
- var mode = this.doc.mode;
- if (!mode.innerMode) return mode;
- return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode;
- },
-
- getHelper: function(pos, type) {
- return this.getHelpers(pos, type)[0];
- },
-
- getHelpers: function(pos, type) {
- var found = [];
- if (!helpers.hasOwnProperty(type)) return found;
- var help = helpers[type], mode = this.getModeAt(pos);
- if (typeof mode[type] == "string") {
- if (help[mode[type]]) found.push(help[mode[type]]);
- } else if (mode[type]) {
- for (var i = 0; i < mode[type].length; i++) {
- var val = help[mode[type][i]];
- if (val) found.push(val);
- }
- } else if (mode.helperType && help[mode.helperType]) {
- found.push(help[mode.helperType]);
- } else if (help[mode.name]) {
- found.push(help[mode.name]);
- }
- for (var i = 0; i < help._global.length; i++) {
- var cur = help._global[i];
- if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)
- found.push(cur.val);
- }
- return found;
- },
-
- getStateAfter: function(line, precise) {
- var doc = this.doc;
- line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
- return getStateBefore(this, line + 1, precise);
- },
-
- cursorCoords: function(start, mode) {
- var pos, range = this.doc.sel.primary();
- if (start == null) pos = range.head;
- else if (typeof start == "object") pos = clipPos(this.doc, start);
- else pos = start ? range.from() : range.to();
- return cursorCoords(this, pos, mode || "page");
- },
-
- charCoords: function(pos, mode) {
- return charCoords(this, clipPos(this.doc, pos), mode || "page");
- },
-
- coordsChar: function(coords, mode) {
- coords = fromCoordSystem(this, coords, mode || "page");
- return coordsChar(this, coords.left, coords.top);
- },
-
- lineAtHeight: function(height, mode) {
- height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top;
- return lineAtHeight(this.doc, height + this.display.viewOffset);
- },
- heightAtLine: function(line, mode) {
- var end = false, lineObj;
- if (typeof line == "number") {
- var last = this.doc.first + this.doc.size - 1;
- if (line < this.doc.first) line = this.doc.first;
- else if (line > last) { line = last; end = true; }
- lineObj = getLine(this.doc, line);
- } else {
- lineObj = line;
- }
- return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page").top +
- (end ? this.doc.height - heightAtLine(lineObj) : 0);
- },
-
- defaultTextHeight: function() { return textHeight(this.display); },
- defaultCharWidth: function() { return charWidth(this.display); },
-
- setGutterMarker: methodOp(function(line, gutterID, value) {
- return changeLine(this.doc, line, "gutter", function(line) {
- var markers = line.gutterMarkers || (line.gutterMarkers = {});
- markers[gutterID] = value;
- if (!value && isEmpty(markers)) line.gutterMarkers = null;
- return true;
- });
- }),
-
- clearGutter: methodOp(function(gutterID) {
- var cm = this, doc = cm.doc, i = doc.first;
- doc.iter(function(line) {
- if (line.gutterMarkers && line.gutterMarkers[gutterID]) {
- line.gutterMarkers[gutterID] = null;
- regLineChange(cm, i, "gutter");
- if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null;
- }
- ++i;
- });
- }),
-
- lineInfo: function(line) {
- if (typeof line == "number") {
- if (!isLine(this.doc, line)) return null;
- var n = line;
- line = getLine(this.doc, line);
- if (!line) return null;
- } else {
- var n = lineNo(line);
- if (n == null) return null;
- }
- return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,
- textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,
- widgets: line.widgets};
- },
-
- getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo};},
-
- addWidget: function(pos, node, scroll, vert, horiz) {
- var display = this.display;
- pos = cursorCoords(this, clipPos(this.doc, pos));
- var top = pos.bottom, left = pos.left;
- node.style.position = "absolute";
- node.setAttribute("cm-ignore-events", "true");
- this.display.input.setUneditable(node);
- display.sizer.appendChild(node);
- if (vert == "over") {
- top = pos.top;
- } else if (vert == "above" || vert == "near") {
- var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),
- hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);
- // Default to positioning above (if specified and possible); otherwise default to positioning below
- if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)
- top = pos.top - node.offsetHeight;
- else if (pos.bottom + node.offsetHeight <= vspace)
- top = pos.bottom;
- if (left + node.offsetWidth > hspace)
- left = hspace - node.offsetWidth;
- }
- node.style.top = top + "px";
- node.style.left = node.style.right = "";
- if (horiz == "right") {
- left = display.sizer.clientWidth - node.offsetWidth;
- node.style.right = "0px";
- } else {
- if (horiz == "left") left = 0;
- else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2;
- node.style.left = left + "px";
- }
- if (scroll)
- scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight);
- },
-
- triggerOnKeyDown: methodOp(onKeyDown),
- triggerOnKeyPress: methodOp(onKeyPress),
- triggerOnKeyUp: onKeyUp,
-
- execCommand: function(cmd) {
- if (commands.hasOwnProperty(cmd))
- return commands[cmd].call(null, this);
- },
-
- triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),
-
- findPosH: function(from, amount, unit, visually) {
- var dir = 1;
- if (amount < 0) { dir = -1; amount = -amount; }
- for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {
- cur = findPosH(this.doc, cur, dir, unit, visually);
- if (cur.hitSide) break;
- }
- return cur;
- },
-
- moveH: methodOp(function(dir, unit) {
- var cm = this;
- cm.extendSelectionsBy(function(range) {
- if (cm.display.shift || cm.doc.extend || range.empty())
- return findPosH(cm.doc, range.head, dir, unit, cm.options.rtlMoveVisually);
- else
- return dir < 0 ? range.from() : range.to();
- }, sel_move);
- }),
-
- deleteH: methodOp(function(dir, unit) {
- var sel = this.doc.sel, doc = this.doc;
- if (sel.somethingSelected())
- doc.replaceSelection("", null, "+delete");
- else
- deleteNearSelection(this, function(range) {
- var other = findPosH(doc, range.head, dir, unit, false);
- return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other};
- });
- }),
-
- findPosV: function(from, amount, unit, goalColumn) {
- var dir = 1, x = goalColumn;
- if (amount < 0) { dir = -1; amount = -amount; }
- for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {
- var coords = cursorCoords(this, cur, "div");
- if (x == null) x = coords.left;
- else coords.left = x;
- cur = findPosV(this, coords, dir, unit);
- if (cur.hitSide) break;
- }
- return cur;
- },
-
- moveV: methodOp(function(dir, unit) {
- var cm = this, doc = this.doc, goals = [];
- var collapse = !cm.display.shift && !doc.extend && doc.sel.somethingSelected();
- doc.extendSelectionsBy(function(range) {
- if (collapse)
- return dir < 0 ? range.from() : range.to();
- var headPos = cursorCoords(cm, range.head, "div");
- if (range.goalColumn != null) headPos.left = range.goalColumn;
- goals.push(headPos.left);
- var pos = findPosV(cm, headPos, dir, unit);
- if (unit == "page" && range == doc.sel.primary())
- addToScrollPos(cm, null, charCoords(cm, pos, "div").top - headPos.top);
- return pos;
- }, sel_move);
- if (goals.length) for (var i = 0; i < doc.sel.ranges.length; i++)
- doc.sel.ranges[i].goalColumn = goals[i];
- }),
-
- // Find the word at the given position (as returned by coordsChar).
- findWordAt: function(pos) {
- var doc = this.doc, line = getLine(doc, pos.line).text;
- var start = pos.ch, end = pos.ch;
- if (line) {
- var helper = this.getHelper(pos, "wordChars");
- if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end;
- var startChar = line.charAt(start);
- var check = isWordChar(startChar, helper)
- ? function(ch) { return isWordChar(ch, helper); }
- : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);}
- : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);};
- while (start > 0 && check(line.charAt(start - 1))) --start;
- while (end < line.length && check(line.charAt(end))) ++end;
- }
- return new Range(Pos(pos.line, start), Pos(pos.line, end));
- },
-
- toggleOverwrite: function(value) {
- if (value != null && value == this.state.overwrite) return;
- if (this.state.overwrite = !this.state.overwrite)
- addClass(this.display.cursorDiv, "CodeMirror-overwrite");
- else
- rmClass(this.display.cursorDiv, "CodeMirror-overwrite");
-
- signal(this, "overwriteToggle", this, this.state.overwrite);
- },
- hasFocus: function() { return this.display.input.getField() == activeElt(); },
- isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit); },
-
- scrollTo: methodOp(function(x, y) {
- if (x != null || y != null) resolveScrollToPos(this);
- if (x != null) this.curOp.scrollLeft = x;
- if (y != null) this.curOp.scrollTop = y;
- }),
- getScrollInfo: function() {
- var scroller = this.display.scroller;
- return {left: scroller.scrollLeft, top: scroller.scrollTop,
- height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,
- width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,
- clientHeight: displayHeight(this), clientWidth: displayWidth(this)};
- },
-
- scrollIntoView: methodOp(function(range, margin) {
- if (range == null) {
- range = {from: this.doc.sel.primary().head, to: null};
- if (margin == null) margin = this.options.cursorScrollMargin;
- } else if (typeof range == "number") {
- range = {from: Pos(range, 0), to: null};
- } else if (range.from == null) {
- range = {from: range, to: null};
- }
- if (!range.to) range.to = range.from;
- range.margin = margin || 0;
-
- if (range.from.line != null) {
- resolveScrollToPos(this);
- this.curOp.scrollToPos = range;
- } else {
- var sPos = calculateScrollPos(this, Math.min(range.from.left, range.to.left),
- Math.min(range.from.top, range.to.top) - range.margin,
- Math.max(range.from.right, range.to.right),
- Math.max(range.from.bottom, range.to.bottom) + range.margin);
- this.scrollTo(sPos.scrollLeft, sPos.scrollTop);
- }
- }),
-
- setSize: methodOp(function(width, height) {
- var cm = this;
- function interpret(val) {
- return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val;
- }
- if (width != null) cm.display.wrapper.style.width = interpret(width);
- if (height != null) cm.display.wrapper.style.height = interpret(height);
- if (cm.options.lineWrapping) clearLineMeasurementCache(this);
- var lineNo = cm.display.viewFrom;
- cm.doc.iter(lineNo, cm.display.viewTo, function(line) {
- if (line.widgets) for (var i = 0; i < line.widgets.length; i++)
- if (line.widgets[i].noHScroll) { regLineChange(cm, lineNo, "widget"); break; }
- ++lineNo;
- });
- cm.curOp.forceUpdate = true;
- signal(cm, "refresh", this);
- }),
-
- operation: function(f){return runInOp(this, f);},
-
- refresh: methodOp(function() {
- var oldHeight = this.display.cachedTextHeight;
- regChange(this);
- this.curOp.forceUpdate = true;
- clearCaches(this);
- this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop);
- updateGutterSpace(this);
- if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)
- estimateLineHeights(this);
- signal(this, "refresh", this);
- }),
-
- swapDoc: methodOp(function(doc) {
- var old = this.doc;
- old.cm = null;
- attachDoc(this, doc);
- clearCaches(this);
- this.display.input.reset();
- this.scrollTo(doc.scrollLeft, doc.scrollTop);
- this.curOp.forceScroll = true;
- signalLater(this, "swapDoc", this, old);
- return old;
- }),
-
- getInputField: function(){return this.display.input.getField();},
- getWrapperElement: function(){return this.display.wrapper;},
- getScrollerElement: function(){return this.display.scroller;},
- getGutterElement: function(){return this.display.gutters;}
- };
- eventMixin(CodeMirror);
-
- // OPTION DEFAULTS
-
- // The default configuration options.
- var defaults = CodeMirror.defaults = {};
- // Functions to run when options are changed.
- var optionHandlers = CodeMirror.optionHandlers = {};
-
- function option(name, deflt, handle, notOnInit) {
- CodeMirror.defaults[name] = deflt;
- if (handle) optionHandlers[name] =
- notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle;
- }
-
- // Passed to option handlers when there is no old value.
- var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}};
-
- // These two are, on init, called from the constructor because they
- // have to be initialized before the editor can start at all.
- option("value", "", function(cm, val) {
- cm.setValue(val);
- }, true);
- option("mode", null, function(cm, val) {
- cm.doc.modeOption = val;
- loadMode(cm);
- }, true);
-
- option("indentUnit", 2, loadMode, true);
- option("indentWithTabs", false);
- option("smartIndent", true);
- option("tabSize", 4, function(cm) {
- resetModeState(cm);
- clearCaches(cm);
- regChange(cm);
- }, true);
- option("lineSeparator", null, function(cm, val) {
- cm.doc.lineSep = val;
- if (!val) return;
- var newBreaks = [], lineNo = cm.doc.first;
- cm.doc.iter(function(line) {
- for (var pos = 0;;) {
- var found = line.text.indexOf(val, pos);
- if (found == -1) break;
- pos = found + val.length;
- newBreaks.push(Pos(lineNo, found));
- }
- lineNo++;
- });
- for (var i = newBreaks.length - 1; i >= 0; i--)
- replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length))
- });
- option("specialChars", /[\u0000-\u001f\u007f\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(cm, val, old) {
- cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
- if (old != CodeMirror.Init) cm.refresh();
- });
- option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true);
- option("electricChars", true);
- option("inputStyle", mobile ? "contenteditable" : "textarea", function() {
- throw new Error("inputStyle can not (yet) be changed in a running editor"); // FIXME
- }, true);
- option("rtlMoveVisually", !windows);
- option("wholeLineUpdateBefore", true);
-
- option("theme", "default", function(cm) {
- themeChanged(cm);
- guttersChanged(cm);
- }, true);
- option("keyMap", "default", function(cm, val, old) {
- var next = getKeyMap(val);
- var prev = old != CodeMirror.Init && getKeyMap(old);
- if (prev && prev.detach) prev.detach(cm, next);
- if (next.attach) next.attach(cm, prev || null);
- });
- option("extraKeys", null);
-
- option("lineWrapping", false, wrappingChanged, true);
- option("gutters", [], function(cm) {
- setGuttersForLineNumbers(cm.options);
- guttersChanged(cm);
- }, true);
- option("fixedGutter", true, function(cm, val) {
- cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0";
- cm.refresh();
- }, true);
- option("coverGutterNextToScrollbar", false, function(cm) {updateScrollbars(cm);}, true);
- option("scrollbarStyle", "native", function(cm) {
- initScrollbars(cm);
- updateScrollbars(cm);
- cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);
- cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);
- }, true);
- option("lineNumbers", false, function(cm) {
- setGuttersForLineNumbers(cm.options);
- guttersChanged(cm);
- }, true);
- option("firstLineNumber", 1, guttersChanged, true);
- option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true);
- option("showCursorWhenSelecting", false, updateSelection, true);
-
- option("resetSelectionOnContextMenu", true);
- option("lineWiseCopyCut", true);
-
- option("readOnly", false, function(cm, val) {
- if (val == "nocursor") {
- onBlur(cm);
- cm.display.input.blur();
- cm.display.disabled = true;
- } else {
- cm.display.disabled = false;
- }
- cm.display.input.readOnlyChanged(val)
- });
- option("disableInput", false, function(cm, val) {if (!val) cm.display.input.reset();}, true);
- option("dragDrop", true, dragDropChanged);
- option("allowDropFileTypes", null);
-
- option("cursorBlinkRate", 530);
- option("cursorScrollMargin", 0);
- option("cursorHeight", 1, updateSelection, true);
- option("singleCursorHeightPerLine", true, updateSelection, true);
- option("workTime", 100);
- option("workDelay", 100);
- option("flattenSpans", true, resetModeState, true);
- option("addModeClass", false, resetModeState, true);
- option("pollInterval", 100);
- option("undoDepth", 200, function(cm, val){cm.doc.history.undoDepth = val;});
- option("historyEventDelay", 1250);
- option("viewportMargin", 10, function(cm){cm.refresh();}, true);
- option("maxHighlightLength", 10000, resetModeState, true);
- option("moveInputWithCursor", true, function(cm, val) {
- if (!val) cm.display.input.resetPosition();
- });
-
- option("tabindex", null, function(cm, val) {
- cm.display.input.getField().tabIndex = val || "";
- });
- option("autofocus", null);
-
- // MODE DEFINITION AND QUERYING
-
- // Known modes, by name and by MIME
- var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};
-
- // Extra arguments are stored as the mode's dependencies, which is
- // used by (legacy) mechanisms like loadmode.js to automatically
- // load a mode. (Preferred mechanism is the require/define calls.)
- CodeMirror.defineMode = function(name, mode) {
- if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name;
- if (arguments.length > 2)
- mode.dependencies = Array.prototype.slice.call(arguments, 2);
- modes[name] = mode;
- };
-
- CodeMirror.defineMIME = function(mime, spec) {
- mimeModes[mime] = spec;
- };
-
- // Given a MIME type, a {name, ...options} config object, or a name
- // string, return a mode config object.
- CodeMirror.resolveMode = function(spec) {
- if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
- spec = mimeModes[spec];
- } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
- var found = mimeModes[spec.name];
- if (typeof found == "string") found = {name: found};
- spec = createObj(found, spec);
- spec.name = found.name;
- } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) {
- return CodeMirror.resolveMode("application/xml");
- }
- if (typeof spec == "string") return {name: spec};
- else return spec || {name: "null"};
- };
-
- // Given a mode spec (anything that resolveMode accepts), find and
- // initialize an actual mode object.
- CodeMirror.getMode = function(options, spec) {
- var spec = CodeMirror.resolveMode(spec);
- var mfactory = modes[spec.name];
- if (!mfactory) return CodeMirror.getMode(options, "text/plain");
- var modeObj = mfactory(options, spec);
- if (modeExtensions.hasOwnProperty(spec.name)) {
- var exts = modeExtensions[spec.name];
- for (var prop in exts) {
- if (!exts.hasOwnProperty(prop)) continue;
- if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop];
- modeObj[prop] = exts[prop];
- }
- }
- modeObj.name = spec.name;
- if (spec.helperType) modeObj.helperType = spec.helperType;
- if (spec.modeProps) for (var prop in spec.modeProps)
- modeObj[prop] = spec.modeProps[prop];
-
- return modeObj;
- };
-
- // Minimal default mode.
- CodeMirror.defineMode("null", function() {
- return {token: function(stream) {stream.skipToEnd();}};
- });
- CodeMirror.defineMIME("text/plain", "null");
-
- // This can be used to attach properties to mode objects from
- // outside the actual mode definition.
- var modeExtensions = CodeMirror.modeExtensions = {};
- CodeMirror.extendMode = function(mode, properties) {
- var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});
- copyObj(properties, exts);
- };
-
- // EXTENSIONS
-
- CodeMirror.defineExtension = function(name, func) {
- CodeMirror.prototype[name] = func;
- };
- CodeMirror.defineDocExtension = function(name, func) {
- Doc.prototype[name] = func;
- };
- CodeMirror.defineOption = option;
-
- var initHooks = [];
- CodeMirror.defineInitHook = function(f) {initHooks.push(f);};
-
- var helpers = CodeMirror.helpers = {};
- CodeMirror.registerHelper = function(type, name, value) {
- if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {_global: []};
- helpers[type][name] = value;
- };
- CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {
- CodeMirror.registerHelper(type, name, value);
- helpers[type]._global.push({pred: predicate, val: value});
- };
-
- // MODE STATE HANDLING
-
- // Utility functions for working with state. Exported because nested
- // modes need to do this for their inner modes.
-
- var copyState = CodeMirror.copyState = function(mode, state) {
- if (state === true) return state;
- if (mode.copyState) return mode.copyState(state);
- var nstate = {};
- for (var n in state) {
- var val = state[n];
- if (val instanceof Array) val = val.concat([]);
- nstate[n] = val;
- }
- return nstate;
- };
-
- var startState = CodeMirror.startState = function(mode, a1, a2) {
- return mode.startState ? mode.startState(a1, a2) : true;
- };
-
- // Given a mode and a state (for that mode), find the inner mode and
- // state at the position that the state refers to.
- CodeMirror.innerMode = function(mode, state) {
- while (mode.innerMode) {
- var info = mode.innerMode(state);
- if (!info || info.mode == mode) break;
- state = info.state;
- mode = info.mode;
- }
- return info || {mode: mode, state: state};
- };
-
- // STANDARD COMMANDS
-
- // Commands are parameter-less actions that can be performed on an
- // editor, mostly used for keybindings.
- var commands = CodeMirror.commands = {
- selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);},
- singleSelection: function(cm) {
- cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll);
- },
- killLine: function(cm) {
- deleteNearSelection(cm, function(range) {
- if (range.empty()) {
- var len = getLine(cm.doc, range.head.line).text.length;
- if (range.head.ch == len && range.head.line < cm.lastLine())
- return {from: range.head, to: Pos(range.head.line + 1, 0)};
- else
- return {from: range.head, to: Pos(range.head.line, len)};
- } else {
- return {from: range.from(), to: range.to()};
- }
- });
- },
- deleteLine: function(cm) {
- deleteNearSelection(cm, function(range) {
- return {from: Pos(range.from().line, 0),
- to: clipPos(cm.doc, Pos(range.to().line + 1, 0))};
- });
- },
- delLineLeft: function(cm) {
- deleteNearSelection(cm, function(range) {
- return {from: Pos(range.from().line, 0), to: range.from()};
- });
- },
- delWrappedLineLeft: function(cm) {
- deleteNearSelection(cm, function(range) {
- var top = cm.charCoords(range.head, "div").top + 5;
- var leftPos = cm.coordsChar({left: 0, top: top}, "div");
- return {from: leftPos, to: range.from()};
- });
- },
- delWrappedLineRight: function(cm) {
- deleteNearSelection(cm, function(range) {
- var top = cm.charCoords(range.head, "div").top + 5;
- var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div");
- return {from: range.from(), to: rightPos };
- });
- },
- undo: function(cm) {cm.undo();},
- redo: function(cm) {cm.redo();},
- undoSelection: function(cm) {cm.undoSelection();},
- redoSelection: function(cm) {cm.redoSelection();},
- goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));},
- goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));},
- goLineStart: function(cm) {
- cm.extendSelectionsBy(function(range) { return lineStart(cm, range.head.line); },
- {origin: "+move", bias: 1});
- },
- goLineStartSmart: function(cm) {
- cm.extendSelectionsBy(function(range) {
- return lineStartSmart(cm, range.head);
- }, {origin: "+move", bias: 1});
- },
- goLineEnd: function(cm) {
- cm.extendSelectionsBy(function(range) { return lineEnd(cm, range.head.line); },
- {origin: "+move", bias: -1});
- },
- goLineRight: function(cm) {
- cm.extendSelectionsBy(function(range) {
- var top = cm.charCoords(range.head, "div").top + 5;
- return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div");
- }, sel_move);
- },
- goLineLeft: function(cm) {
- cm.extendSelectionsBy(function(range) {
- var top = cm.charCoords(range.head, "div").top + 5;
- return cm.coordsChar({left: 0, top: top}, "div");
- }, sel_move);
- },
- goLineLeftSmart: function(cm) {
- cm.extendSelectionsBy(function(range) {
- var top = cm.charCoords(range.head, "div").top + 5;
- var pos = cm.coordsChar({left: 0, top: top}, "div");
- if (pos.ch < cm.getLine(pos.line).search(/\S/)) return lineStartSmart(cm, range.head);
- return pos;
- }, sel_move);
- },
- goLineUp: function(cm) {cm.moveV(-1, "line");},
- goLineDown: function(cm) {cm.moveV(1, "line");},
- goPageUp: function(cm) {cm.moveV(-1, "page");},
- goPageDown: function(cm) {cm.moveV(1, "page");},
- goCharLeft: function(cm) {cm.moveH(-1, "char");},
- goCharRight: function(cm) {cm.moveH(1, "char");},
- goColumnLeft: function(cm) {cm.moveH(-1, "column");},
- goColumnRight: function(cm) {cm.moveH(1, "column");},
- goWordLeft: function(cm) {cm.moveH(-1, "word");},
- goGroupRight: function(cm) {cm.moveH(1, "group");},
- goGroupLeft: function(cm) {cm.moveH(-1, "group");},
- goWordRight: function(cm) {cm.moveH(1, "word");},
- delCharBefore: function(cm) {cm.deleteH(-1, "char");},
- delCharAfter: function(cm) {cm.deleteH(1, "char");},
- delWordBefore: function(cm) {cm.deleteH(-1, "word");},
- delWordAfter: function(cm) {cm.deleteH(1, "word");},
- delGroupBefore: function(cm) {cm.deleteH(-1, "group");},
- delGroupAfter: function(cm) {cm.deleteH(1, "group");},
- indentAuto: function(cm) {cm.indentSelection("smart");},
- indentMore: function(cm) {cm.indentSelection("add");},
- indentLess: function(cm) {cm.indentSelection("subtract");},
- insertTab: function(cm) {cm.replaceSelection("\t");},
- insertSoftTab: function(cm) {
- var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;
- for (var i = 0; i < ranges.length; i++) {
- var pos = ranges[i].from();
- var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);
- spaces.push(spaceStr(tabSize - col % tabSize));
- }
- cm.replaceSelections(spaces);
- },
- defaultTab: function(cm) {
- if (cm.somethingSelected()) cm.indentSelection("add");
- else cm.execCommand("insertTab");
- },
- transposeChars: function(cm) {
- runInOp(cm, function() {
- var ranges = cm.listSelections(), newSel = [];
- for (var i = 0; i < ranges.length; i++) {
- var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;
- if (line) {
- if (cur.ch == line.length) cur = new Pos(cur.line, cur.ch - 1);
- if (cur.ch > 0) {
- cur = new Pos(cur.line, cur.ch + 1);
- cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),
- Pos(cur.line, cur.ch - 2), cur, "+transpose");
- } else if (cur.line > cm.doc.first) {
- var prev = getLine(cm.doc, cur.line - 1).text;
- if (prev)
- cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +
- prev.charAt(prev.length - 1),
- Pos(cur.line - 1, prev.length - 1), Pos(cur.line, 1), "+transpose");
- }
- }
- newSel.push(new Range(cur, cur));
- }
- cm.setSelections(newSel);
- });
- },
- newlineAndIndent: function(cm) {
- runInOp(cm, function() {
- var len = cm.listSelections().length;
- for (var i = 0; i < len; i++) {
- var range = cm.listSelections()[i];
- cm.replaceRange(cm.doc.lineSeparator(), range.anchor, range.head, "+input");
- cm.indentLine(range.from().line + 1, null, true);
- }
- ensureCursorVisible(cm);
- });
- },
- openLine: function(cm) {cm.replaceSelection("\n", "start")},
- toggleOverwrite: function(cm) {cm.toggleOverwrite();}
- };
-
-
- // STANDARD KEYMAPS
-
- var keyMap = CodeMirror.keyMap = {};
-
- keyMap.basic = {
- "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown",
- "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown",
- "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore",
- "Tab": "defaultTab", "Shift-Tab": "indentAuto",
- "Enter": "newlineAndIndent", "Insert": "toggleOverwrite",
- "Esc": "singleSelection"
- };
- // Note that the save and find-related commands aren't defined by
- // default. User code or addons can define them. Unknown commands
- // are simply ignored.
- keyMap.pcDefault = {
- "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo",
- "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown",
- "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd",
- "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find",
- "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
- "Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
- "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
- fallthrough: "basic"
- };
- // Very basic readline/emacs-style bindings, which are standard on Mac.
- keyMap.emacsy = {
- "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
- "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
- "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore",
- "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars",
- "Ctrl-O": "openLine"
- };
- keyMap.macDefault = {
- "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo",
- "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft",
- "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore",
- "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find",
- "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
- "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
- "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
- fallthrough: ["basic", "emacsy"]
- };
- keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
-
- // KEYMAP DISPATCH
-
- function normalizeKeyName(name) {
- var parts = name.split(/-(?!$)/), name = parts[parts.length - 1];
- var alt, ctrl, shift, cmd;
- for (var i = 0; i < parts.length - 1; i++) {
- var mod = parts[i];
- if (/^(cmd|meta|m)$/i.test(mod)) cmd = true;
- else if (/^a(lt)?$/i.test(mod)) alt = true;
- else if (/^(c|ctrl|control)$/i.test(mod)) ctrl = true;
- else if (/^s(hift)$/i.test(mod)) shift = true;
- else throw new Error("Unrecognized modifier name: " + mod);
- }
- if (alt) name = "Alt-" + name;
- if (ctrl) name = "Ctrl-" + name;
- if (cmd) name = "Cmd-" + name;
- if (shift) name = "Shift-" + name;
- return name;
- }
-
- // This is a kludge to keep keymaps mostly working as raw objects
- // (backwards compatibility) while at the same time support features
- // like normalization and multi-stroke key bindings. It compiles a
- // new normalized keymap, and then updates the old object to reflect
- // this.
- CodeMirror.normalizeKeyMap = function(keymap) {
- var copy = {};
- for (var keyname in keymap) if (keymap.hasOwnProperty(keyname)) {
- var value = keymap[keyname];
- if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) continue;
- if (value == "...") { delete keymap[keyname]; continue; }
-
- var keys = map(keyname.split(" "), normalizeKeyName);
- for (var i = 0; i < keys.length; i++) {
- var val, name;
- if (i == keys.length - 1) {
- name = keys.join(" ");
- val = value;
- } else {
- name = keys.slice(0, i + 1).join(" ");
- val = "...";
- }
- var prev = copy[name];
- if (!prev) copy[name] = val;
- else if (prev != val) throw new Error("Inconsistent bindings for " + name);
- }
- delete keymap[keyname];
- }
- for (var prop in copy) keymap[prop] = copy[prop];
- return keymap;
- };
-
- var lookupKey = CodeMirror.lookupKey = function(key, map, handle, context) {
- map = getKeyMap(map);
- var found = map.call ? map.call(key, context) : map[key];
- if (found === false) return "nothing";
- if (found === "...") return "multi";
- if (found != null && handle(found)) return "handled";
-
- if (map.fallthrough) {
- if (Object.prototype.toString.call(map.fallthrough) != "[object Array]")
- return lookupKey(key, map.fallthrough, handle, context);
- for (var i = 0; i < map.fallthrough.length; i++) {
- var result = lookupKey(key, map.fallthrough[i], handle, context);
- if (result) return result;
- }
- }
- };
-
- // Modifier key presses don't count as 'real' key presses for the
- // purpose of keymap fallthrough.
- var isModifierKey = CodeMirror.isModifierKey = function(value) {
- var name = typeof value == "string" ? value : keyNames[value.keyCode];
- return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod";
- };
-
- // Look up the name of a key as indicated by an event object.
- var keyName = CodeMirror.keyName = function(event, noShift) {
- if (presto && event.keyCode == 34 && event["char"]) return false;
- var base = keyNames[event.keyCode], name = base;
- if (name == null || event.altGraphKey) return false;
- if (event.altKey && base != "Alt") name = "Alt-" + name;
- if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") name = "Ctrl-" + name;
- if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") name = "Cmd-" + name;
- if (!noShift && event.shiftKey && base != "Shift") name = "Shift-" + name;
- return name;
- };
-
- function getKeyMap(val) {
- return typeof val == "string" ? keyMap[val] : val;
- }
-
- // FROMTEXTAREA
-
- CodeMirror.fromTextArea = function(textarea, options) {
- options = options ? copyObj(options) : {};
- options.value = textarea.value;
- if (!options.tabindex && textarea.tabIndex)
- options.tabindex = textarea.tabIndex;
- if (!options.placeholder && textarea.placeholder)
- options.placeholder = textarea.placeholder;
- // Set autofocus to true if this textarea is focused, or if it has
- // autofocus and no other element is focused.
- if (options.autofocus == null) {
- var hasFocus = activeElt();
- options.autofocus = hasFocus == textarea ||
- textarea.getAttribute("autofocus") != null && hasFocus == document.body;
- }
-
- function save() {textarea.value = cm.getValue();}
- if (textarea.form) {
- on(textarea.form, "submit", save);
- // Deplorable hack to make the submit method do the right thing.
- if (!options.leaveSubmitMethodAlone) {
- var form = textarea.form, realSubmit = form.submit;
- try {
- var wrappedSubmit = form.submit = function() {
- save();
- form.submit = realSubmit;
- form.submit();
- form.submit = wrappedSubmit;
- };
- } catch(e) {}
- }
- }
-
- options.finishInit = function(cm) {
- cm.save = save;
- cm.getTextArea = function() { return textarea; };
- cm.toTextArea = function() {
- cm.toTextArea = isNaN; // Prevent this from being ran twice
- save();
- textarea.parentNode.removeChild(cm.getWrapperElement());
- textarea.style.display = "";
- if (textarea.form) {
- off(textarea.form, "submit", save);
- if (typeof textarea.form.submit == "function")
- textarea.form.submit = realSubmit;
- }
- };
- };
-
- textarea.style.display = "none";
- var cm = CodeMirror(function(node) {
- textarea.parentNode.insertBefore(node, textarea.nextSibling);
- }, options);
- return cm;
- };
-
- // STRING STREAM
-
- // Fed to the mode parsers, provides helper functions to make
- // parsers more succinct.
-
- var StringStream = CodeMirror.StringStream = function(string, tabSize) {
- this.pos = this.start = 0;
- this.string = string;
- this.tabSize = tabSize || 8;
- this.lastColumnPos = this.lastColumnValue = 0;
- this.lineStart = 0;
- };
-
- StringStream.prototype = {
- eol: function() {return this.pos >= this.string.length;},
- sol: function() {return this.pos == this.lineStart;},
- peek: function() {return this.string.charAt(this.pos) || undefined;},
- next: function() {
- if (this.pos < this.string.length)
- return this.string.charAt(this.pos++);
- },
- eat: function(match) {
- var ch = this.string.charAt(this.pos);
- if (typeof match == "string") var ok = ch == match;
- else var ok = ch && (match.test ? match.test(ch) : match(ch));
- if (ok) {++this.pos; return ch;}
- },
- eatWhile: function(match) {
- var start = this.pos;
- while (this.eat(match)){}
- return this.pos > start;
- },
- eatSpace: function() {
- var start = this.pos;
- while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;
- return this.pos > start;
- },
- skipToEnd: function() {this.pos = this.string.length;},
- skipTo: function(ch) {
- var found = this.string.indexOf(ch, this.pos);
- if (found > -1) {this.pos = found; return true;}
- },
- backUp: function(n) {this.pos -= n;},
- column: function() {
- if (this.lastColumnPos < this.start) {
- this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);
- this.lastColumnPos = this.start;
- }
- return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
- },
- indentation: function() {
- return countColumn(this.string, null, this.tabSize) -
- (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
- },
- match: function(pattern, consume, caseInsensitive) {
- if (typeof pattern == "string") {
- var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};
- var substr = this.string.substr(this.pos, pattern.length);
- if (cased(substr) == cased(pattern)) {
- if (consume !== false) this.pos += pattern.length;
- return true;
- }
- } else {
- var match = this.string.slice(this.pos).match(pattern);
- if (match && match.index > 0) return null;
- if (match && consume !== false) this.pos += match[0].length;
- return match;
- }
- },
- current: function(){return this.string.slice(this.start, this.pos);},
- hideFirstChars: function(n, inner) {
- this.lineStart += n;
- try { return inner(); }
- finally { this.lineStart -= n; }
- }
- };
-
- // TEXTMARKERS
-
- // Created with markText and setBookmark methods. A TextMarker is a
- // handle that can be used to clear or find a marked position in the
- // document. Line objects hold arrays (markedSpans) containing
- // {from, to, marker} object pointing to such marker objects, and
- // indicating that such a marker is present on that line. Multiple
- // lines may point to the same marker when it spans across lines.
- // The spans will have null for their from/to properties when the
- // marker continues beyond the start/end of the line. Markers have
- // links back to the lines they currently touch.
-
- var nextMarkerId = 0;
-
- var TextMarker = CodeMirror.TextMarker = function(doc, type) {
- this.lines = [];
- this.type = type;
- this.doc = doc;
- this.id = ++nextMarkerId;
- };
- eventMixin(TextMarker);
-
- // Clear the marker.
- TextMarker.prototype.clear = function() {
- if (this.explicitlyCleared) return;
- var cm = this.doc.cm, withOp = cm && !cm.curOp;
- if (withOp) startOperation(cm);
- if (hasHandler(this, "clear")) {
- var found = this.find();
- if (found) signalLater(this, "clear", found.from, found.to);
- }
- var min = null, max = null;
- for (var i = 0; i < this.lines.length; ++i) {
- var line = this.lines[i];
- var span = getMarkedSpanFor(line.markedSpans, this);
- if (cm && !this.collapsed) regLineChange(cm, lineNo(line), "text");
- else if (cm) {
- if (span.to != null) max = lineNo(line);
- if (span.from != null) min = lineNo(line);
- }
- line.markedSpans = removeMarkedSpan(line.markedSpans, span);
- if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)
- updateLineHeight(line, textHeight(cm.display));
- }
- if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) {
- var visual = visualLine(this.lines[i]), len = lineLength(visual);
- if (len > cm.display.maxLineLength) {
- cm.display.maxLine = visual;
- cm.display.maxLineLength = len;
- cm.display.maxLineChanged = true;
- }
- }
-
- if (min != null && cm && this.collapsed) regChange(cm, min, max + 1);
- this.lines.length = 0;
- this.explicitlyCleared = true;
- if (this.atomic && this.doc.cantEdit) {
- this.doc.cantEdit = false;
- if (cm) reCheckSelection(cm.doc);
- }
- if (cm) signalLater(cm, "markerCleared", cm, this);
- if (withOp) endOperation(cm);
- if (this.parent) this.parent.clear();
- };
-
- // Find the position of the marker in the document. Returns a {from,
- // to} object by default. Side can be passed to get a specific side
- // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the
- // Pos objects returned contain a line object, rather than a line
- // number (used to prevent looking up the same line twice).
- TextMarker.prototype.find = function(side, lineObj) {
- if (side == null && this.type == "bookmark") side = 1;
- var from, to;
- for (var i = 0; i < this.lines.length; ++i) {
- var line = this.lines[i];
- var span = getMarkedSpanFor(line.markedSpans, this);
- if (span.from != null) {
- from = Pos(lineObj ? line : lineNo(line), span.from);
- if (side == -1) return from;
- }
- if (span.to != null) {
- to = Pos(lineObj ? line : lineNo(line), span.to);
- if (side == 1) return to;
- }
- }
- return from && {from: from, to: to};
- };
-
- // Signals that the marker's widget changed, and surrounding layout
- // should be recomputed.
- TextMarker.prototype.changed = function() {
- var pos = this.find(-1, true), widget = this, cm = this.doc.cm;
- if (!pos || !cm) return;
- runInOp(cm, function() {
- var line = pos.line, lineN = lineNo(pos.line);
- var view = findViewForLine(cm, lineN);
- if (view) {
- clearLineMeasurementCacheFor(view);
- cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;
- }
- cm.curOp.updateMaxLine = true;
- if (!lineIsHidden(widget.doc, line) && widget.height != null) {
- var oldHeight = widget.height;
- widget.height = null;
- var dHeight = widgetHeight(widget) - oldHeight;
- if (dHeight)
- updateLineHeight(line, line.height + dHeight);
- }
- });
- };
-
- TextMarker.prototype.attachLine = function(line) {
- if (!this.lines.length && this.doc.cm) {
- var op = this.doc.cm.curOp;
- if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)
- (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this);
- }
- this.lines.push(line);
- };
- TextMarker.prototype.detachLine = function(line) {
- this.lines.splice(indexOf(this.lines, line), 1);
- if (!this.lines.length && this.doc.cm) {
- var op = this.doc.cm.curOp;
- (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);
- }
- };
-
- // Collapsed markers have unique ids, in order to be able to order
- // them, which is needed for uniquely determining an outer marker
- // when they overlap (they may nest, but not partially overlap).
- var nextMarkerId = 0;
-
- // Create a marker, wire it up to the right lines, and
- function markText(doc, from, to, options, type) {
- // Shared markers (across linked documents) are handled separately
- // (markTextShared will call out to this again, once per
- // document).
- if (options && options.shared) return markTextShared(doc, from, to, options, type);
- // Ensure we are in an operation.
- if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type);
-
- var marker = new TextMarker(doc, type), diff = cmp(from, to);
- if (options) copyObj(options, marker, false);
- // Don't connect empty markers unless clearWhenEmpty is false
- if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)
- return marker;
- if (marker.replacedWith) {
- // Showing up as a widget implies collapsed (widget replaces text)
- marker.collapsed = true;
- marker.widgetNode = elt("span", [marker.replacedWith], "CodeMirror-widget");
- if (!options.handleMouseEvents) marker.widgetNode.setAttribute("cm-ignore-events", "true");
- if (options.insertLeft) marker.widgetNode.insertLeft = true;
- }
- if (marker.collapsed) {
- if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||
- from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))
- throw new Error("Inserting collapsed marker partially overlapping an existing one");
- sawCollapsedSpans = true;
- }
-
- if (marker.addToHistory)
- addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN);
-
- var curLine = from.line, cm = doc.cm, updateMaxLine;
- doc.iter(curLine, to.line + 1, function(line) {
- if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)
- updateMaxLine = true;
- if (marker.collapsed && curLine != from.line) updateLineHeight(line, 0);
- addMarkedSpan(line, new MarkedSpan(marker,
- curLine == from.line ? from.ch : null,
- curLine == to.line ? to.ch : null));
- ++curLine;
- });
- // lineIsHidden depends on the presence of the spans, so needs a second pass
- if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) {
- if (lineIsHidden(doc, line)) updateLineHeight(line, 0);
- });
-
- if (marker.clearOnEnter) on(marker, "beforeCursorEnter", function() { marker.clear(); });
-
- if (marker.readOnly) {
- sawReadOnlySpans = true;
- if (doc.history.done.length || doc.history.undone.length)
- doc.clearHistory();
- }
- if (marker.collapsed) {
- marker.id = ++nextMarkerId;
- marker.atomic = true;
- }
- if (cm) {
- // Sync editor state
- if (updateMaxLine) cm.curOp.updateMaxLine = true;
- if (marker.collapsed)
- regChange(cm, from.line, to.line + 1);
- else if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.css)
- for (var i = from.line; i <= to.line; i++) regLineChange(cm, i, "text");
- if (marker.atomic) reCheckSelection(cm.doc);
- signalLater(cm, "markerAdded", cm, marker);
- }
- return marker;
- }
-
- // SHARED TEXTMARKERS
-
- // A shared marker spans multiple linked documents. It is
- // implemented as a meta-marker-object controlling multiple normal
- // markers.
- var SharedTextMarker = CodeMirror.SharedTextMarker = function(markers, primary) {
- this.markers = markers;
- this.primary = primary;
- for (var i = 0; i < markers.length; ++i)
- markers[i].parent = this;
- };
- eventMixin(SharedTextMarker);
-
- SharedTextMarker.prototype.clear = function() {
- if (this.explicitlyCleared) return;
- this.explicitlyCleared = true;
- for (var i = 0; i < this.markers.length; ++i)
- this.markers[i].clear();
- signalLater(this, "clear");
- };
- SharedTextMarker.prototype.find = function(side, lineObj) {
- return this.primary.find(side, lineObj);
- };
-
- function markTextShared(doc, from, to, options, type) {
- options = copyObj(options);
- options.shared = false;
- var markers = [markText(doc, from, to, options, type)], primary = markers[0];
- var widget = options.widgetNode;
- linkedDocs(doc, function(doc) {
- if (widget) options.widgetNode = widget.cloneNode(true);
- markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));
- for (var i = 0; i < doc.linked.length; ++i)
- if (doc.linked[i].isParent) return;
- primary = lst(markers);
- });
- return new SharedTextMarker(markers, primary);
- }
-
- function findSharedMarkers(doc) {
- return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())),
- function(m) { return m.parent; });
- }
-
- function copySharedMarkers(doc, markers) {
- for (var i = 0; i < markers.length; i++) {
- var marker = markers[i], pos = marker.find();
- var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);
- if (cmp(mFrom, mTo)) {
- var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);
- marker.markers.push(subMark);
- subMark.parent = marker;
- }
- }
- }
-
- function detachSharedMarkers(markers) {
- for (var i = 0; i < markers.length; i++) {
- var marker = markers[i], linked = [marker.primary.doc];;
- linkedDocs(marker.primary.doc, function(d) { linked.push(d); });
- for (var j = 0; j < marker.markers.length; j++) {
- var subMarker = marker.markers[j];
- if (indexOf(linked, subMarker.doc) == -1) {
- subMarker.parent = null;
- marker.markers.splice(j--, 1);
- }
- }
- }
- }
-
- // TEXTMARKER SPANS
-
- function MarkedSpan(marker, from, to) {
- this.marker = marker;
- this.from = from; this.to = to;
- }
-
- // Search an array of spans for a span matching the given marker.
- function getMarkedSpanFor(spans, marker) {
- if (spans) for (var i = 0; i < spans.length; ++i) {
- var span = spans[i];
- if (span.marker == marker) return span;
- }
- }
- // Remove a span from an array, returning undefined if no spans are
- // left (we don't store arrays for lines without spans).
- function removeMarkedSpan(spans, span) {
- for (var r, i = 0; i < spans.length; ++i)
- if (spans[i] != span) (r || (r = [])).push(spans[i]);
- return r;
- }
- // Add a span to a line.
- function addMarkedSpan(line, span) {
- line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];
- span.marker.attachLine(line);
- }
-
- // Used for the algorithm that adjusts markers for a change in the
- // document. These functions cut an array of spans at a given
- // character position, returning an array of remaining chunks (or
- // undefined if nothing remains).
- function markedSpansBefore(old, startCh, isInsert) {
- if (old) for (var i = 0, nw; i < old.length; ++i) {
- var span = old[i], marker = span.marker;
- var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);
- if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) {
- var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);
- (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));
- }
- }
- return nw;
- }
- function markedSpansAfter(old, endCh, isInsert) {
- if (old) for (var i = 0, nw; i < old.length; ++i) {
- var span = old[i], marker = span.marker;
- var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);
- if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) {
- var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);
- (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,
- span.to == null ? null : span.to - endCh));
- }
- }
- return nw;
- }
-
- // Given a change object, compute the new set of marker spans that
- // cover the line in which the change took place. Removes spans
- // entirely within the change, reconnects spans belonging to the
- // same marker that appear on both sides of the change, and cuts off
- // spans partially within the change. Returns an array of span
- // arrays with one element for each line in (after) the change.
- function stretchSpansOverChange(doc, change) {
- if (change.full) return null;
- var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;
- var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;
- if (!oldFirst && !oldLast) return null;
-
- var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;
- // Get the spans that 'stick out' on both sides
- var first = markedSpansBefore(oldFirst, startCh, isInsert);
- var last = markedSpansAfter(oldLast, endCh, isInsert);
-
- // Next, merge those two ends
- var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);
- if (first) {
- // Fix up .to properties of first
- for (var i = 0; i < first.length; ++i) {
- var span = first[i];
- if (span.to == null) {
- var found = getMarkedSpanFor(last, span.marker);
- if (!found) span.to = startCh;
- else if (sameLine) span.to = found.to == null ? null : found.to + offset;
- }
- }
- }
- if (last) {
- // Fix up .from in last (or move them into first in case of sameLine)
- for (var i = 0; i < last.length; ++i) {
- var span = last[i];
- if (span.to != null) span.to += offset;
- if (span.from == null) {
- var found = getMarkedSpanFor(first, span.marker);
- if (!found) {
- span.from = offset;
- if (sameLine) (first || (first = [])).push(span);
- }
- } else {
- span.from += offset;
- if (sameLine) (first || (first = [])).push(span);
- }
- }
- }
- // Make sure we didn't create any zero-length spans
- if (first) first = clearEmptySpans(first);
- if (last && last != first) last = clearEmptySpans(last);
-
- var newMarkers = [first];
- if (!sameLine) {
- // Fill gap with whole-line-spans
- var gap = change.text.length - 2, gapMarkers;
- if (gap > 0 && first)
- for (var i = 0; i < first.length; ++i)
- if (first[i].to == null)
- (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i].marker, null, null));
- for (var i = 0; i < gap; ++i)
- newMarkers.push(gapMarkers);
- newMarkers.push(last);
- }
- return newMarkers;
- }
-
- // Remove spans that are empty and don't have a clearWhenEmpty
- // option of false.
- function clearEmptySpans(spans) {
- for (var i = 0; i < spans.length; ++i) {
- var span = spans[i];
- if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)
- spans.splice(i--, 1);
- }
- if (!spans.length) return null;
- return spans;
- }
-
- // Used for un/re-doing changes from the history. Combines the
- // result of computing the existing spans with the set of spans that
- // existed in the history (so that deleting around a span and then
- // undoing brings back the span).
- function mergeOldSpans(doc, change) {
- var old = getOldSpans(doc, change);
- var stretched = stretchSpansOverChange(doc, change);
- if (!old) return stretched;
- if (!stretched) return old;
-
- for (var i = 0; i < old.length; ++i) {
- var oldCur = old[i], stretchCur = stretched[i];
- if (oldCur && stretchCur) {
- spans: for (var j = 0; j < stretchCur.length; ++j) {
- var span = stretchCur[j];
- for (var k = 0; k < oldCur.length; ++k)
- if (oldCur[k].marker == span.marker) continue spans;
- oldCur.push(span);
- }
- } else if (stretchCur) {
- old[i] = stretchCur;
- }
- }
- return old;
- }
-
- // Used to 'clip' out readOnly ranges when making a change.
- function removeReadOnlyRanges(doc, from, to) {
- var markers = null;
- doc.iter(from.line, to.line + 1, function(line) {
- if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {
- var mark = line.markedSpans[i].marker;
- if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))
- (markers || (markers = [])).push(mark);
- }
- });
- if (!markers) return null;
- var parts = [{from: from, to: to}];
- for (var i = 0; i < markers.length; ++i) {
- var mk = markers[i], m = mk.find(0);
- for (var j = 0; j < parts.length; ++j) {
- var p = parts[j];
- if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) continue;
- var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);
- if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)
- newParts.push({from: p.from, to: m.from});
- if (dto > 0 || !mk.inclusiveRight && !dto)
- newParts.push({from: m.to, to: p.to});
- parts.splice.apply(parts, newParts);
- j += newParts.length - 1;
- }
- }
- return parts;
- }
-
- // Connect or disconnect spans from a line.
- function detachMarkedSpans(line) {
- var spans = line.markedSpans;
- if (!spans) return;
- for (var i = 0; i < spans.length; ++i)
- spans[i].marker.detachLine(line);
- line.markedSpans = null;
- }
- function attachMarkedSpans(line, spans) {
- if (!spans) return;
- for (var i = 0; i < spans.length; ++i)
- spans[i].marker.attachLine(line);
- line.markedSpans = spans;
- }
-
- // Helpers used when computing which overlapping collapsed span
- // counts as the larger one.
- function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; }
- function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; }
-
- // Returns a number indicating which of two overlapping collapsed
- // spans is larger (and thus includes the other). Falls back to
- // comparing ids when the spans cover exactly the same range.
- function compareCollapsedMarkers(a, b) {
- var lenDiff = a.lines.length - b.lines.length;
- if (lenDiff != 0) return lenDiff;
- var aPos = a.find(), bPos = b.find();
- var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);
- if (fromCmp) return -fromCmp;
- var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);
- if (toCmp) return toCmp;
- return b.id - a.id;
- }
-
- // Find out whether a line ends or starts in a collapsed span. If
- // so, return the marker for that span.
- function collapsedSpanAtSide(line, start) {
- var sps = sawCollapsedSpans && line.markedSpans, found;
- if (sps) for (var sp, i = 0; i < sps.length; ++i) {
- sp = sps[i];
- if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&
- (!found || compareCollapsedMarkers(found, sp.marker) < 0))
- found = sp.marker;
- }
- return found;
- }
- function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true); }
- function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false); }
-
- // Test whether there exists a collapsed span that partially
- // overlaps (covers the start or end, but not both) of a new span.
- // Such overlap is not allowed.
- function conflictingCollapsedRange(doc, lineNo, from, to, marker) {
- var line = getLine(doc, lineNo);
- var sps = sawCollapsedSpans && line.markedSpans;
- if (sps) for (var i = 0; i < sps.length; ++i) {
- var sp = sps[i];
- if (!sp.marker.collapsed) continue;
- var found = sp.marker.find(0);
- var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);
- var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);
- if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue;
- if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||
- fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))
- return true;
- }
- }
-
- // A visual line is a line as drawn on the screen. Folding, for
- // example, can cause multiple logical lines to appear on the same
- // visual line. This finds the start of the visual line that the
- // given line is part of (usually that is the line itself).
- function visualLine(line) {
- var merged;
- while (merged = collapsedSpanAtStart(line))
- line = merged.find(-1, true).line;
- return line;
- }
-
- // Returns an array of logical lines that continue the visual line
- // started by the argument, or undefined if there are no such lines.
- function visualLineContinued(line) {
- var merged, lines;
- while (merged = collapsedSpanAtEnd(line)) {
- line = merged.find(1, true).line;
- (lines || (lines = [])).push(line);
- }
- return lines;
- }
-
- // Get the line number of the start of the visual line that the
- // given line number is part of.
- function visualLineNo(doc, lineN) {
- var line = getLine(doc, lineN), vis = visualLine(line);
- if (line == vis) return lineN;
- return lineNo(vis);
- }
- // Get the line number of the start of the next visual line after
- // the given line.
- function visualLineEndNo(doc, lineN) {
- if (lineN > doc.lastLine()) return lineN;
- var line = getLine(doc, lineN), merged;
- if (!lineIsHidden(doc, line)) return lineN;
- while (merged = collapsedSpanAtEnd(line))
- line = merged.find(1, true).line;
- return lineNo(line) + 1;
- }
-
- // Compute whether a line is hidden. Lines count as hidden when they
- // are part of a visual line that starts with another line, or when
- // they are entirely covered by collapsed, non-widget span.
- function lineIsHidden(doc, line) {
- var sps = sawCollapsedSpans && line.markedSpans;
- if (sps) for (var sp, i = 0; i < sps.length; ++i) {
- sp = sps[i];
- if (!sp.marker.collapsed) continue;
- if (sp.from == null) return true;
- if (sp.marker.widgetNode) continue;
- if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))
- return true;
- }
- }
- function lineIsHiddenInner(doc, line, span) {
- if (span.to == null) {
- var end = span.marker.find(1, true);
- return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker));
- }
- if (span.marker.inclusiveRight && span.to == line.text.length)
- return true;
- for (var sp, i = 0; i < line.markedSpans.length; ++i) {
- sp = line.markedSpans[i];
- if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&
- (sp.to == null || sp.to != span.from) &&
- (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&
- lineIsHiddenInner(doc, line, sp)) return true;
- }
- }
-
- // LINE WIDGETS
-
- // Line widgets are block elements displayed above or below a line.
-
- var LineWidget = CodeMirror.LineWidget = function(doc, node, options) {
- if (options) for (var opt in options) if (options.hasOwnProperty(opt))
- this[opt] = options[opt];
- this.doc = doc;
- this.node = node;
- };
- eventMixin(LineWidget);
-
- function adjustScrollWhenAboveVisible(cm, line, diff) {
- if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))
- addToScrollPos(cm, null, diff);
- }
-
- LineWidget.prototype.clear = function() {
- var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);
- if (no == null || !ws) return;
- for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1);
- if (!ws.length) line.widgets = null;
- var height = widgetHeight(this);
- updateLineHeight(line, Math.max(0, line.height - height));
- if (cm) runInOp(cm, function() {
- adjustScrollWhenAboveVisible(cm, line, -height);
- regLineChange(cm, no, "widget");
- });
- };
- LineWidget.prototype.changed = function() {
- var oldH = this.height, cm = this.doc.cm, line = this.line;
- this.height = null;
- var diff = widgetHeight(this) - oldH;
- if (!diff) return;
- updateLineHeight(line, line.height + diff);
- if (cm) runInOp(cm, function() {
- cm.curOp.forceUpdate = true;
- adjustScrollWhenAboveVisible(cm, line, diff);
- });
- };
-
- function widgetHeight(widget) {
- if (widget.height != null) return widget.height;
- var cm = widget.doc.cm;
- if (!cm) return 0;
- if (!contains(document.body, widget.node)) {
- var parentStyle = "position: relative;";
- if (widget.coverGutter)
- parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;";
- if (widget.noHScroll)
- parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;";
- removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle));
- }
- return widget.height = widget.node.parentNode.offsetHeight;
- }
-
- function addLineWidget(doc, handle, node, options) {
- var widget = new LineWidget(doc, node, options);
- var cm = doc.cm;
- if (cm && widget.noHScroll) cm.display.alignWidgets = true;
- changeLine(doc, handle, "widget", function(line) {
- var widgets = line.widgets || (line.widgets = []);
- if (widget.insertAt == null) widgets.push(widget);
- else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget);
- widget.line = line;
- if (cm && !lineIsHidden(doc, line)) {
- var aboveVisible = heightAtLine(line) < doc.scrollTop;
- updateLineHeight(line, line.height + widgetHeight(widget));
- if (aboveVisible) addToScrollPos(cm, null, widget.height);
- cm.curOp.forceUpdate = true;
- }
- return true;
- });
- return widget;
- }
-
- // LINE DATA STRUCTURE
-
- // Line objects. These hold state related to a line, including
- // highlighting info (the styles array).
- var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) {
- this.text = text;
- attachMarkedSpans(this, markedSpans);
- this.height = estimateHeight ? estimateHeight(this) : 1;
- };
- eventMixin(Line);
- Line.prototype.lineNo = function() { return lineNo(this); };
-
- // Change the content (text, markers) of a line. Automatically
- // invalidates cached information and tries to re-estimate the
- // line's height.
- function updateLine(line, text, markedSpans, estimateHeight) {
- line.text = text;
- if (line.stateAfter) line.stateAfter = null;
- if (line.styles) line.styles = null;
- if (line.order != null) line.order = null;
- detachMarkedSpans(line);
- attachMarkedSpans(line, markedSpans);
- var estHeight = estimateHeight ? estimateHeight(line) : 1;
- if (estHeight != line.height) updateLineHeight(line, estHeight);
- }
-
- // Detach a line from the document tree and its markers.
- function cleanUpLine(line) {
- line.parent = null;
- detachMarkedSpans(line);
- }
-
- function extractLineClasses(type, output) {
- if (type) for (;;) {
- var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/);
- if (!lineClass) break;
- type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);
- var prop = lineClass[1] ? "bgClass" : "textClass";
- if (output[prop] == null)
- output[prop] = lineClass[2];
- else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop]))
- output[prop] += " " + lineClass[2];
- }
- return type;
- }
-
- function callBlankLine(mode, state) {
- if (mode.blankLine) return mode.blankLine(state);
- if (!mode.innerMode) return;
- var inner = CodeMirror.innerMode(mode, state);
- if (inner.mode.blankLine) return inner.mode.blankLine(inner.state);
- }
-
- function readToken(mode, stream, state, inner) {
- for (var i = 0; i < 10; i++) {
- if (inner) inner[0] = CodeMirror.innerMode(mode, state).mode;
- var style = mode.token(stream, state);
- if (stream.pos > stream.start) return style;
- }
- throw new Error("Mode " + mode.name + " failed to advance stream.");
- }
-
- // Utility for getTokenAt and getLineTokens
- function takeToken(cm, pos, precise, asArray) {
- function getObj(copy) {
- return {start: stream.start, end: stream.pos,
- string: stream.current(),
- type: style || null,
- state: copy ? copyState(doc.mode, state) : state};
- }
-
- var doc = cm.doc, mode = doc.mode, style;
- pos = clipPos(doc, pos);
- var line = getLine(doc, pos.line), state = getStateBefore(cm, pos.line, precise);
- var stream = new StringStream(line.text, cm.options.tabSize), tokens;
- if (asArray) tokens = [];
- while ((asArray || stream.pos < pos.ch) && !stream.eol()) {
- stream.start = stream.pos;
- style = readToken(mode, stream, state);
- if (asArray) tokens.push(getObj(true));
- }
- return asArray ? tokens : getObj();
- }
-
- // Run the given mode's parser over a line, calling f for each token.
- function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {
- var flattenSpans = mode.flattenSpans;
- if (flattenSpans == null) flattenSpans = cm.options.flattenSpans;
- var curStart = 0, curStyle = null;
- var stream = new StringStream(text, cm.options.tabSize), style;
- var inner = cm.options.addModeClass && [null];
- if (text == "") extractLineClasses(callBlankLine(mode, state), lineClasses);
- while (!stream.eol()) {
- if (stream.pos > cm.options.maxHighlightLength) {
- flattenSpans = false;
- if (forceToEnd) processLine(cm, text, state, stream.pos);
- stream.pos = text.length;
- style = null;
- } else {
- style = extractLineClasses(readToken(mode, stream, state, inner), lineClasses);
- }
- if (inner) {
- var mName = inner[0].name;
- if (mName) style = "m-" + (style ? mName + " " + style : mName);
- }
- if (!flattenSpans || curStyle != style) {
- while (curStart < stream.start) {
- curStart = Math.min(stream.start, curStart + 50000);
- f(curStart, curStyle);
- }
- curStyle = style;
- }
- stream.start = stream.pos;
- }
- while (curStart < stream.pos) {
- // Webkit seems to refuse to render text nodes longer than 57444 characters
- var pos = Math.min(stream.pos, curStart + 50000);
- f(pos, curStyle);
- curStart = pos;
- }
- }
-
- // Compute a style array (an array starting with a mode generation
- // -- for invalidation -- followed by pairs of end positions and
- // style strings), which is used to highlight the tokens on the
- // line.
- function highlightLine(cm, line, state, forceToEnd) {
- // A styles array always starts with a number identifying the
- // mode/overlays that it is based on (for easy invalidation).
- var st = [cm.state.modeGen], lineClasses = {};
- // Compute the base array of styles
- runMode(cm, line.text, cm.doc.mode, state, function(end, style) {
- st.push(end, style);
- }, lineClasses, forceToEnd);
-
- // Run overlays, adjust style array.
- for (var o = 0; o < cm.state.overlays.length; ++o) {
- var overlay = cm.state.overlays[o], i = 1, at = 0;
- runMode(cm, line.text, overlay.mode, true, function(end, style) {
- var start = i;
- // Ensure there's a token end at the current position, and that i points at it
- while (at < end) {
- var i_end = st[i];
- if (i_end > end)
- st.splice(i, 1, end, st[i+1], i_end);
- i += 2;
- at = Math.min(end, i_end);
- }
- if (!style) return;
- if (overlay.opaque) {
- st.splice(start, i - start, end, "cm-overlay " + style);
- i = start + 2;
- } else {
- for (; start < i; start += 2) {
- var cur = st[start+1];
- st[start+1] = (cur ? cur + " " : "") + "cm-overlay " + style;
- }
- }
- }, lineClasses);
- }
-
- return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null};
- }
-
- function getLineStyles(cm, line, updateFrontier) {
- if (!line.styles || line.styles[0] != cm.state.modeGen) {
- var state = getStateBefore(cm, lineNo(line));
- var result = highlightLine(cm, line, line.text.length > cm.options.maxHighlightLength ? copyState(cm.doc.mode, state) : state);
- line.stateAfter = state;
- line.styles = result.styles;
- if (result.classes) line.styleClasses = result.classes;
- else if (line.styleClasses) line.styleClasses = null;
- if (updateFrontier === cm.doc.frontier) cm.doc.frontier++;
- }
- return line.styles;
- }
-
- // Lightweight form of highlight -- proceed over this line and
- // update state, but don't save a style array. Used for lines that
- // aren't currently visible.
- function processLine(cm, text, state, startAt) {
- var mode = cm.doc.mode;
- var stream = new StringStream(text, cm.options.tabSize);
- stream.start = stream.pos = startAt || 0;
- if (text == "") callBlankLine(mode, state);
- while (!stream.eol()) {
- readToken(mode, stream, state);
- stream.start = stream.pos;
- }
- }
-
- // Convert a style as returned by a mode (either null, or a string
- // containing one or more styles) to a CSS style. This is cached,
- // and also looks for line-wide styles.
- var styleToClassCache = {}, styleToClassCacheWithMode = {};
- function interpretTokenStyle(style, options) {
- if (!style || /^\s*$/.test(style)) return null;
- var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;
- return cache[style] ||
- (cache[style] = style.replace(/\S+/g, "cm-$&"));
- }
-
- // Render the DOM representation of the text of a line. Also builds
- // up a 'line map', which points at the DOM nodes that represent
- // specific stretches of text, and is used by the measuring code.
- // The returned object contains the DOM node, this map, and
- // information about line-wide styles that were set by the mode.
- function buildLineContent(cm, lineView) {
- // The padding-right forces the element to have a 'border', which
- // is needed on Webkit to be able to get line-level bounding
- // rectangles for it (in measureChar).
- var content = elt("span", null, null, webkit ? "padding-right: .1px" : null);
- var builder = {pre: elt("pre", [content], "CodeMirror-line"), content: content,
- col: 0, pos: 0, cm: cm,
- splitSpaces: (ie || webkit) && cm.getOption("lineWrapping")};
- lineView.measure = {};
-
- // Iterate over the logical lines that make up this visual line.
- for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {
- var line = i ? lineView.rest[i - 1] : lineView.line, order;
- builder.pos = 0;
- builder.addToken = buildToken;
- // Optionally wire in some hacks into the token-rendering
- // algorithm, to deal with browser quirks.
- if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line)))
- builder.addToken = buildTokenBadBidi(builder.addToken, order);
- builder.map = [];
- var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);
- insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));
- if (line.styleClasses) {
- if (line.styleClasses.bgClass)
- builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || "");
- if (line.styleClasses.textClass)
- builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || "");
- }
-
- // Ensure at least a single node is present, for measuring.
- if (builder.map.length == 0)
- builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure)));
-
- // Store the map and a cache object for the current logical line
- if (i == 0) {
- lineView.measure.map = builder.map;
- lineView.measure.cache = {};
- } else {
- (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map);
- (lineView.measure.caches || (lineView.measure.caches = [])).push({});
- }
- }
-
- // See issue #2901
- if (webkit) {
- var last = builder.content.lastChild
- if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab")))
- builder.content.className = "cm-tab-wrap-hack";
- }
-
- signal(cm, "renderLine", cm, lineView.line, builder.pre);
- if (builder.pre.className)
- builder.textClass = joinClasses(builder.pre.className, builder.textClass || "");
-
- return builder;
- }
-
- function defaultSpecialCharPlaceholder(ch) {
- var token = elt("span", "\u2022", "cm-invalidchar");
- token.title = "\\u" + ch.charCodeAt(0).toString(16);
- token.setAttribute("aria-label", token.title);
- return token;
- }
-
- // Build up the DOM representation for a single token, and add it to
- // the line map. Takes care to render special characters separately.
- function buildToken(builder, text, style, startStyle, endStyle, title, css) {
- if (!text) return;
- var displayText = builder.splitSpaces ? text.replace(/ {3,}/g, splitSpaces) : text;
- var special = builder.cm.state.specialChars, mustWrap = false;
- if (!special.test(text)) {
- builder.col += text.length;
- var content = document.createTextNode(displayText);
- builder.map.push(builder.pos, builder.pos + text.length, content);
- if (ie && ie_version < 9) mustWrap = true;
- builder.pos += text.length;
- } else {
- var content = document.createDocumentFragment(), pos = 0;
- while (true) {
- special.lastIndex = pos;
- var m = special.exec(text);
- var skipped = m ? m.index - pos : text.length - pos;
- if (skipped) {
- var txt = document.createTextNode(displayText.slice(pos, pos + skipped));
- if (ie && ie_version < 9) content.appendChild(elt("span", [txt]));
- else content.appendChild(txt);
- builder.map.push(builder.pos, builder.pos + skipped, txt);
- builder.col += skipped;
- builder.pos += skipped;
- }
- if (!m) break;
- pos += skipped + 1;
- if (m[0] == "\t") {
- var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;
- var txt = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab"));
- txt.setAttribute("role", "presentation");
- txt.setAttribute("cm-text", "\t");
- builder.col += tabWidth;
- } else if (m[0] == "\r" || m[0] == "\n") {
- var txt = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar"));
- txt.setAttribute("cm-text", m[0]);
- builder.col += 1;
- } else {
- var txt = builder.cm.options.specialCharPlaceholder(m[0]);
- txt.setAttribute("cm-text", m[0]);
- if (ie && ie_version < 9) content.appendChild(elt("span", [txt]));
- else content.appendChild(txt);
- builder.col += 1;
- }
- builder.map.push(builder.pos, builder.pos + 1, txt);
- builder.pos++;
- }
- }
- if (style || startStyle || endStyle || mustWrap || css) {
- var fullStyle = style || "";
- if (startStyle) fullStyle += startStyle;
- if (endStyle) fullStyle += endStyle;
- var token = elt("span", [content], fullStyle, css);
- if (title) token.title = title;
- return builder.content.appendChild(token);
- }
- builder.content.appendChild(content);
- }
-
- function splitSpaces(old) {
- var out = " ";
- for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? " " : "\u00a0";
- out += " ";
- return out;
- }
-
- // Work around nonsense dimensions being reported for stretches of
- // right-to-left text.
- function buildTokenBadBidi(inner, order) {
- return function(builder, text, style, startStyle, endStyle, title, css) {
- style = style ? style + " cm-force-border" : "cm-force-border";
- var start = builder.pos, end = start + text.length;
- for (;;) {
- // Find the part that overlaps with the start of this text
- for (var i = 0; i < order.length; i++) {
- var part = order[i];
- if (part.to > start && part.from <= start) break;
- }
- if (part.to >= end) return inner(builder, text, style, startStyle, endStyle, title, css);
- inner(builder, text.slice(0, part.to - start), style, startStyle, null, title, css);
- startStyle = null;
- text = text.slice(part.to - start);
- start = part.to;
- }
- };
- }
-
- function buildCollapsedSpan(builder, size, marker, ignoreWidget) {
- var widget = !ignoreWidget && marker.widgetNode;
- if (widget) builder.map.push(builder.pos, builder.pos + size, widget);
- if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {
- if (!widget)
- widget = builder.content.appendChild(document.createElement("span"));
- widget.setAttribute("cm-marker", marker.id);
- }
- if (widget) {
- builder.cm.display.input.setUneditable(widget);
- builder.content.appendChild(widget);
- }
- builder.pos += size;
- }
-
- // Outputs a number of spans to make up a line, taking highlighting
- // and marked text into account.
- function insertLineContent(line, builder, styles) {
- var spans = line.markedSpans, allText = line.text, at = 0;
- if (!spans) {
- for (var i = 1; i < styles.length; i+=2)
- builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder.cm.options));
- return;
- }
-
- var len = allText.length, pos = 0, i = 1, text = "", style, css;
- var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;
- for (;;) {
- if (nextChange == pos) { // Update current marker set
- spanStyle = spanEndStyle = spanStartStyle = title = css = "";
- collapsed = null; nextChange = Infinity;
- var foundBookmarks = [], endStyles
- for (var j = 0; j < spans.length; ++j) {
- var sp = spans[j], m = sp.marker;
- if (m.type == "bookmark" && sp.from == pos && m.widgetNode) {
- foundBookmarks.push(m);
- } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {
- if (sp.to != null && sp.to != pos && nextChange > sp.to) {
- nextChange = sp.to;
- spanEndStyle = "";
- }
- if (m.className) spanStyle += " " + m.className;
- if (m.css) css = (css ? css + ";" : "") + m.css;
- if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle;
- if (m.endStyle && sp.to == nextChange) (endStyles || (endStyles = [])).push(m.endStyle, sp.to)
- if (m.title && !title) title = m.title;
- if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))
- collapsed = sp;
- } else if (sp.from > pos && nextChange > sp.from) {
- nextChange = sp.from;
- }
- }
- if (endStyles) for (var j = 0; j < endStyles.length; j += 2)
- if (endStyles[j + 1] == nextChange) spanEndStyle += " " + endStyles[j]
-
- if (!collapsed || collapsed.from == pos) for (var j = 0; j < foundBookmarks.length; ++j)
- buildCollapsedSpan(builder, 0, foundBookmarks[j]);
- if (collapsed && (collapsed.from || 0) == pos) {
- buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,
- collapsed.marker, collapsed.from == null);
- if (collapsed.to == null) return;
- if (collapsed.to == pos) collapsed = false;
- }
- }
- if (pos >= len) break;
-
- var upto = Math.min(len, nextChange);
- while (true) {
- if (text) {
- var end = pos + text.length;
- if (!collapsed) {
- var tokenText = end > upto ? text.slice(0, upto - pos) : text;
- builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,
- spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", title, css);
- }
- if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}
- pos = end;
- spanStartStyle = "";
- }
- text = allText.slice(at, at = styles[i++]);
- style = interpretTokenStyle(styles[i++], builder.cm.options);
- }
- }
- }
-
- // DOCUMENT DATA STRUCTURE
-
- // By default, updates that start and end at the beginning of a line
- // are treated specially, in order to make the association of line
- // widgets and marker elements with the text behave more intuitive.
- function isWholeLineUpdate(doc, change) {
- return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" &&
- (!doc.cm || doc.cm.options.wholeLineUpdateBefore);
- }
-
- // Perform a change on the document data structure.
- function updateDoc(doc, change, markedSpans, estimateHeight) {
- function spansFor(n) {return markedSpans ? markedSpans[n] : null;}
- function update(line, text, spans) {
- updateLine(line, text, spans, estimateHeight);
- signalLater(line, "change", line, change);
- }
- function linesFor(start, end) {
- for (var i = start, result = []; i < end; ++i)
- result.push(new Line(text[i], spansFor(i), estimateHeight));
- return result;
- }
-
- var from = change.from, to = change.to, text = change.text;
- var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);
- var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;
-
- // Adjust the line structure
- if (change.full) {
- doc.insert(0, linesFor(0, text.length));
- doc.remove(text.length, doc.size - text.length);
- } else if (isWholeLineUpdate(doc, change)) {
- // This is a whole-line replace. Treated specially to make
- // sure line objects move the way they are supposed to.
- var added = linesFor(0, text.length - 1);
- update(lastLine, lastLine.text, lastSpans);
- if (nlines) doc.remove(from.line, nlines);
- if (added.length) doc.insert(from.line, added);
- } else if (firstLine == lastLine) {
- if (text.length == 1) {
- update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);
- } else {
- var added = linesFor(1, text.length - 1);
- added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));
- update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
- doc.insert(from.line + 1, added);
- }
- } else if (text.length == 1) {
- update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));
- doc.remove(from.line + 1, nlines);
- } else {
- update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
- update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);
- var added = linesFor(1, text.length - 1);
- if (nlines > 1) doc.remove(from.line + 1, nlines - 1);
- doc.insert(from.line + 1, added);
- }
-
- signalLater(doc, "change", doc, change);
- }
-
- // The document is represented as a BTree consisting of leaves, with
- // chunk of lines in them, and branches, with up to ten leaves or
- // other branch nodes below them. The top node is always a branch
- // node, and is the document object itself (meaning it has
- // additional methods and properties).
- //
- // All nodes have parent links. The tree is used both to go from
- // line numbers to line objects, and to go from objects to numbers.
- // It also indexes by height, and is used to convert between height
- // and line object, and to find the total height of the document.
- //
- // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html
-
- function LeafChunk(lines) {
- this.lines = lines;
- this.parent = null;
- for (var i = 0, height = 0; i < lines.length; ++i) {
- lines[i].parent = this;
- height += lines[i].height;
- }
- this.height = height;
- }
-
- LeafChunk.prototype = {
- chunkSize: function() { return this.lines.length; },
- // Remove the n lines at offset 'at'.
- removeInner: function(at, n) {
- for (var i = at, e = at + n; i < e; ++i) {
- var line = this.lines[i];
- this.height -= line.height;
- cleanUpLine(line);
- signalLater(line, "delete");
- }
- this.lines.splice(at, n);
- },
- // Helper used to collapse a small branch into a single leaf.
- collapse: function(lines) {
- lines.push.apply(lines, this.lines);
- },
- // Insert the given array of lines at offset 'at', count them as
- // having the given height.
- insertInner: function(at, lines, height) {
- this.height += height;
- this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));
- for (var i = 0; i < lines.length; ++i) lines[i].parent = this;
- },
- // Used to iterate over a part of the tree.
- iterN: function(at, n, op) {
- for (var e = at + n; at < e; ++at)
- if (op(this.lines[at])) return true;
- }
- };
-
- function BranchChunk(children) {
- this.children = children;
- var size = 0, height = 0;
- for (var i = 0; i < children.length; ++i) {
- var ch = children[i];
- size += ch.chunkSize(); height += ch.height;
- ch.parent = this;
- }
- this.size = size;
- this.height = height;
- this.parent = null;
- }
-
- BranchChunk.prototype = {
- chunkSize: function() { return this.size; },
- removeInner: function(at, n) {
- this.size -= n;
- for (var i = 0; i < this.children.length; ++i) {
- var child = this.children[i], sz = child.chunkSize();
- if (at < sz) {
- var rm = Math.min(n, sz - at), oldHeight = child.height;
- child.removeInner(at, rm);
- this.height -= oldHeight - child.height;
- if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }
- if ((n -= rm) == 0) break;
- at = 0;
- } else at -= sz;
- }
- // If the result is smaller than 25 lines, ensure that it is a
- // single leaf node.
- if (this.size - n < 25 &&
- (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {
- var lines = [];
- this.collapse(lines);
- this.children = [new LeafChunk(lines)];
- this.children[0].parent = this;
- }
- },
- collapse: function(lines) {
- for (var i = 0; i < this.children.length; ++i) this.children[i].collapse(lines);
- },
- insertInner: function(at, lines, height) {
- this.size += lines.length;
- this.height += height;
- for (var i = 0; i < this.children.length; ++i) {
- var child = this.children[i], sz = child.chunkSize();
- if (at <= sz) {
- child.insertInner(at, lines, height);
- if (child.lines && child.lines.length > 50) {
- // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.
- // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.
- var remaining = child.lines.length % 25 + 25
- for (var pos = remaining; pos < child.lines.length;) {
- var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));
- child.height -= leaf.height;
- this.children.splice(++i, 0, leaf);
- leaf.parent = this;
- }
- child.lines = child.lines.slice(0, remaining);
- this.maybeSpill();
- }
- break;
- }
- at -= sz;
- }
- },
- // When a node has grown, check whether it should be split.
- maybeSpill: function() {
- if (this.children.length <= 10) return;
- var me = this;
- do {
- var spilled = me.children.splice(me.children.length - 5, 5);
- var sibling = new BranchChunk(spilled);
- if (!me.parent) { // Become the parent node
- var copy = new BranchChunk(me.children);
- copy.parent = me;
- me.children = [copy, sibling];
- me = copy;
- } else {
- me.size -= sibling.size;
- me.height -= sibling.height;
- var myIndex = indexOf(me.parent.children, me);
- me.parent.children.splice(myIndex + 1, 0, sibling);
- }
- sibling.parent = me.parent;
- } while (me.children.length > 10);
- me.parent.maybeSpill();
- },
- iterN: function(at, n, op) {
- for (var i = 0; i < this.children.length; ++i) {
- var child = this.children[i], sz = child.chunkSize();
- if (at < sz) {
- var used = Math.min(n, sz - at);
- if (child.iterN(at, used, op)) return true;
- if ((n -= used) == 0) break;
- at = 0;
- } else at -= sz;
- }
- }
- };
-
- var nextDocId = 0;
- var Doc = CodeMirror.Doc = function(text, mode, firstLine, lineSep) {
- if (!(this instanceof Doc)) return new Doc(text, mode, firstLine, lineSep);
- if (firstLine == null) firstLine = 0;
-
- BranchChunk.call(this, [new LeafChunk([new Line("", null)])]);
- this.first = firstLine;
- this.scrollTop = this.scrollLeft = 0;
- this.cantEdit = false;
- this.cleanGeneration = 1;
- this.frontier = firstLine;
- var start = Pos(firstLine, 0);
- this.sel = simpleSelection(start);
- this.history = new History(null);
- this.id = ++nextDocId;
- this.modeOption = mode;
- this.lineSep = lineSep;
- this.extend = false;
-
- if (typeof text == "string") text = this.splitLines(text);
- updateDoc(this, {from: start, to: start, text: text});
- setSelection(this, simpleSelection(start), sel_dontScroll);
- };
-
- Doc.prototype = createObj(BranchChunk.prototype, {
- constructor: Doc,
- // Iterate over the document. Supports two forms -- with only one
- // argument, it calls that for each line in the document. With
- // three, it iterates over the range given by the first two (with
- // the second being non-inclusive).
- iter: function(from, to, op) {
- if (op) this.iterN(from - this.first, to - from, op);
- else this.iterN(this.first, this.first + this.size, from);
- },
-
- // Non-public interface for adding and removing lines.
- insert: function(at, lines) {
- var height = 0;
- for (var i = 0; i < lines.length; ++i) height += lines[i].height;
- this.insertInner(at - this.first, lines, height);
- },
- remove: function(at, n) { this.removeInner(at - this.first, n); },
-
- // From here, the methods are part of the public interface. Most
- // are also available from CodeMirror (editor) instances.
-
- getValue: function(lineSep) {
- var lines = getLines(this, this.first, this.first + this.size);
- if (lineSep === false) return lines;
- return lines.join(lineSep || this.lineSeparator());
- },
- setValue: docMethodOp(function(code) {
- var top = Pos(this.first, 0), last = this.first + this.size - 1;
- makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
- text: this.splitLines(code), origin: "setValue", full: true}, true);
- setSelection(this, simpleSelection(top));
- }),
- replaceRange: function(code, from, to, origin) {
- from = clipPos(this, from);
- to = to ? clipPos(this, to) : from;
- replaceRange(this, code, from, to, origin);
- },
- getRange: function(from, to, lineSep) {
- var lines = getBetween(this, clipPos(this, from), clipPos(this, to));
- if (lineSep === false) return lines;
- return lines.join(lineSep || this.lineSeparator());
- },
-
- getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;},
-
- getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);},
- getLineNumber: function(line) {return lineNo(line);},
-
- getLineHandleVisualStart: function(line) {
- if (typeof line == "number") line = getLine(this, line);
- return visualLine(line);
- },
-
- lineCount: function() {return this.size;},
- firstLine: function() {return this.first;},
- lastLine: function() {return this.first + this.size - 1;},
-
- clipPos: function(pos) {return clipPos(this, pos);},
-
- getCursor: function(start) {
- var range = this.sel.primary(), pos;
- if (start == null || start == "head") pos = range.head;
- else if (start == "anchor") pos = range.anchor;
- else if (start == "end" || start == "to" || start === false) pos = range.to();
- else pos = range.from();
- return pos;
- },
- listSelections: function() { return this.sel.ranges; },
- somethingSelected: function() {return this.sel.somethingSelected();},
-
- setCursor: docMethodOp(function(line, ch, options) {
- setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options);
- }),
- setSelection: docMethodOp(function(anchor, head, options) {
- setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);
- }),
- extendSelection: docMethodOp(function(head, other, options) {
- extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);
- }),
- extendSelections: docMethodOp(function(heads, options) {
- extendSelections(this, clipPosArray(this, heads), options);
- }),
- extendSelectionsBy: docMethodOp(function(f, options) {
- var heads = map(this.sel.ranges, f);
- extendSelections(this, clipPosArray(this, heads), options);
- }),
- setSelections: docMethodOp(function(ranges, primary, options) {
- if (!ranges.length) return;
- for (var i = 0, out = []; i < ranges.length; i++)
- out[i] = new Range(clipPos(this, ranges[i].anchor),
- clipPos(this, ranges[i].head));
- if (primary == null) primary = Math.min(ranges.length - 1, this.sel.primIndex);
- setSelection(this, normalizeSelection(out, primary), options);
- }),
- addSelection: docMethodOp(function(anchor, head, options) {
- var ranges = this.sel.ranges.slice(0);
- ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));
- setSelection(this, normalizeSelection(ranges, ranges.length - 1), options);
- }),
-
- getSelection: function(lineSep) {
- var ranges = this.sel.ranges, lines;
- for (var i = 0; i < ranges.length; i++) {
- var sel = getBetween(this, ranges[i].from(), ranges[i].to());
- lines = lines ? lines.concat(sel) : sel;
- }
- if (lineSep === false) return lines;
- else return lines.join(lineSep || this.lineSeparator());
- },
- getSelections: function(lineSep) {
- var parts = [], ranges = this.sel.ranges;
- for (var i = 0; i < ranges.length; i++) {
- var sel = getBetween(this, ranges[i].from(), ranges[i].to());
- if (lineSep !== false) sel = sel.join(lineSep || this.lineSeparator());
- parts[i] = sel;
- }
- return parts;
- },
- replaceSelection: function(code, collapse, origin) {
- var dup = [];
- for (var i = 0; i < this.sel.ranges.length; i++)
- dup[i] = code;
- this.replaceSelections(dup, collapse, origin || "+input");
- },
- replaceSelections: docMethodOp(function(code, collapse, origin) {
- var changes = [], sel = this.sel;
- for (var i = 0; i < sel.ranges.length; i++) {
- var range = sel.ranges[i];
- changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};
- }
- var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse);
- for (var i = changes.length - 1; i >= 0; i--)
- makeChange(this, changes[i]);
- if (newSel) setSelectionReplaceHistory(this, newSel);
- else if (this.cm) ensureCursorVisible(this.cm);
- }),
- undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}),
- redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}),
- undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}),
- redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}),
-
- setExtending: function(val) {this.extend = val;},
- getExtending: function() {return this.extend;},
-
- historySize: function() {
- var hist = this.history, done = 0, undone = 0;
- for (var i = 0; i < hist.done.length; i++) if (!hist.done[i].ranges) ++done;
- for (var i = 0; i < hist.undone.length; i++) if (!hist.undone[i].ranges) ++undone;
- return {undo: done, redo: undone};
- },
- clearHistory: function() {this.history = new History(this.history.maxGeneration);},
-
- markClean: function() {
- this.cleanGeneration = this.changeGeneration(true);
- },
- changeGeneration: function(forceSplit) {
- if (forceSplit)
- this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null;
- return this.history.generation;
- },
- isClean: function (gen) {
- return this.history.generation == (gen || this.cleanGeneration);
- },
-
- getHistory: function() {
- return {done: copyHistoryArray(this.history.done),
- undone: copyHistoryArray(this.history.undone)};
- },
- setHistory: function(histData) {
- var hist = this.history = new History(this.history.maxGeneration);
- hist.done = copyHistoryArray(histData.done.slice(0), null, true);
- hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);
- },
-
- addLineClass: docMethodOp(function(handle, where, cls) {
- return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) {
- var prop = where == "text" ? "textClass"
- : where == "background" ? "bgClass"
- : where == "gutter" ? "gutterClass" : "wrapClass";
- if (!line[prop]) line[prop] = cls;
- else if (classTest(cls).test(line[prop])) return false;
- else line[prop] += " " + cls;
- return true;
- });
- }),
- removeLineClass: docMethodOp(function(handle, where, cls) {
- return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) {
- var prop = where == "text" ? "textClass"
- : where == "background" ? "bgClass"
- : where == "gutter" ? "gutterClass" : "wrapClass";
- var cur = line[prop];
- if (!cur) return false;
- else if (cls == null) line[prop] = null;
- else {
- var found = cur.match(classTest(cls));
- if (!found) return false;
- var end = found.index + found[0].length;
- line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null;
- }
- return true;
- });
- }),
-
- addLineWidget: docMethodOp(function(handle, node, options) {
- return addLineWidget(this, handle, node, options);
- }),
- removeLineWidget: function(widget) { widget.clear(); },
-
- markText: function(from, to, options) {
- return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range");
- },
- setBookmark: function(pos, options) {
- var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),
- insertLeft: options && options.insertLeft,
- clearWhenEmpty: false, shared: options && options.shared,
- handleMouseEvents: options && options.handleMouseEvents};
- pos = clipPos(this, pos);
- return markText(this, pos, pos, realOpts, "bookmark");
- },
- findMarksAt: function(pos) {
- pos = clipPos(this, pos);
- var markers = [], spans = getLine(this, pos.line).markedSpans;
- if (spans) for (var i = 0; i < spans.length; ++i) {
- var span = spans[i];
- if ((span.from == null || span.from <= pos.ch) &&
- (span.to == null || span.to >= pos.ch))
- markers.push(span.marker.parent || span.marker);
- }
- return markers;
- },
- findMarks: function(from, to, filter) {
- from = clipPos(this, from); to = clipPos(this, to);
- var found = [], lineNo = from.line;
- this.iter(from.line, to.line + 1, function(line) {
- var spans = line.markedSpans;
- if (spans) for (var i = 0; i < spans.length; i++) {
- var span = spans[i];
- if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||
- span.from == null && lineNo != from.line ||
- span.from != null && lineNo == to.line && span.from >= to.ch) &&
- (!filter || filter(span.marker)))
- found.push(span.marker.parent || span.marker);
- }
- ++lineNo;
- });
- return found;
- },
- getAllMarks: function() {
- var markers = [];
- this.iter(function(line) {
- var sps = line.markedSpans;
- if (sps) for (var i = 0; i < sps.length; ++i)
- if (sps[i].from != null) markers.push(sps[i].marker);
- });
- return markers;
- },
-
- posFromIndex: function(off) {
- var ch, lineNo = this.first, sepSize = this.lineSeparator().length;
- this.iter(function(line) {
- var sz = line.text.length + sepSize;
- if (sz > off) { ch = off; return true; }
- off -= sz;
- ++lineNo;
- });
- return clipPos(this, Pos(lineNo, ch));
- },
- indexFromPos: function (coords) {
- coords = clipPos(this, coords);
- var index = coords.ch;
- if (coords.line < this.first || coords.ch < 0) return 0;
- var sepSize = this.lineSeparator().length;
- this.iter(this.first, coords.line, function (line) {
- index += line.text.length + sepSize;
- });
- return index;
- },
-
- copy: function(copyHistory) {
- var doc = new Doc(getLines(this, this.first, this.first + this.size),
- this.modeOption, this.first, this.lineSep);
- doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;
- doc.sel = this.sel;
- doc.extend = false;
- if (copyHistory) {
- doc.history.undoDepth = this.history.undoDepth;
- doc.setHistory(this.getHistory());
- }
- return doc;
- },
-
- linkedDoc: function(options) {
- if (!options) options = {};
- var from = this.first, to = this.first + this.size;
- if (options.from != null && options.from > from) from = options.from;
- if (options.to != null && options.to < to) to = options.to;
- var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep);
- if (options.sharedHist) copy.history = this.history;
- (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});
- copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];
- copySharedMarkers(copy, findSharedMarkers(this));
- return copy;
- },
- unlinkDoc: function(other) {
- if (other instanceof CodeMirror) other = other.doc;
- if (this.linked) for (var i = 0; i < this.linked.length; ++i) {
- var link = this.linked[i];
- if (link.doc != other) continue;
- this.linked.splice(i, 1);
- other.unlinkDoc(this);
- detachSharedMarkers(findSharedMarkers(this));
- break;
- }
- // If the histories were shared, split them again
- if (other.history == this.history) {
- var splitIds = [other.id];
- linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true);
- other.history = new History(null);
- other.history.done = copyHistoryArray(this.history.done, splitIds);
- other.history.undone = copyHistoryArray(this.history.undone, splitIds);
- }
- },
- iterLinkedDocs: function(f) {linkedDocs(this, f);},
-
- getMode: function() {return this.mode;},
- getEditor: function() {return this.cm;},
-
- splitLines: function(str) {
- if (this.lineSep) return str.split(this.lineSep);
- return splitLinesAuto(str);
- },
- lineSeparator: function() { return this.lineSep || "\n"; }
- });
-
- // Public alias.
- Doc.prototype.eachLine = Doc.prototype.iter;
-
- // Set up methods on CodeMirror's prototype to redirect to the editor's document.
- var dontDelegate = "iter insert remove copy getEditor constructor".split(" ");
- for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)
- CodeMirror.prototype[prop] = (function(method) {
- return function() {return method.apply(this.doc, arguments);};
- })(Doc.prototype[prop]);
-
- eventMixin(Doc);
-
- // Call f for all linked documents.
- function linkedDocs(doc, f, sharedHistOnly) {
- function propagate(doc, skip, sharedHist) {
- if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) {
- var rel = doc.linked[i];
- if (rel.doc == skip) continue;
- var shared = sharedHist && rel.sharedHist;
- if (sharedHistOnly && !shared) continue;
- f(rel.doc, shared);
- propagate(rel.doc, doc, shared);
- }
- }
- propagate(doc, null, true);
- }
-
- // Attach a document to an editor.
- function attachDoc(cm, doc) {
- if (doc.cm) throw new Error("This document is already in use.");
- cm.doc = doc;
- doc.cm = cm;
- estimateLineHeights(cm);
- loadMode(cm);
- if (!cm.options.lineWrapping) findMaxLine(cm);
- cm.options.mode = doc.modeOption;
- regChange(cm);
- }
-
- // LINE UTILITIES
-
- // Find the line object corresponding to the given line number.
- function getLine(doc, n) {
- n -= doc.first;
- if (n < 0 || n >= doc.size) throw new Error("There is no line " + (n + doc.first) + " in the document.");
- for (var chunk = doc; !chunk.lines;) {
- for (var i = 0;; ++i) {
- var child = chunk.children[i], sz = child.chunkSize();
- if (n < sz) { chunk = child; break; }
- n -= sz;
- }
- }
- return chunk.lines[n];
- }
-
- // Get the part of a document between two positions, as an array of
- // strings.
- function getBetween(doc, start, end) {
- var out = [], n = start.line;
- doc.iter(start.line, end.line + 1, function(line) {
- var text = line.text;
- if (n == end.line) text = text.slice(0, end.ch);
- if (n == start.line) text = text.slice(start.ch);
- out.push(text);
- ++n;
- });
- return out;
- }
- // Get the lines between from and to, as array of strings.
- function getLines(doc, from, to) {
- var out = [];
- doc.iter(from, to, function(line) { out.push(line.text); });
- return out;
- }
-
- // Update the height of a line, propagating the height change
- // upwards to parent nodes.
- function updateLineHeight(line, height) {
- var diff = height - line.height;
- if (diff) for (var n = line; n; n = n.parent) n.height += diff;
- }
-
- // Given a line object, find its line number by walking up through
- // its parent links.
- function lineNo(line) {
- if (line.parent == null) return null;
- var cur = line.parent, no = indexOf(cur.lines, line);
- for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {
- for (var i = 0;; ++i) {
- if (chunk.children[i] == cur) break;
- no += chunk.children[i].chunkSize();
- }
- }
- return no + cur.first;
- }
-
- // Find the line at the given vertical position, using the height
- // information in the document tree.
- function lineAtHeight(chunk, h) {
- var n = chunk.first;
- outer: do {
- for (var i = 0; i < chunk.children.length; ++i) {
- var child = chunk.children[i], ch = child.height;
- if (h < ch) { chunk = child; continue outer; }
- h -= ch;
- n += child.chunkSize();
- }
- return n;
- } while (!chunk.lines);
- for (var i = 0; i < chunk.lines.length; ++i) {
- var line = chunk.lines[i], lh = line.height;
- if (h < lh) break;
- h -= lh;
- }
- return n + i;
- }
-
-
- // Find the height above the given line.
- function heightAtLine(lineObj) {
- lineObj = visualLine(lineObj);
-
- var h = 0, chunk = lineObj.parent;
- for (var i = 0; i < chunk.lines.length; ++i) {
- var line = chunk.lines[i];
- if (line == lineObj) break;
- else h += line.height;
- }
- for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {
- for (var i = 0; i < p.children.length; ++i) {
- var cur = p.children[i];
- if (cur == chunk) break;
- else h += cur.height;
- }
- }
- return h;
- }
-
- // Get the bidi ordering for the given line (and cache it). Returns
- // false for lines that are fully left-to-right, and an array of
- // BidiSpan objects otherwise.
- function getOrder(line) {
- var order = line.order;
- if (order == null) order = line.order = bidiOrdering(line.text);
- return order;
- }
-
- // HISTORY
-
- function History(startGen) {
- // Arrays of change events and selections. Doing something adds an
- // event to done and clears undo. Undoing moves events from done
- // to undone, redoing moves them in the other direction.
- this.done = []; this.undone = [];
- this.undoDepth = Infinity;
- // Used to track when changes can be merged into a single undo
- // event
- this.lastModTime = this.lastSelTime = 0;
- this.lastOp = this.lastSelOp = null;
- this.lastOrigin = this.lastSelOrigin = null;
- // Used by the isClean() method
- this.generation = this.maxGeneration = startGen || 1;
- }
-
- // Create a history change event from an updateDoc-style change
- // object.
- function historyChangeFromChange(doc, change) {
- var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};
- attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);
- linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true);
- return histChange;
- }
-
- // Pop all selection events off the end of a history array. Stop at
- // a change event.
- function clearSelectionEvents(array) {
- while (array.length) {
- var last = lst(array);
- if (last.ranges) array.pop();
- else break;
- }
- }
-
- // Find the top change event in the history. Pop off selection
- // events that are in the way.
- function lastChangeEvent(hist, force) {
- if (force) {
- clearSelectionEvents(hist.done);
- return lst(hist.done);
- } else if (hist.done.length && !lst(hist.done).ranges) {
- return lst(hist.done);
- } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {
- hist.done.pop();
- return lst(hist.done);
- }
- }
-
- // Register a change in the history. Merges changes that are within
- // a single operation, ore are close together with an origin that
- // allows merging (starting with "+") into a single event.
- function addChangeToHistory(doc, change, selAfter, opId) {
- var hist = doc.history;
- hist.undone.length = 0;
- var time = +new Date, cur;
-
- if ((hist.lastOp == opId ||
- hist.lastOrigin == change.origin && change.origin &&
- ((change.origin.charAt(0) == "+" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) ||
- change.origin.charAt(0) == "*")) &&
- (cur = lastChangeEvent(hist, hist.lastOp == opId))) {
- // Merge this change into the last event
- var last = lst(cur.changes);
- if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {
- // Optimized case for simple insertion -- don't want to add
- // new changesets for every character typed
- last.to = changeEnd(change);
- } else {
- // Add new sub-event
- cur.changes.push(historyChangeFromChange(doc, change));
- }
- } else {
- // Can not be merged, start a new event.
- var before = lst(hist.done);
- if (!before || !before.ranges)
- pushSelectionToHistory(doc.sel, hist.done);
- cur = {changes: [historyChangeFromChange(doc, change)],
- generation: hist.generation};
- hist.done.push(cur);
- while (hist.done.length > hist.undoDepth) {
- hist.done.shift();
- if (!hist.done[0].ranges) hist.done.shift();
- }
- }
- hist.done.push(selAfter);
- hist.generation = ++hist.maxGeneration;
- hist.lastModTime = hist.lastSelTime = time;
- hist.lastOp = hist.lastSelOp = opId;
- hist.lastOrigin = hist.lastSelOrigin = change.origin;
-
- if (!last) signal(doc, "historyAdded");
- }
-
- function selectionEventCanBeMerged(doc, origin, prev, sel) {
- var ch = origin.charAt(0);
- return ch == "*" ||
- ch == "+" &&
- prev.ranges.length == sel.ranges.length &&
- prev.somethingSelected() == sel.somethingSelected() &&
- new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500);
- }
-
- // Called whenever the selection changes, sets the new selection as
- // the pending selection in the history, and pushes the old pending
- // selection into the 'done' array when it was significantly
- // different (in number of selected ranges, emptiness, or time).
- function addSelectionToHistory(doc, sel, opId, options) {
- var hist = doc.history, origin = options && options.origin;
-
- // A new event is started when the previous origin does not match
- // the current, or the origins don't allow matching. Origins
- // starting with * are always merged, those starting with + are
- // merged when similar and close together in time.
- if (opId == hist.lastSelOp ||
- (origin && hist.lastSelOrigin == origin &&
- (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||
- selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))
- hist.done[hist.done.length - 1] = sel;
- else
- pushSelectionToHistory(sel, hist.done);
-
- hist.lastSelTime = +new Date;
- hist.lastSelOrigin = origin;
- hist.lastSelOp = opId;
- if (options && options.clearRedo !== false)
- clearSelectionEvents(hist.undone);
- }
-
- function pushSelectionToHistory(sel, dest) {
- var top = lst(dest);
- if (!(top && top.ranges && top.equals(sel)))
- dest.push(sel);
- }
-
- // Used to store marked span information in the history.
- function attachLocalSpans(doc, change, from, to) {
- var existing = change["spans_" + doc.id], n = 0;
- doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) {
- if (line.markedSpans)
- (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans;
- ++n;
- });
- }
-
- // When un/re-doing restores text containing marked spans, those
- // that have been explicitly cleared should not be restored.
- function removeClearedSpans(spans) {
- if (!spans) return null;
- for (var i = 0, out; i < spans.length; ++i) {
- if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); }
- else if (out) out.push(spans[i]);
- }
- return !out ? spans : out.length ? out : null;
- }
-
- // Retrieve and filter the old marked spans stored in a change event.
- function getOldSpans(doc, change) {
- var found = change["spans_" + doc.id];
- if (!found) return null;
- for (var i = 0, nw = []; i < change.text.length; ++i)
- nw.push(removeClearedSpans(found[i]));
- return nw;
- }
-
- // Used both to provide a JSON-safe object in .getHistory, and, when
- // detaching a document, to split the history in two
- function copyHistoryArray(events, newGroup, instantiateSel) {
- for (var i = 0, copy = []; i < events.length; ++i) {
- var event = events[i];
- if (event.ranges) {
- copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);
- continue;
- }
- var changes = event.changes, newChanges = [];
- copy.push({changes: newChanges});
- for (var j = 0; j < changes.length; ++j) {
- var change = changes[j], m;
- newChanges.push({from: change.from, to: change.to, text: change.text});
- if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) {
- if (indexOf(newGroup, Number(m[1])) > -1) {
- lst(newChanges)[prop] = change[prop];
- delete change[prop];
- }
- }
- }
- }
- return copy;
- }
-
- // Rebasing/resetting history to deal with externally-sourced changes
-
- function rebaseHistSelSingle(pos, from, to, diff) {
- if (to < pos.line) {
- pos.line += diff;
- } else if (from < pos.line) {
- pos.line = from;
- pos.ch = 0;
- }
- }
-
- // Tries to rebase an array of history events given a change in the
- // document. If the change touches the same lines as the event, the
- // event, and everything 'behind' it, is discarded. If the change is
- // before the event, the event's positions are updated. Uses a
- // copy-on-write scheme for the positions, to avoid having to
- // reallocate them all on every rebase, but also avoid problems with
- // shared position objects being unsafely updated.
- function rebaseHistArray(array, from, to, diff) {
- for (var i = 0; i < array.length; ++i) {
- var sub = array[i], ok = true;
- if (sub.ranges) {
- if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }
- for (var j = 0; j < sub.ranges.length; j++) {
- rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);
- rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);
- }
- continue;
- }
- for (var j = 0; j < sub.changes.length; ++j) {
- var cur = sub.changes[j];
- if (to < cur.from.line) {
- cur.from = Pos(cur.from.line + diff, cur.from.ch);
- cur.to = Pos(cur.to.line + diff, cur.to.ch);
- } else if (from <= cur.to.line) {
- ok = false;
- break;
- }
- }
- if (!ok) {
- array.splice(0, i + 1);
- i = 0;
- }
- }
- }
-
- function rebaseHist(hist, change) {
- var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;
- rebaseHistArray(hist.done, from, to, diff);
- rebaseHistArray(hist.undone, from, to, diff);
- }
-
- // EVENT UTILITIES
-
- // Due to the fact that we still support jurassic IE versions, some
- // compatibility wrappers are needed.
-
- var e_preventDefault = CodeMirror.e_preventDefault = function(e) {
- if (e.preventDefault) e.preventDefault();
- else e.returnValue = false;
- };
- var e_stopPropagation = CodeMirror.e_stopPropagation = function(e) {
- if (e.stopPropagation) e.stopPropagation();
- else e.cancelBubble = true;
- };
- function e_defaultPrevented(e) {
- return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false;
- }
- var e_stop = CodeMirror.e_stop = function(e) {e_preventDefault(e); e_stopPropagation(e);};
-
- function e_target(e) {return e.target || e.srcElement;}
- function e_button(e) {
- var b = e.which;
- if (b == null) {
- if (e.button & 1) b = 1;
- else if (e.button & 2) b = 3;
- else if (e.button & 4) b = 2;
- }
- if (mac && e.ctrlKey && b == 1) b = 3;
- return b;
- }
-
- // EVENT HANDLING
-
- // Lightweight event framework. on/off also work on DOM nodes,
- // registering native DOM handlers.
-
- var on = CodeMirror.on = function(emitter, type, f) {
- if (emitter.addEventListener)
- emitter.addEventListener(type, f, false);
- else if (emitter.attachEvent)
- emitter.attachEvent("on" + type, f);
- else {
- var map = emitter._handlers || (emitter._handlers = {});
- var arr = map[type] || (map[type] = []);
- arr.push(f);
- }
- };
-
- var noHandlers = []
- function getHandlers(emitter, type, copy) {
- var arr = emitter._handlers && emitter._handlers[type]
- if (copy) return arr && arr.length > 0 ? arr.slice() : noHandlers
- else return arr || noHandlers
- }
-
- var off = CodeMirror.off = function(emitter, type, f) {
- if (emitter.removeEventListener)
- emitter.removeEventListener(type, f, false);
- else if (emitter.detachEvent)
- emitter.detachEvent("on" + type, f);
- else {
- var handlers = getHandlers(emitter, type, false)
- for (var i = 0; i < handlers.length; ++i)
- if (handlers[i] == f) { handlers.splice(i, 1); break; }
- }
- };
-
- var signal = CodeMirror.signal = function(emitter, type /*, values...*/) {
- var handlers = getHandlers(emitter, type, true)
- if (!handlers.length) return;
- var args = Array.prototype.slice.call(arguments, 2);
- for (var i = 0; i < handlers.length; ++i) handlers[i].apply(null, args);
- };
-
- var orphanDelayedCallbacks = null;
-
- // Often, we want to signal events at a point where we are in the
- // middle of some work, but don't want the handler to start calling
- // other methods on the editor, which might be in an inconsistent
- // state or simply not expect any other events to happen.
- // signalLater looks whether there are any handlers, and schedules
- // them to be executed when the last operation ends, or, if no
- // operation is active, when a timeout fires.
- function signalLater(emitter, type /*, values...*/) {
- var arr = getHandlers(emitter, type, false)
- if (!arr.length) return;
- var args = Array.prototype.slice.call(arguments, 2), list;
- if (operationGroup) {
- list = operationGroup.delayedCallbacks;
- } else if (orphanDelayedCallbacks) {
- list = orphanDelayedCallbacks;
- } else {
- list = orphanDelayedCallbacks = [];
- setTimeout(fireOrphanDelayed, 0);
- }
- function bnd(f) {return function(){f.apply(null, args);};};
- for (var i = 0; i < arr.length; ++i)
- list.push(bnd(arr[i]));
- }
-
- function fireOrphanDelayed() {
- var delayed = orphanDelayedCallbacks;
- orphanDelayedCallbacks = null;
- for (var i = 0; i < delayed.length; ++i) delayed[i]();
- }
-
- // The DOM events that CodeMirror handles can be overridden by
- // registering a (non-DOM) handler on the editor for the event name,
- // and preventDefault-ing the event in that handler.
- function signalDOMEvent(cm, e, override) {
- if (typeof e == "string")
- e = {type: e, preventDefault: function() { this.defaultPrevented = true; }};
- signal(cm, override || e.type, cm, e);
- return e_defaultPrevented(e) || e.codemirrorIgnore;
- }
-
- function signalCursorActivity(cm) {
- var arr = cm._handlers && cm._handlers.cursorActivity;
- if (!arr) return;
- var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);
- for (var i = 0; i < arr.length; ++i) if (indexOf(set, arr[i]) == -1)
- set.push(arr[i]);
- }
-
- function hasHandler(emitter, type) {
- return getHandlers(emitter, type).length > 0
- }
-
- // Add on and off methods to a constructor's prototype, to make
- // registering events on such objects more convenient.
- function eventMixin(ctor) {
- ctor.prototype.on = function(type, f) {on(this, type, f);};
- ctor.prototype.off = function(type, f) {off(this, type, f);};
- }
-
- // MISC UTILITIES
-
- // Number of pixels added to scroller and sizer to hide scrollbar
- var scrollerGap = 30;
-
- // Returned or thrown by various protocols to signal 'I'm not
- // handling this'.
- var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}};
-
- // Reused option objects for setSelection & friends
- var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"};
-
- function Delayed() {this.id = null;}
- Delayed.prototype.set = function(ms, f) {
- clearTimeout(this.id);
- this.id = setTimeout(f, ms);
- };
-
- // Counts the column offset in a string, taking tabs into account.
- // Used mostly to find indentation.
- var countColumn = CodeMirror.countColumn = function(string, end, tabSize, startIndex, startValue) {
- if (end == null) {
- end = string.search(/[^\s\u00a0]/);
- if (end == -1) end = string.length;
- }
- for (var i = startIndex || 0, n = startValue || 0;;) {
- var nextTab = string.indexOf("\t", i);
- if (nextTab < 0 || nextTab >= end)
- return n + (end - i);
- n += nextTab - i;
- n += tabSize - (n % tabSize);
- i = nextTab + 1;
- }
- };
-
- // The inverse of countColumn -- find the offset that corresponds to
- // a particular column.
- var findColumn = CodeMirror.findColumn = function(string, goal, tabSize) {
- for (var pos = 0, col = 0;;) {
- var nextTab = string.indexOf("\t", pos);
- if (nextTab == -1) nextTab = string.length;
- var skipped = nextTab - pos;
- if (nextTab == string.length || col + skipped >= goal)
- return pos + Math.min(skipped, goal - col);
- col += nextTab - pos;
- col += tabSize - (col % tabSize);
- pos = nextTab + 1;
- if (col >= goal) return pos;
- }
- }
-
- var spaceStrs = [""];
- function spaceStr(n) {
- while (spaceStrs.length <= n)
- spaceStrs.push(lst(spaceStrs) + " ");
- return spaceStrs[n];
- }
-
- function lst(arr) { return arr[arr.length-1]; }
-
- var selectInput = function(node) { node.select(); };
- if (ios) // Mobile Safari apparently has a bug where select() is broken.
- selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; };
- else if (ie) // Suppress mysterious IE10 errors
- selectInput = function(node) { try { node.select(); } catch(_e) {} };
-
- function indexOf(array, elt) {
- for (var i = 0; i < array.length; ++i)
- if (array[i] == elt) return i;
- return -1;
- }
- function map(array, f) {
- var out = [];
- for (var i = 0; i < array.length; i++) out[i] = f(array[i], i);
- return out;
- }
-
- function nothing() {}
-
- function createObj(base, props) {
- var inst;
- if (Object.create) {
- inst = Object.create(base);
- } else {
- nothing.prototype = base;
- inst = new nothing();
- }
- if (props) copyObj(props, inst);
- return inst;
- };
-
- function copyObj(obj, target, overwrite) {
- if (!target) target = {};
- for (var prop in obj)
- if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))
- target[prop] = obj[prop];
- return target;
- }
-
- function bind(f) {
- var args = Array.prototype.slice.call(arguments, 1);
- return function(){return f.apply(null, args);};
- }
-
- var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;
- var isWordCharBasic = CodeMirror.isWordChar = function(ch) {
- return /\w/.test(ch) || ch > "\x80" &&
- (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch));
- };
- function isWordChar(ch, helper) {
- if (!helper) return isWordCharBasic(ch);
- if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) return true;
- return helper.test(ch);
- }
-
- function isEmpty(obj) {
- for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false;
- return true;
- }
-
- // Extending unicode characters. A series of a non-extending char +
- // any number of extending chars is treated as a single unit as far
- // as editing and measuring is concerned. This is not fully correct,
- // since some scripts/fonts/browsers also treat other configurations
- // of code points as a group.
- var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;
- function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); }
-
- // DOM UTILITIES
-
- function elt(tag, content, className, style) {
- var e = document.createElement(tag);
- if (className) e.className = className;
- if (style) e.style.cssText = style;
- if (typeof content == "string") e.appendChild(document.createTextNode(content));
- else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);
- return e;
- }
-
- var range;
- if (document.createRange) range = function(node, start, end, endNode) {
- var r = document.createRange();
- r.setEnd(endNode || node, end);
- r.setStart(node, start);
- return r;
- };
- else range = function(node, start, end) {
- var r = document.body.createTextRange();
- try { r.moveToElementText(node.parentNode); }
- catch(e) { return r; }
- r.collapse(true);
- r.moveEnd("character", end);
- r.moveStart("character", start);
- return r;
- };
-
- function removeChildren(e) {
- for (var count = e.childNodes.length; count > 0; --count)
- e.removeChild(e.firstChild);
- return e;
- }
-
- function removeChildrenAndAdd(parent, e) {
- return removeChildren(parent).appendChild(e);
- }
-
- var contains = CodeMirror.contains = function(parent, child) {
- if (child.nodeType == 3) // Android browser always returns false when child is a textnode
- child = child.parentNode;
- if (parent.contains)
- return parent.contains(child);
- do {
- if (child.nodeType == 11) child = child.host;
- if (child == parent) return true;
- } while (child = child.parentNode);
- };
-
- function activeElt() {
- var activeElement = document.activeElement;
- while (activeElement && activeElement.root && activeElement.root.activeElement)
- activeElement = activeElement.root.activeElement;
- return activeElement;
- }
- // Older versions of IE throws unspecified error when touching
- // document.activeElement in some cases (during loading, in iframe)
- if (ie && ie_version < 11) activeElt = function() {
- try { return document.activeElement; }
- catch(e) { return document.body; }
- };
-
- function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*"); }
- var rmClass = CodeMirror.rmClass = function(node, cls) {
- var current = node.className;
- var match = classTest(cls).exec(current);
- if (match) {
- var after = current.slice(match.index + match[0].length);
- node.className = current.slice(0, match.index) + (after ? match[1] + after : "");
- }
- };
- var addClass = CodeMirror.addClass = function(node, cls) {
- var current = node.className;
- if (!classTest(cls).test(current)) node.className += (current ? " " : "") + cls;
- };
- function joinClasses(a, b) {
- var as = a.split(" ");
- for (var i = 0; i < as.length; i++)
- if (as[i] && !classTest(as[i]).test(b)) b += " " + as[i];
- return b;
- }
-
- // WINDOW-WIDE EVENTS
-
- // These must be handled carefully, because naively registering a
- // handler for each editor will cause the editors to never be
- // garbage collected.
-
- function forEachCodeMirror(f) {
- if (!document.body.getElementsByClassName) return;
- var byClass = document.body.getElementsByClassName("CodeMirror");
- for (var i = 0; i < byClass.length; i++) {
- var cm = byClass[i].CodeMirror;
- if (cm) f(cm);
- }
- }
-
- var globalsRegistered = false;
- function ensureGlobalHandlers() {
- if (globalsRegistered) return;
- registerGlobalHandlers();
- globalsRegistered = true;
- }
- function registerGlobalHandlers() {
- // When the window resizes, we need to refresh active editors.
- var resizeTimer;
- on(window, "resize", function() {
- if (resizeTimer == null) resizeTimer = setTimeout(function() {
- resizeTimer = null;
- forEachCodeMirror(onResize);
- }, 100);
- });
- // When the window loses focus, we want to show the editor as blurred
- on(window, "blur", function() {
- forEachCodeMirror(onBlur);
- });
- }
-
- // FEATURE DETECTION
-
- // Detect drag-and-drop
- var dragAndDrop = function() {
- // There is *some* kind of drag-and-drop support in IE6-8, but I
- // couldn't get it to work yet.
- if (ie && ie_version < 9) return false;
- var div = elt('div');
- return "draggable" in div || "dragDrop" in div;
- }();
-
- var zwspSupported;
- function zeroWidthElement(measure) {
- if (zwspSupported == null) {
- var test = elt("span", "\u200b");
- removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")]));
- if (measure.firstChild.offsetHeight != 0)
- zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8);
- }
- var node = zwspSupported ? elt("span", "\u200b") :
- elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px");
- node.setAttribute("cm-text", "");
- return node;
- }
-
- // Feature-detect IE's crummy client rect reporting for bidi text
- var badBidiRects;
- function hasBadBidiRects(measure) {
- if (badBidiRects != null) return badBidiRects;
- var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA"));
- var r0 = range(txt, 0, 1).getBoundingClientRect();
- if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780)
- var r1 = range(txt, 1, 2).getBoundingClientRect();
- return badBidiRects = (r1.right - r0.right < 3);
- }
-
- // See if "".split is the broken IE version, if so, provide an
- // alternative way to split lines.
- var splitLinesAuto = CodeMirror.splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) {
- var pos = 0, result = [], l = string.length;
- while (pos <= l) {
- var nl = string.indexOf("\n", pos);
- if (nl == -1) nl = string.length;
- var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl);
- var rt = line.indexOf("\r");
- if (rt != -1) {
- result.push(line.slice(0, rt));
- pos += rt + 1;
- } else {
- result.push(line);
- pos = nl + 1;
- }
- }
- return result;
- } : function(string){return string.split(/\r\n?|\n/);};
-
- var hasSelection = window.getSelection ? function(te) {
- try { return te.selectionStart != te.selectionEnd; }
- catch(e) { return false; }
- } : function(te) {
- try {var range = te.ownerDocument.selection.createRange();}
- catch(e) {}
- if (!range || range.parentElement() != te) return false;
- return range.compareEndPoints("StartToEnd", range) != 0;
- };
-
- var hasCopyEvent = (function() {
- var e = elt("div");
- if ("oncopy" in e) return true;
- e.setAttribute("oncopy", "return;");
- return typeof e.oncopy == "function";
- })();
-
- var badZoomedRects = null;
- function hasBadZoomedRects(measure) {
- if (badZoomedRects != null) return badZoomedRects;
- var node = removeChildrenAndAdd(measure, elt("span", "x"));
- var normal = node.getBoundingClientRect();
- var fromRange = range(node, 0, 1).getBoundingClientRect();
- return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1;
- }
-
- // KEY NAMES
-
- var keyNames = CodeMirror.keyNames = {
- 3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
- 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
- 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
- 46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod",
- 106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete",
- 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
- 221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete",
- 63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
- };
- (function() {
- // Number keys
- for (var i = 0; i < 10; i++) keyNames[i + 48] = keyNames[i + 96] = String(i);
- // Alphabetic keys
- for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i);
- // Function keys
- for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i;
- })();
-
- // BIDI HELPERS
-
- function iterateBidiSections(order, from, to, f) {
- if (!order) return f(from, to, "ltr");
- var found = false;
- for (var i = 0; i < order.length; ++i) {
- var part = order[i];
- if (part.from < to && part.to > from || from == to && part.to == from) {
- f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr");
- found = true;
- }
- }
- if (!found) f(from, to, "ltr");
- }
-
- function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }
- function bidiRight(part) { return part.level % 2 ? part.from : part.to; }
-
- function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; }
- function lineRight(line) {
- var order = getOrder(line);
- if (!order) return line.text.length;
- return bidiRight(lst(order));
- }
-
- function lineStart(cm, lineN) {
- var line = getLine(cm.doc, lineN);
- var visual = visualLine(line);
- if (visual != line) lineN = lineNo(visual);
- var order = getOrder(visual);
- var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual);
- return Pos(lineN, ch);
- }
- function lineEnd(cm, lineN) {
- var merged, line = getLine(cm.doc, lineN);
- while (merged = collapsedSpanAtEnd(line)) {
- line = merged.find(1, true).line;
- lineN = null;
- }
- var order = getOrder(line);
- var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line);
- return Pos(lineN == null ? lineNo(line) : lineN, ch);
- }
- function lineStartSmart(cm, pos) {
- var start = lineStart(cm, pos.line);
- var line = getLine(cm.doc, start.line);
- var order = getOrder(line);
- if (!order || order[0].level == 0) {
- var firstNonWS = Math.max(0, line.text.search(/\S/));
- var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;
- return Pos(start.line, inWS ? 0 : firstNonWS);
- }
- return start;
- }
-
- function compareBidiLevel(order, a, b) {
- var linedir = order[0].level;
- if (a == linedir) return true;
- if (b == linedir) return false;
- return a < b;
- }
- var bidiOther;
- function getBidiPartAt(order, pos) {
- bidiOther = null;
- for (var i = 0, found; i < order.length; ++i) {
- var cur = order[i];
- if (cur.from < pos && cur.to > pos) return i;
- if ((cur.from == pos || cur.to == pos)) {
- if (found == null) {
- found = i;
- } else if (compareBidiLevel(order, cur.level, order[found].level)) {
- if (cur.from != cur.to) bidiOther = found;
- return i;
- } else {
- if (cur.from != cur.to) bidiOther = i;
- return found;
- }
- }
- }
- return found;
- }
-
- function moveInLine(line, pos, dir, byUnit) {
- if (!byUnit) return pos + dir;
- do pos += dir;
- while (pos > 0 && isExtendingChar(line.text.charAt(pos)));
- return pos;
- }
-
- // This is needed in order to move 'visually' through bi-directional
- // text -- i.e., pressing left should make the cursor go left, even
- // when in RTL text. The tricky part is the 'jumps', where RTL and
- // LTR text touch each other. This often requires the cursor offset
- // to move more than one unit, in order to visually move one unit.
- function moveVisually(line, start, dir, byUnit) {
- var bidi = getOrder(line);
- if (!bidi) return moveLogically(line, start, dir, byUnit);
- var pos = getBidiPartAt(bidi, start), part = bidi[pos];
- var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit);
-
- for (;;) {
- if (target > part.from && target < part.to) return target;
- if (target == part.from || target == part.to) {
- if (getBidiPartAt(bidi, target) == pos) return target;
- part = bidi[pos += dir];
- return (dir > 0) == part.level % 2 ? part.to : part.from;
- } else {
- part = bidi[pos += dir];
- if (!part) return null;
- if ((dir > 0) == part.level % 2)
- target = moveInLine(line, part.to, -1, byUnit);
- else
- target = moveInLine(line, part.from, 1, byUnit);
- }
- }
- }
-
- function moveLogically(line, start, dir, byUnit) {
- var target = start + dir;
- if (byUnit) while (target > 0 && isExtendingChar(line.text.charAt(target))) target += dir;
- return target < 0 || target > line.text.length ? null : target;
- }
-
- // Bidirectional ordering algorithm
- // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm
- // that this (partially) implements.
-
- // One-char codes used for character types:
- // L (L): Left-to-Right
- // R (R): Right-to-Left
- // r (AL): Right-to-Left Arabic
- // 1 (EN): European Number
- // + (ES): European Number Separator
- // % (ET): European Number Terminator
- // n (AN): Arabic Number
- // , (CS): Common Number Separator
- // m (NSM): Non-Spacing Mark
- // b (BN): Boundary Neutral
- // s (B): Paragraph Separator
- // t (S): Segment Separator
- // w (WS): Whitespace
- // N (ON): Other Neutrals
-
- // Returns null if characters are ordered as they appear
- // (left-to-right), or an array of sections ({from, to, level}
- // objects) in the order in which they occur visually.
- var bidiOrdering = (function() {
- // Character types for codepoints 0 to 0xff
- var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN";
- // Character types for codepoints 0x600 to 0x6ff
- var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm";
- function charType(code) {
- if (code <= 0xf7) return lowTypes.charAt(code);
- else if (0x590 <= code && code <= 0x5f4) return "R";
- else if (0x600 <= code && code <= 0x6ed) return arabicTypes.charAt(code - 0x600);
- else if (0x6ee <= code && code <= 0x8ac) return "r";
- else if (0x2000 <= code && code <= 0x200b) return "w";
- else if (code == 0x200c) return "b";
- else return "L";
- }
-
- var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;
- var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;
- // Browsers seem to always treat the boundaries of block elements as being L.
- var outerType = "L";
-
- function BidiSpan(level, from, to) {
- this.level = level;
- this.from = from; this.to = to;
- }
-
- return function(str) {
- if (!bidiRE.test(str)) return false;
- var len = str.length, types = [];
- for (var i = 0, type; i < len; ++i)
- types.push(type = charType(str.charCodeAt(i)));
-
- // W1. Examine each non-spacing mark (NSM) in the level run, and
- // change the type of the NSM to the type of the previous
- // character. If the NSM is at the start of the level run, it will
- // get the type of sor.
- for (var i = 0, prev = outerType; i < len; ++i) {
- var type = types[i];
- if (type == "m") types[i] = prev;
- else prev = type;
- }
-
- // W2. Search backwards from each instance of a European number
- // until the first strong type (R, L, AL, or sor) is found. If an
- // AL is found, change the type of the European number to Arabic
- // number.
- // W3. Change all ALs to R.
- for (var i = 0, cur = outerType; i < len; ++i) {
- var type = types[i];
- if (type == "1" && cur == "r") types[i] = "n";
- else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; }
- }
-
- // W4. A single European separator between two European numbers
- // changes to a European number. A single common separator between
- // two numbers of the same type changes to that type.
- for (var i = 1, prev = types[0]; i < len - 1; ++i) {
- var type = types[i];
- if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1";
- else if (type == "," && prev == types[i+1] &&
- (prev == "1" || prev == "n")) types[i] = prev;
- prev = type;
- }
-
- // W5. A sequence of European terminators adjacent to European
- // numbers changes to all European numbers.
- // W6. Otherwise, separators and terminators change to Other
- // Neutral.
- for (var i = 0; i < len; ++i) {
- var type = types[i];
- if (type == ",") types[i] = "N";
- else if (type == "%") {
- for (var end = i + 1; end < len && types[end] == "%"; ++end) {}
- var replace = (i && types[i-1] == "!") || (end < len && types[end] == "1") ? "1" : "N";
- for (var j = i; j < end; ++j) types[j] = replace;
- i = end - 1;
- }
- }
-
- // W7. Search backwards from each instance of a European number
- // until the first strong type (R, L, or sor) is found. If an L is
- // found, then change the type of the European number to L.
- for (var i = 0, cur = outerType; i < len; ++i) {
- var type = types[i];
- if (cur == "L" && type == "1") types[i] = "L";
- else if (isStrong.test(type)) cur = type;
- }
-
- // N1. A sequence of neutrals takes the direction of the
- // surrounding strong text if the text on both sides has the same
- // direction. European and Arabic numbers act as if they were R in
- // terms of their influence on neutrals. Start-of-level-run (sor)
- // and end-of-level-run (eor) are used at level run boundaries.
- // N2. Any remaining neutrals take the embedding direction.
- for (var i = 0; i < len; ++i) {
- if (isNeutral.test(types[i])) {
- for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {}
- var before = (i ? types[i-1] : outerType) == "L";
- var after = (end < len ? types[end] : outerType) == "L";
- var replace = before || after ? "L" : "R";
- for (var j = i; j < end; ++j) types[j] = replace;
- i = end - 1;
- }
- }
-
- // Here we depart from the documented algorithm, in order to avoid
- // building up an actual levels array. Since there are only three
- // levels (0, 1, 2) in an implementation that doesn't take
- // explicit embedding into account, we can build up the order on
- // the fly, without following the level-based algorithm.
- var order = [], m;
- for (var i = 0; i < len;) {
- if (countsAsLeft.test(types[i])) {
- var start = i;
- for (++i; i < len && countsAsLeft.test(types[i]); ++i) {}
- order.push(new BidiSpan(0, start, i));
- } else {
- var pos = i, at = order.length;
- for (++i; i < len && types[i] != "L"; ++i) {}
- for (var j = pos; j < i;) {
- if (countsAsNum.test(types[j])) {
- if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j));
- var nstart = j;
- for (++j; j < i && countsAsNum.test(types[j]); ++j) {}
- order.splice(at, 0, new BidiSpan(2, nstart, j));
- pos = j;
- } else ++j;
- }
- if (pos < i) order.splice(at, 0, new BidiSpan(1, pos, i));
- }
- }
- if (order[0].level == 1 && (m = str.match(/^\s+/))) {
- order[0].from = m[0].length;
- order.unshift(new BidiSpan(0, 0, m[0].length));
- }
- if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
- lst(order).to -= m[0].length;
- order.push(new BidiSpan(0, len - m[0].length, len));
- }
- if (order[0].level == 2)
- order.unshift(new BidiSpan(1, order[0].to, order[0].to));
- if (order[0].level != lst(order).level)
- order.push(new BidiSpan(order[0].level, len, len));
-
- return order;
- };
- })();
-
- // THE END
-
- CodeMirror.version = "5.15.2";
-
- return CodeMirror;
-});
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/js/javascript.js b/asterixdb/asterix-app/src/main/resources/queryui/js/javascript.js
deleted file mode 100644
index e0e1bc8..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/js/javascript.js
+++ /dev/null
@@ -1,766 +0,0 @@
-/*
- * Copyright (C) 2016 by Marijn Haverbeke <marijnh@gmail.com> and others
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-// TODO actually recognize syntax of TypeScript constructs
-
-(function(mod) {
- if (typeof exports == "object" && typeof module == "object") // CommonJS
- mod(require("../../lib/codemirror"));
- else if (typeof define == "function" && define.amd) // AMD
- define(["../../lib/codemirror"], mod);
- else // Plain browser env
- mod(CodeMirror);
-})(function(CodeMirror) {
-"use strict";
-
-function expressionAllowed(stream, state, backUp) {
- return /^(?:operator|sof|keyword c|case|new|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
- (state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
-}
-
-CodeMirror.defineMode("javascript", function(config, parserConfig) {
- var indentUnit = config.indentUnit;
- var statementIndent = parserConfig.statementIndent;
- var jsonldMode = parserConfig.jsonld;
- var jsonMode = parserConfig.json || jsonldMode;
- var isTS = parserConfig.typescript;
- var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/;
-
- // Tokenizer
-
- var keywords = function(){
- function kw(type) {return {type: type, style: "keyword"};}
- var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c");
- var operator = kw("operator"), atom = {type: "atom", style: "atom"};
-
- var jsKeywords = {
- "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
- "return": C, "break": C, "continue": C, "new": kw("new"), "delete": C, "throw": C, "debugger": C,
- "var": kw("var"), "const": kw("var"), "let": kw("var"),
- "function": kw("function"), "catch": kw("catch"),
- "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
- "in": operator, "typeof": operator, "instanceof": operator,
- "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom,
- "this": kw("this"), "class": kw("class"), "super": kw("atom"),
- "yield": C, "export": kw("export"), "import": kw("import"), "extends": C,
- "await": C, "async": kw("async")
- };
-
- // Extend the 'normal' keywords with the TypeScript language extensions
- if (isTS) {
- var type = {type: "variable", style: "variable-3"};
- var tsKeywords = {
- // object-like things
- "interface": kw("class"),
- "implements": C,
- "namespace": C,
- "module": kw("module"),
- "enum": kw("module"),
-
- // scope modifiers
- "public": kw("modifier"),
- "private": kw("modifier"),
- "protected": kw("modifier"),
- "abstract": kw("modifier"),
-
- // operators
- "as": operator,
-
- // types
- "string": type, "number": type, "boolean": type, "any": type
- };
-
- for (var attr in tsKeywords) {
- jsKeywords[attr] = tsKeywords[attr];
- }
- }
-
- return jsKeywords;
- }();
-
- var isOperatorChar = /[+\-*&%=<>!?|~^]/;
- var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;
-
- function readRegexp(stream) {
- var escaped = false, next, inSet = false;
- while ((next = stream.next()) != null) {
- if (!escaped) {
- if (next == "/" && !inSet) return;
- if (next == "[") inSet = true;
- else if (inSet && next == "]") inSet = false;
- }
- escaped = !escaped && next == "\\";
- }
- }
-
- // Used as scratch variables to communicate multiple values without
- // consing up tons of objects.
- var type, content;
- function ret(tp, style, cont) {
- type = tp; content = cont;
- return style;
- }
- function tokenBase(stream, state) {
- var ch = stream.next();
- if (ch == '"' || ch == "'") {
- state.tokenize = tokenString(ch);
- return state.tokenize(stream, state);
- } else if (ch == "." && stream.match(/^\d+(?:[eE][+\-]?\d+)?/)) {
- return ret("number", "number");
- } else if (ch == "." && stream.match("..")) {
- return ret("spread", "meta");
- } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
- return ret(ch);
- } else if (ch == "=" && stream.eat(">")) {
- return ret("=>", "operator");
- } else if (ch == "0" && stream.eat(/x/i)) {
- stream.eatWhile(/[\da-f]/i);
- return ret("number", "number");
- } else if (ch == "0" && stream.eat(/o/i)) {
- stream.eatWhile(/[0-7]/i);
- return ret("number", "number");
- } else if (ch == "0" && stream.eat(/b/i)) {
- stream.eatWhile(/[01]/i);
- return ret("number", "number");
- } else if (/\d/.test(ch)) {
- stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);
- return ret("number", "number");
- } else if (ch == "/") {
- if (stream.eat("*")) {
- state.tokenize = tokenComment;
- return tokenComment(stream, state);
- } else if (stream.eat("/")) {
- stream.skipToEnd();
- return ret("comment", "comment");
- } else if (expressionAllowed(stream, state, 1)) {
- readRegexp(stream);
- stream.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/);
- return ret("regexp", "string-2");
- } else {
- stream.eatWhile(isOperatorChar);
- return ret("operator", "operator", stream.current());
- }
- } else if (ch == "`") {
- state.tokenize = tokenQuasi;
- return tokenQuasi(stream, state);
- } else if (ch == "#") {
- stream.skipToEnd();
- return ret("error", "error");
- } else if (isOperatorChar.test(ch)) {
- stream.eatWhile(isOperatorChar);
- return ret("operator", "operator", stream.current());
- } else if (wordRE.test(ch)) {
- stream.eatWhile(wordRE);
- var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];
- return (known && state.lastType != ".") ? ret(known.type, known.style, word) :
- ret("variable", "variable", word);
- }
- }
-
- function tokenString(quote) {
- return function(stream, state) {
- var escaped = false, next;
- if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)){
- state.tokenize = tokenBase;
- return ret("jsonld-keyword", "meta");
- }
- while ((next = stream.next()) != null) {
- if (next == quote && !escaped) break;
- escaped = !escaped && next == "\\";
- }
- if (!escaped) state.tokenize = tokenBase;
- return ret("string", "string");
- };
- }
-
- function tokenComment(stream, state) {
- var maybeEnd = false, ch;
- while (ch = stream.next()) {
- if (ch == "/" && maybeEnd) {
- state.tokenize = tokenBase;
- break;
- }
- maybeEnd = (ch == "*");
- }
- return ret("comment", "comment");
- }
-
- function tokenQuasi(stream, state) {
- var escaped = false, next;
- while ((next = stream.next()) != null) {
- if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) {
- state.tokenize = tokenBase;
- break;
- }
- escaped = !escaped && next == "\\";
- }
- return ret("quasi", "string-2", stream.current());
- }
-
- var brackets = "([{}])";
- // This is a crude lookahead trick to try and notice that we're
- // parsing the argument patterns for a fat-arrow function before we
- // actually hit the arrow token. It only works if the arrow is on
- // the same line as the arguments and there's no strange noise
- // (comments) in between. Fallback is to only notice when we hit the
- // arrow, and not declare the arguments as locals for the arrow
- // body.
- function findFatArrow(stream, state) {
- if (state.fatArrowAt) state.fatArrowAt = null;
- var arrow = stream.string.indexOf("=>", stream.start);
- if (arrow < 0) return;
-
- var depth = 0, sawSomething = false;
- for (var pos = arrow - 1; pos >= 0; --pos) {
- var ch = stream.string.charAt(pos);
- var bracket = brackets.indexOf(ch);
- if (bracket >= 0 && bracket < 3) {
- if (!depth) { ++pos; break; }
- if (--depth == 0) break;
- } else if (bracket >= 3 && bracket < 6) {
- ++depth;
- } else if (wordRE.test(ch)) {
- sawSomething = true;
- } else if (/["'\/]/.test(ch)) {
- return;
- } else if (sawSomething && !depth) {
- ++pos;
- break;
- }
- }
- if (sawSomething && !depth) state.fatArrowAt = pos;
- }
-
- // Parser
-
- var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true, "this": true, "jsonld-keyword": true};
-
- function JSLexical(indented, column, type, align, prev, info) {
- this.indented = indented;
- this.column = column;
- this.type = type;
- this.prev = prev;
- this.info = info;
- if (align != null) this.align = align;
- }
-
- function inScope(state, varname) {
- for (var v = state.localVars; v; v = v.next)
- if (v.name == varname) return true;
- for (var cx = state.context; cx; cx = cx.prev) {
- for (var v = cx.vars; v; v = v.next)
- if (v.name == varname) return true;
- }
- }
-
- function parseJS(state, style, type, content, stream) {
- var cc = state.cc;
- // Communicate our context to the combinators.
- // (Less wasteful than consing up a hundred closures on every call.)
- cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;
-
- if (!state.lexical.hasOwnProperty("align"))
- state.lexical.align = true;
-
- while(true) {
- var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;
- if (combinator(type, content)) {
- while(cc.length && cc[cc.length - 1].lex)
- cc.pop()();
- if (cx.marked) return cx.marked;
- if (type == "variable" && inScope(state, content)) return "variable-2";
- return style;
- }
- }
- }
-
- // Combinator utils
-
- var cx = {state: null, column: null, marked: null, cc: null};
- function pass() {
- for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);
- }
- function cont() {
- pass.apply(null, arguments);
- return true;
- }
- function register(varname) {
- function inList(list) {
- for (var v = list; v; v = v.next)
- if (v.name == varname) return true;
- return false;
- }
- var state = cx.state;
- cx.marked = "def";
- if (state.context) {
- if (inList(state.localVars)) return;
- state.localVars = {name: varname, next: state.localVars};
- } else {
- if (inList(state.globalVars)) return;
- if (parserConfig.globalVars)
- state.globalVars = {name: varname, next: state.globalVars};
- }
- }
-
- // Combinators
-
- var defaultVars = {name: "this", next: {name: "arguments"}};
- function pushcontext() {
- cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};
- cx.state.localVars = defaultVars;
- }
- function popcontext() {
- cx.state.localVars = cx.state.context.vars;
- cx.state.context = cx.state.context.prev;
- }
- function pushlex(type, info) {
- var result = function() {
- var state = cx.state, indent = state.indented;
- if (state.lexical.type == "stat") indent = state.lexical.indented;
- else for (var outer = state.lexical; outer && outer.type == ")" && outer.align; outer = outer.prev)
- indent = outer.indented;
- state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);
- };
- result.lex = true;
- return result;
- }
- function poplex() {
- var state = cx.state;
- if (state.lexical.prev) {
- if (state.lexical.type == ")")
- state.indented = state.lexical.indented;
- state.lexical = state.lexical.prev;
- }
- }
- poplex.lex = true;
-
- function expect(wanted) {
- function exp(type) {
- if (type == wanted) return cont();
- else if (wanted == ";") return pass();
- else return cont(exp);
- };
- return exp;
- }
-
- function statement(type, value) {
- if (type == "var") return cont(pushlex("vardef", value.length), vardef, expect(";"), poplex);
- if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex);
- if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
- if (type == "{") return cont(pushlex("}"), block, poplex);
- if (type == ";") return cont();
- if (type == "if") {
- if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex)
- cx.state.cc.pop()();
- return cont(pushlex("form"), expression, statement, poplex, maybeelse);
- }
- if (type == "function") return cont(functiondef);
- if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
- if (type == "variable") return cont(pushlex("stat"), maybelabel);
- if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"),
- block, poplex, poplex);
- if (type == "case") return cont(expression, expect(":"));
- if (type == "default") return cont(expect(":"));
- if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"),
- statement, poplex, popcontext);
- if (type == "class") return cont(pushlex("form"), className, poplex);
- if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
- if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
- if (type == "module") return cont(pushlex("form"), pattern, pushlex("}"), expect("{"), block, poplex, poplex)
- if (type == "async") return cont(statement)
- return pass(pushlex("stat"), expression, expect(";"), poplex);
- }
- function expression(type) {
- return expressionInner(type, false);
- }
- function expressionNoComma(type) {
- return expressionInner(type, true);
- }
- function expressionInner(type, noComma) {
- if (cx.state.fatArrowAt == cx.stream.start) {
- var body = noComma ? arrowBodyNoComma : arrowBody;
- if (type == "(") return cont(pushcontext, pushlex(")"), commasep(pattern, ")"), poplex, expect("=>"), body, popcontext);
- else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
- }
-
- var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
- if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
- if (type == "function") return cont(functiondef, maybeop);
- if (type == "keyword c") return cont(noComma ? maybeexpressionNoComma : maybeexpression);
- if (type == "(") return cont(pushlex(")"), maybeexpression, comprehension, expect(")"), poplex, maybeop);
- if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
- if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
- if (type == "{") return contCommasep(objprop, "}", null, maybeop);
- if (type == "quasi") return pass(quasi, maybeop);
- if (type == "new") return cont(maybeTarget(noComma));
- return cont();
- }
- function maybeexpression(type) {
- if (type.match(/[;\}\)\],]/)) return pass();
- return pass(expression);
- }
- function maybeexpressionNoComma(type) {
- if (type.match(/[;\}\)\],]/)) return pass();
- return pass(expressionNoComma);
- }
-
- function maybeoperatorComma(type, value) {
- if (type == ",") return cont(expression);
- return maybeoperatorNoComma(type, value, false);
- }
- function maybeoperatorNoComma(type, value, noComma) {
- var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;
- var expr = noComma == false ? expression : expressionNoComma;
- if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
- if (type == "operator") {
- if (/\+\+|--/.test(value)) return cont(me);
- if (value == "?") return cont(expression, expect(":"), expr);
- return cont(expr);
- }
- if (type == "quasi") { return pass(quasi, me); }
- if (type == ";") return;
- if (type == "(") return contCommasep(expressionNoComma, ")", "call", me);
- if (type == ".") return cont(property, me);
- if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
- }
- function quasi(type, value) {
- if (type != "quasi") return pass();
- if (value.slice(value.length - 2) != "${") return cont(quasi);
- return cont(expression, continueQuasi);
- }
- function continueQuasi(type) {
- if (type == "}") {
- cx.marked = "string-2";
- cx.state.tokenize = tokenQuasi;
- return cont(quasi);
- }
- }
- function arrowBody(type) {
- findFatArrow(cx.stream, cx.state);
- return pass(type == "{" ? statement : expression);
- }
- function arrowBodyNoComma(type) {
- findFatArrow(cx.stream, cx.state);
- return pass(type == "{" ? statement : expressionNoComma);
- }
- function maybeTarget(noComma) {
- return function(type) {
- if (type == ".") return cont(noComma ? targetNoComma : target);
- else return pass(noComma ? expressionNoComma : expression);
- };
- }
- function target(_, value) {
- if (value == "target") { cx.marked = "keyword"; return cont(maybeoperatorComma); }
- }
- function targetNoComma(_, value) {
- if (value == "target") { cx.marked = "keyword"; return cont(maybeoperatorNoComma); }
- }
- function maybelabel(type) {
- if (type == ":") return cont(poplex, statement);
- return pass(maybeoperatorComma, expect(";"), poplex);
- }
- function property(type) {
- if (type == "variable") {cx.marked = "property"; return cont();}
- }
- function objprop(type, value) {
- if (type == "variable" || cx.style == "keyword") {
- cx.marked = "property";
- if (value == "get" || value == "set") return cont(getterSetter);
- return cont(afterprop);
- } else if (type == "number" || type == "string") {
- cx.marked = jsonldMode ? "property" : (cx.style + " property");
- return cont(afterprop);
- } else if (type == "jsonld-keyword") {
- return cont(afterprop);
- } else if (type == "modifier") {
- return cont(objprop)
- } else if (type == "[") {
- return cont(expression, expect("]"), afterprop);
- } else if (type == "spread") {
- return cont(expression);
- }
- }
- function getterSetter(type) {
- if (type != "variable") return pass(afterprop);
- cx.marked = "property";
- return cont(functiondef);
- }
- function afterprop(type) {
- if (type == ":") return cont(expressionNoComma);
- if (type == "(") return pass(functiondef);
- }
- function commasep(what, end) {
- function proceed(type, value) {
- if (type == ",") {
- var lex = cx.state.lexical;
- if (lex.info == "call") lex.pos = (lex.pos || 0) + 1;
- return cont(what, proceed);
- }
- if (type == end || value == end) return cont();
- return cont(expect(end));
- }
- return function(type, value) {
- if (type == end || value == end) return cont();
- return pass(what, proceed);
- };
- }
- function contCommasep(what, end, info) {
- for (var i = 3; i < arguments.length; i++)
- cx.cc.push(arguments[i]);
- return cont(pushlex(end, info), commasep(what, end), poplex);
- }
- function block(type) {
- if (type == "}") return cont();
- return pass(statement, block);
- }
- function maybetype(type) {
- if (isTS && type == ":") return cont(typeexpr);
- }
- function maybedefault(_, value) {
- if (value == "=") return cont(expressionNoComma);
- }
- function typeexpr(type) {
- if (type == "variable") {cx.marked = "variable-3"; return cont(afterType);}
- }
- function afterType(type, value) {
- if (value == "<") return cont(commasep(typeexpr, ">"), afterType)
- if (type == "[") return cont(expect("]"), afterType)
- }
- function vardef() {
- return pass(pattern, maybetype, maybeAssign, vardefCont);
- }
- function pattern(type, value) {
- if (type == "modifier") return cont(pattern)
- if (type == "variable") { register(value); return cont(); }
- if (type == "spread") return cont(pattern);
- if (type == "[") return contCommasep(pattern, "]");
- if (type == "{") return contCommasep(proppattern, "}");
- }
- function proppattern(type, value) {
- if (type == "variable" && !cx.stream.match(/^\s*:/, false)) {
- register(value);
- return cont(maybeAssign);
- }
- if (type == "variable") cx.marked = "property";
- if (type == "spread") return cont(pattern);
- if (type == "}") return pass();
- return cont(expect(":"), pattern, maybeAssign);
- }
- function maybeAssign(_type, value) {
- if (value == "=") return cont(expressionNoComma);
- }
- function vardefCont(type) {
- if (type == ",") return cont(vardef);
- }
- function maybeelse(type, value) {
- if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex);
- }
- function forspec(type) {
- if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex);
- }
- function forspec1(type) {
- if (type == "var") return cont(vardef, expect(";"), forspec2);
- if (type == ";") return cont(forspec2);
- if (type == "variable") return cont(formaybeinof);
- return pass(expression, expect(";"), forspec2);
- }
- function formaybeinof(_type, value) {
- if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); }
- return cont(maybeoperatorComma, forspec2);
- }
- function forspec2(type, value) {
- if (type == ";") return cont(forspec3);
- if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); }
- return pass(expression, expect(";"), forspec3);
- }
- function forspec3(type) {
- if (type != ")") cont(expression);
- }
- function functiondef(type, value) {
- if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
- if (type == "variable") {register(value); return cont(functiondef);}
- if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, maybetype, statement, popcontext);
- }
- function funarg(type) {
- if (type == "spread") return cont(funarg);
- return pass(pattern, maybetype, maybedefault);
- }
- function className(type, value) {
- if (type == "variable") {register(value); return cont(classNameAfter);}
- }
- function classNameAfter(type, value) {
- if (value == "extends") return cont(expression, classNameAfter);
- if (type == "{") return cont(pushlex("}"), classBody, poplex);
- }
- function classBody(type, value) {
- if (type == "variable" || cx.style == "keyword") {
- if (value == "static") {
- cx.marked = "keyword";
- return cont(classBody);
- }
- cx.marked = "property";
- if (value == "get" || value == "set") return cont(classGetterSetter, functiondef, classBody);
- return cont(functiondef, classBody);
- }
- if (value == "*") {
- cx.marked = "keyword";
- return cont(classBody);
- }
- if (type == ";") return cont(classBody);
- if (type == "}") return cont();
- }
- function classGetterSetter(type) {
- if (type != "variable") return pass();
- cx.marked = "property";
- return cont();
- }
- function afterExport(_type, value) {
- if (value == "*") { cx.marked = "keyword"; return cont(maybeFrom, expect(";")); }
- if (value == "default") { cx.marked = "keyword"; return cont(expression, expect(";")); }
- return pass(statement);
- }
- function afterImport(type) {
- if (type == "string") return cont();
- return pass(importSpec, maybeFrom);
- }
- function importSpec(type, value) {
- if (type == "{") return contCommasep(importSpec, "}");
- if (type == "variable") register(value);
- if (value == "*") cx.marked = "keyword";
- return cont(maybeAs);
- }
- function maybeAs(_type, value) {
- if (value == "as") { cx.marked = "keyword"; return cont(importSpec); }
- }
- function maybeFrom(_type, value) {
- if (value == "from") { cx.marked = "keyword"; return cont(expression); }
- }
- function arrayLiteral(type) {
- if (type == "]") return cont();
- return pass(expressionNoComma, maybeArrayComprehension);
- }
- function maybeArrayComprehension(type) {
- if (type == "for") return pass(comprehension, expect("]"));
- if (type == ",") return cont(commasep(maybeexpressionNoComma, "]"));
- return pass(commasep(expressionNoComma, "]"));
- }
- function comprehension(type) {
- if (type == "for") return cont(forspec, comprehension);
- if (type == "if") return cont(expression, comprehension);
- }
-
- function isContinuedStatement(state, textAfter) {
- return state.lastType == "operator" || state.lastType == "," ||
- isOperatorChar.test(textAfter.charAt(0)) ||
- /[,.]/.test(textAfter.charAt(0));
- }
-
- // Interface
-
- return {
- startState: function(basecolumn) {
- var state = {
- tokenize: tokenBase,
- lastType: "sof",
- cc: [],
- lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
- localVars: parserConfig.localVars,
- context: parserConfig.localVars && {vars: parserConfig.localVars},
- indented: basecolumn || 0
- };
- if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
- state.globalVars = parserConfig.globalVars;
- return state;
- },
-
- token: function(stream, state) {
- if (stream.sol()) {
- if (!state.lexical.hasOwnProperty("align"))
- state.lexical.align = false;
- state.indented = stream.indentation();
- findFatArrow(stream, state);
- }
- if (state.tokenize != tokenComment && stream.eatSpace()) return null;
- var style = state.tokenize(stream, state);
- if (type == "comment") return style;
- state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type;
- return parseJS(state, style, type, content, stream);
- },
-
- indent: function(state, textAfter) {
- if (state.tokenize == tokenComment) return CodeMirror.Pass;
- if (state.tokenize != tokenBase) return 0;
- var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;
- // Kludge to prevent 'maybelse' from blocking lexical scope pops
- if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {
- var c = state.cc[i];
- if (c == poplex) lexical = lexical.prev;
- else if (c != maybeelse) break;
- }
- if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev;
- if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat")
- lexical = lexical.prev;
- var type = lexical.type, closing = firstChar == type;
-
- if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info + 1 : 0);
- else if (type == "form" && firstChar == "{") return lexical.indented;
- else if (type == "form") return lexical.indented + indentUnit;
- else if (type == "stat")
- return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);
- else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false)
- return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);
- else if (lexical.align) return lexical.column + (closing ? 0 : 1);
- else return lexical.indented + (closing ? 0 : indentUnit);
- },
-
- electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
- blockCommentStart: jsonMode ? null : "/*",
- blockCommentEnd: jsonMode ? null : "*/",
- lineComment: jsonMode ? null : "//",
- fold: "brace",
- closeBrackets: "()[]{}''\"\"``",
-
- helperType: jsonMode ? "json" : "javascript",
- jsonldMode: jsonldMode,
- jsonMode: jsonMode,
-
- expressionAllowed: expressionAllowed,
- skipExpression: function(state) {
- var top = state.cc[state.cc.length - 1]
- if (top == expression || top == expressionNoComma) state.cc.pop()
- }
- };
-});
-
-CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/);
-
-CodeMirror.defineMIME("text/javascript", "javascript");
-CodeMirror.defineMIME("text/ecmascript", "javascript");
-CodeMirror.defineMIME("application/javascript", "javascript");
-CodeMirror.defineMIME("application/x-javascript", "javascript");
-CodeMirror.defineMIME("application/ecmascript", "javascript");
-CodeMirror.defineMIME("application/json", {name: "javascript", json: true});
-CodeMirror.defineMIME("application/x-json", {name: "javascript", json: true});
-CodeMirror.defineMIME("application/ld+json", {name: "javascript", jsonld: true});
-CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true });
-CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true });
-
-});
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/js/jquery-1.12.4.min.js b/asterixdb/asterix-app/src/main/resources/queryui/js/jquery-1.12.4.min.js
deleted file mode 100644
index f23115a..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/js/jquery-1.12.4.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=R.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=!0,c||j.disable(),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0;
-}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}}),function(){var a;l.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,e;return c=d.getElementsByTagName("body")[0],c&&c.style?(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(d.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(e),a):void 0}}();var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),V=["Top","Right","Bottom","Left"],W=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function X(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&U.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var Y=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)Y(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/<tbody/i;function ia(a){Z.test(a.type)&&(a.defaultChecked=a.checked)}function ja(a,b,c,d,e){for(var f,g,h,i,j,k,m,o=a.length,p=ca(b),q=[],r=0;o>r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?"<table>"!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ma.test(f)?this.mouseHooks:la.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=g.srcElement||d),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,h.filter?h.filter(a,g):a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button,h=b.fromElement;return null==a.pageX&&null!=b.clientX&&(e=a.target.ownerDocument||d,f=e.documentElement,c=e.body,a.pageX=b.clientX+(f&&f.scrollLeft||c&&c.scrollLeft||0)-(f&&f.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(f&&f.scrollTop||c&&c.scrollTop||0)-(f&&f.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&h&&(a.relatedTarget=h===a.target?b.toElement:h),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==ra()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===ra()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b),d.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=d.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)}:function(a,b,c){var d="on"+b;a.detachEvent&&("undefined"==typeof a[d]&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?pa:qa):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={constructor:n.Event,isDefaultPrevented:qa,isPropagationStopped:qa,isImmediatePropagationStopped:qa,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=pa,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=pa,a&&!this.isSimulated&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=pa,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||n.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submit||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?n.prop(b,"form"):void 0;c&&!n._data(c,"submit")&&(n.event.add(c,"submit._submit",function(a){a._submitBubble=!0}),n._data(c,"submit",!0))})},postDispatch:function(a){a._submitBubble&&(delete a._submitBubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.change||(n.event.special.change={setup:function(){return ka.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._justChanged=!0)}),n.event.add(this,"click._change",function(a){this._justChanged&&!a.isTrigger&&(this._justChanged=!1),n.event.simulate("change",this,a)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;ka.test(b.nodeName)&&!n._data(b,"change")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a)}),n._data(b,"change",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!ka.test(this.nodeName)}}),l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d){return sa(this,a,b,c,d)},one:function(a,b,c,d){return sa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=qa),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ta=/ jQuery\d+="(?:null|\d+)"/g,ua=new RegExp("<(?:"+ba+")[\\s/>]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/<script|<style|<link/i,xa=/checked\s*(?:[^=]|=\s*.checked.)/i,ya=/^true\/(.*)/,za=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Ja[0].contentWindow||Ja[0].contentDocument).document,b.write(),b.close(),c=La(a,b),Ja.detach()),Ka[a]=c),c}var Na=/^margin/,Oa=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa=d.documentElement;!function(){var b,c,e,f,g,h,i=d.createElement("div"),j=d.createElement("div");if(j.style){j.style.cssText="float:left;opacity:.5",l.opacity="0.5"===j.style.opacity,l.cssFloat=!!j.style.cssFloat,j.style.backgroundClip="content-box",j.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===j.style.backgroundClip,i=d.createElement("div"),i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j.innerHTML="",i.appendChild(j),l.boxSizing=""===j.style.boxSizing||""===j.style.MozBoxSizing||""===j.style.WebkitBoxSizing,n.extend(l,{reliableHiddenOffsets:function(){return null==b&&k(),f},boxSizingReliable:function(){return null==b&&k(),e},pixelMarginRight:function(){return null==b&&k(),c},pixelPosition:function(){return null==b&&k(),b},reliableMarginRight:function(){return null==b&&k(),g},reliableMarginLeft:function(){return null==b&&k(),h}});function k(){var k,l,m=d.documentElement;m.appendChild(i),j.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=!1,c=g=!0,a.getComputedStyle&&(l=a.getComputedStyle(j),b="1%"!==(l||{}).top,h="2px"===(l||{}).marginLeft,e="4px"===(l||{width:"4px"}).width,j.style.marginRight="50%",c="4px"===(l||{marginRight:"4px"}).marginRight,k=j.appendChild(d.createElement("div")),k.style.cssText=j.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k.style.marginRight=k.style.width="0",j.style.width="1px",g=!parseFloat((a.getComputedStyle(k)||{}).marginRight),j.removeChild(k)),j.style.display="none",f=0===j.getClientRects().length,f&&(j.style.display="",j.innerHTML="<table><tr><td></td><td>t</td></tr></table>",j.childNodes[0].style.borderCollapse="separate",k=j.getElementsByTagName("td"),k[0].style.cssText="margin:0;border:0;padding:0;display:none",f=0===k[0].offsetHeight,f&&(k[0].style.display="",k[1].style.display="none",f=0===k[0].offsetHeight)),m.removeChild(i)}}}();var Ra,Sa,Ta=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ra=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Oa.test(g)&&Na.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0===g?g:g+""}):Qa.currentStyle&&(Ra=function(a){return a.currentStyle},Sa=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Oa.test(g)&&!Ta.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Ua(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Va=/alpha\([^)]*\)/i,Wa=/opacity\s*=\s*([^)]*)/i,Xa=/^(none|table(?!-c[ea]).+)/,Ya=new RegExp("^("+T+")(.*)$","i"),Za={position:"absolute",visibility:"hidden",display:"block"},$a={letterSpacing:"0",fontWeight:"400"},_a=["Webkit","O","Moz","ms"],ab=d.createElement("div").style;function bb(a){if(a in ab)return a;var b=a.charAt(0).toUpperCase()+a.slice(1),c=_a.length;while(c--)if(a=_a[c]+b,a in ab)return a}function cb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&W(d)&&(f[g]=n._data(d,"olddisplay",Ma(d.nodeName)))):(e=W(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function db(a,b,c){var d=Ya.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function eb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+V[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+V[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+V[f]+"Width",!0,e))):(g+=n.css(a,"padding"+V[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+V[f]+"Width",!0,e)));return g}function fb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g=l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Sa(a,b,f),(0>e||null==e)&&(e=a.style[b]),Oa.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+eb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Sa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=U.exec(c))&&e[1]&&(c=X(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=bb(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Sa(a,b,d)),"normal"===f&&b in $a&&(f=$a[b]),""===c||c?(e=parseFloat(f),c===!0||isFinite(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Xa.test(n.css(a,"display"))&&0===a.offsetWidth?Pa(a,Za,function(){return fb(a,b,d)}):fb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return db(a,c,d?eb(a,b,d,l.boxSizing&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Wa.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Va,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Va.test(f)?f.replace(Va,e):f+" "+e)}}),n.cssHooks.marginRight=Ua(l.reliableMarginRight,function(a,b){return b?Pa(a,{display:"inline-block"},Sa,[a,"marginRight"]):void 0}),n.cssHooks.marginLeft=Ua(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Sa(a,"marginLeft"))||(n.contains(a.ownerDocument,a)?a.getBoundingClientRect().left-Pa(a,{
-marginLeft:0},function(){return a.getBoundingClientRect().left}):0))+"px":void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+V[d]+b]=f[d]||f[d-2]||f[0];return e}},Na.test(a)||(n.cssHooks[a+b].set=db)}),n.fn.extend({css:function(a,b){return Y(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return cb(this,!0)},hide:function(){return cb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){W(this)?n(this).show():n(this).hide()})}});function gb(a,b,c,d,e){return new gb.prototype.init(a,b,c,d,e)}n.Tween=gb,gb.prototype={constructor:gb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=gb.propHooks[this.prop];return a&&a.get?a.get(this):gb.propHooks._default.get(this)},run:function(a){var b,c=gb.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):gb.propHooks._default.set(this),this}},gb.prototype.init.prototype=gb.prototype,gb.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},gb.propHooks.scrollTop=gb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=gb.prototype.init,n.fx.step={};var hb,ib,jb=/^(?:toggle|show|hide)$/,kb=/queueHooks$/;function lb(){return a.setTimeout(function(){hb=void 0}),hb=n.now()}function mb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=V[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function nb(a,b,c){for(var d,e=(qb.tweeners[b]||[]).concat(qb.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ob(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&W(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k="none"===j?n._data(a,"olddisplay")||Ma(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==Ma(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],jb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(o))"inline"===("none"===j?Ma(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=nb(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function pb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function qb(a,b,c){var d,e,f=0,g=qb.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=hb||lb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:hb||lb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(pb(k,j.opts.specialEasing);g>f;f++)if(d=qb.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,nb,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(qb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return X(c.elem,a,U.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],qb.tweeners[c]=qb.tweeners[c]||[],qb.tweeners[c].unshift(b)},prefilters:[ob],prefilter:function(a,b){b?qb.prefilters.unshift(a):qb.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(W).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=qb(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&kb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(mb(b,!0),a,d,e)}}),n.each({slideDown:mb("show"),slideUp:mb("hide"),slideToggle:mb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(hb=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),hb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ib||(ib=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(ib),ib=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a,b=d.createElement("input"),c=d.createElement("div"),e=d.createElement("select"),f=e.appendChild(d.createElement("option"));c=d.createElement("div"),c.setAttribute("className","t"),c.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],b.setAttribute("type","checkbox"),c.appendChild(b),a=c.getElementsByTagName("a")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==c.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=f.selected,l.enctype=!!d.createElement("form").enctype,e.disabled=!0,l.optDisabled=!f.disabled,b=d.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value}();var rb=/\r/g,sb=/[\x20\t\r\n\f]+/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a)).replace(sb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>-1)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var tb,ub,vb=n.expr.attrHandle,wb=/^(?:checked|selected)$/i,xb=l.getSetAttribute,yb=l.input;n.fn.extend({attr:function(a,b){return Y(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ub:tb)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?yb&&xb||!wb.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(xb?c:d)}}),ub={set:function(a,b,c){return b===!1?n.removeAttr(a,c):yb&&xb||!wb.test(c)?a.setAttribute(!xb&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=vb[b]||n.find.attr;yb&&xb||!wb.test(b)?vb[b]=function(a,b,d){var e,f;return d||(f=vb[b],vb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,vb[b]=f),e}:vb[b]=function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),yb&&xb||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):tb&&tb.set(a,b,c)}}),xb||(tb={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},vb.id=vb.name=vb.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:tb.set},n.attrHooks.contenteditable={set:function(a,b,c){tb.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var zb=/^(?:input|select|textarea|button|object)$/i,Ab=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return Y(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):zb.test(a.nodeName)||Ab.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var Bb=/[\t\r\n\f]/g;function Cb(a){return n.attr(a,"class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,Cb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,Cb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=Cb(c),d=1===c.nodeType&&(" "+e+" ").replace(Bb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&n.attr(c,"class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,Cb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=Cb(this),b&&n._data(this,"__className__",b),n.attr(this,"class",b||a===!1?"":n._data(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+Cb(c)+" ").replace(Bb," ").indexOf(b)>-1)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Db=a.location,Eb=n.now(),Fb=/\?/,Gb=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(Gb,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new a.DOMParser,c=d.parseFromString(b,"text/xml")):(c=new a.ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var Hb=/#.*$/,Ib=/([?&])_=[^&]*/,Jb=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Kb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Lb=/^(?:GET|HEAD)$/,Mb=/^\/\//,Nb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ob={},Pb={},Qb="*/".concat("*"),Rb=Db.href,Sb=Nb.exec(Rb.toLowerCase())||[];function Tb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Ub(a,b,c,d){var e={},f=a===Pb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Vb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Wb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Xb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rb,type:"GET",isLocal:Kb.test(Sb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Vb(Vb(a,n.ajaxSettings),b):Vb(n.ajaxSettings,a)},ajaxPrefilter:Tb(Ob),ajaxTransport:Tb(Pb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var d,e,f,g,h,i,j,k,l=n.ajaxSetup({},c),m=l.context||l,o=l.context&&(m.nodeType||m.jquery)?n(m):n.event,p=n.Deferred(),q=n.Callbacks("once memory"),r=l.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!k){k={};while(b=Jb.exec(g))k[b[1].toLowerCase()]=b[2]}b=k[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return j&&j.abort(b),y(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,l.url=((b||l.url||Rb)+"").replace(Hb,"").replace(Mb,Sb[1]+"//"),l.type=c.method||c.type||l.method||l.type,l.dataTypes=n.trim(l.dataType||"*").toLowerCase().match(G)||[""],null==l.crossDomain&&(d=Nb.exec(l.url.toLowerCase()),l.crossDomain=!(!d||d[1]===Sb[1]&&d[2]===Sb[2]&&(d[3]||("http:"===d[1]?"80":"443"))===(Sb[3]||("http:"===Sb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=n.param(l.data,l.traditional)),Ub(Ob,l,c,w),2===u)return w;i=n.event&&l.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!Lb.test(l.type),f=l.url,l.hasContent||(l.data&&(f=l.url+=(Fb.test(f)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=Ib.test(f)?f.replace(Ib,"$1_="+Eb++):f+(Fb.test(f)?"&":"?")+"_="+Eb++)),l.ifModified&&(n.lastModified[f]&&w.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&w.setRequestHeader("If-None-Match",n.etag[f])),(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&w.setRequestHeader("Content-Type",l.contentType),w.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+Qb+"; q=0.01":""):l.accepts["*"]);for(e in l.headers)w.setRequestHeader(e,l.headers[e]);if(l.beforeSend&&(l.beforeSend.call(m,w,l)===!1||2===u))return w.abort();v="abort";for(e in{success:1,error:1,complete:1})w[e](l[e]);if(j=Ub(Pb,l,c,w)){if(w.readyState=1,i&&o.trigger("ajaxSend",[w,l]),2===u)return w;l.async&&l.timeout>0&&(h=a.setTimeout(function(){w.abort("timeout")},l.timeout));try{u=1,j.send(s,y)}catch(x){if(!(2>u))throw x;y(-1,x)}}else y(-1,"No Transport");function y(b,c,d,e){var k,s,t,v,x,y=c;2!==u&&(u=2,h&&a.clearTimeout(h),j=void 0,g=e||"",w.readyState=b>0?4:0,k=b>=200&&300>b||304===b,d&&(v=Wb(l,w,d)),v=Xb(l,v,w,k),k?(l.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(n.lastModified[f]=x),x=w.getResponseHeader("etag"),x&&(n.etag[f]=x)),204===b||"HEAD"===l.type?y="nocontent":304===b?y="notmodified":(y=v.state,s=v.data,t=v.error,k=!t)):(t=y,!b&&y||(y="error",0>b&&(b=0))),w.status=b,w.statusText=(c||y)+"",k?p.resolveWith(m,[s,y,w]):p.rejectWith(m,[w,y,t]),w.statusCode(r),r=void 0,i&&o.trigger(k?"ajaxSuccess":"ajaxError",[w,l,k?s:t]),q.fireWith(m,[w,y]),i&&(o.trigger("ajaxComplete",[w,l]),--n.active||n.event.trigger("ajaxStop")))}return w},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}});function Yb(a){return a.style&&a.style.display||n.css(a,"display")}function Zb(a){if(!n.contains(a.ownerDocument||d,a))return!0;while(a&&1===a.nodeType){if("none"===Yb(a)||"hidden"===a.type)return!0;a=a.parentNode}return!1}n.expr.filters.hidden=function(a){return l.reliableHiddenOffsets()?a.offsetWidth<=0&&a.offsetHeight<=0&&!a.getClientRects().length:Zb(a)},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var $b=/%20/g,_b=/\[\]$/,ac=/\r?\n/g,bc=/^(?:submit|button|image|reset|file)$/i,cc=/^(?:input|select|textarea|keygen)/i;function dc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||_b.test(a)?d(a,e):dc(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)dc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)dc(c,a[c],b,e);return d.join("&").replace($b,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&cc.test(this.nodeName)&&!bc.test(a)&&(this.checked||!Z.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(ac,"\r\n")}}):{name:b.name,value:c.replace(ac,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return this.isLocal?ic():d.documentMode>8?hc():/^(get|post|head|put|delete|options)$/i.test(this.type)&&hc()||ic()}:hc;var ec=0,fc={},gc=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in fc)fc[a](void 0,!0)}),l.cors=!!gc&&"withCredentials"in gc,gc=l.ajax=!!gc,gc&&n.ajaxTransport(function(b){if(!b.crossDomain||l.cors){var c;return{send:function(d,e){var f,g=b.xhr(),h=++ec;if(g.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(f in b.xhrFields)g[f]=b.xhrFields[f];b.mimeType&&g.overrideMimeType&&g.overrideMimeType(b.mimeType),b.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");for(f in d)void 0!==d[f]&&g.setRequestHeader(f,d[f]+"");g.send(b.hasContent&&b.data||null),c=function(a,d){var f,i,j;if(c&&(d||4===g.readyState))if(delete fc[h],c=void 0,g.onreadystatechange=n.noop,d)4!==g.readyState&&g.abort();else{j={},f=g.status,"string"==typeof g.responseText&&(j.text=g.responseText);try{i=g.statusText}catch(k){i=""}f||!b.isLocal||b.crossDomain?1223===f&&(f=204):f=j.text?200:404}j&&e(f,i,j,g.getAllResponseHeaders())},b.async?4===g.readyState?a.setTimeout(c):g.onreadystatechange=fc[h]=c:c()},abort:function(){c&&c(void 0,!0)}}}});function hc(){try{return new a.XMLHttpRequest}catch(b){}}function ic(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=d.head||n("head")[0]||d.documentElement;return{send:function(e,f){b=d.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||f(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var jc=[],kc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=jc.pop()||n.expando+"_"+Eb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(kc.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&kc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(kc,"$1"+e):b.jsonp!==!1&&(b.url+=(Fb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,jc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||d;var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ja([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var lc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&lc)return lc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h,a.length)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function mc(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?("undefined"!=typeof e.getBoundingClientRect&&(d=e.getBoundingClientRect()),c=mc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Qa})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return Y(this,function(a,d,e){var f=mc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ua(l.pixelPosition,function(a,c){return c?(c=Sa(a,b),Oa.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({
-padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return Y(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var nc=a.jQuery,oc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=oc),b&&a.jQuery===n&&(a.jQuery=nc),n},b||(a.jQuery=a.$=n),n});
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/js/json-formatter.min.js b/asterixdb/asterix-app/src/main/resources/queryui/js/json-formatter.min.js
deleted file mode 100644
index 77882c0..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/js/json-formatter.min.js
+++ /dev/null
@@ -1 +0,0 @@
-/*! jsonformatter 0.6.0 - 2016-04-29T03:24:40.680Z | (c) 2014 Mohsen Azimi | http://www.apache.org/licenses/LICENSE-2.0 */"use strict";angular.module("jsonFormatter",["RecursionHelper"]).provider("JSONFormatterConfig",function(){var n=!1,e=100,t=5;return{get hoverPreviewEnabled(){return n},set hoverPreviewEnabled(e){n=!!e},get hoverPreviewArrayCount(){return e},set hoverPreviewArrayCount(n){e=parseInt(n,10)},get hoverPreviewFieldCount(){return t},set hoverPreviewFieldCount(n){t=parseInt(n,10)},$get:function(){return{hoverPreviewEnabled:n,hoverPreviewArrayCount:e,hoverPreviewFieldCount:t}}}}).directive("jsonFormatter",["RecursionHelper","JSONFormatterConfig",function(n,e){function t(n){return n.replace('"','"')}function r(n){if(void 0===n)return"";if(null===n)return"Object";if("object"==typeof n&&!n.constructor)return"Object";var e=/function (.{1,})\(/,t=e.exec(n.constructor.toString());return t&&t.length>1?t[1]:""}function o(n){return null===n?"null":typeof n}function s(n,e){var r=o(n);return"null"===r||"undefined"===r?r:("string"===r&&(e='"'+t(e)+'"'),"function"===r?n.toString().replace(/[\r\n]/g,"").replace(/\{.*\}/,"")+"{…}":e)}function i(n){var e="";return angular.isObject(n)?(e=r(n),angular.isArray(n)&&(e+="["+n.length+"]")):e=s(n,n),e}function a(n){n.isArray=function(){return angular.isArray(n.json)},n.isObject=function(){return angular.isObject(n.json)},n.getKeys=function(){return n.isObject()?Object.keys(n.json).map(function(n){return""===n?'""':n}):void 0},n.type=o(n.json),n.hasKey="undefined"!=typeof n.key,n.getConstructorName=function(){return r(n.json)},"string"===n.type&&("Invalid Date"!==new Date(n.json).toString()&&(n.isDate=!0),0===n.json.indexOf("http")&&(n.isUrl=!0)),n.isEmptyObject=function(){return n.getKeys()&&!n.getKeys().length&&n.isOpen&&!n.isArray()},n.isOpen=!!n.open,n.toggleOpen=function(){n.isOpen=!n.isOpen},n.childrenOpen=function(){return n.open>1?n.open-1:0},n.openLink=function(e){e&&(window.location.href=n.json)},n.parseValue=function(e){return s(n.json,e)},n.showThumbnail=function(){return!!e.hoverPreviewEnabled&&n.isObject()&&!n.isOpen},n.getThumbnail=function(){if(n.isArray())return n.json.length>e.hoverPreviewArrayCount?"Array["+n.json.length+"]":"["+n.json.map(i).join(", ")+"]";var t=n.getKeys(),r=t.slice(0,e.hoverPreviewFieldCount),o=r.map(function(e){return e+":"+i(n.json[e])}),s=t.length>=5?"…":"";return"{"+o.join(", ")+s+"}"}}return{templateUrl:"json-formatter.html",restrict:"E",replace:!0,scope:{json:"=",key:"=",open:"="},compile:function(e){return n.compile(e,a)}}}]),"object"==typeof module&&(module.exports="jsonFormatter"),angular.module("RecursionHelper",[]).factory("RecursionHelper",["$compile",function(n){return{compile:function(e,t){angular.isFunction(t)&&(t={post:t});var r,o=e.contents().remove();return{pre:t&&t.pre?t.pre:null,post:function(e,s){r||(r=n(o)),r(e,function(n){s.append(n)}),t&&t.post&&t.post.apply(null,arguments)}}}}}]),angular.module("jsonFormatter").run(["$templateCache",function(n){n.put("json-formatter.html",'<div ng-init="isOpen = open && open > 0" class="json-formatter-row"><a ng-click="toggleOpen()"><span class="toggler {{isOpen ? \'open\' : \'\'}}" ng-if="isObject()"></span> <span class="key" ng-if="hasKey"><span class="key-text">{{key}}</span><span class="colon">:</span></span> <span class="value"><span ng-if="isObject()"><span class="constructor-name">{{getConstructorName(json)}}</span> <span ng-if="isArray()"><span class="bracket">[</span><span class="number">{{json.length}}</span><span class="bracket">]</span></span></span> <span ng-if="!isObject()" ng-click="openLink(isUrl)" class="{{type}}" ng-class="{date: isDate, url: isUrl}">{{parseValue(json)}}</span></span> <span ng-if="showThumbnail()" class="thumbnail-text">{{getThumbnail()}}</span></a><div class="children" ng-if="getKeys().length && isOpen"><json-formatter ng-repeat="key in getKeys() track by $index" json="json[key]" key="key" open="childrenOpen()"></json-formatter></div><div class="children empty object" ng-if="isEmptyObject()"></div><div class="children empty array" ng-if="getKeys() && !getKeys().length && isOpen && isArray()"></div></div>')}]);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/js/main.js b/asterixdb/asterix-app/src/main/resources/queryui/js/main.js
deleted file mode 100644
index 793c06e..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/js/main.js
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-var SERVER_HOST = "";
-var DATAVERSE_QUERY = "for $x in dataset Metadata.Dataverse return $x;"
-var DATE_TIME_REGEX = /^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z)$/;
-var DATE_REGEX = /^(\d{4}-\d{2}-\d{2})$/;
-
-var app = angular.module('queryui', ['jsonFormatter', 'ui.codemirror']);
-
-app.service('recordFunctions', function () {
- this.ObjectKeys = function (obj) {
- var typeStr = Object.prototype.toString.call(obj);
- var res = [];
- if (typeStr === "[object Object]") {
- for (var key in obj) {
- if (obj.hasOwnProperty(key) && !(key === "$$hashKey")) {
- res.push(key)
- }
- }
- } else {
- res = [-1];
- }
- return res;
- }
- this.isObject = function (obj) {
- var typeStr = Object.prototype.toString.call(obj);
- if (typeStr === "[object Object]") {
- return true;
- } else {
- return false;
- }
- }
- this.isArray = function (obj) {
- var typeStr = Object.prototype.toString.call(obj);
- if ((typeStr === "[object Array]" )) {
- return true;
- } else {
- return false;
- }
- }
- this.isNested = function (obj) {
- return this.isObject(obj) || this.isArray(obj);
- }
- this.ObjectValue = function (obj, key) {
- var typeStr;
- var value;
- if (key == -1) {
- typeStr = Object.prototype.toString.call(obj);
- value = obj;
- } else {
- typeStr = Object.prototype.toString.call(obj[key]);
- value = obj[key];
- }
- if (typeStr === "[object Array]") {
- return "List +";
- } else if (typeStr === "[object Object]") {
- return "Record +";
- } else if (typeStr == "[object Null]") {
- return "NULL";
- } else if (DATE_REGEX.exec(value) != null) {
- var dat = new Date(value);
- return dat.getUTCFullYear() + "/" + dat.getUTCMonth() + "/" + dat.getUTCDay();
- } else if (DATE_TIME_REGEX.exec(value) != null) {
- var dat = new Date(value);
- return dat.getUTCFullYear() + "/" + dat.getUTCMonth() + "/" + dat.getUTCDay()
- + " " + dat.getUTCHours() + ":" + dat.getUTCMinutes() + ":" + dat.getUTCSeconds();
- } else {
- return value;
- }
- }
-});
-
-app.controller('queryCtrl', function ($rootScope, $scope, $http, recordFunctions) {
-
- $scope.recordFunctions = recordFunctions;
- $scope.current_tab = 0;
- $scope.current_preview_tab = 0;
- $scope.current_list = 0;
- $scope.maximized = false;
- $scope.collapsed = false;
- $scope.results = [];
- $scope.history = [];
- $scope.dataverses = [];
- $scope.selectedItem = null;
- $scope.selected_dataverse = "";
- $scope.errorText = null;
- $scope.statusText = "Wait...";
- $scope.query_input = "";
- $scope.uiReady = false;
-
- $scope.queryCmOptions = {
- lineNumbers: true,
- indentWithTabs: true,
- lineWrapping: false,
- mode: 'aql'
- }
-
- $scope.queryPreviewOptions = {
- indentWithTabs: true,
- lineWrapping: true,
- mode: 'javascript',
- readOnly: true
- }
-
- $scope.init = function () {
- $http.post("/").then(function (response) {
- SERVER_HOST = location.protocol + "//" + location.hostname + ":" + response.data.api_port;
- $scope.initDataverses();
- }, function (response) {
- $scope.statusText = "Unable to get Asterix HTTP API Port";
- });
- }
-
- $scope.initDataverses = function () {
- $http.get(SERVER_HOST + "/query?query=" + encodeURIComponent(DATAVERSE_QUERY)).then(function (response) {
- for (i in response.data) {
- $scope.dataverses.push(response.data[i].DataverseName);
- $scope.selected_dataverse = $scope.dataverses[0];
- $scope.statusText = "Web UI Ready";
- $scope.uiReady = true;
- }
- },
- function (response) {
- $scope.statusText = "Error Occurred Executing Query";
- $scope.errorText = response.data.summary;
- $scope.maximized = false;
- });
- $scope.load();
- }
-
- $scope.query = function () {
- var timer = new Date().getTime();
- $scope.save($scope.query_input, $scope.selected_dataverse);
- var uri = SERVER_HOST + "/query?query=" +
- encodeURIComponent("use dataverse " + $scope.selected_dataverse + ";" + $scope.query_input)
- $http.get(uri)
- .then(function (response) {
- $scope.results = response.data;
- console.log(response);
- timer = new Date().getTime() - timer;
- $scope.statusText = "Query returned " + $scope.results.length + " records in " + timer + "ms";
- $scope.errorText = null;
- $scope.maximized = false;
- },
- function (response) {
- $scope.statusText = "Error Occurred Executing Query";
- $scope.errorText = response.data.summary;
- $scope.maximized = false;
- $scope.results = [];
- });
- }
-
- $scope.isNested = function (obj) {
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- var typeStr = Object.prototype.toString.call(obj[key]);
- if (typeStr === "[object Array]" || typeStr === "[object Object]") {
- return true;
- }
- }
- }
- return false;
- }
-
- $scope.isRecordPlus = function (obj, key) {
- var value;
- if (key == -1) {
- value = obj;
- } else {
- value = obj[key];
- }
- return $scope.recordFunctions.isNested(value) ? "asterix-nested" : "";
- }
-
- $scope.viewRecord = function (obj) {
- $scope.selectedItem = obj;
- $scope.current_preview_tab = 0;
- $("#recordModel").modal();
- }
-
- $scope.previewJSON = function (obj) {
- return JSON.stringify(obj, null, 4);
- }
-
- $scope.save = function (query, database) {
- var toSave = [query, database];
- if ($scope.history.length >= 1) {
- var i = $scope.history.length - 1;
- if (new String(query).valueOf() === new String($scope.history[i][0]).valueOf()) {
- if (new String(database).valueOf() === new String($scope.history[i][1]).valueOf()) {
- return;
- }
- }
- }
- if ($scope.history.push(toSave) == 11) {
- $scope.history.shift();
- }
- localStorage.setItem("history", JSON.stringify($scope.history));
- }
-
- $scope.load = function () {
- var history = JSON.parse(localStorage.getItem("history"));
- if (history != null) {
- $scope.history = history;
- }
- }
-
- $scope.previewHistory = function (entry) {
- $scope.current_tab = 0;
- $scope.query_input = entry[0];
- $scope.selected_dataverse = entry[1];
- }
-
- $scope.leftContainerClass = function () {
- if ($scope.maximized) {
- return 'col-md-12';
- } else {
- if ($scope.collapsed) {
- return 'col-md-1';
- } else {
- return 'col-md-4'
- }
- }
- }
-
- $scope.rightContainerClass = function () {
- if ($scope.maximized) {
- return 'col-md-0';
- } else {
- if ($scope.collapsed) {
- return 'col-md-11';
- } else {
- return 'col-md-8'
- }
- }
- }
-
-});
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/js/ui-codemirror.js b/asterixdb/asterix-app/src/main/resources/queryui/js/ui-codemirror.js
deleted file mode 100644
index 6eb35df..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/js/ui-codemirror.js
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 2012 the AngularUI Team, http://angular-ui.github.com
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-'use strict';
-
-/**
- * Binds a CodeMirror widget to a <textarea> element.
- */
-angular.module('ui.codemirror', [])
- .constant('uiCodemirrorConfig', {})
- .directive('uiCodemirror', uiCodemirrorDirective);
-
-/**
- * @ngInject
- */
-function uiCodemirrorDirective($timeout, uiCodemirrorConfig) {
-
- return {
- restrict: 'EA',
- require: '?ngModel',
- compile: function compile() {
-
- // Require CodeMirror
- if (angular.isUndefined(window.CodeMirror)) {
- throw new Error('ui-codemirror needs CodeMirror to work... (o rly?)');
- }
-
- return postLink;
- }
- };
-
- function postLink(scope, iElement, iAttrs, ngModel) {
-
- var codemirrorOptions = angular.extend(
- { value: iElement.text() },
- uiCodemirrorConfig.codemirror || {},
- scope.$eval(iAttrs.uiCodemirror),
- scope.$eval(iAttrs.uiCodemirrorOpts)
- );
-
- var codemirror = newCodemirrorEditor(iElement, codemirrorOptions);
-
- configOptionsWatcher(
- codemirror,
- iAttrs.uiCodemirror || iAttrs.uiCodemirrorOpts,
- scope
- );
-
- configNgModelLink(codemirror, ngModel, scope);
-
- configUiRefreshAttribute(codemirror, iAttrs.uiRefresh, scope);
-
- // Allow access to the CodeMirror instance through a broadcasted event
- // eg: $broadcast('CodeMirror', function(cm){...});
- scope.$on('CodeMirror', function(event, callback) {
- if (angular.isFunction(callback)) {
- callback(codemirror);
- } else {
- throw new Error('the CodeMirror event requires a callback function');
- }
- });
-
- // onLoad callback
- if (angular.isFunction(codemirrorOptions.onLoad)) {
- codemirrorOptions.onLoad(codemirror);
- }
- }
-
- function newCodemirrorEditor(iElement, codemirrorOptions) {
- var codemirrot;
-
- if (iElement[0].tagName === 'TEXTAREA') {
- // Might bug but still ...
- codemirrot = window.CodeMirror.fromTextArea(iElement[0], codemirrorOptions);
- } else {
- iElement.html('');
- codemirrot = new window.CodeMirror(function(cm_el) {
- iElement.append(cm_el);
- }, codemirrorOptions);
- }
-
- return codemirrot;
- }
-
- function configOptionsWatcher(codemirrot, uiCodemirrorAttr, scope) {
- if (!uiCodemirrorAttr) { return; }
-
- var codemirrorDefaultsKeys = Object.keys(window.CodeMirror.defaults);
- scope.$watch(uiCodemirrorAttr, updateOptions, true);
- function updateOptions(newValues, oldValue) {
- if (!angular.isObject(newValues)) { return; }
- codemirrorDefaultsKeys.forEach(function(key) {
- if (newValues.hasOwnProperty(key)) {
-
- if (oldValue && newValues[key] === oldValue[key]) {
- return;
- }
-
- codemirrot.setOption(key, newValues[key]);
- }
- });
- }
- }
-
- function configNgModelLink(codemirror, ngModel, scope) {
- if (!ngModel) { return; }
- // CodeMirror expects a string, so make sure it gets one.
- // This does not change the model.
- ngModel.$formatters.push(function(value) {
- if (angular.isUndefined(value) || value === null) {
- return '';
- } else if (angular.isObject(value) || angular.isArray(value)) {
- throw new Error('ui-codemirror cannot use an object or an array as a model');
- }
- return value;
- });
-
-
- // Override the ngModelController $render method, which is what gets called when the model is updated.
- // This takes care of the synchronizing the codeMirror element with the underlying model, in the case that it is changed by something else.
- ngModel.$render = function() {
- //Code mirror expects a string so make sure it gets one
- //Although the formatter have already done this, it can be possible that another formatter returns undefined (for example the required directive)
- var safeViewValue = ngModel.$viewValue || '';
- codemirror.setValue(safeViewValue);
- };
-
-
- // Keep the ngModel in sync with changes from CodeMirror
- codemirror.on('change', function(instance) {
- var newValue = instance.getValue();
- if (newValue !== ngModel.$viewValue) {
- scope.$evalAsync(function() {
- ngModel.$setViewValue(newValue);
- });
- }
- });
- }
-
- function configUiRefreshAttribute(codeMirror, uiRefreshAttr, scope) {
- if (!uiRefreshAttr) { return; }
-
- scope.$watch(uiRefreshAttr, function(newVal, oldVal) {
- // Skip the initial watch firing
- if (newVal !== oldVal) {
- $timeout(function() {
- codeMirror.refresh();
- });
- }
- });
- }
-
-}
diff --git a/asterixdb/asterix-app/src/main/resources/queryui/queryui.html b/asterixdb/asterix-app/src/main/resources/queryui/queryui.html
deleted file mode 100644
index c2fe702..0000000
--- a/asterixdb/asterix-app/src/main/resources/queryui/queryui.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE html>
-<!--
- ! Licensed to the Apache Software Foundation (ASF) under one
- ! or more contributor license agreements. See the NOTICE file
- ! distributed with this work for additional information
- ! regarding copyright ownership. The ASF licenses this file
- ! to you under the Apache License, Version 2.0 (the
- ! "License"); you may not use this file except in compliance
- ! with the License. You may obtain a copy of the License at
- !
- ! http://www.apache.org/licenses/LICENSE-2.0
- !
- ! Unless required by applicable law or agreed to in writing,
- ! software distributed under the License is distributed on an
- ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ! KIND, either express or implied. See the License for the
- ! specific language governing permissions and limitations
- ! under the License.
- !-->
-<html lang="en">
-<head>
- <meta charset="UTF-8">
- <title>AsterixDB Console</title>
- <link rel="stylesheet" href="/queryui/css/bootstrap.min.css" media="screen" title="no title" charset="utf-8">
- <link rel="stylesheet" href="/queryui/css/bootstrap-theme.min.css" media="screen" title="no title" charset="utf-8">
- <link rel="stylesheet" href="/queryui/css/master.css" media="screen" title="no title" charset="utf-8">
- <link rel="stylesheet" href="/queryui/css/json-formatter.min.css" media="screen" title="no title" charset="utf-8">
- <link rel="stylesheet" href="/queryui/css/codemirror.css" media="screen" title="no title" charset="utf-8">
- <script src="/queryui/js/jquery-1.12.4.min.js" charset="utf-8"></script>
- <script src="/queryui/js/angular.min.js" charset="utf-8"></script>
- <script src="/queryui/js/json-formatter.min.js" charset="utf-8"></script>
- <script src="/queryui/js/bootstrap.min.js" charset="utf-8"></script>
- <script src="/queryui/js/codemirror.js" charset="utf-8"></script>
- <script src="/queryui/js/ui-codemirror.js" charset="utf-8"></script>
- <script src="/queryui/js/aql-mode.js" charset="utf-8"></script>
- <script src="/queryui/js/javascript.js" charset="utf-8"></script>
- <script src="/queryui/js/main.js" charset="utf-8"></script>
-</head>
-<body ng-app="queryui">
- <div class="row main-container" ng-controller="queryCtrl" ng-init="init()">
- <div class="col-md-4 left-container" ng-class="leftContainerClass()">
- <div>
- <div class="row" ng-show="collapsed">
- <div class="row-fluid">
- <div class="col-sm-12 text-center"><img class="logo-collapsed" src="/queryui/img/asterixlogo-collapsed.png" alt=""/></div>
- </div>
- <div class="row-fluid">
- <div class="col-sm-12 text-center"><span class="glyphicon glyphicon-menu-hamburger asterix-button"
- ng-class="collapsed == true ? 'asterix-button-selected' : '' "
- ng-click="collapsed = !collapsed"></span></div>
- </div>
- </div>
- <div class="row" ng-hide="collapsed">
- <div class="col-sm-10"><img class="logo" src="/queryui/img/finalasterixlogo.png" alt=""/></div>
- <div class="col-sm-2 text-right" ng-hide="maximized"><span class="glyphicon glyphicon-menu-left asterix-button"
- ng-class="collapsed == true ? 'asterix-button-selected' : '' "
- ng-click="collapsed = !collapsed"></span></div>
- </div>
- <div ng-hide="collapsed" class="row">
- <div class="col-sm-12">
- <div class="left-using-container">
- <label for="usingSelect" class="col-sm-2 control-label">Using</label>
- <div class="col-sm-10">
- <select class="form-control" id="usingSelect" ng-model="selected_dataverse">
- <option ng-repeat="entry in dataverses" >{{entry}}</option>
- </select>
- </div>
- </div>
- </div>
- </div>
- <div ng-hide="collapsed" class="row">
- <div class="col-sm-12">
- <div class="input-container">
- <div id="input-tab">
- <ul class="nav nav-justified asterix-nav">
- <li ng-class="current_tab == 0 ? 'asterix-nav-active' : '' "><a href="#" ng-click="current_tab = 0">Query</a></li>
- <li ng-class="current_tab == 1 ? 'asterix-nav-active' : '' "><a href="#" ng-click="current_tab = 1">History</a></li>
- </ul>
- <div class="asterix-tabpage" ng-if="current_tab == 0">
- <textarea ui-codemirror="queryCmOptions" name="Text1" ng-model="$parent.query_input" class="form-control input-container-code" placeholder="Query" cols="40" rows="15"></textarea>
- <div class="icon-maximize"><span class="glyphicon glyphicon-fullscreen asterix-button" aria-hidden="true"
- ng-class="$parent.maximized == true ? 'asterix-button-selected' : '' "
- ng-click="$parent.maximized = !$parent.maximized"></span></div>
- </div>
- <div class="asterix-tabpage" ng-if="current_tab == 1">
- <div class="asterix-tabpage-scroll">
- <div class="asterix-well margin-bottom" ng-repeat="query in history.slice().reverse() track by $index">
- <div class="row">
- <div class="col-md-8"><code>{{query[0]}}</code></div>
- <div class="col-md-4 asterix-well-right"><a href="" ng-click="previewHistory(query)">Preview</a></div>
- </div>
- </div>
- </div>
- <div class="icon-maximize"><span class="glyphicon glyphicon-fullscreen asterix-button" aria-hidden="true"
- ng-class="$parent.maximized == true ? 'asterix-button-selected' : '' "
- ng-click="$parent.maximized = !$parent.maximized"></span></div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div ng-hide="collapsed" class="row vh-spacer">
- <div class="col-sm-12">
- <button type="button" class="btn btn-asterix center-block" ng-click="query()" ng-if="uiReady">Run</button>
- <button type="button" class="btn btn-asterix center-block" ng-if="!uiReady">Loading Wait..</button>
- </div>
- </div>
- </div>
- <div ng-show="false">
- <div class="row">
- <div class="col-sm-12"><img class="logo logo-collapsed" src="/queryui/img/finalasterixlogo.png" alt="" /></div>
- </div>
- <div class="row">
- <div class="col-sm-12 text-center"><span class="glyphicon glyphicon-menu-hamburger asterix-button"
- ng-class="collapsed == true ? 'asterix-button-selected' : '' "
- ng-click="collapsed = !collapsed"></span></div>
- </div>
- </div>
- </div>
- <div class="col-md-8 right-container" ng-class="rightContainerClass()">
- <p class="asterix-status">{{statusText}}</p>
- <div class="alert alert-danger" role="alert" ng-if="errorText != null">{{errorText}}</div>
- <div class="right-toolbar">
- <span class="glyphicon glyphicon-align-justify asterix-button" aria-hidden="true"
- ng-class="current_list == 0 ? 'asterix-button-selected' : '' "
- ng-click="current_list = 0"></span>
- <span class="glyphicon glyphicon-th-large asterix-button" aria-hidden="true"
- ng-class="current_list == 1 ? 'asterix-button-selected' : '' "
- ng-click="current_list = 1"></span>
- </div>
- <div class="asterix-list-view" ng-if="current_list == 0 && results.length != 0">
- <table class="table table-hover asterix-table">
- <tbody>
- <tr ng-repeat="record in $parent.results track by $index">
- <td ng-repeat="key in recordFunctions.ObjectKeys(record)" class="asterix-inline-item" ng-class="isRecordPlus(record,key)" ng-click="viewRecord(record)">
- <p class="small asterix-small">{{key == -1 ? 'value' : key}}</p>{{recordFunctions.ObjectValue(record,key)}}
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="asterix-list-wells" ng-if="current_list == 1 && results.length != 0">
- <div ng-repeat="record in $parent.results track by $index" class="asterix-well flex-well" ng-click="viewRecord(record)">
- <div ng-repeat="key in recordFunctions.ObjectKeys(record)" class="row asterix-well-row">
- <div class="col-sm-6" ng-class="isRecordPlus(record,key)">{{recordFunctions.ObjectValue(record,key)}}</div>
- <div class="col-sm-6 asterix-well-right"><p class="small asterix-small">{{key == -1 ? 'value' : key}}</p></div>
- </div>
- <div class="row">
- <div class="col-sm-12" ng-if="isNested(record)">
- <span class="label label-warning">NESTED</span>
- </div>
- </div>
- </div>
- </div>
- <div class="modal fade" id="recordModel" role="dialog">
- <div class="modal-dialog">
- <div id="input-tab">
- <ul class="nav nav-justified asterix-nav">
- <li ng-class="current_preview_tab == 0 ? 'asterix-nav-active' : '' "><a href="#" ng-click="current_preview_tab = 0">Record Viewer</a></li>
- <li ng-class="current_preview_tab == 1 ? 'asterix-nav-active' : '' "><a href="#" ng-click="current_preview_tab = 1">JSON Viewer</a></li>
- <!-- <li><a href="#" data-dismiss="modal">
- <span class="glyphicon glyphicon-remove"></span>
- </a></li> -->
- </ul>
- <div class="asterix-tabpage" ng-if="current_preview_tab == 0">
- <json-formatter open="2" ng-if="selectedItem != null" json="selectedItem"></json-formatter>
- </div>
- <div class="asterix-tabpage" ng-if="current_preview_tab == 1">
- <pre ng-bind="previewJSON(selectedItem)"></pre>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
-</body>
-</html>
diff --git a/asterixdb/pom.xml b/asterixdb/pom.xml
index 0308d22..ff70c39 100644
--- a/asterixdb/pom.xml
+++ b/asterixdb/pom.xml
@@ -422,6 +422,9 @@
<groupId>org.apache.hyracks</groupId>
<artifactId>license-automation-plugin</artifactId>
<version>${hyracks.version}</version>
+ <configuration>
+ <argLine>-Xmx2048m</argLine>
+ </configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>