diff --git a/sodaexpserver/.gitignore b/sodaexpserver/.gitignore
new file mode 100644
index 00000000..d1bed128
--- /dev/null
+++ b/sodaexpserver/.gitignore
@@ -0,0 +1,61 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# Typescript v1 declaration files
+typings/
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+
+# next.js build output
+.next
diff --git a/sodaexpserver/app.js b/sodaexpserver/app.js
new file mode 100644
index 00000000..dc217875
--- /dev/null
+++ b/sodaexpserver/app.js
@@ -0,0 +1,31 @@
+const express = require('express');
+const app = express();
+const bodyParser = require('body-parser');
+const cors = require('cors');
+const cookieParser = require("cookie-parser");
+const router = express.Router();
+// Controllers
+projectDashboard = require('./controllers/projectDashboardCtrl');
+systemCheckCtrl = require('./controllers/systemCheckCtrl');
+
+app.use(cors());
+
+// To parse URL encoded data
+app.use(bodyParser.json());
+app.use(bodyParser.urlencoded({ extended: true }));
+
+// To parse json data
+app.use(cookieParser());
+app.use(express.static(__dirname + '/dist/sodaexp'));
+
+// Dashboard Route
+app.post('/api/checkDashboardStatus', projectDashboard.projectStatus);
+
+//System Check Route
+app.post('/api/checkSystemRequirements', systemCheckCtrl.systemCheck);
+
+app.all('*', function (req, res) {
+ res.sendFile('dist/sodaexp/index.html', { root: __dirname });
+});
+
+app.listen(3000, () => console.log('SODA Experience server listening on port 3000!'));
diff --git a/sodaexpserver/controllers/projectDashboardCtrl.js b/sodaexpserver/controllers/projectDashboardCtrl.js
new file mode 100644
index 00000000..64b25959
--- /dev/null
+++ b/sodaexpserver/controllers/projectDashboardCtrl.js
@@ -0,0 +1,50 @@
+const axios = require('axios');
+
+
+
+projectStatus = async (req, res, next) => {
+ try{
+ console.log('EXECUTING THE TRY BLOCK ');
+ const status = await checkProjectDashboard(req, res);
+ res.status(200);
+ res.json(status)
+ } catch {
+ console.log('EXECUTING THE CATCH BLOCK ');
+ var errResp = {
+ dashboard: 'notInstalled',
+ status: 404,
+ responseText: 'Bad Gatway'
+ }
+ res.status(404);
+ res.json(errResp)
+ }
+}
+
+function checkProjectDashboard(req, res, next){
+ return new Promise((resolve, reject) => {
+ reqParam = req.body;
+ console.log(reqParam);
+ axios.get(reqParam.dashboardUrl).then(response => {
+ var status = response.status;
+ var responseText = response.statusText;
+ if(status === 200){
+ var resp = {
+ dashboard: 'installed',
+ status: status,
+ responseText
+ }
+ resolve(resp);
+ }
+ }).catch(error => {
+ console.log('ERROR');
+ console.log(error.message);
+ reject(error.message);
+ });
+ });
+}
+
+const projectDashboardCtrl = {
+ projectStatus,
+};
+
+module.exports = projectDashboardCtrl;
diff --git a/sodaexpserver/controllers/systemCheckCtrl.js b/sodaexpserver/controllers/systemCheckCtrl.js
new file mode 100644
index 00000000..28cae0ba
--- /dev/null
+++ b/sodaexpserver/controllers/systemCheckCtrl.js
@@ -0,0 +1,110 @@
+const { exec } = require("child_process");
+
+systemCheck = async (req, res, next) => {
+ var reqParam = req.body;
+ var responseBody = [];
+ for(var i = 0; i < reqParam.length; i++){
+ var check = reqParam[i];
+ if(check.type == 'OS'){
+ var result = await checkOS(check);
+ responseBody.push(result);
+ }
+ if(check.type == 'software'){
+ var result = await checkSoftware(check);
+ responseBody.push(result);
+ }
+ }
+ res.json(responseBody);
+}
+
+checkOS = async (check) => {
+ return new Promise((resolve, reject) => {
+ var requirement = check.requirement;
+ exec("cat /etc/os-release", (error, stdout, stderr) => {
+ var result = {
+ type: check.type,
+ status: {
+ name: false,
+ version: false
+ },
+ error: true,
+ errorMessage: ''
+ };
+ if (error) {
+ result.errorMessage = error.message;
+ reject(result);
+ }
+ if (stderr) {
+ result.errorMessage = stderr;
+ reject(result);
+ }
+ var data = stdout.split('\n');
+ result.error = false;
+ for(var j = 0; j < data.length; j++){
+ if(data[j].toLowerCase().indexOf('name') != -1 && data[j].toLowerCase().indexOf(requirement.name.toLowerCase()) != -1){
+ result.status.name = true;
+ }
+ if(data[j].toLowerCase().indexOf('version') != -1 && data[j].toLowerCase().indexOf(requirement.version) != -1){
+ result.status.version = true;
+ }
+ }
+ resolve(result);
+ });
+ })
+}
+
+checkSoftware = async (check) => {
+ return new Promise((resolve, reject) => {
+ console.log(check);
+ var requirement = check.requirement;
+ var cmd = requirement.name.toLowerCase() + ' --version';
+ exec(cmd, (error, stdout, stderr) => {
+ var result = {
+ type: check.type,
+ software: requirement.name,
+ status: {
+ name: false,
+ version: false
+ },
+ error: true,
+ errorMessage: ''
+ };
+ if (error) {
+ result.errorMessage = error.message;
+ resolve(result);
+ }
+ if (stderr) {
+ result.errorMessage = stderr;
+ resolve(result);
+ }
+
+ var data = stdout.split('\n');
+ console.log(data);
+ result.error = false;
+ if(data.length == 1){
+ if(data[0].toLowerCase().indexOf(requirement.name.toLowerCase()) != -1){
+ result.status.name = true;
+ }
+ if(data[0].toLowerCase().indexOf(requirement.version) != -1){
+ result.status.version = true;
+ }
+ } else {
+ for(var j = 0; j < data.length; j++){
+ if(data[j].toLowerCase().indexOf('name') != -1 && data[j].toLowerCase().indexOf(requirement.name.toLowerCase()) != -1){
+ result.status.name = true;
+ }
+ if(data[j].toLowerCase().indexOf('version') != -1 && data[j].toLowerCase().indexOf(requirement.version) != -1){
+ result.status.version = true;
+ }
+ }
+ }
+ resolve(result);
+ });
+ })
+}
+
+const systemCheckCtrl = {
+ systemCheck,
+};
+
+module.exports = systemCheckCtrl;
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/3rdpartylicenses.txt b/sodaexpserver/dist/sodaexp/3rdpartylicenses.txt
new file mode 100644
index 00000000..31cbf47d
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/3rdpartylicenses.txt
@@ -0,0 +1,315 @@
+@angular/animations
+MIT
+
+@angular/cdk
+MIT
+The MIT License
+
+Copyright (c) 2022 Google LLC.
+
+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/common
+MIT
+
+@angular/core
+MIT
+
+@angular/flex-layout
+MIT
+
+@angular/forms
+MIT
+
+@angular/material
+MIT
+The MIT License
+
+Copyright (c) 2022 Google LLC.
+
+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/platform-browser
+MIT
+
+@angular/router
+MIT
+
+rxjs
+Apache-2.0
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
+
+ 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.
+
+
+
+tslib
+0BSD
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+zone.js
+MIT
+The MIT License
+
+Copyright (c) 2010-2022 Google LLC. https://angular.io/license
+
+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.
diff --git a/sodaexpserver/dist/sodaexp/assets/como/como.png b/sodaexpserver/dist/sodaexp/assets/como/como.png
new file mode 100644
index 00000000..05d6d7d5
Binary files /dev/null and b/sodaexpserver/dist/sodaexp/assets/como/como.png differ
diff --git a/sodaexpserver/dist/sodaexp/assets/como/comoDetails.json b/sodaexpserver/dist/sodaexp/assets/como/comoDetails.json
new file mode 100644
index 00000000..8ef12ede
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/como/comoDetails.json
@@ -0,0 +1,30 @@
+{
+ "name": "COMO",
+ "slackLink": "",
+ "details" : [
+ {
+ "tabName" : "Use Cases",
+ "type": "array",
+ "content" : [
+ "Cloud Backup: replicate snapshots to multiple clouds for high availability backup",
+ "Cloud Switching: easily move data from one cloud to another",
+ "Multicloud Content Distribution: distribute content from data center across different clouds"
+ ]
+ },
+ {
+ "tabName": "Features",
+ "type": "array-object",
+ "content": [
+ {
+ "title": "Basic Como Features",
+ "content": [
+ "Provides a cloud vendor agnostic data management for hybrid cloud, intercloud, or intracloud.",
+ "Unified interface for file and object services across multiple cloud vendors.",
+ "S3 compatible APIs for object data management on cloud or on premise",
+ "Deploy on-premise or in the cloud"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/assets/delfin/completeMonitoringSystem.jpg b/sodaexpserver/dist/sodaexp/assets/delfin/completeMonitoringSystem.jpg
new file mode 100644
index 00000000..2c697e6c
Binary files /dev/null and b/sodaexpserver/dist/sodaexp/assets/delfin/completeMonitoringSystem.jpg differ
diff --git a/sodaexpserver/dist/sodaexp/assets/delfin/delfin-title.svg b/sodaexpserver/dist/sodaexp/assets/delfin/delfin-title.svg
new file mode 100644
index 00000000..42444f4c
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/delfin/delfin-title.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/assets/delfin/delfin.png b/sodaexpserver/dist/sodaexp/assets/delfin/delfin.png
new file mode 100644
index 00000000..53518d20
Binary files /dev/null and b/sodaexpserver/dist/sodaexp/assets/delfin/delfin.png differ
diff --git a/sodaexpserver/dist/sodaexp/assets/delfin/delfinDetails.json b/sodaexpserver/dist/sodaexp/assets/delfin/delfinDetails.json
new file mode 100644
index 00000000..da03528c
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/delfin/delfinDetails.json
@@ -0,0 +1,136 @@
+{
+ "name": "Delfin",
+ "details" : [
+ {
+ "tabName" : "Use Cases",
+ "type": "array",
+ "content" : [
+ "Performance-Monitoring : Monitor storage metrics such as IOP's, r/w throughput, latencies",
+ "Predictive-Analytics : Identify anomalies, forecast resource usage, and fix problems using storage automation capabilities",
+ "Automated-Remediation : Speed up the process of problem solving with alerts"
+ ]
+ },
+ {
+ "tabName": "Features",
+ "type": "array-object",
+ "content": [
+ {
+ "title": "Storage Device Monitoring",
+ "content": [
+ "Registering a storage device for monitoring",
+ "Updating a storage device access information",
+ "Removing a storage device from monitoring",
+ "Provide storage devices attributes",
+ "Synchronize storage devices information periodically and on user request"
+ ]
+ },
+ {
+ "title": "Storage Resources Monitoring",
+ "content": [
+ "Provide storage resources attributes such as pool, LUN, port, etc Details.",
+ "Synchronize storage resources attributes periodically and on user request"
+ ]
+ },
+ {
+ "title": "Performance Monitoring",
+ "content": [
+ "Register storage for performance monitoring",
+ "Report key performance indicators periodically"
+ ]
+ },
+ {
+ "title": "Alert Monitoring",
+ "content": [
+ "Real time reporting of events/alerts.",
+ "Pull alerts from back end on user request.",
+ "Clear Alert on user request."
+ ]
+ }
+ ]
+ },
+ {
+ "tabName": "Documentation",
+ "type": "object",
+ "content" : [
+ {
+ "type": "url",
+ "url": "https://docs.sodafoundation.io",
+ "description" : "SODA Foundation Documentation."
+ },
+ {
+ "type": "url",
+ "url": "https://docs.sodafoundation.io/guides/user-guides/delfin",
+ "description" : "DELFIN Dashboard quick preview"
+ },
+ {
+ "type": "url",
+ "url": "https://docs.sodafoundation.io/guides/developer-guides/delfin",
+ "description" : "Developer documentation for DELFIN"
+ }
+ ]
+ },
+ {
+ "tabName": "Architecture",
+ "type": "object",
+ "content": [
+ {
+ "type": "image",
+ "url": "assets/delfin/completeMonitoringSystem.jpg",
+ "description": "Delfin as complete monitoring system"
+ },
+ {
+ "type": "image",
+ "url": "assets/delfin/heterogeneousMetrics.jpg",
+ "description": "Delfin as a heterogeneous metrics collection framework for existing monitoring platforms"
+ }
+ ]
+ },
+ {
+ "tabName": "Demo",
+ "type": "object",
+ "content": [
+ {
+ "type": "video",
+ "url": "https://drive.google.com/file/d/1CI8rNeuvPRuWf2qrX_wAfIKwHSkZQRQX/preview",
+ "description": "Registering a new storage with Delfin for monitoring"
+ },
+ {
+ "type": "video",
+ "url": "https://drive.google.com/file/d/1CI8rNeuvPRuWf2qrX_wAfIKwHSkZQRQX/preview",
+ "description": "How to enable and configure performance metrics"
+ }
+ ]
+ },
+ {
+ "tabName" : "Social Links",
+ "type": "object",
+ "content": [
+ {
+ "type": "url",
+ "url": "https://github.com/sodafoundation/delfin",
+ "description": "SODA Delfin GITHUB"
+ },
+ {
+ "type" : "url",
+ "url": "https://www.sodafoundation.io/slack/",
+ "description": "Join the Delfin Slack Channel"
+ },
+ {
+ "type" : "url",
+ "url": " https://twitter.com/sodafoundation",
+ "description": "Join anf follow us on Twitter"
+ },
+ {
+ "type" : "url",
+ "url": "https://www.meetup.com/sodafoundationindia",
+ "description": "Join the SODA Community for all updates"
+ },
+ {
+ "type": "url",
+ "url": "https://bit.ly/soda-linkedin",
+ "description": "Join us on LinkedIn"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/assets/delfin/heterogeneousMetrics.jpg b/sodaexpserver/dist/sodaexp/assets/delfin/heterogeneousMetrics.jpg
new file mode 100644
index 00000000..27ebbc00
Binary files /dev/null and b/sodaexpserver/dist/sodaexp/assets/delfin/heterogeneousMetrics.jpg differ
diff --git a/sodaexpserver/dist/sodaexp/assets/favicon/soda-favicon.png b/sodaexpserver/dist/sodaexp/assets/favicon/soda-favicon.png
new file mode 100644
index 00000000..ad08df76
Binary files /dev/null and b/sodaexpserver/dist/sodaexp/assets/favicon/soda-favicon.png differ
diff --git a/sodaexpserver/dist/sodaexp/assets/kahu/kahu-title.svg b/sodaexpserver/dist/sodaexp/assets/kahu/kahu-title.svg
new file mode 100644
index 00000000..f4a6df99
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/kahu/kahu-title.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/assets/kahu/kahu.png b/sodaexpserver/dist/sodaexp/assets/kahu/kahu.png
new file mode 100644
index 00000000..d737047e
Binary files /dev/null and b/sodaexpserver/dist/sodaexp/assets/kahu/kahu.png differ
diff --git a/sodaexpserver/dist/sodaexp/assets/kahu/kahuDetails.json b/sodaexpserver/dist/sodaexp/assets/kahu/kahuDetails.json
new file mode 100644
index 00000000..296df57d
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/kahu/kahuDetails.json
@@ -0,0 +1,31 @@
+{
+ "name": "KAHU",
+ "slackLink": "",
+ "details" : [
+ {
+ "tabName" : "Use Cases",
+ "type": "array",
+ "content" : [
+ "Data Migration: enable cluster portability by easily migrating K8s resources from one cluster to another on-prem and across clouds",
+ "Data Protection: schedule backups, retention schedules, etc.",
+ "Disaster Recovery: reduce time to recovery in case of catastrophic failures"
+ ]
+ },
+ {
+ "tabName": "Features",
+ "type": "array-object",
+ "content": [
+ {
+ "title": "Basic Kahu Features",
+ "content": [
+ "Snapshot CSI PVC’s",
+ "Backup to any storage (EMC, NetApp, IBM, Huawei, etc.)",
+ "Backup to any cloud storage (AWS S3, Azure Blob, GCP Object Store)",
+ "Multi Cluster",
+ "Global Controller and Meta Data Management"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/assets/projectList.json b/sodaexpserver/dist/sodaexp/assets/projectList.json
new file mode 100644
index 00000000..9d937436
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/projectList.json
@@ -0,0 +1,37 @@
+[
+ {
+ "name": "DELFIN",
+ "logo": "assets/delfin/delfin.png",
+ "shortDescription": "Heterogeneous Storage Monitoring",
+ "description": "Delfin is an open source storage monitoring and alerting toolkit.",
+ "installedPort": "4200"
+ },
+ {
+ "name": "STRATO",
+ "logo": "assets/strato/strato.png",
+ "shortDescription": "Multicloud Data Management",
+ "description": "Strato is an open source tool to control data in multicloud IT environments." ,
+ "installedPort": "9081"
+ },
+ {
+ "name": "KAHU",
+ "logo": "assets/kahu/kahu.png",
+ "shortDescription": "Container Data Protection",
+ "description": "Kahu is a cloud native tool to backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes.",
+ "installedPort": "9082"
+ },
+ {
+ "name": "TERRA",
+ "logo": "assets/terra/terra.png",
+ "shortDescription": "SDS Controller",
+ "description": "Terra is an open source storage management and automation project.",
+ "installedPort": "9083"
+ },
+ {
+ "name": "COMO",
+ "logo": "assets/como/como.png",
+ "shortDescription": "Multicloud Data Management for Data Lake Solutions",
+ "description": "SODA COMO is a new SODA Framework project for Multicloud Data Management for Data Lake Solutions.",
+ "installedPort": "9084"
+ }
+]
diff --git a/sodaexpserver/dist/sodaexp/assets/siteBasics.json b/sodaexpserver/dist/sodaexp/assets/siteBasics.json
new file mode 100644
index 00000000..d2359b80
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/siteBasics.json
@@ -0,0 +1,4 @@
+{
+ "release": "Navarino (v1.8.0)",
+ "footerText": "SODA Expereince Dashboard. Explore SODA framework projects"
+}
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/assets/soda-foundation-logo-white.svg b/sodaexpserver/dist/sodaexp/assets/soda-foundation-logo-white.svg
new file mode 100644
index 00000000..6a895dca
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/soda-foundation-logo-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/assets/strato/strato-title.svg b/sodaexpserver/dist/sodaexp/assets/strato/strato-title.svg
new file mode 100644
index 00000000..0737b217
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/strato/strato-title.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/assets/strato/strato.png b/sodaexpserver/dist/sodaexp/assets/strato/strato.png
new file mode 100644
index 00000000..d55e5bb7
Binary files /dev/null and b/sodaexpserver/dist/sodaexp/assets/strato/strato.png differ
diff --git a/sodaexpserver/dist/sodaexp/assets/strato/stratoDetails.json b/sodaexpserver/dist/sodaexp/assets/strato/stratoDetails.json
new file mode 100644
index 00000000..42b43939
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/strato/stratoDetails.json
@@ -0,0 +1,30 @@
+{
+ "name": "STRATO",
+ "slackLink": "",
+ "details" : [
+ {
+ "tabName" : "Use Cases",
+ "type": "array",
+ "content" : [
+ "Cloud Backup: replicate snapshots to multiple clouds for high availability backup",
+ "Cloud Switching: easily move data from one cloud to another",
+ "Multicloud Content Distribution: distribute content from data center across different clouds"
+ ]
+ },
+ {
+ "tabName": "Features",
+ "type": "array-object",
+ "content": [
+ {
+ "title": "Strato Basic Features",
+ "content": [
+ "Provides a cloud vendor agnostic data management for hybrid cloud, intercloud, or intracloud.",
+ "Unified interface for file and object services across multiple cloud vendors.",
+ "S3 compatible APIs for object data management on cloud or on premise",
+ "Deploy on-premise or in the cloud"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/assets/terra/terra-title.svg b/sodaexpserver/dist/sodaexp/assets/terra/terra-title.svg
new file mode 100644
index 00000000..11f95acc
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/terra/terra-title.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/assets/terra/terra.png b/sodaexpserver/dist/sodaexp/assets/terra/terra.png
new file mode 100644
index 00000000..2aa1a88a
Binary files /dev/null and b/sodaexpserver/dist/sodaexp/assets/terra/terra.png differ
diff --git a/sodaexpserver/dist/sodaexp/assets/terra/terraDetails.json b/sodaexpserver/dist/sodaexp/assets/terra/terraDetails.json
new file mode 100644
index 00000000..cd1029fd
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/assets/terra/terraDetails.json
@@ -0,0 +1,29 @@
+{
+ "name": "TERRA",
+ "slackLink": "",
+ "details" : [
+ {
+ "tabName" : "Use Cases",
+ "type": "array",
+ "content" : [
+ "Storage Provisioning: automate block and file storage provisioning",
+ "Data Protection: schedule snapshots and backups",
+ "Storage-as-a-Service (STaaS): self-service catalog empowers users and reduces OPEX"
+ ]
+ },
+ {
+ "tabName": "Features",
+ "type": "array-object",
+ "content": [
+ {
+ "title": "Basic Terra Features",
+ "content": [
+ "Standardized API, Controller for metadata and Dock for Drivers to provide seamless data management across various storage vendors",
+ "Supports to connect different platforms like Kubernetes, Open Stack, VMware through plugins",
+ "Supports custom vendors drivers and CSI plugins for heterogeneous storages"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/favicon.ico b/sodaexpserver/dist/sodaexp/favicon.ico
new file mode 100644
index 00000000..997406ad
Binary files /dev/null and b/sodaexpserver/dist/sodaexp/favicon.ico differ
diff --git a/sodaexpserver/dist/sodaexp/index.html b/sodaexpserver/dist/sodaexp/index.html
new file mode 100644
index 00000000..e499a0b3
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/index.html
@@ -0,0 +1,15 @@
+
+
+ SODA Experience
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/main.48642af595f451f7.js b/sodaexpserver/dist/sodaexp/main.48642af595f451f7.js
new file mode 100644
index 00000000..3b0a753e
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/main.48642af595f451f7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunksodaexp=self.webpackChunksodaexp||[]).push([[179],{505:()=>{function le(n){return"function"==typeof n}function Ks(n){const e=n(i=>{Error.call(i),i.stack=(new Error).stack});return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}const Fa=Ks(n=>function(e){n(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((i,r)=>`${r+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e});function Vr(n,t){if(n){const e=n.indexOf(t);0<=e&&n.splice(e,1)}}class Ue{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:e}=this;if(e)if(this._parentage=null,Array.isArray(e))for(const s of e)s.remove(this);else e.remove(this);const{initialTeardown:i}=this;if(le(i))try{i()}catch(s){t=s instanceof Fa?s.errors:[s]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const s of r)try{Qg(s)}catch(o){t=t??[],o instanceof Fa?t=[...t,...o.errors]:t.push(o)}}if(t)throw new Fa(t)}}add(t){var e;if(t&&t!==this)if(this.closed)Qg(t);else{if(t instanceof Ue){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(e=this._finalizers)&&void 0!==e?e:[]).push(t)}}_hasParent(t){const{_parentage:e}=this;return e===t||Array.isArray(e)&&e.includes(t)}_addParent(t){const{_parentage:e}=this;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t}_removeParent(t){const{_parentage:e}=this;e===t?this._parentage=null:Array.isArray(e)&&Vr(e,t)}remove(t){const{_finalizers:e}=this;e&&Vr(e,t),t instanceof Ue&&t._removeParent(this)}}Ue.EMPTY=(()=>{const n=new Ue;return n.closed=!0,n})();const Wg=Ue.EMPTY;function qg(n){return n instanceof Ue||n&&"closed"in n&&le(n.remove)&&le(n.add)&&le(n.unsubscribe)}function Qg(n){le(n)?n():n.unsubscribe()}const Yi={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ka={setTimeout(n,t,...e){const{delegate:i}=ka;return i?.setTimeout?i.setTimeout(n,t,...e):setTimeout(n,t,...e)},clearTimeout(n){const{delegate:t}=ka;return(t?.clearTimeout||clearTimeout)(n)},delegate:void 0};function Kg(n){ka.setTimeout(()=>{const{onUnhandledError:t}=Yi;if(!t)throw n;t(n)})}function Oa(){}const rS=Tu("C",void 0,void 0);function Tu(n,t,e){return{kind:n,value:t,error:e}}let Xi=null;function Pa(n){if(Yi.useDeprecatedSynchronousErrorHandling){const t=!Xi;if(t&&(Xi={errorThrown:!1,error:null}),n(),t){const{errorThrown:e,error:i}=Xi;if(Xi=null,e)throw i}}else n()}class Iu extends Ue{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,qg(t)&&t.add(this)):this.destination=dS}static create(t,e,i){return new Zs(t,e,i)}next(t){this.isStopped?Fu(function oS(n){return Tu("N",n,void 0)}(t),this):this._next(t)}error(t){this.isStopped?Fu(function sS(n){return Tu("E",void 0,n)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Fu(rS,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const lS=Function.prototype.bind;function Ru(n,t){return lS.call(n,t)}class cS{constructor(t){this.partialObserver=t}next(t){const{partialObserver:e}=this;if(e.next)try{e.next(t)}catch(i){Na(i)}}error(t){const{partialObserver:e}=this;if(e.error)try{e.error(t)}catch(i){Na(i)}else Na(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(e){Na(e)}}}class Zs extends Iu{constructor(t,e,i){let r;if(super(),le(t)||!t)r={next:t??void 0,error:e??void 0,complete:i??void 0};else{let s;this&&Yi.useDeprecatedNextContext?(s=Object.create(t),s.unsubscribe=()=>this.unsubscribe(),r={next:t.next&&Ru(t.next,s),error:t.error&&Ru(t.error,s),complete:t.complete&&Ru(t.complete,s)}):r=t}this.destination=new cS(r)}}function Na(n){Yi.useDeprecatedSynchronousErrorHandling?function aS(n){Yi.useDeprecatedSynchronousErrorHandling&&Xi&&(Xi.errorThrown=!0,Xi.error=n)}(n):Kg(n)}function Fu(n,t){const{onStoppedNotification:e}=Yi;e&&ka.setTimeout(()=>e(n,t))}const dS={closed:!0,next:Oa,error:function uS(n){throw n},complete:Oa},ku="function"==typeof Symbol&&Symbol.observable||"@@observable";function Si(n){return n}function Zg(n){return 0===n.length?Si:1===n.length?n[0]:function(e){return n.reduce((i,r)=>r(i),e)}}let xe=(()=>{class n{constructor(e){e&&(this._subscribe=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}subscribe(e,i,r){const s=function pS(n){return n&&n instanceof Iu||function fS(n){return n&&le(n.next)&&le(n.error)&&le(n.complete)}(n)&&qg(n)}(e)?e:new Zs(e,i,r);return Pa(()=>{const{operator:o,source:a}=this;s.add(o?o.call(s,a):a?this._subscribe(s):this._trySubscribe(s))}),s}_trySubscribe(e){try{return this._subscribe(e)}catch(i){e.error(i)}}forEach(e,i){return new(i=Yg(i))((r,s)=>{const o=new Zs({next:a=>{try{e(a)}catch(l){s(l),o.unsubscribe()}},error:s,complete:r});this.subscribe(o)})}_subscribe(e){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(e)}[ku](){return this}pipe(...e){return Zg(e)(this)}toPromise(e){return new(e=Yg(e))((i,r)=>{let s;this.subscribe(o=>s=o,o=>r(o),()=>i(s))})}}return n.create=t=>new n(t),n})();function Yg(n){var t;return null!==(t=n??Yi.Promise)&&void 0!==t?t:Promise}const gS=Ks(n=>function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let De=(()=>{class n extends xe{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(e){const i=new Xg(this,this);return i.operator=e,i}_throwIfClosed(){if(this.closed)throw new gS}next(e){Pa(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(e)}})}error(e){Pa(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=e;const{observers:i}=this;for(;i.length;)i.shift().error(e)}})}complete(){Pa(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:e}=this;for(;e.length;)e.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0}_trySubscribe(e){return this._throwIfClosed(),super._trySubscribe(e)}_subscribe(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)}_innerSubscribe(e){const{hasError:i,isStopped:r,observers:s}=this;return i||r?Wg:(this.currentObservers=null,s.push(e),new Ue(()=>{this.currentObservers=null,Vr(s,e)}))}_checkFinalizedStatuses(e){const{hasError:i,thrownError:r,isStopped:s}=this;i?e.error(r):s&&e.complete()}asObservable(){const e=new xe;return e.source=this,e}}return n.create=(t,e)=>new Xg(t,e),n})();class Xg extends De{constructor(t,e){super(),this.destination=t,this.source=e}next(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===i||i.call(e,t)}error(t){var e,i;null===(i=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===i||i.call(e,t)}complete(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)}_subscribe(t){var e,i;return null!==(i=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==i?i:Wg}}function Jg(n){return le(n?.lift)}function Ne(n){return t=>{if(Jg(t))return t.lift(function(e){try{return n(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Te(n,t,e,i,r){return new mS(n,t,e,i,r)}class mS extends Iu{constructor(t,e,i,r,s,o){super(t),this.onFinalize=s,this.shouldUnsubscribe=o,this._next=e?function(a){try{e(a)}catch(l){t.error(l)}}:super._next,this._error=r?function(a){try{r(a)}catch(l){t.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:e}=this;super.unsubscribe(),!e&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function U(n,t){return Ne((e,i)=>{let r=0;e.subscribe(Te(i,s=>{i.next(n.call(t,s,r++))}))})}function Ji(n){return this instanceof Ji?(this.v=n,this):new Ji(n)}function vS(n,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=e.apply(n,t||[]),s=[];return r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r;function o(h){i[h]&&(r[h]=function(p){return new Promise(function(g,m){s.push([h,p,g,m])>1||a(h,p)})})}function a(h,p){try{!function l(h){h.value instanceof Ji?Promise.resolve(h.value.v).then(c,u):d(s[0][2],h)}(i[h](p))}catch(g){d(s[0][3],g)}}function c(h){a("next",h)}function u(h){a("throw",h)}function d(h,p){h(p),s.shift(),s.length&&a(s[0][0],s[0][1])}}function bS(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,t=n[Symbol.asyncIterator];return t?t.call(n):(n=function nm(n){var t="function"==typeof Symbol&&Symbol.iterator,e=t&&n[t],i=0;if(e)return e.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(s){e[s]=n[s]&&function(o){return new Promise(function(a,l){!function r(s,o,a,l){Promise.resolve(l).then(function(c){s({value:c,done:a})},o)}(a,l,(o=n[s](o)).done,o.value)})}}}const Pu=n=>n&&"number"==typeof n.length&&"function"!=typeof n;function im(n){return le(n?.then)}function rm(n){return le(n[ku])}function sm(n){return Symbol.asyncIterator&&le(n?.[Symbol.asyncIterator])}function om(n){return new TypeError(`You provided ${null!==n&&"object"==typeof n?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const am=function CS(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function lm(n){return le(n?.[am])}function cm(n){return vS(this,arguments,function*(){const e=n.getReader();try{for(;;){const{value:i,done:r}=yield Ji(e.read());if(r)return yield Ji(void 0);yield yield Ji(i)}}finally{e.releaseLock()}})}function um(n){return le(n?.getReader)}function Ot(n){if(n instanceof xe)return n;if(null!=n){if(rm(n))return function xS(n){return new xe(t=>{const e=n[ku]();if(le(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(Pu(n))return function DS(n){return new xe(t=>{for(let e=0;e{n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,Kg)})}(n);if(sm(n))return dm(n);if(lm(n))return function MS(n){return new xe(t=>{for(const e of n)if(t.next(e),t.closed)return;t.complete()})}(n);if(um(n))return function SS(n){return dm(cm(n))}(n)}throw om(n)}function dm(n){return new xe(t=>{(function AS(n,t){var e,i,r,s;return function yS(n,t,e,i){return new(e||(e=Promise))(function(s,o){function a(u){try{c(i.next(u))}catch(d){o(d)}}function l(u){try{c(i.throw(u))}catch(d){o(d)}}function c(u){u.done?s(u.value):function r(s){return s instanceof e?s:new e(function(o){o(s)})}(u.value).then(a,l)}c((i=i.apply(n,t||[])).next())})}(this,void 0,void 0,function*(){try{for(e=bS(n);!(i=yield e.next()).done;)if(t.next(i.value),t.closed)return}catch(o){r={error:o}}finally{try{i&&!i.done&&(s=e.return)&&(yield s.call(e))}finally{if(r)throw r.error}}t.complete()})})(n,t).catch(e=>t.error(e))})}function ti(n,t,e,i=0,r=!1){const s=t.schedule(function(){e(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(s),!r)return s}function st(n,t,e=1/0){return le(t)?st((i,r)=>U((s,o)=>t(i,s,r,o))(Ot(n(i,r))),e):("number"==typeof t&&(e=t),Ne((i,r)=>function TS(n,t,e,i,r,s,o,a){const l=[];let c=0,u=0,d=!1;const h=()=>{d&&!l.length&&!c&&t.complete()},p=m=>c{s&&t.next(m),c++;let _=!1;Ot(e(m,u++)).subscribe(Te(t,y=>{r?.(y),s?p(y):t.next(y)},()=>{_=!0},void 0,()=>{if(_)try{for(c--;l.length&&cg(y)):g(y)}h()}catch(y){t.error(y)}}))};return n.subscribe(Te(t,p,()=>{d=!0,h()})),()=>{a?.()}}(i,r,n,e)))}function Br(n=1/0){return st(Si,n)}const Bn=new xe(n=>n.complete());function hm(n){return n&&le(n.schedule)}function Nu(n){return n[n.length-1]}function fm(n){return le(Nu(n))?n.pop():void 0}function Ys(n){return hm(Nu(n))?n.pop():void 0}function pm(n,t=0){return Ne((e,i)=>{e.subscribe(Te(i,r=>ti(i,n,()=>i.next(r),t),()=>ti(i,n,()=>i.complete(),t),r=>ti(i,n,()=>i.error(r),t)))})}function gm(n,t=0){return Ne((e,i)=>{i.add(n.schedule(()=>e.subscribe(i),t))})}function mm(n,t){if(!n)throw new Error("Iterable cannot be null");return new xe(e=>{ti(e,t,()=>{const i=n[Symbol.asyncIterator]();ti(e,t,()=>{i.next().then(r=>{r.done?e.complete():e.next(r.value)})},0,!0)})})}function et(n,t){return t?function LS(n,t){if(null!=n){if(rm(n))return function FS(n,t){return Ot(n).pipe(gm(t),pm(t))}(n,t);if(Pu(n))return function OS(n,t){return new xe(e=>{let i=0;return t.schedule(function(){i===n.length?e.complete():(e.next(n[i++]),e.closed||this.schedule())})})}(n,t);if(im(n))return function kS(n,t){return Ot(n).pipe(gm(t),pm(t))}(n,t);if(sm(n))return mm(n,t);if(lm(n))return function PS(n,t){return new xe(e=>{let i;return ti(e,t,()=>{i=n[am](),ti(e,t,()=>{let r,s;try{({value:r,done:s}=i.next())}catch(o){return void e.error(o)}s?e.complete():e.next(r)},0,!0)}),()=>le(i?.return)&&i.return()})}(n,t);if(um(n))return function NS(n,t){return mm(cm(n),t)}(n,t)}throw om(n)}(n,t):Ot(n)}function jr(...n){const t=Ys(n),e=function RS(n,t){return"number"==typeof Nu(n)?n.pop():t}(n,1/0),i=n;return i.length?1===i.length?Ot(i[0]):Br(e)(et(i,t)):Bn}function ym(n={}){const{connector:t=(()=>new De),resetOnError:e=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=n;return s=>{let o,a,l,c=0,u=!1,d=!1;const h=()=>{a?.unsubscribe(),a=void 0},p=()=>{h(),o=l=void 0,u=d=!1},g=()=>{const m=o;p(),m?.unsubscribe()};return Ne((m,_)=>{c++,!d&&!u&&h();const y=l=l??t();_.add(()=>{c--,0===c&&!d&&!u&&(a=Lu(g,r))}),y.subscribe(_),!o&&c>0&&(o=new Zs({next:D=>y.next(D),error:D=>{d=!0,h(),a=Lu(p,e,D),y.error(D)},complete:()=>{u=!0,h(),a=Lu(p,i),y.complete()}}),Ot(m).subscribe(o))})(s)}}function Lu(n,t,...e){if(!0===t)return void n();if(!1===t)return;const i=new Zs({next:()=>{i.unsubscribe(),n()}});return t(...e).subscribe(i)}function be(n){for(let t in n)if(n[t]===be)return t;throw Error("Could not find renamed property on target object.")}function Vu(n,t){for(const e in t)t.hasOwnProperty(e)&&!n.hasOwnProperty(e)&&(n[e]=t[e])}function we(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(we).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const t=n.toString();if(null==t)return""+t;const e=t.indexOf("\n");return-1===e?t:t.substring(0,e)}function Bu(n,t){return null==n||""===n?null===t?"":t:null==t||""===t?n:n+" "+t}const VS=be({__forward_ref__:be});function me(n){return n.__forward_ref__=me,n.toString=function(){return we(this())},n}function $(n){return ju(n)?n():n}function ju(n){return"function"==typeof n&&n.hasOwnProperty(VS)&&n.__forward_ref__===me}class C extends Error{constructor(t,e){super(function La(n,t){return`NG0${Math.abs(n)}${t?": "+t.trim():""}`}(t,e)),this.code=t}}function z(n){return"string"==typeof n?n:null==n?"":String(n)}function Va(n,t){throw new C(-201,!1)}function Ut(n,t){null==n&&function pe(n,t,e,i){throw new Error(`ASSERTION ERROR: ${n}`+(null==i?"":` [Expected=> ${e} ${i} ${t} <=Actual]`))}(t,n,null,"!=")}function E(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function se(n){return{providers:n.providers||[],imports:n.imports||[]}}function Ba(n){return _m(n,ja)||_m(n,bm)}function _m(n,t){return n.hasOwnProperty(t)?n[t]:null}function vm(n){return n&&(n.hasOwnProperty(Hu)||n.hasOwnProperty(qS))?n[Hu]:null}const ja=be({\u0275prov:be}),Hu=be({\u0275inj:be}),bm=be({ngInjectableDef:be}),qS=be({ngInjectorDef:be});var B=(()=>((B=B||{})[B.Default=0]="Default",B[B.Host=1]="Host",B[B.Self=2]="Self",B[B.SkipSelf=4]="SkipSelf",B[B.Optional=8]="Optional",B))();let $u;function ln(n){const t=$u;return $u=n,t}function wm(n,t,e){const i=Ba(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&B.Optional?null:void 0!==t?t:void Va(we(n))}function Ai(n){return{toString:n}.toString()}var wn=(()=>((wn=wn||{})[wn.OnPush=0]="OnPush",wn[wn.Default=1]="Default",wn))(),Cn=(()=>{return(n=Cn||(Cn={}))[n.Emulated=0]="Emulated",n[n.None=2]="None",n[n.ShadowDom=3]="ShadowDom",Cn;var n})();const Ee=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),Hr={},fe=[],Ha=be({\u0275cmp:be}),Uu=be({\u0275dir:be}),Gu=be({\u0275pipe:be}),Cm=be({\u0275mod:be}),ii=be({\u0275fac:be}),Xs=be({__NG_ELEMENT_ID__:be});let KS=0;function Ke(n){return Ai(()=>{const e=!0===n.standalone,i={},r={type:n.type,providersResolver:null,decls:n.decls,vars:n.vars,factory:null,template:n.template||null,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:i,inputs:null,outputs:null,exportAs:n.exportAs||null,onPush:n.changeDetection===wn.OnPush,directiveDefs:null,pipeDefs:null,standalone:e,dependencies:e&&n.dependencies||null,getStandaloneInjector:null,selectors:n.selectors||fe,viewQuery:n.viewQuery||null,features:n.features||null,data:n.data||{},encapsulation:n.encapsulation||Cn.Emulated,id:"c"+KS++,styles:n.styles||fe,_:null,setInput:null,schemas:n.schemas||null,tView:null},s=n.dependencies,o=n.features;return r.inputs=Em(n.inputs,i),r.outputs=Em(n.outputs),o&&o.forEach(a=>a(r)),r.directiveDefs=s?()=>("function"==typeof s?s():s).map(xm).filter(Dm):null,r.pipeDefs=s?()=>("function"==typeof s?s():s).map(St).filter(Dm):null,r})}function xm(n){return ye(n)||Mt(n)}function Dm(n){return null!==n}function ce(n){return Ai(()=>({type:n.type,bootstrap:n.bootstrap||fe,declarations:n.declarations||fe,imports:n.imports||fe,exports:n.exports||fe,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null}))}function Em(n,t){if(null==n)return Hr;const e={};for(const i in n)if(n.hasOwnProperty(i)){let r=n[i],s=r;Array.isArray(r)&&(s=r[1],r=r[0]),e[r]=i,t&&(t[r]=s)}return e}const w=Ke;function Et(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,standalone:!0===n.standalone,onDestroy:n.type.prototype.ngOnDestroy||null}}function ye(n){return n[Ha]||null}function Mt(n){return n[Uu]||null}function St(n){return n[Gu]||null}function Gt(n,t){const e=n[Cm]||null;if(!e&&!0===t)throw new Error(`Type ${we(n)} does not have '\u0275mod' property.`);return e}const K=11;function Pt(n){return Array.isArray(n)&&"object"==typeof n[1]}function Dn(n){return Array.isArray(n)&&!0===n[1]}function qu(n){return 0!=(8&n.flags)}function za(n){return 2==(2&n.flags)}function Wa(n){return 1==(1&n.flags)}function En(n){return null!==n.template}function tA(n){return 0!=(256&n[2])}function rr(n,t){return n.hasOwnProperty(ii)?n[ii]:null}class rA{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function vt(){return Am}function Am(n){return n.type.prototype.ngOnChanges&&(n.setInput=oA),sA}function sA(){const n=Im(this),t=n?.current;if(t){const e=n.previous;if(e===Hr)n.previous=t;else for(let i in t)e[i]=t[i];n.current=null,this.ngOnChanges(t)}}function oA(n,t,e,i){const r=Im(n)||function aA(n,t){return n[Tm]=t}(n,{previous:Hr,current:null}),s=r.current||(r.current={}),o=r.previous,a=this.declaredInputs[e],l=o[a];s[a]=new rA(l&&l.currentValue,t,o===Hr),n[i]=t}vt.ngInherit=!0;const Tm="__ngSimpleChanges__";function Im(n){return n[Tm]||null}function tt(n){for(;Array.isArray(n);)n=n[0];return n}function qa(n,t){return tt(t[n])}function Wt(n,t){return tt(t[n.index])}function Xu(n,t){return n.data[t]}function Wr(n,t){return n[t]}function qt(n,t){const e=t[n];return Pt(e)?e:e[0]}function Qa(n){return 64==(64&n[2])}function Ti(n,t){return null==t?null:n[t]}function Rm(n){n[18]=0}function Ju(n,t){n[5]+=t;let e=n,i=n[3];for(;null!==i&&(1===t&&1===e[5]||-1===t&&0===e[5]);)i[5]+=t,e=i,i=i[3]}const G={lFrame:Hm(null),bindingsEnabled:!0};function km(){return G.bindingsEnabled}function x(){return G.lFrame.lView}function oe(){return G.lFrame.tView}function ri(n){return G.lFrame.contextLView=n,n[8]}function si(n){return G.lFrame.contextLView=null,n}function ot(){let n=Om();for(;null!==n&&64===n.type;)n=n.parent;return n}function Om(){return G.lFrame.currentTNode}function jn(n,t){const e=G.lFrame;e.currentTNode=n,e.isParent=t}function ed(){return G.lFrame.isParent}function td(){G.lFrame.isParent=!1}function At(){const n=G.lFrame;let t=n.bindingRootIndex;return-1===t&&(t=n.bindingRootIndex=n.tView.bindingStartIndex),t}function qr(){return G.lFrame.bindingIndex++}function CA(n,t){const e=G.lFrame;e.bindingIndex=e.bindingRootIndex=n,nd(t)}function nd(n){G.lFrame.currentDirectiveIndex=n}function Vm(){return G.lFrame.currentQueryIndex}function rd(n){G.lFrame.currentQueryIndex=n}function DA(n){const t=n[1];return 2===t.type?t.declTNode:1===t.type?n[6]:null}function Bm(n,t,e){if(e&B.SkipSelf){let r=t,s=n;for(;!(r=r.parent,null!==r||e&B.Host||(r=DA(s),null===r||(s=s[15],10&r.type))););if(null===r)return!1;t=r,n=s}const i=G.lFrame=jm();return i.currentTNode=t,i.lView=n,!0}function sd(n){const t=jm(),e=n[1];G.lFrame=t,t.currentTNode=e.firstChild,t.lView=n,t.tView=e,t.contextLView=n,t.bindingIndex=e.bindingStartIndex,t.inI18n=!1}function jm(){const n=G.lFrame,t=null===n?null:n.child;return null===t?Hm(n):t}function Hm(n){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:n,child:null,inI18n:!1};return null!==n&&(n.child=t),t}function $m(){const n=G.lFrame;return G.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const Um=$m;function od(){const n=$m();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function Tt(){return G.lFrame.selectedIndex}function Ii(n){G.lFrame.selectedIndex=n}function Le(){const n=G.lFrame;return Xu(n.tView,n.selectedIndex)}function Ka(){G.lFrame.currentNamespace="svg"}function Za(n,t){for(let e=t.directiveStart,i=t.directiveEnd;e=i)break}else t[l]<0&&(n[18]+=65536),(a>11>16&&(3&n[2])===t){n[2]+=2048;try{s.call(a)}finally{}}}else try{s.call(a)}finally{}}class ro{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function Ja(n,t,e){let i=0;for(;it){o=s-1;break}}}for(;s>16}(n),i=t;for(;e>0;)i=i[15],e--;return i}let cd=!0;function tl(n){const t=cd;return cd=n,t}let VA=0;const Hn={};function oo(n,t){const e=dd(n,t);if(-1!==e)return e;const i=t[1];i.firstCreatePass&&(n.injectorIndex=t.length,ud(i.data,n),ud(t,null),ud(i.blueprint,null));const r=nl(n,t),s=n.injectorIndex;if(Qm(r)){const o=Qr(r),a=Kr(r,t),l=a[1].data;for(let c=0;c<8;c++)t[s+c]=a[o+c]|l[o+c]}return t[s+8]=r,s}function ud(n,t){n.push(0,0,0,0,0,0,0,0,t)}function dd(n,t){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===t[n.injectorIndex+8]?-1:n.injectorIndex}function nl(n,t){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let e=0,i=null,r=t;for(;null!==r;){if(i=iy(r),null===i)return-1;if(e++,r=r[15],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function il(n,t,e){!function BA(n,t,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(Xs)&&(i=e[Xs]),null==i&&(i=e[Xs]=VA++);const r=255&i;t.data[n+(r>>5)]|=1<=0?255&t:UA:t}(e);if("function"==typeof s){if(!Bm(t,n,i))return i&B.Host?Ym(r,0,i):Xm(t,e,i,r);try{const o=s(i);if(null!=o||i&B.Optional)return o;Va()}finally{Um()}}else if("number"==typeof s){let o=null,a=dd(n,t),l=-1,c=i&B.Host?t[16][6]:null;for((-1===a||i&B.SkipSelf)&&(l=-1===a?nl(n,t):t[a+8],-1!==l&&ny(i,!1)?(o=t[1],a=Qr(l),t=Kr(l,t)):a=-1);-1!==a;){const u=t[1];if(ty(s,a,u.data)){const d=HA(a,t,e,o,i,c);if(d!==Hn)return d}l=t[a+8],-1!==l&&ny(i,t[1].data[a+8]===c)&&ty(s,a,t)?(o=u,a=Qr(l),t=Kr(l,t)):a=-1}}return r}function HA(n,t,e,i,r,s){const o=t[1],a=o.data[n+8],u=rl(a,o,e,null==i?za(a)&&cd:i!=o&&0!=(3&a.type),r&B.Host&&s===a);return null!==u?ao(t,o,u,a):Hn}function rl(n,t,e,i,r){const s=n.providerIndexes,o=t.data,a=1048575&s,l=n.directiveStart,u=s>>20,h=r?a+u:n.directiveEnd;for(let p=i?a:a+u;p=l&&g.type===e)return p}if(r){const p=o[l];if(p&&En(p)&&p.type===e)return l}return null}function ao(n,t,e,i){let r=n[e];const s=t.data;if(function kA(n){return n instanceof ro}(r)){const o=r;o.resolving&&function BS(n,t){const e=t?`. Dependency path: ${t.join(" > ")} > ${n}`:"";throw new C(-200,`Circular dependency in DI detected for ${n}${e}`)}(function he(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():z(n)}(s[e]));const a=tl(o.canSeeViewProviders);o.resolving=!0;const l=o.injectImpl?ln(o.injectImpl):null;Bm(n,i,B.Default);try{r=n[e]=o.factory(void 0,s,n,i),t.firstCreatePass&&e>=i.directiveStart&&function RA(n,t,e){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:s}=t.type.prototype;if(i){const o=Am(t);(e.preOrderHooks||(e.preOrderHooks=[])).push(n,o),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,o)}r&&(e.preOrderHooks||(e.preOrderHooks=[])).push(0-n,r),s&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n,s),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,s))}(e,s[e],t)}finally{null!==l&&ln(l),tl(a),o.resolving=!1,Um()}}return r}function ty(n,t,e){return!!(e[t+(n>>5)]&1<{const t=n.prototype.constructor,e=t[ii]||hd(t),i=Object.prototype;let r=Object.getPrototypeOf(n.prototype).constructor;for(;r&&r!==i;){const s=r[ii]||hd(r);if(s&&s!==e)return s;r=Object.getPrototypeOf(r)}return s=>new s})}function hd(n){return ju(n)?()=>{const t=hd($(n));return t&&t()}:rr(n)}function iy(n){const t=n[1],e=t.type;return 2===e?t.declTNode:1===e?n[6]:null}function sr(n){return function jA(n,t){if("class"===t)return n.classes;if("style"===t)return n.styles;const e=n.attrs;if(e){const i=e.length;let r=0;for(;r{const i=function fd(n){return function(...e){if(n){const i=n(...e);for(const r in i)this[r]=i[r]}}}(t);function r(...s){if(this instanceof r)return i.apply(this,s),this;const o=new r(...s);return a.annotation=o,a;function a(l,c,u){const d=l.hasOwnProperty(Xr)?l[Xr]:Object.defineProperty(l,Xr,{value:[]})[Xr];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(o),l}}return e&&(r.prototype=Object.create(e.prototype)),r.prototype.ngMetadataName=n,r.annotationCls=r,r})}class S{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=E({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function Qt(n,t){void 0===t&&(t=n);for(let e=0;eArray.isArray(e)?li(e,t):t(e))}function sy(n,t,e){t>=n.length?n.push(e):n.splice(t,0,e)}function sl(n,t){return t>=n.length-1?n.pop():n.splice(t,1)[0]}function uo(n,t){const e=[];for(let i=0;i=0?n[1|i]=e:(i=~i,function QA(n,t,e,i){let r=n.length;if(r==t)n.push(e,i);else if(1===r)n.push(i,n[0]),n[0]=e;else{for(r--,n.push(n[r-1],n[r]);r>t;)n[r]=n[r-2],r--;n[t]=e,n[t+1]=i}}(n,i,t,e)),i}function gd(n,t){const e=ts(n,t);if(e>=0)return n[1|e]}function ts(n,t){return function ly(n,t,e){let i=0,r=n.length>>e;for(;r!==i;){const s=i+(r-i>>1),o=n[s<t?r=s:i=s+1}return~(r<((Nt=Nt||{})[Nt.Important=1]="Important",Nt[Nt.DashCase=2]="DashCase",Nt))();const xd=new Map;let xT=0;const Ed="__ngContext__";function bt(n,t){Pt(t)?(n[Ed]=t[20],function ET(n){xd.set(n[20],n)}(t)):n[Ed]=t}function Sd(n,t){return undefined(n,t)}function _o(n){const t=n[3];return Dn(t)?t[3]:t}function Ad(n){return Iy(n[13])}function Td(n){return Iy(n[4])}function Iy(n){for(;null!==n&&!Dn(n);)n=n[4];return n}function ss(n,t,e,i,r){if(null!=i){let s,o=!1;Dn(i)?s=i:Pt(i)&&(o=!0,i=i[0]);const a=tt(i);0===n&&null!==e?null==r?Ny(t,e,a):or(t,e,a,r||null,!0):1===n&&null!==e?or(t,e,a,r||null,!0):2===n?function Nd(n,t,e){const i=ul(n,t);i&&function qT(n,t,e,i){n.removeChild(t,e,i)}(n,i,t,e)}(t,a,o):3===n&&t.destroyNode(a),null!=s&&function ZT(n,t,e,i,r){const s=e[7];s!==tt(e)&&ss(t,n,i,s,r);for(let a=10;a0&&(n[e-1][4]=i[4]);const s=sl(n,10+t);!function BT(n,t){vo(n,t,t[K],2,null,null),t[0]=null,t[6]=null}(i[1],i);const o=s[19];null!==o&&o.detachView(s[1]),i[3]=null,i[4]=null,i[2]&=-65}return i}function ky(n,t){if(!(128&t[2])){const e=t[K];e.destroyNode&&vo(n,t,e,3,null,null),function $T(n){let t=n[13];if(!t)return kd(n[1],n);for(;t;){let e=null;if(Pt(t))e=t[13];else{const i=t[10];i&&(e=i)}if(!e){for(;t&&!t[4]&&t!==n;)Pt(t)&&kd(t[1],t),t=t[3];null===t&&(t=n),Pt(t)&&kd(t[1],t),e=t&&t[4]}t=e}}(t)}}function kd(n,t){if(!(128&t[2])){t[2]&=-65,t[2]|=128,function WT(n,t){let e;if(null!=n&&null!=(e=n.destroyHooks))for(let i=0;i=0?i[r=c]():i[r=-c].unsubscribe(),s+=2}else{const o=i[r=e[s+1]];e[s].call(o)}if(null!==i){for(let s=r+1;sn,createScript:n=>n,createScriptURL:n=>n})}catch{}return fl}()?.createHTML(n)||n}function Qy(n){return function Hd(){if(void 0===pl&&(pl=null,Ee.trustedTypes))try{pl=Ee.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return pl}()?.createScriptURL(n)||n}class lr{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}class nI extends lr{getTypeName(){return"HTML"}}class iI extends lr{getTypeName(){return"Style"}}class rI extends lr{getTypeName(){return"Script"}}class sI extends lr{getTypeName(){return"URL"}}class oI extends lr{getTypeName(){return"ResourceURL"}}function Zt(n){return n instanceof lr?n.changingThisBreaksApplicationSecurity:n}function $n(n,t){const e=function aI(n){return n instanceof lr&&n.getTypeName()||null}(n);if(null!=e&&e!==t){if("ResourceURL"===e&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${e} (see https://g.co/ng/security#xss)`)}return e===t}class fI{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=" "+t;try{const e=(new window.DOMParser).parseFromString(ar(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch{return null}}}class pI{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const e=this.inertDocument.createElement("html");this.inertDocument.appendChild(e);const i=this.inertDocument.createElement("body");e.appendChild(i)}}getInertBodyElement(t){const e=this.inertDocument.createElement("template");if("content"in e)return e.innerHTML=ar(t),e;const i=this.inertDocument.createElement("body");return i.innerHTML=ar(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(i),i}stripCustomNsAttrs(t){const e=t.attributes;for(let r=e.length-1;0"),!0}endElement(t){const e=t.nodeName.toLowerCase();$d.hasOwnProperty(e)&&!Zy.hasOwnProperty(e)&&(this.buf.push(""),this.buf.push(e),this.buf.push(">"))}chars(t){this.buf.push(e_(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return e}}const vI=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,bI=/([^\#-~ |!])/g;function e_(n){return n.replace(/&/g,"&").replace(vI,function(t){return""+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(bI,function(t){return""+t.charCodeAt(0)+";"}).replace(//g,">")}let ml;function t_(n,t){let e=null;try{ml=ml||function Ky(n){const t=new pI(n);return function gI(){try{return!!(new window.DOMParser).parseFromString(ar(""),"text/html")}catch{return!1}}()?new fI(t):t}(n);let i=t?String(t):"";e=ml.getInertBodyElement(i);let r=5,s=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=s,s=e.innerHTML,e=ml.getInertBodyElement(i)}while(i!==s);return ar((new _I).sanitizeChildren(Gd(e)||e))}finally{if(e){const i=Gd(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function Gd(n){return"content"in n&&function wI(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var de=(()=>((de=de||{})[de.NONE=0]="NONE",de[de.HTML=1]="HTML",de[de.STYLE=2]="STYLE",de[de.SCRIPT=3]="SCRIPT",de[de.URL=4]="URL",de[de.RESOURCE_URL=5]="RESOURCE_URL",de))();function os(n){const t=wo();return t?t.sanitize(de.URL,n)||"":$n(n,"URL")?Zt(n):gl(z(n))}function zd(n){const t=wo();if(t)return Qy(t.sanitize(de.RESOURCE_URL,n)||"");if($n(n,"ResourceURL"))return Qy(Zt(n));throw new C(904,!1)}function wo(){const n=x();return n&&n[12]}const Wd=new S("ENVIRONMENT_INITIALIZER"),n_=new S("INJECTOR",-1),i_=new S("INJECTOR_DEF_TYPES");class r_{get(t,e=ho){if(e===ho){const i=new Error(`NullInjectorError: No provider for ${we(t)}!`);throw i.name="NullInjectorError",i}return e}}function TI(...n){return{\u0275providers:s_(0,n)}}function s_(n,...t){const e=[],i=new Set;let r;return li(t,s=>{const o=s;qd(o,e,[],i)&&(r||(r=[]),r.push(o))}),void 0!==r&&o_(r,e),e}function o_(n,t){for(let e=0;e{t.push(s)})}}function qd(n,t,e,i){if(!(n=$(n)))return!1;let r=null,s=vm(n);const o=!s&&ye(n);if(s||o){if(o&&!o.standalone)return!1;r=n}else{const l=n.ngModule;if(s=vm(l),!s)return!1;r=l}const a=i.has(r);if(o){if(a)return!1;if(i.add(r),o.dependencies){const l="function"==typeof o.dependencies?o.dependencies():o.dependencies;for(const c of l)qd(c,t,e,i)}}else{if(!s)return!1;{if(null!=s.imports&&!a){let c;i.add(r);try{li(s.imports,u=>{qd(u,t,e,i)&&(c||(c=[]),c.push(u))})}finally{}void 0!==c&&o_(c,t)}if(!a){const c=rr(r)||(()=>new r);t.push({provide:r,useFactory:c,deps:fe},{provide:i_,useValue:r,multi:!0},{provide:Wd,useValue:()=>b(r),multi:!0})}const l=s.providers;null==l||a||li(l,u=>{t.push(u)})}}return r!==n&&void 0!==n.providers}const II=be({provide:String,useValue:be});function Qd(n){return null!==n&&"object"==typeof n&&II in n}function cr(n){return"function"==typeof n}const Kd=new S("Set Injector scope."),yl={},FI={};let Zd;function _l(){return void 0===Zd&&(Zd=new r_),Zd}class ki{}class c_ extends ki{constructor(t,e,i,r){super(),this.parent=e,this.source=i,this.scopes=r,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Xd(t,o=>this.processProvider(o)),this.records.set(n_,as(void 0,this)),r.has("environment")&&this.records.set(ki,as(void 0,this));const s=this.records.get(Kd);null!=s&&"string"==typeof s.value&&this.scopes.add(s.value),this.injectorDefTypes=new Set(this.get(i_.multi,fe,B.Self))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const t of this._ngOnDestroyHooks)t.ngOnDestroy();for(const t of this._onDestroyHooks)t()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(t){this._onDestroyHooks.push(t)}runInContext(t){this.assertNotDestroyed();const e=ns(this),i=ln(void 0);try{return t()}finally{ns(e),ln(i)}}get(t,e=ho,i=B.Default){this.assertNotDestroyed();const r=ns(this),s=ln(void 0);try{if(!(i&B.SkipSelf)){let a=this.records.get(t);if(void 0===a){const l=function LI(n){return"function"==typeof n||"object"==typeof n&&n instanceof S}(t)&&Ba(t);a=l&&this.injectableDefInScope(l)?as(Yd(t),yl):null,this.records.set(t,a)}if(null!=a)return this.hydrate(t,a)}return(i&B.Self?_l():this.parent).get(t,e=i&B.Optional&&e===ho?null:e)}catch(o){if("NullInjectorError"===o.name){if((o[al]=o[al]||[]).unshift(we(t)),r)throw o;return function oT(n,t,e,i){const r=n[al];throw t[cy]&&r.unshift(t[cy]),n.message=function aT(n,t,e,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.slice(2):n;let r=we(t);if(Array.isArray(t))r=t.map(we).join(" -> ");else if("object"==typeof t){let s=[];for(let o in t)if(t.hasOwnProperty(o)){let a=t[o];s.push(o+":"+("string"==typeof a?JSON.stringify(a):we(a)))}r=`{${s.join(", ")}}`}return`${e}${i?"("+i+")":""}[${r}]: ${n.replace(nT,"\n ")}`}("\n"+n.message,r,e,i),n.ngTokenPath=r,n[al]=null,n}(o,t,"R3InjectorError",this.source)}throw o}finally{ln(s),ns(r)}}resolveInjectorInitializers(){const t=ns(this),e=ln(void 0);try{const i=this.get(Wd.multi,fe,B.Self);for(const r of i)r()}finally{ns(t),ln(e)}}toString(){const t=[],e=this.records;for(const i of e.keys())t.push(we(i));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new C(205,!1)}processProvider(t){let e=cr(t=$(t))?t:$(t&&t.provide);const i=function OI(n){return Qd(n)?as(void 0,n.useValue):as(u_(n),yl)}(t);if(cr(t)||!0!==t.multi)this.records.get(e);else{let r=this.records.get(e);r||(r=as(void 0,yl,!0),r.factory=()=>_d(r.multi),this.records.set(e,r)),e=t,r.multi.push(t)}this.records.set(e,i)}hydrate(t,e){return e.value===yl&&(e.value=FI,e.value=e.factory()),"object"==typeof e.value&&e.value&&function NI(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}injectableDefInScope(t){if(!t.providedIn)return!1;const e=$(t.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}}function Yd(n){const t=Ba(n),e=null!==t?t.factory:rr(n);if(null!==e)return e;if(n instanceof S)throw new C(204,!1);if(n instanceof Function)return function kI(n){const t=n.length;if(t>0)throw uo(t,"?"),new C(204,!1);const e=function zS(n){const t=n&&(n[ja]||n[bm]);if(t){const e=function WS(n){if(n.hasOwnProperty("name"))return n.name;const t=(""+n).match(/^function\s*([^\s(]+)/);return null===t?"":t[1]}(n);return console.warn(`DEPRECATED: DI is instantiating a token "${e}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${e}" class.`),t}return null}(n);return null!==e?()=>e.factory(n):()=>new n}(n);throw new C(204,!1)}function u_(n,t,e){let i;if(cr(n)){const r=$(n);return rr(r)||Yd(r)}if(Qd(n))i=()=>$(n.useValue);else if(function l_(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(..._d(n.deps||[]));else if(function a_(n){return!(!n||!n.useExisting)}(n))i=()=>b($(n.useExisting));else{const r=$(n&&(n.useClass||n.provide));if(!function PI(n){return!!n.deps}(n))return rr(r)||Yd(r);i=()=>new r(..._d(n.deps))}return i}function as(n,t,e=!1){return{factory:n,value:t,multi:e?[]:void 0}}function VI(n){return!!n.\u0275providers}function Xd(n,t){for(const e of n)Array.isArray(e)?Xd(e,t):VI(e)?Xd(e.\u0275providers,t):t(e)}class d_{}class HI{resolveComponentFactory(t){throw function jI(n){const t=Error(`No component factory found for ${we(n)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=n,t}(t)}}let ur=(()=>{class n{}return n.NULL=new HI,n})();function $I(){return ls(ot(),x())}function ls(n,t){return new k(Wt(n,t))}let k=(()=>{class n{constructor(e){this.nativeElement=e}}return n.__NG_ELEMENT_ID__=$I,n})();function UI(n){return n instanceof k?n.nativeElement:n}class Co{}let Mn=(()=>{class n{}return n.__NG_ELEMENT_ID__=()=>function GI(){const n=x(),e=qt(ot().index,n);return(Pt(e)?e:n)[K]}(),n})(),zI=(()=>{class n{}return n.\u0275prov=E({token:n,providedIn:"root",factory:()=>null}),n})();class Oi{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const WI=new Oi("14.3.0"),Jd={};function th(n){return n.ngOriginalError}class ui{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t);this._console.error("ERROR",t),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(t){let e=t&&th(t);for(;e&&th(e);)e=th(e);return e||null}}function di(n){return n instanceof Function?n():n}function p_(n,t,e){let i=n.length;for(;;){const r=n.indexOf(t,e);if(-1===r)return r;if(0===r||n.charCodeAt(r-1)<=32){const s=t.length;if(r+s===i||n.charCodeAt(r+s)<=32)return r}e=r+1}}const g_="ng-template";function iR(n,t,e){let i=0;for(;is?"":r[d+1].toLowerCase();const p=8&i?h:null;if(p&&-1!==p_(p,c,0)||2&i&&c!==h){if(Sn(i))return!1;o=!0}}}}else{if(!o&&!Sn(i)&&!Sn(l))return!1;if(o&&Sn(l))continue;o=!1,i=l|1&i}}return Sn(i)||o}function Sn(n){return 0==(1&n)}function oR(n,t,e,i){if(null===t)return-1;let r=0;if(i||!e){let s=!1;for(;r-1)for(e++;e0?'="'+a+'"':"")+"]"}else 8&i?r+="."+o:4&i&&(r+=" "+o);else""!==r&&!Sn(o)&&(t+=__(s,r),r=""),i=o,s=s||!Sn(i);e++}return""!==r&&(t+=__(s,r)),t}const W={};function q(n){v_(oe(),x(),Tt()+n,!1)}function v_(n,t,e,i){if(!i)if(3==(3&t[2])){const s=n.preOrderCheckHooks;null!==s&&Ya(t,s,e)}else{const s=n.preOrderHooks;null!==s&&Xa(t,s,0,e)}Ii(e)}function x_(n,t=null,e=null,i){const r=D_(n,t,e,i);return r.resolveInjectorInitializers(),r}function D_(n,t=null,e=null,i,r=new Set){const s=[e||fe,TI(n)];return i=i||("object"==typeof n?void 0:we(n)),new c_(s,t||_l(),i||null,r)}let Lt=(()=>{class n{static create(e,i){if(Array.isArray(e))return x_({name:""},i,e,"");{const r=e.name??"";return x_({name:r},e.parent,e.providers,r)}}}return n.THROW_IF_NOT_FOUND=ho,n.NULL=new r_,n.\u0275prov=E({token:n,providedIn:"any",factory:()=>b(n_)}),n.__NG_ELEMENT_ID__=-1,n})();function f(n,t=B.Default){const e=x();return null===e?b(n,t):Jm(ot(),e,$(n),t)}function oh(){throw new Error("invalid")}function bl(n,t){return n<<17|t<<2}function An(n){return n>>17&32767}function ah(n){return 2|n}function hi(n){return(131068&n)>>2}function lh(n,t){return-131069&n|t<<2}function ch(n){return 1|n}function H_(n,t){const e=n.contentQueries;if(null!==e)for(let i=0;i22&&v_(n,t,22,!1),e(i,r)}finally{Ii(s)}}function U_(n,t,e){if(qu(t)){const r=t.directiveEnd;for(let s=t.directiveStart;s0;){const e=n[--t];if("number"==typeof e&&e<0)return e}return 0})(a)!=l&&a.push(l),a.push(i,r,o)}}function Z_(n,t){null!==n.hostBindings&&n.hostBindings(1,t)}function Y_(n,t){t.flags|=2,(n.components||(n.components=[])).push(t.index)}function nF(n,t,e){if(e){if(t.exportAs)for(let i=0;i0&&Dh(e)}}function Dh(n){for(let i=Ad(n);null!==i;i=Td(i))for(let r=10;r0&&Dh(s)}const e=n[1].components;if(null!==e)for(let i=0;i0&&Dh(r)}}function cF(n,t){const e=qt(t,n),i=e[1];(function uF(n,t){for(let e=t.length;e-1&&(Fd(t,i),sl(e,i))}this._attachedToViewContainer=!1}ky(this._lView[1],this._lView)}onDestroy(t){z_(this._lView[1],this._lView,null,t)}markForCheck(){Eh(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){Ml(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new C(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function HT(n,t){vo(n,t,t[K],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new C(902,!1);this._appRef=t}}class dF extends xo{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;Ml(t[1],t,t[8],!1)}checkNoChanges(){}get context(){return null}}class Ah extends ur{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=ye(t);return new Do(e,this.ngModule)}}function sv(n){const t=[];for(let e in n)n.hasOwnProperty(e)&&t.push({propName:n[e],templateName:e});return t}class fF{constructor(t,e){this.injector=t,this.parentInjector=e}get(t,e,i){const r=this.injector.get(t,Jd,i);return r!==Jd||e===Jd?r:this.parentInjector.get(t,e,i)}}class Do extends d_{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=function hR(n){return n.map(dR).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return sv(this.componentDef.inputs)}get outputs(){return sv(this.componentDef.outputs)}create(t,e,i,r){let s=(r=r||this.ngModule)instanceof ki?r:r?.injector;s&&null!==this.componentDef.getStandaloneInjector&&(s=this.componentDef.getStandaloneInjector(s)||s);const o=s?new fF(t,s):t,a=o.get(Co,null);if(null===a)throw new C(407,!1);const l=o.get(zI,null),c=a.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||"div",d=i?function WR(n,t,e){return n.selectRootElement(t,e===Cn.ShadowDom)}(c,i,this.componentDef.encapsulation):Rd(c,u,function hF(n){const t=n.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(u)),h=this.componentDef.onPush?288:272,p=wh(0,null,null,1,0,null,null,null,null,null),g=xl(null,p,null,h,null,null,a,c,l,o,null);let m,_;sd(g);try{const y=function mF(n,t,e,i,r,s){const o=e[1];e[22]=n;const l=ds(o,22,2,"#host",null),c=l.mergedAttrs=t.hostAttrs;null!==c&&(Sl(l,c,!0),null!==n&&(Ja(r,n,c),null!==l.classes&&Vd(r,n,l.classes),null!==l.styles&&Gy(r,n,l.styles)));const u=i.createRenderer(n,t),d=xl(e,G_(t),null,t.onPush?32:16,e[22],l,i,u,s||null,null,null);return o.firstCreatePass&&(il(oo(l,e),o,t.type),Y_(o,l),X_(l,e.length,1)),El(e,d),e[22]=d}(d,this.componentDef,g,a,c);if(d)if(i)Ja(c,d,["ng-version",WI.full]);else{const{attrs:D,classes:v}=function fR(n){const t=[],e=[];let i=1,r=2;for(;i0&&Vd(c,d,v.join(" "))}if(_=Xu(p,22),void 0!==e){const D=_.projection=[];for(let v=0;v=0;i--){const r=n[i];r.hostVars=t+=r.hostVars,r.hostAttrs=el(r.hostAttrs,e=el(e,r.hostAttrs))}}(i)}function Th(n){return n===Hr?{}:n===fe?[]:n}function bF(n,t){const e=n.viewQuery;n.viewQuery=e?(i,r)=>{t(i,r),e(i,r)}:t}function wF(n,t){const e=n.contentQueries;n.contentQueries=e?(i,r,s)=>{t(i,r,s),e(i,r,s)}:t}function CF(n,t){const e=n.hostBindings;n.hostBindings=e?(i,r)=>{t(i,r),e(i,r)}:t}let Tl=null;function dr(){if(!Tl){const n=Ee.Symbol;if(n&&n.iterator)Tl=n.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;ea(tt(Y[i.index])):i.index;let A=null;if(!a&&l&&(A=function OF(n,t,e,i){const r=n.cleanup;if(null!=r)for(let s=0;sl?a[l]:null}"string"==typeof o&&(s+=2)}return null}(n,t,r,i.index)),null!==A)(A.__ngLastListenerFn__||A).__ngNextListenerFn__=s,A.__ngLastListenerFn__=s,p=!1;else{s=wv(i,t,d,s,!1);const Y=e.listen(y,r,s);h.push(s,Y),u&&u.push(r,v,D,D+1)}}else s=wv(i,t,d,s,!1);const g=i.outputs;let m;if(p&&null!==g&&(m=g[r])){const _=m.length;if(_)for(let y=0;y<_;y+=2){const re=t[m[y]][m[y+1]].subscribe(s),He=h.length;h.push(s,re),u&&u.push(r,i.index,He,-(He+1))}}}(s,r,r[K],o,n,t,0,i),Ce}function bv(n,t,e,i){try{return!1!==e(i)}catch(r){return rv(n,r),!1}}function wv(n,t,e,i,r){return function s(o){if(o===Function)return i;Eh(2&n.flags?qt(n.index,t):t);let l=bv(t,0,i,o),c=s.__ngNextListenerFn__;for(;c;)l=bv(t,0,c,o)&&l,c=c.__ngNextListenerFn__;return r&&!1===l&&(o.preventDefault(),o.returnValue=!1),l}}function ge(n=1){return function EA(n){return(G.lFrame.contextLView=function MA(n,t){for(;n>0;)t=t[15],n--;return t}(n,G.lFrame.contextLView))[8]}(n)}function PF(n,t){let e=null;const i=function aR(n){const t=n.attrs;if(null!=t){const e=t.indexOf(5);if(0==(1&e))return t[e+1]}return null}(n);for(let r=0;r=0}function xs(n,t,e){return In(n,t,e,!1),xs}function Ie(n,t){return In(n,t,null,!0),Ie}function In(n,t,e,i){const r=x(),s=oe(),o=function ai(n){const t=G.lFrame,e=t.bindingIndex;return t.bindingIndex=t.bindingIndex+n,e}(2);s.firstUpdatePass&&function Vv(n,t,e,i){const r=n.data;if(null===r[e+1]){const s=r[Tt()],o=function Lv(n,t){return t>=n.expandoStartIndex}(n,e);(function $v(n,t){return 0!=(n.flags&(t?16:32))})(s,i)&&null===t&&!o&&(t=!1),t=function qF(n,t,e,i){const r=function id(n){const t=G.lFrame.currentDirectiveIndex;return-1===t?null:n[t]}(n);let s=i?t.residualClasses:t.residualStyles;if(null===r)0===(i?t.classBindings:t.styleBindings)&&(e=ko(e=kh(null,n,t,e,i),t.attrs,i),s=null);else{const o=t.directiveStylingLast;if(-1===o||n[o]!==r)if(e=kh(r,n,t,e,i),null===s){let l=function QF(n,t,e){const i=e?t.classBindings:t.styleBindings;if(0!==hi(i))return n[An(i)]}(n,t,i);void 0!==l&&Array.isArray(l)&&(l=kh(null,n,t,l[1],i),l=ko(l,t.attrs,i),function KF(n,t,e,i){n[An(e?t.classBindings:t.styleBindings)]=i}(n,t,i,l))}else s=function ZF(n,t,e){let i;const r=t.directiveEnd;for(let s=1+t.directiveStylingLast;s0)&&(c=!0)}else u=e;if(r)if(0!==l){const h=An(n[a+1]);n[i+1]=bl(h,a),0!==h&&(n[h+1]=lh(n[h+1],i)),n[a+1]=function FR(n,t){return 131071&n|t<<17}(n[a+1],i)}else n[i+1]=bl(a,0),0!==a&&(n[a+1]=lh(n[a+1],i)),a=i;else n[i+1]=bl(l,0),0===a?a=i:n[l+1]=lh(n[l+1],i),l=i;c&&(n[i+1]=ah(n[i+1])),Iv(n,u,i,!0),Iv(n,u,i,!1),function LF(n,t,e,i,r){const s=r?n.residualClasses:n.residualStyles;null!=s&&"string"==typeof t&&ts(s,t)>=0&&(e[i+1]=ch(e[i+1]))}(t,u,n,i,s),o=bl(a,l),s?t.classBindings=o:t.styleBindings=o}(r,s,t,e,o,i)}}(s,n,o,i),t!==W&&wt(r,o,t)&&function jv(n,t,e,i,r,s,o,a){if(!(3&t.type))return;const l=n.data,c=l[a+1];Rl(function k_(n){return 1==(1&n)}(c)?Hv(l,t,e,r,hi(c),o):void 0)||(Rl(s)||function F_(n){return 2==(2&n)}(c)&&(s=Hv(l,null,e,r,a,o)),function YT(n,t,e,i,r){if(t)r?n.addClass(e,i):n.removeClass(e,i);else{let s=-1===i.indexOf("-")?void 0:Nt.DashCase;null==r?n.removeStyle(e,i,s):("string"==typeof r&&r.endsWith("!important")&&(r=r.slice(0,-10),s|=Nt.Important),n.setStyle(e,i,r,s))}}(i,o,qa(Tt(),e),r,s))}(s,s.data[Tt()],r,r[K],n,r[o+1]=function JF(n,t){return null==n||("string"==typeof t?n+=t:"object"==typeof n&&(n=we(Zt(n)))),n}(t,e),i,o)}function kh(n,t,e,i,r){let s=null;const o=e.directiveEnd;let a=e.directiveStylingLast;for(-1===a?a=e.directiveStart:a++;a0;){const l=n[r],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let h=e[r+1];h===W&&(h=d?fe:void 0);let p=d?gd(h,i):u===i?h:void 0;if(c&&!Rl(p)&&(p=gd(l,i)),Rl(p)&&(a=p,o))return a;const g=n[r+1];r=o?An(g):hi(g)}if(null!==t){let l=s?t.residualClasses:t.residualStyles;null!=l&&(a=gd(l,i))}return a}function Rl(n){return void 0!==n}function We(n,t=""){const e=x(),i=oe(),r=n+22,s=i.firstCreatePass?ds(i,r,1,t,null):i.data[r],o=e[r]=function Id(n,t){return n.createText(t)}(e[K],t);dl(i,e,o,s),jn(s,!1)}function Li(n){return hn("",n,""),Li}function hn(n,t,e){const i=x(),r=ps(i,n,t,e);return r!==W&&function fi(n,t,e){const i=qa(t,n);!function Ry(n,t,e){n.setValue(t,e)}(n[K],i,e)}(i,Tt(),r),hn}const Es="en-US";let ub=Es;function Nh(n,t,e,i,r){if(n=$(n),Array.isArray(n))for(let s=0;s>20;if(cr(n)||!n.multi){const p=new ro(l,r,f),g=Vh(a,t,r?u:u+h,d);-1===g?(il(oo(c,o),s,a),Lh(s,n,t.length),t.push(a),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=1048576),e.push(p),o.push(p)):(e[g]=p,o[g]=p)}else{const p=Vh(a,t,u+h,d),g=Vh(a,t,u,u+h),m=p>=0&&e[p],_=g>=0&&e[g];if(r&&!_||!r&&!m){il(oo(c,o),s,a);const y=function yO(n,t,e,i,r){const s=new ro(n,e,f);return s.multi=[],s.index=t,s.componentProviders=0,Pb(s,r,i&&!e),s}(r?mO:gO,e.length,r,i,l);!r&&_&&(e[g].providerFactory=y),Lh(s,n,t.length,0),t.push(a),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=1048576),e.push(y),o.push(y)}else Lh(s,n,p>-1?p:g,Pb(e[r?g:p],l,!r&&i));!r&&i&&_&&e[g].componentProviders++}}}function Lh(n,t,e,i){const r=cr(t),s=function RI(n){return!!n.useClass}(t);if(r||s){const l=(s?$(t.useClass):t).prototype.ngOnDestroy;if(l){const c=n.destroyHooks||(n.destroyHooks=[]);if(!r&&t.multi){const u=c.indexOf(e);-1===u?c.push(e,[i,l]):c[u+1].push(i,l)}else c.push(e,l)}}}function Pb(n,t,e){return e&&n.componentProviders++,n.multi.push(t)-1}function Vh(n,t,e,i){for(let r=e;r{e.providersResolver=(i,r)=>function pO(n,t,e){const i=oe();if(i.firstCreatePass){const r=En(n);Nh(e,i.data,i.blueprint,r,!0),Nh(t,i.data,i.blueprint,r,!1)}}(i,r?r(n):n,t)}}class gr{}class Nb{}class Lb extends gr{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new Ah(this);const i=Gt(t);this._bootstrapComponents=di(i.bootstrap),this._r3Injector=D_(t,e,[{provide:gr,useValue:this},{provide:ur,useValue:this.componentFactoryResolver}],we(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class jh extends Nb{constructor(t){super(),this.moduleType=t}create(t){return new Lb(this.moduleType,t)}}class vO extends gr{constructor(t,e,i){super(),this.componentFactoryResolver=new Ah(this),this.instance=null;const r=new c_([...t,{provide:gr,useValue:this},{provide:ur,useValue:this.componentFactoryResolver}],e||_l(),i,new Set(["environment"]));this.injector=r,r.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}function Nl(n,t,e=null){return new vO(n,t,e).injector}let bO=(()=>{class n{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e.id)){const i=s_(0,e.type),r=i.length>0?Nl([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e.id,r)}return this.cachedInjectors.get(e.id)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}}return n.\u0275prov=E({token:n,providedIn:"environment",factory:()=>new n(b(ki))}),n})();function Vb(n){n.getStandaloneInjector=t=>t.get(bO).getOrCreateStandaloneInjector(n)}function $h(n,t,e,i){return Wb(x(),At(),n,t,e,i)}function zb(n,t,e,i,r){return function qb(n,t,e,i,r,s,o){const a=t+e;return function hr(n,t,e,i){const r=wt(n,t,e);return wt(n,t+1,i)||r}(n,a,r,s)?Gn(n,a+2,o?i.call(o,r,s):i(r,s)):Bo(n,a+2)}(x(),At(),n,t,e,i,r)}function Bo(n,t){const e=n[t];return e===W?void 0:e}function Wb(n,t,e,i,r,s){const o=t+e;return wt(n,o,r)?Gn(n,o+1,s?i.call(s,r):i(r)):Bo(n,o+1)}function Uh(n){return t=>{setTimeout(n,void 0,t)}}const ee=class $O extends De{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,i){let r=t,s=e||(()=>null),o=i;if(t&&"object"==typeof t){const l=t;r=l.next?.bind(l),s=l.error?.bind(l),o=l.complete?.bind(l)}this.__isAsync&&(s=Uh(s),r&&(r=Uh(r)),o&&(o=Uh(o)));const a=super.subscribe({next:r,error:s,complete:o});return t instanceof Ue&&t.add(a),a}};function UO(){return this._results[dr()]()}class Ms{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=dr(),i=Ms.prototype;i[e]||(i[e]=UO)}get changes(){return this._changes||(this._changes=new ee)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){const i=this;i.dirty=!1;const r=Qt(t);(this._changesDetected=!function WA(n,t,e){if(n.length!==t.length)return!1;for(let i=0;i{class n{}return n.__NG_ELEMENT_ID__=WO,n})();const GO=Xt,zO=class extends GO{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}createEmbeddedView(t,e){const i=this._declarationTContainer.tViews,r=xl(this._declarationLView,i,t,16,null,i.declTNode,null,null,null,null,e||null);r[17]=this._declarationLView[this._declarationTContainer.index];const o=this._declarationLView[19];return null!==o&&(r[19]=o.createEmbeddedView(i)),_h(i,r,t),new xo(r)}};function WO(){return Ll(ot(),x())}function Ll(n,t){return 4&n.type?new zO(t,n,ls(n,t)):null}let Ct=(()=>{class n{}return n.__NG_ELEMENT_ID__=qO,n})();function qO(){return tw(ot(),x())}const QO=Ct,Jb=class extends QO{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return ls(this._hostTNode,this._hostLView)}get injector(){return new Zr(this._hostTNode,this._hostLView)}get parentInjector(){const t=nl(this._hostTNode,this._hostLView);if(Qm(t)){const e=Kr(t,this._hostLView),i=Qr(t);return new Zr(e[1].data[i+8],e)}return new Zr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=ew(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,e,i){let r,s;"number"==typeof i?r=i:null!=i&&(r=i.index,s=i.injector);const o=t.createEmbeddedView(e||{},s);return this.insert(o,r),o}createComponent(t,e,i,r,s){const o=t&&!function co(n){return"function"==typeof n}(t);let a;if(o)a=e;else{const d=e||{};a=d.index,i=d.injector,r=d.projectableNodes,s=d.environmentInjector||d.ngModuleRef}const l=o?t:new Do(ye(t)),c=i||this.parentInjector;if(!s&&null==l.ngModule){const h=(o?c:this.parentInjector).get(ki,null);h&&(s=h)}const u=l.create(c,r,void 0,s);return this.insert(u.hostView,a),u}insert(t,e){const i=t._lView,r=i[1];if(function pA(n){return Dn(n[3])}(i)){const u=this.indexOf(t);if(-1!==u)this.detach(u);else{const d=i[3],h=new Jb(d,d[6],d[3]);h.detach(h.indexOf(t))}}const s=this._adjustIndex(e),o=this._lContainer;!function UT(n,t,e,i){const r=10+i,s=e.length;i>0&&(e[r-1][4]=t),i0)i.push(o[a/2]);else{const c=s[a+1],u=t[-l];for(let d=10;d{class n{constructor(e){this.appInits=e,this.resolve=Bl,this.reject=Bl,this.initialized=!1,this.done=!1,this.donePromise=new Promise((i,r)=>{this.resolve=i,this.reject=r})}runInitializers(){if(this.initialized)return;const e=[],i=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let r=0;r{s.subscribe({complete:a,error:l})});e.push(o)}}Promise.all(e).then(()=>{i()}).catch(r=>{this.reject(r)}),0===e.length&&i(),this.initialized=!0}}return n.\u0275fac=function(e){return new(e||n)(b(jl,8))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const $o=new S("AppId",{providedIn:"root",factory:function Mw(){return`${ef()}${ef()}${ef()}`}});function ef(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Sw=new S("Platform Initializer"),pn=new S("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),tf=new S("appBootstrapListener"),en=new S("AnimationModuleType");let x1=(()=>{class n{log(e){console.log(e)}warn(e){console.warn(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})();const qn=new S("LocaleId",{providedIn:"root",factory:()=>Se(qn,B.Optional|B.SkipSelf)||function D1(){return typeof $localize<"u"&&$localize.locale||Es}()});class M1{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}let nf=(()=>{class n{compileModuleSync(e){return new jh(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),s=di(Gt(e).declarations).reduce((o,a)=>{const l=ye(a);return l&&o.push(new Do(l)),o},[]);return new M1(i,s)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const T1=(()=>Promise.resolve(0))();function rf(n){typeof Zone>"u"?T1.then(()=>{n&&n.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",n)}class ae{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ee(!1),this.onMicrotaskEmpty=new ee(!1),this.onStable=new ee(!1),this.onError=new ee(!1),typeof Zone>"u")throw new C(908,!1);Zone.assertZonePatched();const r=this;if(r._nesting=0,r._outer=r._inner=Zone.current,Zone.AsyncStackTaggingZoneSpec){const s=Zone.AsyncStackTaggingZoneSpec;r._inner=r._inner.fork(new s("Angular"))}Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&e,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function I1(){let n=Ee.requestAnimationFrame,t=Ee.cancelAnimationFrame;if(typeof Zone<"u"&&n&&t){const e=n[Zone.__symbol__("OriginalDelegate")];e&&(n=e);const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function k1(n){const t=()=>{!function F1(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(Ee,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,af(n),n.isCheckStableRunning=!0,sf(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),af(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,r,s,o,a)=>{try{return Iw(n),e.invokeTask(r,s,o,a)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||n.shouldCoalesceRunChangeDetection)&&t(),Rw(n)}},onInvoke:(e,i,r,s,o,a,l)=>{try{return Iw(n),e.invoke(r,s,o,a,l)}finally{n.shouldCoalesceRunChangeDetection&&t(),Rw(n)}},onHasTask:(e,i,r,s)=>{e.hasTask(r,s),i===r&&("microTask"==s.change?(n._hasPendingMicrotasks=s.microTask,af(n),sf(n)):"macroTask"==s.change&&(n.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,i,r,s)=>(e.handleError(r,s),n.runOutsideAngular(()=>n.onError.emit(s)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!ae.isInAngularZone())throw new C(909,!1)}static assertNotInAngularZone(){if(ae.isInAngularZone())throw new C(909,!1)}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,r){const s=this._inner,o=s.scheduleEventTask("NgZoneEvent: "+r,t,R1,Bl,Bl);try{return s.runTask(o,e,i)}finally{s.cancelTask(o)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const R1={};function sf(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function af(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function Iw(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function Rw(n){n._nesting--,sf(n)}class O1{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ee,this.onMicrotaskEmpty=new ee,this.onStable=new ee,this.onError=new ee}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,r){return t.apply(e,i)}}const Fw=new S(""),$l=new S("");let uf,lf=(()=>{class n{constructor(e,i,r){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,uf||(function P1(n){uf=n}(r),r.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ae.assertNotInAngularZone(),rf(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())rf(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,r){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(o=>o.timeoutId!==s),e(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:e,timeoutId:s,updateCb:r})}whenStable(e,i,r){if(r&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,r){return[]}}return n.\u0275fac=function(e){return new(e||n)(b(ae),b(cf),b($l))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})(),cf=(()=>{class n{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return uf?.findTestabilityInTree(this,e,i)??null}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})(),Vi=null;const kw=new S("AllowMultipleToken"),df=new S("PlatformDestroyListeners");class Ow{constructor(t,e){this.name=t,this.token=e}}function Nw(n,t,e=[]){const i=`Platform: ${t}`,r=new S(i);return(s=[])=>{let o=hf();if(!o||o.injector.get(kw,!1)){const a=[...e,...s,{provide:r,useValue:!0}];n?n(a):function V1(n){if(Vi&&!Vi.get(kw,!1))throw new C(400,!1);Vi=n;const t=n.get(Vw);(function Pw(n){const t=n.get(Sw,null);t&&t.forEach(e=>e())})(n)}(function Lw(n=[],t){return Lt.create({name:t,providers:[{provide:Kd,useValue:"platform"},{provide:df,useValue:new Set([()=>Vi=null])},...n]})}(a,i))}return function j1(n){const t=hf();if(!t)throw new C(401,!1);return t}()}}function hf(){return Vi?.get(Vw)??null}let Vw=(()=>{class n{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const r=function jw(n,t){let e;return e="noop"===n?new O1:("zone.js"===n?void 0:n)||new ae(t),e}(i?.ngZone,function Bw(n){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!n||!n.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!n||!n.ngZoneRunCoalescing)||!1}}(i)),s=[{provide:ae,useValue:r}];return r.run(()=>{const o=Lt.create({providers:s,parent:this.injector,name:e.moduleType.name}),a=e.create(o),l=a.injector.get(ui,null);if(!l)throw new C(402,!1);return r.runOutsideAngular(()=>{const c=r.onError.subscribe({next:u=>{l.handleError(u)}});a.onDestroy(()=>{Ul(this._modules,a),c.unsubscribe()})}),function Hw(n,t,e){try{const i=e();return Io(i)?i.catch(r=>{throw t.runOutsideAngular(()=>n.handleError(r)),r}):i}catch(i){throw t.runOutsideAngular(()=>n.handleError(i)),i}}(l,r,()=>{const c=a.injector.get(Hl);return c.runInitializers(),c.donePromise.then(()=>(function db(n){Ut(n,"Expected localeId to be defined"),"string"==typeof n&&(ub=n.toLowerCase().replace(/_/g,"-"))}(a.injector.get(qn,Es)||Es),this._moduleDoBootstrap(a),a))})})}bootstrapModule(e,i=[]){const r=$w({},i);return function N1(n,t,e){const i=new jh(e);return Promise.resolve(i)}(0,0,e).then(s=>this.bootstrapModuleFactory(s,r))}_moduleDoBootstrap(e){const i=e.injector.get(Uo);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!e.instance.ngDoBootstrap)throw new C(403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new C(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(df,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return n.\u0275fac=function(e){return new(e||n)(b(Lt))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})();function $w(n,t){return Array.isArray(t)?t.reduce($w,n):{...n,...t}}let Uo=(()=>{class n{constructor(e,i,r){this._zone=e,this._injector=i,this._exceptionHandler=r,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const s=new xe(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),o=new xe(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{ae.assertNotInAngularZone(),rf(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const c=this._zone.onUnstable.subscribe(()=>{ae.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),c.unsubscribe()}});this.isStable=jr(s,o.pipe(ym()))}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const r=e instanceof d_;if(!this._injector.get(Hl).done)throw!r&&function $r(n){const t=ye(n)||Mt(n)||St(n);return null!==t&&t.standalone}(e),new C(405,false);let o;o=r?e:this._injector.get(ur).resolveComponentFactory(e),this.componentTypes.push(o.componentType);const a=function L1(n){return n.isBoundToModule}(o)?void 0:this._injector.get(gr),c=o.create(Lt.NULL,[],i||o.selector,a),u=c.location.nativeElement,d=c.injector.get(Fw,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),Ul(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new C(101,!1);try{this._runningTick=!0;for(let e of this._views)e.detectChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;Ul(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e),this._injector.get(tf,[]).concat(this._bootstrapListeners).forEach(r=>r(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>Ul(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new C(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return n.\u0275fac=function(e){return new(e||n)(b(ae),b(ki),b(ui))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function Ul(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}let Gw=!0,Vt=(()=>{class n{}return n.__NG_ELEMENT_ID__=U1,n})();function U1(n){return function G1(n,t,e){if(za(n)&&!e){const i=qt(n.index,t);return new xo(i,i)}return 47&n.type?new xo(t[16],t):null}(ot(),x(),16==(16&n))}class Kw{constructor(){}supports(t){return Eo(t)}create(t){return new Z1(t)}}const K1=(n,t)=>t;class Z1{constructor(t){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=t||K1}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,i=this._removalsHead,r=0,s=null;for(;e||i;){const o=!i||e&&e.currentIndex{o=this._trackByFn(r,a),null!==e&&Object.is(e.trackById,o)?(i&&(e=this._verifyReinsertion(e,a,o,r)),Object.is(e.item,a)||this._addIdentityChange(e,a)):(e=this._mismatch(e,a,o,r),i=!0),e=e._next,r++}),this.length=r;return this._truncate(e),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,i,r){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,r)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(i,r))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,r)):t=this._addAfter(new Y1(e,i),s,r),t}_verifyReinsertion(t,e,i,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?t=this._reinsertAfter(s,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}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)}_reinsertAfter(t,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,s=t._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(t,e,i),this._addToMoves(t,i),t}_moveAfter(t,e,i){return this._unlink(t),this._insertAfter(t,e,i),this._addToMoves(t,i),t}_addAfter(t,e,i){return this._insertAfter(t,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,i){const r=null===e?this._itHead:e._next;return t._next=r,t._prev=e,null===r?this._itTail=t:r._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new Zw),this._linkedRecords.put(t),t.currentIndex=i,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,i=t._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Zw),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class Y1{constructor(t,e){this.item=t,this.trackById=e,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}}class X1{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,t))return i;return null}remove(t){const e=t._prevDup,i=t._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class Zw{constructor(){this.map=new Map}put(t){const e=t.trackById;let i=this.map.get(e);i||(i=new X1,this.map.set(e,i)),i.add(t)}get(t,e){const r=this.map.get(t);return r?r.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function Yw(n,t,e){const i=n.previousIndex;if(null===i)return i;let r=0;return e&&i{if(e&&e.key===r)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const s=this._getOrCreateRecordForKey(r,i);e=this._insertBeforeOrAppend(e,s)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const r=this._records.get(t);this._maybeAddToChanges(r,e);const s=r._prev,o=r._next;return s&&(s._next=o),o&&(o._prev=s),r._next=null,r._prev=null,r}const i=new eP(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class eP{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function Jw(){return new Go([new Kw])}let Go=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(null!=i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||Jw()),deps:[[n,new is,new Fi]]}}find(e){const i=this.factories.find(r=>r.supports(e));if(null!=i)return i;throw new C(901,!1)}}return n.\u0275prov=E({token:n,providedIn:"root",factory:Jw}),n})();function eC(){return new yr([new Xw])}let yr=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(i){const r=i.factories.slice();e=e.concat(r)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||eC()),deps:[[n,new is,new Fi]]}}find(e){const i=this.factories.find(r=>r.supports(e));if(i)return i;throw new C(901,!1)}}return n.\u0275prov=E({token:n,providedIn:"root",factory:eC}),n})();const iP=Nw(null,"core",[]);let rP=(()=>{class n{constructor(e){}}return n.\u0275fac=function(e){return new(e||n)(b(Uo))},n.\u0275mod=ce({type:n}),n.\u0275inj=se({}),n})(),Wl=null;function Qn(){return Wl}const ie=new S("DocumentToken");let yf=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:function(){return function lP(){return b(tC)}()},providedIn:"platform"}),n})();const cP=new S("Location Initialized");let tC=(()=>{class n extends yf{constructor(e){super(),this._doc=e,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Qn().getBaseHref(this._doc)}onPopState(e){const i=Qn().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Qn().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(e){this.location.pathname=e}pushState(e,i,r){nC()?this._history.pushState(e,i,r):this.location.hash=r}replaceState(e,i,r){nC()?this._history.replaceState(e,i,r):this.location.hash=r}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}}return n.\u0275fac=function(e){return new(e||n)(b(ie))},n.\u0275prov=E({token:n,factory:function(){return function uP(){return new tC(b(ie))}()},providedIn:"platform"}),n})();function nC(){return!!window.history.pushState}function _f(n,t){if(0==n.length)return t;if(0==t.length)return n;let e=0;return n.endsWith("/")&&e++,t.startsWith("/")&&e++,2==e?n+t.substring(1):1==e?n+t:n+"/"+t}function iC(n){const t=n.match(/#|\?|$/),e=t&&t.index||n.length;return n.slice(0,e-("/"===n[e-1]?1:0))+n.slice(e)}function mi(n){return n&&"?"!==n[0]?"?"+n:n}let _r=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:function(){return Se(sC)},providedIn:"root"}),n})();const rC=new S("appBaseHref");let sC=(()=>{class n extends _r{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??Se(ie).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return _f(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+mi(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${i}${r}`:i}pushState(e,i,r,s){const o=this.prepareExternalUrl(r+mi(s));this._platformLocation.pushState(e,i,o)}replaceState(e,i,r,s){const o=this.prepareExternalUrl(r+mi(s));this._platformLocation.replaceState(e,i,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return n.\u0275fac=function(e){return new(e||n)(b(yf),b(rC,8))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),dP=(()=>{class n extends _r{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){let i=this._platformLocation.hash;return null==i&&(i="#"),i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=_f(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,r,s){let o=this.prepareExternalUrl(r+mi(s));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.pushState(e,i,o)}replaceState(e,i,r,s){let o=this.prepareExternalUrl(r+mi(s));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return n.\u0275fac=function(e){return new(e||n)(b(yf),b(rC,8))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})(),vf=(()=>{class n{constructor(e){this._subject=new ee,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._baseHref=iC(oC(i)),this._locationStrategy.onPopState(r=>{this._subject.emit({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+mi(i))}normalize(e){return n.stripTrailingSlash(function fP(n,t){return n&&t.startsWith(n)?t.substring(n.length):t}(this._baseHref,oC(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",r=null){this._locationStrategy.pushState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+mi(i)),r)}replaceState(e,i="",r=null){this._locationStrategy.replaceState(r,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+mi(i)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)})),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(r=>r(e,i))}subscribe(e,i,r){return this._subject.subscribe({next:e,error:i,complete:r})}}return n.normalizeQueryParams=mi,n.joinWithSlash=_f,n.stripTrailingSlash=iC,n.\u0275fac=function(e){return new(e||n)(b(_r))},n.\u0275prov=E({token:n,factory:function(){return function hP(){return new vf(b(_r))}()},providedIn:"root"}),n})();function oC(n){return n.replace(/\/index.html$/,"")}function gC(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[r,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(r.trim()===t)return decodeURIComponent(s)}return null}let nc=(()=>{class n{constructor(e,i,r,s){this._iterableDiffers=e,this._keyValueDiffers=i,this._ngEl=r,this._renderer=s,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(Eo(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){const e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}}_applyKeyValueChanges(e){e.forEachAddedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachChangedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachRemovedItem(i=>{i.previousValue&&this._toggleClass(i.key,!1)})}_applyIterableChanges(e){e.forEachAddedItem(i=>{if("string"!=typeof i.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${we(i.item)}`);this._toggleClass(i.item,!0)}),e.forEachRemovedItem(i=>this._toggleClass(i.item,!1))}_applyClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!0)):Object.keys(e).forEach(i=>this._toggleClass(i,!!e[i])))}_removeClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!1)):Object.keys(e).forEach(i=>this._toggleClass(i,!1)))}_toggleClass(e,i){(e=e.trim())&&e.split(/\s+/g).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}}return n.\u0275fac=function(e){return new(e||n)(f(Go),f(yr),f(k),f(Mn))},n.\u0275dir=w({type:n,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),n})();class YP{constructor(t,e,i,r){this.$implicit=t,this.ngForOf=e,this.index=i,this.count=r}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let ic=(()=>{class n{constructor(e,i,r){this._viewContainer=e,this._template=i,this._differs=r,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((r,s,o)=>{if(null==r.previousIndex)i.createEmbeddedView(this._template,new YP(r.item,this._ngForOf,-1,-1),null===o?void 0:o);else if(null==o)i.remove(null===s?void 0:s);else if(null!==s){const a=i.get(s);i.move(a,o),_C(a,r)}});for(let r=0,s=i.length;r{_C(i.get(r.currentIndex),r)})}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(f(Ct),f(Xt),f(Go))},n.\u0275dir=w({type:n,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),n})();function _C(n,t){n.context.$implicit=t.item}let vr=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new JP,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){vC("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){vC("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){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)))}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(f(Ct),f(Xt))},n.\u0275dir=w({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),n})();class JP{constructor(){this.$implicit=null,this.ngIf=null}}function vC(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${we(t)}'.`)}class Tf{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let rc=(()=>{class n{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(e)}_matchCase(e){const i=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews&&e!==this._defaultUsed){this._defaultUsed=e;for(let i=0;i{class n{constructor(e,i,r){this.ngSwitch=r,r._addCase(),this._view=new Tf(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return n.\u0275fac=function(e){return new(e||n)(f(Ct),f(Xt),f(rc,9))},n.\u0275dir=w({type:n,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0}),n})(),sc=(()=>{class n{constructor(e,i,r){this._ngEl=e,this._differs=i,this._renderer=r,this._ngStyle=null,this._differ=null}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){const e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,i){const[r,s]=e.split("."),o=-1===r.indexOf("-")?void 0:Nt.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,r,s?`${i}${s}`:i,o):this._renderer.removeStyle(this._ngEl.nativeElement,r,o)}_applyChanges(e){e.forEachRemovedItem(i=>this._setStyle(i.key,null)),e.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),e.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(yr),f(Mn))},n.\u0275dir=w({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0}),n})(),oc=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({}),n})();const xC="browser";function br(n){return n===xC}function Ts(n){return"server"===n}let SN=(()=>{class n{}return n.\u0275prov=E({token:n,providedIn:"root",factory:()=>new AN(b(ie),window)}),n})();class AN{constructor(t,e){this.document=t,this.window=e,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(t){this.supportsScrolling()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(!this.supportsScrolling())return;const e=function TN(n,t){const e=n.getElementById(t)||n.getElementsByName(t)[0];if(e)return e;if("function"==typeof n.createTreeWalker&&n.body&&(n.body.createShadowRoot||n.body.attachShadow)){const i=n.createTreeWalker(n.body,NodeFilter.SHOW_ELEMENT);let r=i.currentNode;for(;r;){const s=r.shadowRoot;if(s){const o=s.getElementById(t)||s.querySelector(`[name="${t}"]`);if(o)return o}r=i.nextNode()}}return null}(this.document,t);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}}scrollToElement(t){const e=t.getBoundingClientRect(),i=e.left+this.window.pageXOffset,r=e.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(i-s[0],r-s[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const t=DC(this.window.history)||DC(Object.getPrototypeOf(this.window.history));return!(!t||!t.writable&&!t.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function DC(n){return Object.getOwnPropertyDescriptor(n,"scrollRestoration")}class EC{}class Of extends class nL extends class aP{}{constructor(){super(...arguments),this.supportsDOMEvents=!0}}{static makeCurrent(){!function oP(n){Wl||(Wl=n)}(new Of)}onAndCancel(t,e,i){return t.addEventListener(e,i,!1),()=>{t.removeEventListener(e,i,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=function iL(){return Qo=Qo||document.querySelector("base"),Qo?Qo.getAttribute("href"):null}();return null==e?null:function rL(n){cc=cc||document.createElement("a"),cc.setAttribute("href",n);const t=cc.pathname;return"/"===t.charAt(0)?t:`/${t}`}(e)}resetBaseElement(){Qo=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return gC(document.cookie,t)}}let cc,Qo=null;const IC=new S("TRANSITION_ID"),oL=[{provide:jl,useFactory:function sL(n,t,e){return()=>{e.get(Hl).donePromise.then(()=>{const i=Qn(),r=t.querySelectorAll(`style[ng-transition="${n}"]`);for(let s=0;s{class n{build(){return new XMLHttpRequest}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();const uc=new S("EventManagerPlugins");let dc=(()=>{class n{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(r=>r.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,i,r){return this._findPluginFor(i).addEventListener(e,i,r)}addGlobalEventListener(e,i,r){return this._findPluginFor(i).addGlobalEventListener(e,i,r)}getZone(){return this._zone}_findPluginFor(e){const i=this._eventNameToPlugin.get(e);if(i)return i;const r=this._plugins;for(let s=0;s{class n{constructor(){this._stylesSet=new Set}addStyles(e){const i=new Set;e.forEach(r=>{this._stylesSet.has(r)||(this._stylesSet.add(r),i.add(r))}),this.onStylesAdded(i)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})(),Ko=(()=>{class n extends FC{constructor(e){super(),this._doc=e,this._hostNodes=new Map,this._hostNodes.set(e.head,[])}_addStylesToHost(e,i,r){e.forEach(s=>{const o=this._doc.createElement("style");o.textContent=s,r.push(i.appendChild(o))})}addHost(e){const i=[];this._addStylesToHost(this._stylesSet,e,i),this._hostNodes.set(e,i)}removeHost(e){const i=this._hostNodes.get(e);i&&i.forEach(kC),this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach((i,r)=>{this._addStylesToHost(e,r,i)})}ngOnDestroy(){this._hostNodes.forEach(e=>e.forEach(kC))}}return n.\u0275fac=function(e){return new(e||n)(b(ie))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();function kC(n){Qn().remove(n)}const Pf={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/",math:"http://www.w3.org/1998/MathML/"},Nf=/%COMP%/g;function hc(n,t,e){for(let i=0;i{if("__ngUnwrap__"===t)return n;!1===n(t)&&(t.preventDefault(),t.returnValue=!1)}}let fc=(()=>{class n{constructor(e,i,r){this.eventManager=e,this.sharedStylesHost=i,this.appId=r,this.rendererByCompId=new Map,this.defaultRenderer=new Lf(e)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;switch(i.encapsulation){case Cn.Emulated:{let r=this.rendererByCompId.get(i.id);return r||(r=new pL(this.eventManager,this.sharedStylesHost,i,this.appId),this.rendererByCompId.set(i.id,r)),r.applyToHost(e),r}case 1:case Cn.ShadowDom:return new gL(this.eventManager,this.sharedStylesHost,e,i);default:if(!this.rendererByCompId.has(i.id)){const r=hc(i.id,i.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(i.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return n.\u0275fac=function(e){return new(e||n)(b(dc),b(Ko),b($o))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();class Lf{constructor(t){this.eventManager=t,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,e){return e?document.createElementNS(Pf[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){(VC(t)?t.content:t).appendChild(e)}insertBefore(t,e,i){t&&(VC(t)?t.content:t).insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?document.querySelector(t):t;if(!i)throw new Error(`The selector "${t}" did not match any elements`);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,r){if(r){e=r+":"+e;const s=Pf[r];s?t.setAttributeNS(s,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const r=Pf[i];r?t.removeAttributeNS(r,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,r){r&(Nt.DashCase|Nt.Important)?t.style.setProperty(e,i,r&Nt.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&Nt.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){t[e]=i}setValue(t,e){t.nodeValue=e}listen(t,e,i){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,NC(i)):this.eventManager.addEventListener(t,e,NC(i))}}function VC(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class pL extends Lf{constructor(t,e,i,r){super(t),this.component=i;const s=hc(r+"-"+i.id,i.styles,[]);e.addStyles(s),this.contentAttr=function dL(n){return"_ngcontent-%COMP%".replace(Nf,n)}(r+"-"+i.id),this.hostAttr=function hL(n){return"_nghost-%COMP%".replace(Nf,n)}(r+"-"+i.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}class gL extends Lf{constructor(t,e,i,r){super(t),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=hc(r.id,r.styles,[]);for(let o=0;o{class n extends RC{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,r){return e.addEventListener(i,r,!1),()=>this.removeEventListener(e,i,r)}removeEventListener(e,i,r){return e.removeEventListener(i,r)}}return n.\u0275fac=function(e){return new(e||n)(b(ie))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();const BC=["alt","control","meta","shift"],yL={"\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"},_L={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let vL=(()=>{class n extends RC{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,r){const s=n.parseEventName(i),o=n.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Qn().onAndCancel(e,s.domEventName,o))}static parseEventName(e){const i=e.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const s=n._normalizeKey(i.pop());let o="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),o="code."),BC.forEach(c=>{const u=i.indexOf(c);u>-1&&(i.splice(u,1),o+=c+".")}),o+=s,0!=i.length||0===s.length)return null;const l={};return l.domEventName=r,l.fullKey=o,l}static matchEventFullKeyCode(e,i){let r=yL[e.key]||e.key,s="";return i.indexOf("code.")>-1&&(r=e.code,s="code."),!(null==r||!r)&&(r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),BC.forEach(o=>{o!==r&&(0,_L[o])(e)&&(s+=o+".")}),s+=r,s===i)}static eventCallback(e,i,r){return s=>{n.matchEventFullKeyCode(s,e)&&r.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}}return n.\u0275fac=function(e){return new(e||n)(b(ie))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();const xL=Nw(iP,"browser",[{provide:pn,useValue:xC},{provide:Sw,useValue:function bL(){Of.makeCurrent()},multi:!0},{provide:ie,useFactory:function CL(){return function tI(n){jd=n}(document),document},deps:[]}]),$C=new S(""),UC=[{provide:$l,useClass:class aL{addToWindow(t){Ee.getAngularTestability=(i,r=!0)=>{const s=t.findTestabilityInTree(i,r);if(null==s)throw new Error("Could not find testability for element.");return s},Ee.getAllAngularTestabilities=()=>t.getAllTestabilities(),Ee.getAllAngularRootElements=()=>t.getAllRootElements(),Ee.frameworkStabilizers||(Ee.frameworkStabilizers=[]),Ee.frameworkStabilizers.push(i=>{const r=Ee.getAllAngularTestabilities();let s=r.length,o=!1;const a=function(l){o=o||l,s--,0==s&&i(o)};r.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(t,e,i){return null==e?null:t.getTestability(e)??(i?Qn().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null)}},deps:[]},{provide:Fw,useClass:lf,deps:[ae,cf,$l]},{provide:lf,useClass:lf,deps:[ae,cf,$l]}],GC=[{provide:Kd,useValue:"root"},{provide:ui,useFactory:function wL(){return new ui},deps:[]},{provide:uc,useClass:mL,multi:!0,deps:[ie,ae,pn]},{provide:uc,useClass:vL,multi:!0,deps:[ie]},{provide:fc,useClass:fc,deps:[dc,Ko,$o]},{provide:Co,useExisting:fc},{provide:FC,useExisting:Ko},{provide:Ko,useClass:Ko,deps:[ie]},{provide:dc,useClass:dc,deps:[uc,ae]},{provide:EC,useClass:lL,deps:[]},[]];let zC=(()=>{class n{constructor(e){}static withServerTransition(e){return{ngModule:n,providers:[{provide:$o,useValue:e.appId},{provide:IC,useExisting:$o},oL]}}}return n.\u0275fac=function(e){return new(e||n)(b($C,12))},n.\u0275mod=ce({type:n}),n.\u0275inj=se({providers:[...GC,...UC],imports:[oc,rP]}),n})(),WC=(()=>{class n{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}}return n.\u0275fac=function(e){return new(e||n)(b(ie))},n.\u0275prov=E({token:n,factory:function(e){let i=null;return i=e?new e:function EL(){return new WC(b(ie))}(),i},providedIn:"root"}),n})();typeof window<"u"&&window;let Zo=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:function(e){let i=null;return i=e?new(e||n):b(KC),i},providedIn:"root"}),n})(),KC=(()=>{class n extends Zo{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case de.NONE:return i;case de.HTML:return $n(i,"HTML")?Zt(i):t_(this._doc,String(i)).toString();case de.STYLE:return $n(i,"Style")?Zt(i):i;case de.SCRIPT:if($n(i,"Script"))return Zt(i);throw new Error("unsafe value used in a script context");case de.URL:return $n(i,"URL")?Zt(i):gl(String(i));case de.RESOURCE_URL:if($n(i,"ResourceURL"))return Zt(i);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${e} (see https://g.co/ng/security#xss)`)}}bypassSecurityTrustHtml(e){return function lI(n){return new nI(n)}(e)}bypassSecurityTrustStyle(e){return function cI(n){return new iI(n)}(e)}bypassSecurityTrustScript(e){return function uI(n){return new rI(n)}(e)}bypassSecurityTrustUrl(e){return function dI(n){return new sI(n)}(e)}bypassSecurityTrustResourceUrl(e){return function hI(n){return new oI(n)}(e)}}return n.\u0275fac=function(e){return new(e||n)(b(ie))},n.\u0275prov=E({token:n,factory:function(e){let i=null;return i=e?new e:function FL(n){return new KC(n.get(ie))}(b(Lt)),i},providedIn:"root"}),n})();function F(...n){return et(n,Ys(n))}function ji(n,t){return le(t)?st(n,t,1):st(n,1)}function jt(n,t){return Ne((e,i)=>{let r=0;e.subscribe(Te(i,s=>n.call(t,s,r++)&&i.next(s)))})}class ZC{}class YC{}class _i{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const r=e.slice(0,i),s=r.toLowerCase(),o=e.slice(i+1).trim();this.maybeSetNormalizedName(r,s),this.headers.has(s)?this.headers.get(s).push(o):this.headers.set(s,[o])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let i=t[e];const r=e.toLowerCase();"string"==typeof i&&(i=[i]),i.length>0&&(this.headers.set(r,i),this.maybeSetNormalizedName(e,r))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof _i?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new _i;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof _i?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const r=("a"===t.op?this.headers.get(e):void 0)||[];r.push(...i),this.headers.set(e,r);break;case"d":const s=t.value;if(s){let o=this.headers.get(e);if(!o)return;o=o.filter(a=>-1===s.indexOf(a)),0===o.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,o)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class kL{encodeKey(t){return XC(t)}encodeValue(t){return XC(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const PL=/%(\d[a-f0-9])/gi,NL={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function XC(n){return encodeURIComponent(n).replace(PL,(t,e)=>NL[e]??t)}function pc(n){return`${n}`}class Hi{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new kL,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function OL(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const s=r.indexOf("="),[o,a]=-1==s?[t.decodeKey(r),""]:[t.decodeKey(r.slice(0,s)),t.decodeValue(r.slice(s+1))],l=e.get(o)||[];l.push(a),e.set(o,l)}),e}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e],r=Array.isArray(i)?i.map(pc):[pc(i)];this.map.set(e,r)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const r=t[i];Array.isArray(r)?r.forEach(s=>{e.push({param:i,value:s,op:"a"})}):e.push({param:i,value:r,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new Hi({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(pc(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let i=this.map.get(t.param)||[];const r=i.indexOf(pc(t.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class LL{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function JC(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function ex(n){return typeof Blob<"u"&&n instanceof Blob}function tx(n){return typeof FormData<"u"&&n instanceof FormData}class Yo{constructor(t,e,i,r){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function VL(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,s=r):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params)),this.headers||(this.headers=new _i),this.context||(this.context=new LL),this.params){const o=this.params.toString();if(0===o.length)this.urlWithParams=e;else{const a=e.indexOf("?");this.urlWithParams=e+(-1===a?"?":ad.set(h,t.setHeaders[h]),l)),t.setParams&&(c=Object.keys(t.setParams).reduce((d,h)=>d.set(h,t.setParams[h]),c)),new Yo(e,i,s,{params:c,headers:l,context:u,reportProgress:a,responseType:r,withCredentials:o})}}var rt=(()=>((rt=rt||{})[rt.Sent=0]="Sent",rt[rt.UploadProgress=1]="UploadProgress",rt[rt.ResponseHeader=2]="ResponseHeader",rt[rt.DownloadProgress=3]="DownloadProgress",rt[rt.Response=4]="Response",rt[rt.User=5]="User",rt))();class jf{constructor(t,e=200,i="OK"){this.headers=t.headers||new _i,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class Hf extends jf{constructor(t={}){super(t),this.type=rt.ResponseHeader}clone(t={}){return new Hf({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class Xo extends jf{constructor(t={}){super(t),this.type=rt.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new Xo({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class nx extends jf{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function $f(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials}}let gc=(()=>{class n{constructor(e){this.handler=e}request(e,i,r={}){let s;if(e instanceof Yo)s=e;else{let l,c;l=r.headers instanceof _i?r.headers:new _i(r.headers),r.params&&(c=r.params instanceof Hi?r.params:new Hi({fromObject:r.params})),s=new Yo(e,i,void 0!==r.body?r.body:null,{headers:l,context:r.context,params:c,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials})}const o=F(s).pipe(ji(l=>this.handler.handle(l)));if(e instanceof Yo||"events"===r.observe)return o;const a=o.pipe(jt(l=>l instanceof Xo));switch(r.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return a.pipe(U(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(U(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(U(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(U(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new Hi).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,r={}){return this.request("PATCH",e,$f(r,i))}post(e,i,r={}){return this.request("POST",e,$f(r,i))}put(e,i,r={}){return this.request("PUT",e,$f(r,i))}}return n.\u0275fac=function(e){return new(e||n)(b(ZC))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();class ix{constructor(t,e){this.next=t,this.interceptor=e}handle(t){return this.interceptor.intercept(t,this.next)}}const Uf=new S("HTTP_INTERCEPTORS");let jL=(()=>{class n{intercept(e,i){return i.handle(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();const HL=/^\)\]\}',?\n/;let rx=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new xe(i=>{const r=this.xhrFactory.build();if(r.open(e.method,e.urlWithParams),e.withCredentials&&(r.withCredentials=!0),e.headers.forEach((p,g)=>r.setRequestHeader(p,g.join(","))),e.headers.has("Accept")||r.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const p=e.detectContentTypeHeader();null!==p&&r.setRequestHeader("Content-Type",p)}if(e.responseType){const p=e.responseType.toLowerCase();r.responseType="json"!==p?p:"text"}const s=e.serializeBody();let o=null;const a=()=>{if(null!==o)return o;const p=r.statusText||"OK",g=new _i(r.getAllResponseHeaders()),m=function $L(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(r)||e.url;return o=new Hf({headers:g,status:r.status,statusText:p,url:m}),o},l=()=>{let{headers:p,status:g,statusText:m,url:_}=a(),y=null;204!==g&&(y=typeof r.response>"u"?r.responseText:r.response),0===g&&(g=y?200:0);let D=g>=200&&g<300;if("json"===e.responseType&&"string"==typeof y){const v=y;y=y.replace(HL,"");try{y=""!==y?JSON.parse(y):null}catch(A){y=v,D&&(D=!1,y={error:A,text:y})}}D?(i.next(new Xo({body:y,headers:p,status:g,statusText:m,url:_||void 0})),i.complete()):i.error(new nx({error:y,headers:p,status:g,statusText:m,url:_||void 0}))},c=p=>{const{url:g}=a(),m=new nx({error:p,status:r.status||0,statusText:r.statusText||"Unknown Error",url:g||void 0});i.error(m)};let u=!1;const d=p=>{u||(i.next(a()),u=!0);let g={type:rt.DownloadProgress,loaded:p.loaded};p.lengthComputable&&(g.total=p.total),"text"===e.responseType&&!!r.responseText&&(g.partialText=r.responseText),i.next(g)},h=p=>{let g={type:rt.UploadProgress,loaded:p.loaded};p.lengthComputable&&(g.total=p.total),i.next(g)};return r.addEventListener("load",l),r.addEventListener("error",c),r.addEventListener("timeout",c),r.addEventListener("abort",c),e.reportProgress&&(r.addEventListener("progress",d),null!==s&&r.upload&&r.upload.addEventListener("progress",h)),r.send(s),i.next({type:rt.Sent}),()=>{r.removeEventListener("error",c),r.removeEventListener("abort",c),r.removeEventListener("load",l),r.removeEventListener("timeout",c),e.reportProgress&&(r.removeEventListener("progress",d),null!==s&&r.upload&&r.upload.removeEventListener("progress",h)),r.readyState!==r.DONE&&r.abort()}})}}return n.\u0275fac=function(e){return new(e||n)(b(EC))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();const Gf=new S("XSRF_COOKIE_NAME"),zf=new S("XSRF_HEADER_NAME");class sx{}let UL=(()=>{class n{constructor(e,i,r){this.doc=e,this.platform=i,this.cookieName=r,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=gC(e,this.cookieName),this.lastCookieString=e),this.lastToken}}return n.\u0275fac=function(e){return new(e||n)(b(ie),b(pn),b(Gf))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})(),Wf=(()=>{class n{constructor(e,i){this.tokenService=e,this.headerName=i}intercept(e,i){const r=e.url.toLowerCase();if("GET"===e.method||"HEAD"===e.method||r.startsWith("http://")||r.startsWith("https://"))return i.handle(e);const s=this.tokenService.getToken();return null!==s&&!e.headers.has(this.headerName)&&(e=e.clone({headers:e.headers.set(this.headerName,s)})),i.handle(e)}}return n.\u0275fac=function(e){return new(e||n)(b(sx),b(zf))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})(),GL=(()=>{class n{constructor(e,i){this.backend=e,this.injector=i,this.chain=null}handle(e){if(null===this.chain){const i=this.injector.get(Uf,[]);this.chain=i.reduceRight((r,s)=>new ix(r,s),this.backend)}return this.chain.handle(e)}}return n.\u0275fac=function(e){return new(e||n)(b(YC),b(Lt))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})(),zL=(()=>{class n{static disable(){return{ngModule:n,providers:[{provide:Wf,useClass:jL}]}}static withOptions(e={}){return{ngModule:n,providers:[e.cookieName?{provide:Gf,useValue:e.cookieName}:[],e.headerName?{provide:zf,useValue:e.headerName}:[]]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({providers:[Wf,{provide:Uf,useExisting:Wf,multi:!0},{provide:sx,useClass:UL},{provide:Gf,useValue:"XSRF-TOKEN"},{provide:zf,useValue:"X-XSRF-TOKEN"}]}),n})(),WL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({providers:[gc,{provide:ZC,useClass:GL},rx,{provide:YC,useExisting:rx}],imports:[zL.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]}),n})();class Ht extends De{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return!e.closed&&t.next(this._value),e}getValue(){const{hasError:t,thrownError:e,_value:i}=this;if(t)throw e;return this._throwIfClosed(),i}next(t){super.next(this._value=t)}}const mc=Ks(n=>function(){n(this),this.name="EmptyError",this.message="no elements in sequence"}),{isArray:qL}=Array,{getPrototypeOf:QL,prototype:KL,keys:ZL}=Object;function ox(n){if(1===n.length){const t=n[0];if(qL(t))return{args:t,keys:null};if(function YL(n){return n&&"object"==typeof n&&QL(n)===KL}(t)){const e=ZL(t);return{args:e.map(i=>t[i]),keys:e}}}return{args:n,keys:null}}const{isArray:XL}=Array;function qf(n){return U(t=>function JL(n,t){return XL(t)?n(...t):n(t)}(n,t))}function ax(n,t){return n.reduce((e,i,r)=>(e[i]=t[r],e),{})}function lx(...n){const t=Ys(n),e=fm(n),{args:i,keys:r}=ox(n);if(0===i.length)return et([],t);const s=new xe(function eV(n,t,e=Si){return i=>{cx(t,()=>{const{length:r}=n,s=new Array(r);let o=r,a=r;for(let l=0;l{const c=et(n[l],t);let u=!1;c.subscribe(Te(i,d=>{s[l]=d,u||(u=!0,a--),a||i.next(e(s.slice()))},()=>{--o||i.complete()}))},i)},i)}}(i,t,r?o=>ax(r,o):Si));return e?s.pipe(qf(e)):s}function cx(n,t,e){n?ti(e,n,t):t()}function yc(...n){return function tV(){return Br(1)}()(et(n,Ys(n)))}function ux(n){return new xe(t=>{Ot(n()).subscribe(t)})}function Is(n,t){const e=le(n)?n:()=>n,i=r=>r.error(e());return new xe(t?r=>t.schedule(i,0,r):i)}function Qf(){return Ne((n,t)=>{let e=null;n._refCount++;const i=Te(t,void 0,void 0,void 0,()=>{if(!n||n._refCount<=0||0<--n._refCount)return void(e=null);const r=n._connection,s=e;e=null,r&&(!s||r===s)&&r.unsubscribe(),t.unsubscribe()});n.subscribe(i),i.closed||(e=n.connect())})}class dx extends xe{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._subject=null,this._refCount=0,this._connection=null,Jg(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new Ue;const e=this.getSubject();t.add(this.source.subscribe(Te(e,void 0,()=>{this._teardown(),e.complete()},i=>{this._teardown(),e.error(i)},()=>this._teardown()))),t.closed&&(this._connection=null,t=Ue.EMPTY)}return t}refCount(){return Qf()(this)}}function Pn(n,t){return Ne((e,i)=>{let r=null,s=0,o=!1;const a=()=>o&&!r&&i.complete();e.subscribe(Te(i,l=>{r?.unsubscribe();let c=0;const u=s++;Ot(n(l,u)).subscribe(r=Te(i,d=>i.next(t?t(l,d,u,c++):d),()=>{r=null,a()}))},()=>{o=!0,a()}))})}function Kn(n){return n<=0?()=>Bn:Ne((t,e)=>{let i=0;t.subscribe(Te(e,r=>{++i<=n&&(e.next(r),n<=i&&e.complete())}))})}function Rs(...n){const t=Ys(n);return Ne((e,i)=>{(t?yc(n,e,t):yc(n,e)).subscribe(i)})}function _c(n){return Ne((t,e)=>{let i=!1;t.subscribe(Te(e,r=>{i=!0,e.next(r)},()=>{i||e.next(n),e.complete()}))})}function hx(n=nV){return Ne((t,e)=>{let i=!1;t.subscribe(Te(e,r=>{i=!0,e.next(r)},()=>i?e.complete():e.error(n())))})}function nV(){return new mc}function $i(n,t){const e=arguments.length>=2;return i=>i.pipe(n?jt((r,s)=>n(r,s,i)):Si,Kn(1),e?_c(t):hx(()=>new mc))}function Je(n,t,e){const i=le(n)||t||e?{next:n,error:t,complete:e}:n;return i?Ne((r,s)=>{var o;null===(o=i.subscribe)||void 0===o||o.call(i);let a=!0;r.subscribe(Te(s,l=>{var c;null===(c=i.next)||void 0===c||c.call(i,l),s.next(l)},()=>{var l;a=!1,null===(l=i.complete)||void 0===l||l.call(i),s.complete()},l=>{var c;a=!1,null===(c=i.error)||void 0===c||c.call(i,l),s.error(l)},()=>{var l,c;a&&(null===(l=i.unsubscribe)||void 0===l||l.call(i)),null===(c=i.finalize)||void 0===c||c.call(i)}))}):Si}function Zn(n){return Ne((t,e)=>{let s,i=null,r=!1;i=t.subscribe(Te(e,void 0,void 0,o=>{s=Ot(n(o,Zn(n)(t))),i?(i.unsubscribe(),i=null,s.subscribe(e)):r=!0})),r&&(i.unsubscribe(),i=null,s.subscribe(e))})}function iV(n,t,e,i,r){return(s,o)=>{let a=e,l=t,c=0;s.subscribe(Te(o,u=>{const d=c++;l=a?n(l,u,d):(a=!0,u),i&&o.next(l)},r&&(()=>{a&&o.next(l),o.complete()})))}}function fx(n,t){return Ne(iV(n,t,arguments.length>=2,!0))}function Kf(n){return n<=0?()=>Bn:Ne((t,e)=>{let i=[];t.subscribe(Te(e,r=>{i.push(r),n{for(const r of i)e.next(r);e.complete()},void 0,()=>{i=null}))})}function px(n,t){const e=arguments.length>=2;return i=>i.pipe(n?jt((r,s)=>n(r,s,i)):Si,Kf(1),e?_c(t):hx(()=>new mc))}function gx(n){return U(()=>n)}function vc(n){return Ne((t,e)=>{try{t.subscribe(e)}finally{e.add(n)}})}const J="primary",Jo=Symbol("RouteTitle");class sV{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function Fs(n){return new sV(n)}function oV(n,t,e){const i=e.path.split("/");if(i.length>n.length||"full"===e.pathMatch&&(t.hasChildren()||i.lengthi[s]===r)}return n===t}function yx(n){return Array.prototype.concat.apply([],n)}function _x(n){return n.length>0?n[n.length-1]:null}function gt(n,t){for(const e in n)n.hasOwnProperty(e)&&t(n[e],e)}function Ui(n){return Fh(n)?n:Io(n)?et(Promise.resolve(n)):F(n)}const cV={exact:function wx(n,t,e){if(!Cr(n.segments,t.segments)||!bc(n.segments,t.segments,e)||n.numberOfChildren!==t.numberOfChildren)return!1;for(const i in t.children)if(!n.children[i]||!wx(n.children[i],t.children[i],e))return!1;return!0},subset:Cx},vx={exact:function uV(n,t){return Yn(n,t)},subset:function dV(n,t){return Object.keys(t).length<=Object.keys(n).length&&Object.keys(t).every(e=>mx(n[e],t[e]))},ignored:()=>!0};function bx(n,t,e){return cV[e.paths](n.root,t.root,e.matrixParams)&&vx[e.queryParams](n.queryParams,t.queryParams)&&!("exact"===e.fragment&&n.fragment!==t.fragment)}function Cx(n,t,e){return xx(n,t,t.segments,e)}function xx(n,t,e,i){if(n.segments.length>e.length){const r=n.segments.slice(0,e.length);return!(!Cr(r,e)||t.hasChildren()||!bc(r,e,i))}if(n.segments.length===e.length){if(!Cr(n.segments,e)||!bc(n.segments,e,i))return!1;for(const r in t.children)if(!n.children[r]||!Cx(n.children[r],t.children[r],i))return!1;return!0}{const r=e.slice(0,n.segments.length),s=e.slice(n.segments.length);return!!(Cr(n.segments,r)&&bc(n.segments,r,i)&&n.children[J])&&xx(n.children[J],t,s,i)}}function bc(n,t,e){return t.every((i,r)=>vx[e](n[r].parameters,i.parameters))}class wr{constructor(t,e,i){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Fs(this.queryParams)),this._queryParamMap}toString(){return pV.serialize(this)}}class te{constructor(t,e){this.segments=t,this.children=e,this.parent=null,gt(e,(i,r)=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return wc(this)}}class ea{constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=Fs(this.parameters)),this._parameterMap}toString(){return Sx(this)}}function Cr(n,t){return n.length===t.length&&n.every((e,i)=>e.path===t[i].path)}let Dx=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:function(){return new Yf},providedIn:"root"}),n})();class Yf{parse(t){const e=new xV(t);return new wr(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){const e=`/${ta(t.root,!0)}`,i=function yV(n){const t=Object.keys(n).map(e=>{const i=n[e];return Array.isArray(i)?i.map(r=>`${Cc(e)}=${Cc(r)}`).join("&"):`${Cc(e)}=${Cc(i)}`}).filter(e=>!!e);return t.length?`?${t.join("&")}`:""}(t.queryParams);return`${e}${i}${"string"==typeof t.fragment?`#${function gV(n){return encodeURI(n)}(t.fragment)}`:""}`}}const pV=new Yf;function wc(n){return n.segments.map(t=>Sx(t)).join("/")}function ta(n,t){if(!n.hasChildren())return wc(n);if(t){const e=n.children[J]?ta(n.children[J],!1):"",i=[];return gt(n.children,(r,s)=>{s!==J&&i.push(`${s}:${ta(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function fV(n,t){let e=[];return gt(n.children,(i,r)=>{r===J&&(e=e.concat(t(i,r)))}),gt(n.children,(i,r)=>{r!==J&&(e=e.concat(t(i,r)))}),e}(n,(i,r)=>r===J?[ta(n.children[J],!1)]:[`${r}:${ta(i,!1)}`]);return 1===Object.keys(n.children).length&&null!=n.children[J]?`${wc(n)}/${e[0]}`:`${wc(n)}/(${e.join("//")})`}}function Ex(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Cc(n){return Ex(n).replace(/%3B/gi,";")}function Xf(n){return Ex(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function xc(n){return decodeURIComponent(n)}function Mx(n){return xc(n.replace(/\+/g,"%20"))}function Sx(n){return`${Xf(n.path)}${function mV(n){return Object.keys(n).map(t=>`;${Xf(t)}=${Xf(n[t])}`).join("")}(n.parameters)}`}const _V=/^[^\/()?;=#]+/;function Dc(n){const t=n.match(_V);return t?t[0]:""}const vV=/^[^=?]+/,wV=/^[^]+/;class xV{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new te([],{}):new te([],this.parseChildren())}parseQueryParams(){const t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(i[J]=new te(t,e)),i}parseSegment(){const t=Dc(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new C(4009,!1);return this.capture(t),new ea(xc(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const e=Dc(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const r=Dc(this.remaining);r&&(i=r,this.capture(i))}t[xc(e)]=xc(i)}parseQueryParam(t){const e=function bV(n){const t=n.match(vV);return t?t[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=function CV(n){const t=n.match(wV);return t?t[0]:""}(this.remaining);o&&(i=o,this.capture(i))}const r=Mx(e),s=Mx(i);if(t.hasOwnProperty(r)){let o=t[r];Array.isArray(o)||(o=[o],t[r]=o),o.push(s)}else t[r]=s}parseParens(t){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=Dc(this.remaining),r=this.remaining[i.length];if("/"!==r&&")"!==r&&";"!==r)throw new C(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):t&&(s=J);const o=this.parseChildren();e[s]=1===Object.keys(o).length?o[J]:new te([],o),this.consumeOptional("//")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)}capture(t){if(!this.consumeOptional(t))throw new C(4011,!1)}}function Jf(n){return n.segments.length>0?new te([],{[J]:n}):n}function Ec(n){const t={};for(const i of Object.keys(n.children)){const s=Ec(n.children[i]);(s.segments.length>0||s.hasChildren())&&(t[i]=s)}return function DV(n){if(1===n.numberOfChildren&&n.children[J]){const t=n.children[J];return new te(n.segments.concat(t.segments),t.children)}return n}(new te(n.segments,t))}function xr(n){return n instanceof wr}function SV(n,t,e,i,r){if(0===e.length)return ks(t.root,t.root,t.root,i,r);const s=function Ix(n){if("string"==typeof n[0]&&1===n.length&&"/"===n[0])return new Tx(!0,0,n);let t=0,e=!1;const i=n.reduce((r,s,o)=>{if("object"==typeof s&&null!=s){if(s.outlets){const a={};return gt(s.outlets,(l,c)=>{a[c]="string"==typeof l?l.split("/"):l}),[...r,{outlets:a}]}if(s.segmentPath)return[...r,s.segmentPath]}return"string"!=typeof s?[...r,s]:0===o?(s.split("/").forEach((a,l)=>{0==l&&"."===a||(0==l&&""===a?e=!0:".."===a?t++:""!=a&&r.push(a))}),r):[...r,s]},[]);return new Tx(e,t,i)}(e);return s.toRoot()?ks(t.root,t.root,new te([],{}),i,r):function o(l){const c=function TV(n,t,e,i){if(n.isAbsolute)return new Os(t.root,!0,0);if(-1===i)return new Os(e,e===t.root,0);return function Rx(n,t,e){let i=n,r=t,s=e;for(;s>r;){if(s-=r,i=i.parent,!i)throw new C(4005,!1);r=i.segments.length}return new Os(i,!1,r-s)}(e,i+(na(n.commands[0])?0:1),n.numberOfDoubleDots)}(s,t,n.snapshot?._urlSegment,l),u=c.processChildren?ra(c.segmentGroup,c.index,s.commands):tp(c.segmentGroup,c.index,s.commands);return ks(t.root,c.segmentGroup,u,i,r)}(n.snapshot?._lastPathIndex)}function na(n){return"object"==typeof n&&null!=n&&!n.outlets&&!n.segmentPath}function ia(n){return"object"==typeof n&&null!=n&&n.outlets}function ks(n,t,e,i,r){let o,s={};i&>(i,(l,c)=>{s[c]=Array.isArray(l)?l.map(u=>`${u}`):`${l}`}),o=n===t?e:Ax(n,t,e);const a=Jf(Ec(o));return new wr(a,s,r)}function Ax(n,t,e){const i={};return gt(n.children,(r,s)=>{i[s]=r===t?e:Ax(r,t,e)}),new te(n.segments,i)}class Tx{constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&na(i[0]))throw new C(4003,!1);const r=i.find(ia);if(r&&r!==_x(i))throw new C(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Os{constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}}function tp(n,t,e){if(n||(n=new te([],{})),0===n.segments.length&&n.hasChildren())return ra(n,t,e);const i=function RV(n,t,e){let i=0,r=t;const s={match:!1,pathIndex:0,commandIndex:0};for(;r=e.length)return s;const o=n.segments[r],a=e[i];if(ia(a))break;const l=`${a}`,c=i0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!kx(l,c,o))return s;i+=2}else{if(!kx(l,{},o))return s;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}(n,t,e),r=e.slice(i.commandIndex);if(i.match&&i.pathIndex{"string"==typeof s&&(s=[s]),null!==s&&(r[o]=tp(n.children[o],t,s))}),gt(n.children,(s,o)=>{void 0===i[o]&&(r[o]=s)}),new te(n.segments,r)}}function np(n,t,e){const i=n.segments.slice(0,t);let r=0;for(;r{"string"==typeof e&&(e=[e]),null!==e&&(t[i]=np(new te([],{}),0,e))}),t}function Fx(n){const t={};return gt(n,(e,i)=>t[i]=`${e}`),t}function kx(n,t,e){return n==e.path&&Yn(t,e.parameters)}class vi{constructor(t,e){this.id=t,this.url=e}}class ip extends vi{constructor(t,e,i="imperative",r=null){super(t,e),this.type=0,this.navigationTrigger=i,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Dr extends vi{constructor(t,e,i){super(t,e),this.urlAfterRedirects=i,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class Mc extends vi{constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Ox extends vi{constructor(t,e,i,r){super(t,e),this.error=i,this.target=r,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class kV extends vi{constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class OV extends vi{constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class PV extends vi{constructor(t,e,i,r,s){super(t,e),this.urlAfterRedirects=i,this.state=r,this.shouldActivate=s,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class NV extends vi{constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class LV extends vi{constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class VV{constructor(t){this.route=t,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class BV{constructor(t){this.route=t,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class jV{constructor(t){this.snapshot=t,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class HV{constructor(t){this.snapshot=t,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class $V{constructor(t){this.snapshot=t,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class UV{constructor(t){this.snapshot=t,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Px{constructor(t,e,i){this.routerEvent=t,this.position=e,this.anchor=i,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Nx{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){const e=rp(t,this._root);return e?e.children.map(i=>i.value):[]}firstChild(t){const e=rp(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){const e=sp(t,this._root);return e.length<2?[]:e[e.length-2].children.map(r=>r.value).filter(r=>r!==t)}pathFromRoot(t){return sp(t,this._root).map(e=>e.value)}}function rp(n,t){if(n===t.value)return t;for(const e of t.children){const i=rp(n,e);if(i)return i}return null}function sp(n,t){if(n===t.value)return[t];for(const e of t.children){const i=sp(n,e);if(i.length)return i.unshift(t),i}return[]}class bi{constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}}function Ps(n){const t={};return n&&n.children.forEach(e=>t[e.value.outlet]=e),t}class Lx extends Nx{constructor(t,e){super(t),this.snapshot=e,op(this,t)}toString(){return this.snapshot.toString()}}function Vx(n,t){const e=function zV(n,t){const o=new Sc([],{},{},"",{},J,t,null,n.root,-1,{});return new jx("",new bi(o,[]))}(n,t),i=new Ht([new ea("",{})]),r=new Ht({}),s=new Ht({}),o=new Ht({}),a=new Ht(""),l=new Gi(i,r,o,a,s,J,t,e.root);return l.snapshot=e.root,new Lx(new bi(l,[]),e)}class Gi{constructor(t,e,i,r,s,o,a,l){this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=s,this.outlet=o,this.component=a,this.title=this.data?.pipe(U(c=>c[Jo]))??F(void 0),this._futureSnapshot=l}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(U(t=>Fs(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(U(t=>Fs(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Bx(n,t="emptyOnly"){const e=n.pathFromRoot;let i=0;if("always"!==t)for(i=e.length-1;i>=1;){const r=e[i],s=e[i-1];if(r.routeConfig&&""===r.routeConfig.path)i--;else{if(s.component)break;i--}}return function WV(n){return n.reduce((t,e)=>({params:{...t.params,...e.params},data:{...t.data,...e.data},resolve:{...e.data,...t.resolve,...e.routeConfig?.data,...e._resolvedData}}),{params:{},data:{},resolve:{}})}(e.slice(i))}class Sc{constructor(t,e,i,r,s,o,a,l,c,u,d,h){this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=s,this.outlet=o,this.component=a,this.title=this.data?.[Jo],this.routeConfig=l,this._urlSegment=c,this._lastPathIndex=u,this._correctedLastPathIndex=h??u,this._resolve=d}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=Fs(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Fs(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class jx extends Nx{constructor(t,e){super(e),this.url=t,op(this,e)}toString(){return Hx(this._root)}}function op(n,t){t.value._routerState=n,t.children.forEach(e=>op(n,e))}function Hx(n){const t=n.children.length>0?` { ${n.children.map(Hx).join(", ")} } `:"";return`${n.value}${t}`}function ap(n){if(n.snapshot){const t=n.snapshot,e=n._futureSnapshot;n.snapshot=e,Yn(t.queryParams,e.queryParams)||n.queryParams.next(e.queryParams),t.fragment!==e.fragment&&n.fragment.next(e.fragment),Yn(t.params,e.params)||n.params.next(e.params),function aV(n,t){if(n.length!==t.length)return!1;for(let e=0;eYn(e.parameters,t[i].parameters))}(n.url,t.url);return e&&!(!n.parent!=!t.parent)&&(!n.parent||lp(n.parent,t.parent))}function sa(n,t,e){if(e&&n.shouldReuseRoute(t.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=t.value;const r=function QV(n,t,e){return t.children.map(i=>{for(const r of e.children)if(n.shouldReuseRoute(i.value,r.value.snapshot))return sa(n,i,r);return sa(n,i)})}(n,t,e);return new bi(i,r)}{if(n.shouldAttach(t.value)){const s=n.retrieve(t.value);if(null!==s){const o=s.route;return o.value._futureSnapshot=t.value,o.children=t.children.map(a=>sa(n,a)),o}}const i=function KV(n){return new Gi(new Ht(n.url),new Ht(n.params),new Ht(n.queryParams),new Ht(n.fragment),new Ht(n.data),n.outlet,n.component,n)}(t.value),r=t.children.map(s=>sa(n,s));return new bi(i,r)}}const cp="ngNavigationCancelingError";function $x(n,t){const{redirectTo:e,navigationBehaviorOptions:i}=xr(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,r=Ux(!1,0,t);return r.url=e,r.navigationBehaviorOptions=i,r}function Ux(n,t,e){const i=new Error("NavigationCancelingError: "+(n||""));return i[cp]=!0,i.cancellationCode=t,e&&(i.url=e),i}function Gx(n){return zx(n)&&xr(n.url)}function zx(n){return n&&n[cp]}class ZV{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.injector=null,this.children=new oa,this.attachRef=null}}let oa=(()=>{class n{constructor(){this.contexts=new Map}onChildOutletCreated(e,i){const r=this.getOrCreateContext(e);r.outlet=i,this.contexts.set(e,r)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new ZV,this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Ac=!1;let up=(()=>{class n{constructor(e,i,r,s,o){this.parentContexts=e,this.location=i,this.changeDetector=s,this.environmentInjector=o,this.activated=null,this._activatedRoute=null,this.activateEvents=new ee,this.deactivateEvents=new ee,this.attachEvents=new ee,this.detachEvents=new ee,this.name=r||J,e.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.getContext(this.name)?.outlet===this&&this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const e=this.parentContexts.getContext(this.name);e&&e.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new C(4012,Ac);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new C(4012,Ac);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new C(4012,Ac);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new C(4013,Ac);this._activatedRoute=e;const r=this.location,o=e._futureSnapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new YV(e,a,r.injector);if(i&&function XV(n){return!!n.resolveComponentFactory}(i)){const c=i.resolveComponentFactory(o);this.activated=r.createComponent(c,r.length,l)}else this.activated=r.createComponent(o,{index:r.length,injector:l,environmentInjector:i??this.environmentInjector});this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return n.\u0275fac=function(e){return new(e||n)(f(oa),f(Ct),sr("name"),f(Vt),f(ki))},n.\u0275dir=w({type:n,selectors:[["router-outlet"]],outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0}),n})();class YV{constructor(t,e,i){this.route=t,this.childContexts=e,this.parent=i}get(t,e){return t===Gi?this.route:t===oa?this.childContexts:this.parent.get(t,e)}}let dp=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Ke({type:n,selectors:[["ng-component"]],standalone:!0,features:[Vb],decls:1,vars:0,template:function(e,i){1&e&&ze(0,"router-outlet")},dependencies:[up],encapsulation:2}),n})();function Wx(n,t){return n.providers&&!n._injector&&(n._injector=Nl(n.providers,t,`Route: ${n.path}`)),n._injector??t}function fp(n){const t=n.children&&n.children.map(fp),e=t?{...n,children:t}:{...n};return!e.component&&!e.loadComponent&&(t||e.loadChildren)&&e.outlet&&e.outlet!==J&&(e.component=dp),e}function yn(n){return n.outlet||J}function qx(n,t){const e=n.filter(i=>yn(i)===t);return e.push(...n.filter(i=>yn(i)!==t)),e}function aa(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let t=n.parent;t;t=t.parent){const e=t.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class iB{constructor(t,e,i,r){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=r}activate(t){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),ap(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){const r=Ps(e);t.children.forEach(s=>{const o=s.value.outlet;this.deactivateRoutes(s,r[o],i),delete r[o]}),gt(r,(s,o)=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(t,e,i){const r=t.value,s=e?e.value:null;if(r===s)if(r.component){const o=i.getContext(r.outlet);o&&this.deactivateChildRoutes(t,e,o.children)}else this.deactivateChildRoutes(t,e,i);else s&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){const i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,s=Ps(t);for(const o of Object.keys(s))this.deactivateRouteAndItsChildren(s[o],r);if(i&&i.outlet){const o=i.outlet.detach(),a=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:o,route:t,contexts:a})}}deactivateRouteAndOutlet(t,e){const i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,s=Ps(t);for(const o of Object.keys(s))this.deactivateRouteAndItsChildren(s[o],r);i&&i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated(),i.attachRef=null,i.resolver=null,i.route=null)}activateChildRoutes(t,e,i){const r=Ps(e);t.children.forEach(s=>{this.activateRoutes(s,r[s.value.outlet],i),this.forwardEvent(new UV(s.value.snapshot))}),t.children.length&&this.forwardEvent(new HV(t.value.snapshot))}activateRoutes(t,e,i){const r=t.value,s=e?e.value:null;if(ap(r),r===s)if(r.component){const o=i.getOrCreateContext(r.outlet);this.activateChildRoutes(t,e,o.children)}else this.activateChildRoutes(t,e,i);else if(r.component){const o=i.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){const a=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),o.children.onOutletReAttached(a.contexts),o.attachRef=a.componentRef,o.route=a.route.value,o.outlet&&o.outlet.attach(a.componentRef,a.route.value),ap(a.route.value),this.activateChildRoutes(t,null,o.children)}else{const a=aa(r.snapshot),l=a?.get(ur)??null;o.attachRef=null,o.route=r,o.resolver=l,o.injector=a,o.outlet&&o.outlet.activateWith(r,o.injector),this.activateChildRoutes(t,null,o.children)}}else this.activateChildRoutes(t,null,i)}}class Qx{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class Tc{constructor(t,e){this.component=t,this.route=e}}function rB(n,t,e){const i=n._root;return la(i,t?t._root:null,e,[i.value])}function Ns(n,t){const e=Symbol(),i=t.get(n,e);return i===e?"function"!=typeof n||function GS(n){return null!==Ba(n)}(n)?t.get(n):n:i}function la(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){const s=Ps(t);return n.children.forEach(o=>{(function oB(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){const s=n.value,o=t?t.value:null,a=e?e.getContext(n.value.outlet):null;if(o&&s.routeConfig===o.routeConfig){const l=function aB(n,t,e){if("function"==typeof e)return e(n,t);switch(e){case"pathParamsChange":return!Cr(n.url,t.url);case"pathParamsOrQueryParamsChange":return!Cr(n.url,t.url)||!Yn(n.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!lp(n,t)||!Yn(n.queryParams,t.queryParams);default:return!lp(n,t)}}(o,s,s.routeConfig.runGuardsAndResolvers);l?r.canActivateChecks.push(new Qx(i)):(s.data=o.data,s._resolvedData=o._resolvedData),la(n,t,s.component?a?a.children:null:e,i,r),l&&a&&a.outlet&&a.outlet.isActivated&&r.canDeactivateChecks.push(new Tc(a.outlet.component,o))}else o&&ca(t,a,r),r.canActivateChecks.push(new Qx(i)),la(n,null,s.component?a?a.children:null:e,i,r)})(o,s[o.value.outlet],e,i.concat([o.value]),r),delete s[o.value.outlet]}),gt(s,(o,a)=>ca(o,e.getContext(a),r)),r}function ca(n,t,e){const i=Ps(n),r=n.value;gt(i,(s,o)=>{ca(s,r.component?t?t.children.getContext(o):null:t,e)}),e.canDeactivateChecks.push(new Tc(r.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,r))}function ua(n){return"function"==typeof n}function pp(n){return n instanceof mc||"EmptyError"===n?.name}const Ic=Symbol("INITIAL_VALUE");function Ls(){return Pn(n=>lx(n.map(t=>t.pipe(Kn(1),Rs(Ic)))).pipe(U(t=>{for(const e of t)if(!0!==e){if(e===Ic)return Ic;if(!1===e||e instanceof wr)return e}return!0}),jt(t=>t!==Ic),Kn(1)))}function Kx(n){return function hS(...n){return Zg(n)}(Je(t=>{if(xr(t))throw $x(0,t)}),U(t=>!0===t))}const gp={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Zx(n,t,e,i,r){const s=mp(n,t,e);return s.matched?function DB(n,t,e,i){const r=t.canMatch;return r&&0!==r.length?F(r.map(o=>{const a=Ns(o,n);return Ui(function fB(n){return n&&ua(n.canMatch)}(a)?a.canMatch(t,e):n.runInContext(()=>a(t,e)))})).pipe(Ls(),Kx()):F(!0)}(i=Wx(t,i),t,e).pipe(U(o=>!0===o?s:{...gp})):F(s)}function mp(n,t,e){if(""===t.path)return"full"===t.pathMatch&&(n.hasChildren()||e.length>0)?{...gp}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const r=(t.matcher||oV)(e,n,t);if(!r)return{...gp};const s={};gt(r.posParams,(a,l)=>{s[l]=a.path});const o=r.consumed.length>0?{...s,...r.consumed[r.consumed.length-1].parameters}:s;return{matched:!0,consumedSegments:r.consumed,remainingSegments:e.slice(r.consumed.length),parameters:o,positionalParamSegments:r.posParams??{}}}function Rc(n,t,e,i,r="corrected"){if(e.length>0&&function SB(n,t,e){return e.some(i=>Fc(n,t,i)&&yn(i)!==J)}(n,e,i)){const o=new te(t,function MB(n,t,e,i){const r={};r[J]=i,i._sourceSegment=n,i._segmentIndexShift=t.length;for(const s of e)if(""===s.path&&yn(s)!==J){const o=new te([],{});o._sourceSegment=n,o._segmentIndexShift=t.length,r[yn(s)]=o}return r}(n,t,i,new te(e,n.children)));return o._sourceSegment=n,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:[]}}if(0===e.length&&function AB(n,t,e){return e.some(i=>Fc(n,t,i))}(n,e,i)){const o=new te(n.segments,function EB(n,t,e,i,r,s){const o={};for(const a of i)if(Fc(n,e,a)&&!r[yn(a)]){const l=new te([],{});l._sourceSegment=n,l._segmentIndexShift="legacy"===s?n.segments.length:t.length,o[yn(a)]=l}return{...r,...o}}(n,t,e,i,n.children,r));return o._sourceSegment=n,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:e}}const s=new te(n.segments,n.children);return s._sourceSegment=n,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:e}}function Fc(n,t,e){return(!(n.hasChildren()||t.length>0)||"full"!==e.pathMatch)&&""===e.path}function Yx(n,t,e,i){return!!(yn(n)===i||i!==J&&Fc(t,e,n))&&("**"===n.path||mp(t,n,e).matched)}function Xx(n,t,e){return 0===t.length&&!n.children[e]}const kc=!1;class Oc{constructor(t){this.segmentGroup=t||null}}class Jx{constructor(t){this.urlTree=t}}function da(n){return Is(new Oc(n))}function eD(n){return Is(new Jx(n))}class FB{constructor(t,e,i,r,s){this.injector=t,this.configLoader=e,this.urlSerializer=i,this.urlTree=r,this.config=s,this.allowRedirects=!0}apply(){const t=Rc(this.urlTree.root,[],[],this.config).segmentGroup,e=new te(t.segments,t.children);return this.expandSegmentGroup(this.injector,this.config,e,J).pipe(U(s=>this.createUrlTree(Ec(s),this.urlTree.queryParams,this.urlTree.fragment))).pipe(Zn(s=>{if(s instanceof Jx)return this.allowRedirects=!1,this.match(s.urlTree);throw s instanceof Oc?this.noMatchError(s):s}))}match(t){return this.expandSegmentGroup(this.injector,this.config,t.root,J).pipe(U(r=>this.createUrlTree(Ec(r),t.queryParams,t.fragment))).pipe(Zn(r=>{throw r instanceof Oc?this.noMatchError(r):r}))}noMatchError(t){return new C(4002,kc)}createUrlTree(t,e,i){const r=Jf(t);return new wr(r,e,i)}expandSegmentGroup(t,e,i,r){return 0===i.segments.length&&i.hasChildren()?this.expandChildren(t,e,i).pipe(U(s=>new te([],s))):this.expandSegment(t,i,e,i.segments,r,!0)}expandChildren(t,e,i){const r=[];for(const s of Object.keys(i.children))"primary"===s?r.unshift(s):r.push(s);return et(r).pipe(ji(s=>{const o=i.children[s],a=qx(e,s);return this.expandSegmentGroup(t,a,o,s).pipe(U(l=>({segment:l,outlet:s})))}),fx((s,o)=>(s[o.outlet]=o.segment,s),{}),px())}expandSegment(t,e,i,r,s,o){return et(i).pipe(ji(a=>this.expandSegmentAgainstRoute(t,e,i,a,r,s,o).pipe(Zn(c=>{if(c instanceof Oc)return F(null);throw c}))),$i(a=>!!a),Zn((a,l)=>{if(pp(a))return Xx(e,r,s)?F(new te([],{})):da(e);throw a}))}expandSegmentAgainstRoute(t,e,i,r,s,o,a){return Yx(r,e,s,o)?void 0===r.redirectTo?this.matchSegmentAgainstRoute(t,e,r,s,o):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,i,r,s,o):da(e):da(e)}expandSegmentAgainstRouteUsingRedirect(t,e,i,r,s,o){return"**"===r.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,i,r,o):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,i,r,s,o)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,e,i,r){const s=this.applyRedirectCommands([],i.redirectTo,{});return i.redirectTo.startsWith("/")?eD(s):this.lineralizeSegments(i,s).pipe(st(o=>{const a=new te(o,{});return this.expandSegment(t,a,e,o,r,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,e,i,r,s,o){const{matched:a,consumedSegments:l,remainingSegments:c,positionalParamSegments:u}=mp(e,r,s);if(!a)return da(e);const d=this.applyRedirectCommands(l,r.redirectTo,u);return r.redirectTo.startsWith("/")?eD(d):this.lineralizeSegments(r,d).pipe(st(h=>this.expandSegment(t,e,i,h.concat(c),o,!1)))}matchSegmentAgainstRoute(t,e,i,r,s){return"**"===i.path?(t=Wx(i,t),i.loadChildren?(i._loadedRoutes?F({routes:i._loadedRoutes,injector:i._loadedInjector}):this.configLoader.loadChildren(t,i)).pipe(U(a=>(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,new te(r,{})))):F(new te(r,{}))):Zx(e,i,r,t).pipe(Pn(({matched:o,consumedSegments:a,remainingSegments:l})=>o?this.getChildConfig(t=i._injector??t,i,r).pipe(st(u=>{const d=u.injector??t,h=u.routes,{segmentGroup:p,slicedSegments:g}=Rc(e,a,l,h),m=new te(p.segments,p.children);if(0===g.length&&m.hasChildren())return this.expandChildren(d,h,m).pipe(U(v=>new te(a,v)));if(0===h.length&&0===g.length)return F(new te(a,{}));const _=yn(i)===s;return this.expandSegment(d,m,h,g,_?J:s,!0).pipe(U(D=>new te(a.concat(D.segments),D.children)))})):da(e)))}getChildConfig(t,e,i){return e.children?F({routes:e.children,injector:t}):e.loadChildren?void 0!==e._loadedRoutes?F({routes:e._loadedRoutes,injector:e._loadedInjector}):function xB(n,t,e,i){const r=t.canLoad;return void 0===r||0===r.length?F(!0):F(r.map(o=>{const a=Ns(o,n);return Ui(function cB(n){return n&&ua(n.canLoad)}(a)?a.canLoad(t,e):n.runInContext(()=>a(t,e)))})).pipe(Ls(),Kx())}(t,e,i).pipe(st(r=>r?this.configLoader.loadChildren(t,e).pipe(Je(s=>{e._loadedRoutes=s.routes,e._loadedInjector=s.injector})):function IB(n){return Is(Ux(kc,3))}())):F({routes:[],injector:t})}lineralizeSegments(t,e){let i=[],r=e.root;for(;;){if(i=i.concat(r.segments),0===r.numberOfChildren)return F(i);if(r.numberOfChildren>1||!r.children[J])return Is(new C(4e3,kc));r=r.children[J]}}applyRedirectCommands(t,e,i){return this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),t,i)}applyRedirectCreateUrlTree(t,e,i,r){const s=this.createSegmentGroup(t,e.root,i,r);return new wr(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){const i={};return gt(t,(r,s)=>{if("string"==typeof r&&r.startsWith(":")){const a=r.substring(1);i[s]=e[a]}else i[s]=r}),i}createSegmentGroup(t,e,i,r){const s=this.createSegments(t,e.segments,i,r);let o={};return gt(e.children,(a,l)=>{o[l]=this.createSegmentGroup(t,a,i,r)}),new te(s,o)}createSegments(t,e,i,r){return e.map(s=>s.path.startsWith(":")?this.findPosParam(t,s,r):this.findOrReturn(s,i))}findPosParam(t,e,i){const r=i[e.path.substring(1)];if(!r)throw new C(4001,kc);return r}findOrReturn(t,e){let i=0;for(const r of e){if(r.path===t.path)return e.splice(i),r;i++}return t}}class OB{}class LB{constructor(t,e,i,r,s,o,a,l){this.injector=t,this.rootComponentType=e,this.config=i,this.urlTree=r,this.url=s,this.paramsInheritanceStrategy=o,this.relativeLinkResolution=a,this.urlSerializer=l}recognize(){const t=Rc(this.urlTree.root,[],[],this.config.filter(e=>void 0===e.redirectTo),this.relativeLinkResolution).segmentGroup;return this.processSegmentGroup(this.injector,this.config,t,J).pipe(U(e=>{if(null===e)return null;const i=new Sc([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},J,this.rootComponentType,null,this.urlTree.root,-1,{}),r=new bi(i,e),s=new jx(this.url,r);return this.inheritParamsAndData(s._root),s}))}inheritParamsAndData(t){const e=t.value,i=Bx(e,this.paramsInheritanceStrategy);e.params=Object.freeze(i.params),e.data=Object.freeze(i.data),t.children.forEach(r=>this.inheritParamsAndData(r))}processSegmentGroup(t,e,i,r){return 0===i.segments.length&&i.hasChildren()?this.processChildren(t,e,i):this.processSegment(t,e,i,i.segments,r)}processChildren(t,e,i){return et(Object.keys(i.children)).pipe(ji(r=>{const s=i.children[r],o=qx(e,r);return this.processSegmentGroup(t,o,s,r)}),fx((r,s)=>r&&s?(r.push(...s),r):null),function rV(n,t=!1){return Ne((e,i)=>{let r=0;e.subscribe(Te(i,s=>{const o=n(s,r++);(o||t)&&i.next(s),!o&&i.complete()}))})}(r=>null!==r),_c(null),px(),U(r=>{if(null===r)return null;const s=tD(r);return function VB(n){n.sort((t,e)=>t.value.outlet===J?-1:e.value.outlet===J?1:t.value.outlet.localeCompare(e.value.outlet))}(s),s}))}processSegment(t,e,i,r,s){return et(e).pipe(ji(o=>this.processSegmentAgainstRoute(o._injector??t,o,i,r,s)),$i(o=>!!o),Zn(o=>{if(pp(o))return Xx(i,r,s)?F([]):F(null);throw o}))}processSegmentAgainstRoute(t,e,i,r,s){if(e.redirectTo||!Yx(e,i,r,s))return F(null);let o;if("**"===e.path){const a=r.length>0?_x(r).parameters:{},l=iD(i)+r.length;o=F({snapshot:new Sc(r,a,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,sD(e),yn(e),e.component??e._loadedComponent??null,e,nD(i),l,oD(e),l),consumedSegments:[],remainingSegments:[]})}else o=Zx(i,e,r,t).pipe(U(({matched:a,consumedSegments:l,remainingSegments:c,parameters:u})=>{if(!a)return null;const d=iD(i)+l.length;return{snapshot:new Sc(l,u,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,sD(e),yn(e),e.component??e._loadedComponent??null,e,nD(i),d,oD(e),d),consumedSegments:l,remainingSegments:c}}));return o.pipe(Pn(a=>{if(null===a)return F(null);const{snapshot:l,consumedSegments:c,remainingSegments:u}=a;t=e._injector??t;const d=e._loadedInjector??t,h=function BB(n){return n.children?n.children:n.loadChildren?n._loadedRoutes:[]}(e),{segmentGroup:p,slicedSegments:g}=Rc(i,c,u,h.filter(_=>void 0===_.redirectTo),this.relativeLinkResolution);if(0===g.length&&p.hasChildren())return this.processChildren(d,h,p).pipe(U(_=>null===_?null:[new bi(l,_)]));if(0===h.length&&0===g.length)return F([new bi(l,[])]);const m=yn(e)===s;return this.processSegment(d,h,p,g,m?J:s).pipe(U(_=>null===_?null:[new bi(l,_)]))}))}}function jB(n){const t=n.value.routeConfig;return t&&""===t.path&&void 0===t.redirectTo}function tD(n){const t=[],e=new Set;for(const i of n){if(!jB(i)){t.push(i);continue}const r=t.find(s=>i.value.routeConfig===s.value.routeConfig);void 0!==r?(r.children.push(...i.children),e.add(r)):t.push(i)}for(const i of e){const r=tD(i.children);t.push(new bi(i.value,r))}return t.filter(i=>!e.has(i))}function nD(n){let t=n;for(;t._sourceSegment;)t=t._sourceSegment;return t}function iD(n){let t=n,e=t._segmentIndexShift??0;for(;t._sourceSegment;)t=t._sourceSegment,e+=t._segmentIndexShift??0;return e-1}function sD(n){return n.data||{}}function oD(n){return n.resolve||{}}function aD(n){return"string"==typeof n.title||null===n.title}function yp(n){return Pn(t=>{const e=n(t);return e?et(e).pipe(U(()=>t)):F(t)})}let lD=(()=>{class n{buildTitle(e){let i,r=e.root;for(;void 0!==r;)i=this.getResolvedTitleForRoute(r)??i,r=r.children.find(s=>s.outlet===J);return i}getResolvedTitleForRoute(e){return e.data[Jo]}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:function(){return Se(cD)},providedIn:"root"}),n})(),cD=(()=>{class n extends lD{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}}return n.\u0275fac=function(e){return new(e||n)(b(WC))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class QB{}class ZB extends class KB{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}}{}const Nc=new S("",{providedIn:"root",factory:()=>({})}),_p=new S("ROUTES");let vp=(()=>{class n{constructor(e,i){this.injector=e,this.compiler=i,this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return F(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=Ui(e.loadComponent()).pipe(Je(s=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=s}),vc(()=>{this.componentLoaders.delete(e)})),r=new dx(i,()=>new De).pipe(Qf());return this.componentLoaders.set(e,r),r}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return F({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const s=this.loadModuleFactoryOrRoutes(i.loadChildren).pipe(U(a=>{this.onLoadEndListener&&this.onLoadEndListener(i);let l,c,u=!1;Array.isArray(a)?c=a:(l=a.create(e).injector,c=yx(l.get(_p,[],B.Self|B.Optional)));return{routes:c.map(fp),injector:l}}),vc(()=>{this.childrenLoaders.delete(i)})),o=new dx(s,()=>new De).pipe(Qf());return this.childrenLoaders.set(i,o),o}loadModuleFactoryOrRoutes(e){return Ui(e()).pipe(st(i=>i instanceof Nb||Array.isArray(i)?F(i):et(this.compiler.compileModuleAsync(i))))}}return n.\u0275fac=function(e){return new(e||n)(b(Lt),b(nf))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class XB{}class JB{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,e){return t}}function e2(n){throw n}function t2(n,t,e){return t.parse("/")}const n2={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},r2={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};function dD(){const n=Se(Dx),t=Se(oa),e=Se(vf),i=Se(Lt),r=Se(nf),s=Se(_p,{optional:!0})??[],o=Se(Nc,{optional:!0})??{},a=Se(cD),l=Se(lD,{optional:!0}),c=Se(XB,{optional:!0}),u=Se(QB,{optional:!0}),d=new ut(null,n,t,e,i,r,yx(s));return c&&(d.urlHandlingStrategy=c),u&&(d.routeReuseStrategy=u),d.titleStrategy=l??a,function s2(n,t){n.errorHandler&&(t.errorHandler=n.errorHandler),n.malformedUriErrorHandler&&(t.malformedUriErrorHandler=n.malformedUriErrorHandler),n.onSameUrlNavigation&&(t.onSameUrlNavigation=n.onSameUrlNavigation),n.paramsInheritanceStrategy&&(t.paramsInheritanceStrategy=n.paramsInheritanceStrategy),n.relativeLinkResolution&&(t.relativeLinkResolution=n.relativeLinkResolution),n.urlUpdateStrategy&&(t.urlUpdateStrategy=n.urlUpdateStrategy),n.canceledNavigationResolution&&(t.canceledNavigationResolution=n.canceledNavigationResolution)}(o,d),d}let ut=(()=>{class n{constructor(e,i,r,s,o,a,l){this.rootComponentType=e,this.urlSerializer=i,this.rootContexts=r,this.location=s,this.config=l,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new De,this.errorHandler=e2,this.malformedUriErrorHandler=t2,this.navigated=!1,this.lastSuccessfulId=-1,this.afterPreactivation=()=>F(void 0),this.urlHandlingStrategy=new JB,this.routeReuseStrategy=new ZB,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.configLoader=o.get(vp),this.configLoader.onLoadEndListener=h=>this.triggerEvent(new BV(h)),this.configLoader.onLoadStartListener=h=>this.triggerEvent(new VV(h)),this.ngModule=o.get(gr),this.console=o.get(x1);const d=o.get(ae);this.isNgZoneEnabled=d instanceof ae&&ae.isInAngularZone(),this.resetConfig(l),this.currentUrlTree=function lV(){return new wr(new te([],{}),{},null)}(),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=Vx(this.currentUrlTree,this.rootComponentType),this.transitions=new Ht({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}get browserPageId(){return this.location.getState()?.\u0275routerPageId}setupNavigations(e){const i=this.events;return e.pipe(jt(r=>0!==r.id),U(r=>({...r,extractedUrl:this.urlHandlingStrategy.extract(r.rawUrl)})),Pn(r=>{let s=!1,o=!1;return F(r).pipe(Je(a=>{this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),Pn(a=>{const l=this.browserUrlTree.toString(),c=!this.navigated||a.extractedUrl.toString()!==l||l!==this.currentUrlTree.toString();if(("reload"===this.onSameUrlNavigation||c)&&this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return hD(a.source)&&(this.browserUrlTree=a.extractedUrl),F(a).pipe(Pn(d=>{const h=this.transitions.getValue();return i.next(new ip(d.id,this.serializeUrl(d.extractedUrl),d.source,d.restoredState)),h!==this.transitions.getValue()?Bn:Promise.resolve(d)}),function kB(n,t,e,i){return Pn(r=>function RB(n,t,e,i,r){return new FB(n,t,e,i,r).apply()}(n,t,e,r.extractedUrl,i).pipe(U(s=>({...r,urlAfterRedirects:s}))))}(this.ngModule.injector,this.configLoader,this.urlSerializer,this.config),Je(d=>{this.currentNavigation={...this.currentNavigation,finalUrl:d.urlAfterRedirects},r.urlAfterRedirects=d.urlAfterRedirects}),function $B(n,t,e,i,r,s){return st(o=>function NB(n,t,e,i,r,s,o="emptyOnly",a="legacy"){return new LB(n,t,e,i,r,o,a,s).recognize().pipe(Pn(l=>null===l?function PB(n){return new xe(t=>t.error(n))}(new OB):F(l)))}(n,t,e,o.urlAfterRedirects,i.serialize(o.urlAfterRedirects),i,r,s).pipe(U(a=>({...o,targetSnapshot:a}))))}(this.ngModule.injector,this.rootComponentType,this.config,this.urlSerializer,this.paramsInheritanceStrategy,this.relativeLinkResolution),Je(d=>{if(r.targetSnapshot=d.targetSnapshot,"eager"===this.urlUpdateStrategy){if(!d.extras.skipLocationChange){const p=this.urlHandlingStrategy.merge(d.urlAfterRedirects,d.rawUrl);this.setBrowserUrl(p,d)}this.browserUrlTree=d.urlAfterRedirects}const h=new kV(d.id,this.serializeUrl(d.extractedUrl),this.serializeUrl(d.urlAfterRedirects),d.targetSnapshot);i.next(h)}));if(c&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:h,extractedUrl:p,source:g,restoredState:m,extras:_}=a,y=new ip(h,this.serializeUrl(p),g,m);i.next(y);const D=Vx(p,this.rootComponentType).snapshot;return F(r={...a,targetSnapshot:D,urlAfterRedirects:p,extras:{..._,skipLocationChange:!1,replaceUrl:!1}})}return this.rawUrlTree=a.rawUrl,a.resolve(null),Bn}),Je(a=>{const l=new OV(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot);this.triggerEvent(l)}),U(a=>r={...a,guards:rB(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),function gB(n,t){return st(e=>{const{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:s,canDeactivateChecks:o}}=e;return 0===o.length&&0===s.length?F({...e,guardsResult:!0}):function mB(n,t,e,i){return et(n).pipe(st(r=>function CB(n,t,e,i,r){const s=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return s&&0!==s.length?F(s.map(a=>{const l=aa(t)??r,c=Ns(a,l);return Ui(function hB(n){return n&&ua(n.canDeactivate)}(c)?c.canDeactivate(n,t,e,i):l.runInContext(()=>c(n,t,e,i))).pipe($i())})).pipe(Ls()):F(!0)}(r.component,r.route,e,t,i)),$i(r=>!0!==r,!0))}(o,i,r,n).pipe(st(a=>a&&function lB(n){return"boolean"==typeof n}(a)?function yB(n,t,e,i){return et(t).pipe(ji(r=>yc(function vB(n,t){return null!==n&&t&&t(new jV(n)),F(!0)}(r.route.parent,i),function _B(n,t){return null!==n&&t&&t(new $V(n)),F(!0)}(r.route,i),function wB(n,t,e){const i=t[t.length-1],s=t.slice(0,t.length-1).reverse().map(o=>function sB(n){const t=n.routeConfig?n.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:n,guards:t}:null}(o)).filter(o=>null!==o).map(o=>ux(()=>F(o.guards.map(l=>{const c=aa(o.node)??e,u=Ns(l,c);return Ui(function dB(n){return n&&ua(n.canActivateChild)}(u)?u.canActivateChild(i,n):c.runInContext(()=>u(i,n))).pipe($i())})).pipe(Ls())));return F(s).pipe(Ls())}(n,r.path,e),function bB(n,t,e){const i=t.routeConfig?t.routeConfig.canActivate:null;if(!i||0===i.length)return F(!0);const r=i.map(s=>ux(()=>{const o=aa(t)??e,a=Ns(s,o);return Ui(function uB(n){return n&&ua(n.canActivate)}(a)?a.canActivate(t,n):o.runInContext(()=>a(t,n))).pipe($i())}));return F(r).pipe(Ls())}(n,r.route,e))),$i(r=>!0!==r,!0))}(i,s,n,t):F(a)),U(a=>({...e,guardsResult:a})))})}(this.ngModule.injector,a=>this.triggerEvent(a)),Je(a=>{if(r.guardsResult=a.guardsResult,xr(a.guardsResult))throw $x(0,a.guardsResult);const l=new PV(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.triggerEvent(l)}),jt(a=>!!a.guardsResult||(this.restoreHistory(a),this.cancelNavigationTransition(a,"",3),!1)),yp(a=>{if(a.guards.canActivateChecks.length)return F(a).pipe(Je(l=>{const c=new NV(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(l.urlAfterRedirects),l.targetSnapshot);this.triggerEvent(c)}),Pn(l=>{let c=!1;return F(l).pipe(function UB(n,t){return st(e=>{const{targetSnapshot:i,guards:{canActivateChecks:r}}=e;if(!r.length)return F(e);let s=0;return et(r).pipe(ji(o=>function GB(n,t,e,i){const r=n.routeConfig,s=n._resolve;return void 0!==r?.title&&!aD(r)&&(s[Jo]=r.title),function zB(n,t,e,i){const r=function WB(n){return[...Object.keys(n),...Object.getOwnPropertySymbols(n)]}(n);if(0===r.length)return F({});const s={};return et(r).pipe(st(o=>function qB(n,t,e,i){const r=aa(t)??i,s=Ns(n,r);return Ui(s.resolve?s.resolve(t,e):r.runInContext(()=>s(t,e)))}(n[o],t,e,i).pipe($i(),Je(a=>{s[o]=a}))),Kf(1),gx(s),Zn(o=>pp(o)?Bn:Is(o)))}(s,n,t,i).pipe(U(o=>(n._resolvedData=o,n.data=Bx(n,e).resolve,r&&aD(r)&&(n.data[Jo]=r.title),null)))}(o.route,i,n,t)),Je(()=>s++),Kf(1),st(o=>s===r.length?F(e):Bn))})}(this.paramsInheritanceStrategy,this.ngModule.injector),Je({next:()=>c=!0,complete:()=>{c||(this.restoreHistory(l),this.cancelNavigationTransition(l,"",2))}}))}),Je(l=>{const c=new LV(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(l.urlAfterRedirects),l.targetSnapshot);this.triggerEvent(c)}))}),yp(a=>{const l=c=>{const u=[];c.routeConfig?.loadComponent&&!c.routeConfig._loadedComponent&&u.push(this.configLoader.loadComponent(c.routeConfig).pipe(Je(d=>{c.component=d}),U(()=>{})));for(const d of c.children)u.push(...l(d));return u};return lx(l(a.targetSnapshot.root)).pipe(_c(),Kn(1))}),yp(()=>this.afterPreactivation()),U(a=>{const l=function qV(n,t,e){const i=sa(n,t._root,e?e._root:void 0);return new Lx(i,t)}(this.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return r={...a,targetRouterState:l}}),Je(a=>{this.currentUrlTree=a.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(a.urlAfterRedirects,a.rawUrl),this.routerState=a.targetRouterState,"deferred"===this.urlUpdateStrategy&&(a.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,a),this.browserUrlTree=a.urlAfterRedirects)}),((n,t,e)=>U(i=>(new iB(t,i.targetRouterState,i.currentRouterState,e).activate(n),i)))(this.rootContexts,this.routeReuseStrategy,a=>this.triggerEvent(a)),Je({next(){s=!0},complete(){s=!0}}),vc(()=>{s||o||this.cancelNavigationTransition(r,"",1),this.currentNavigation?.id===r.id&&(this.currentNavigation=null)}),Zn(a=>{if(o=!0,zx(a)){Gx(a)||(this.navigated=!0,this.restoreHistory(r,!0));const l=new Mc(r.id,this.serializeUrl(r.extractedUrl),a.message,a.cancellationCode);if(i.next(l),Gx(a)){const c=this.urlHandlingStrategy.merge(a.url,this.rawUrlTree),u={skipLocationChange:r.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||hD(r.source)};this.scheduleNavigation(c,"imperative",null,u,{resolve:r.resolve,reject:r.reject,promise:r.promise})}else r.resolve(!1)}else{this.restoreHistory(r,!0);const l=new Ox(r.id,this.serializeUrl(r.extractedUrl),a,r.targetSnapshot??void 0);i.next(l);try{r.resolve(this.errorHandler(a))}catch(c){r.reject(c)}}return Bn}))}))}resetRootComponentType(e){this.rootComponentType=e,this.routerState.root.component=this.rootComponentType}setTransition(e){this.transitions.next({...this.transitions.value,...e})}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(e=>{const i="popstate"===e.type?"popstate":"hashchange";"popstate"===i&&setTimeout(()=>{const r={replaceUrl:!0},s=e.state?.navigationId?e.state:null;if(s){const a={...s};delete a.navigationId,delete a.\u0275routerPageId,0!==Object.keys(a).length&&(r.state=a)}const o=this.parseUrl(e.url);this.scheduleNavigation(o,i,s,r)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(e){this.events.next(e)}resetConfig(e){this.config=e.map(fp),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(e,i={}){const{relativeTo:r,queryParams:s,fragment:o,queryParamsHandling:a,preserveFragment:l}=i,c=r||this.routerState.root,u=l?this.currentUrlTree.fragment:o;let d=null;switch(a){case"merge":d={...this.currentUrlTree.queryParams,...s};break;case"preserve":d=this.currentUrlTree.queryParams;break;default:d=s||null}return null!==d&&(d=this.removeEmptyProps(d)),SV(c,this.currentUrlTree,e,d,u??null)}navigateByUrl(e,i={skipLocationChange:!1}){const r=xr(e)?e:this.parseUrl(e),s=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(s,"imperative",null,i)}navigate(e,i={skipLocationChange:!1}){return function o2(n){for(let t=0;t{const s=e[r];return null!=s&&(i[r]=s),i},{})}processNavigations(){this.navigations.subscribe(e=>{this.navigated=!0,this.lastSuccessfulId=e.id,this.currentPageId=e.targetPageId,this.events.next(new Dr(e.id,this.serializeUrl(e.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,this.titleStrategy?.updateTitle(this.routerState.snapshot),e.resolve(!0)},e=>{this.console.warn(`Unhandled Navigation Error: ${e}`)})}scheduleNavigation(e,i,r,s,o){if(this.disposed)return Promise.resolve(!1);let a,l,c;o?(a=o.resolve,l=o.reject,c=o.promise):c=new Promise((h,p)=>{a=h,l=p});const u=++this.navigationId;let d;return"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(r=this.location.getState()),d=r&&r.\u0275routerPageId?r.\u0275routerPageId:s.replaceUrl||s.skipLocationChange?this.browserPageId??0:(this.browserPageId??0)+1):d=0,this.setTransition({id:u,targetPageId:d,source:i,restoredState:r,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:e,extras:s,resolve:a,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(h=>Promise.reject(h))}setBrowserUrl(e,i){const r=this.urlSerializer.serialize(e),s={...i.extras.state,...this.generateNgRouterState(i.id,i.targetPageId)};this.location.isCurrentPathEqualTo(r)||i.extras.replaceUrl?this.location.replaceState(r,"",s):this.location.go(r,"",s)}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const r=this.currentPageId-e.targetPageId;"popstate"!==e.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==this.currentNavigation?.finalUrl||0===r?this.currentUrlTree===this.currentNavigation?.finalUrl&&0===r&&(this.resetState(e),this.browserUrlTree=e.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(r)}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=e.currentRouterState,this.currentUrlTree=e.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}cancelNavigationTransition(e,i,r){const s=new Mc(e.id,this.serializeUrl(e.extractedUrl),i,r);this.triggerEvent(s),e.resolve(!1)}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}}return n.\u0275fac=function(e){oh()},n.\u0275prov=E({token:n,factory:function(){return dD()},providedIn:"root"}),n})();function hD(n){return"imperative"!==n}class fD{}let c2=(()=>{class n{constructor(e,i,r,s,o){this.router=e,this.injector=r,this.preloadingStrategy=s,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe(jt(e=>e instanceof Dr),ji(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const r=[];for(const s of i){s.providers&&!s._injector&&(s._injector=Nl(s.providers,e,`Route: ${s.path}`));const o=s._injector??e,a=s._loadedInjector??o;s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent?r.push(this.preloadConfig(o,s)):(s.children||s._loadedRoutes)&&r.push(this.processRoutes(a,s.children??s._loadedRoutes))}return et(r).pipe(Br())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let r;r=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):F(null);const s=r.pipe(st(o=>null===o?F(void 0):(i._loadedRoutes=o.routes,i._loadedInjector=o.injector,this.processRoutes(o.injector??e,o.routes))));return i.loadComponent&&!i._loadedComponent?et([s,this.loader.loadComponent(i)]).pipe(Br()):s})}}return n.\u0275fac=function(e){return new(e||n)(b(ut),b(nf),b(ki),b(fD),b(vp))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Cp=new S("");let pD=(()=>{class n{constructor(e,i,r={}){this.router=e,this.viewportScroller=i,this.options=r,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},r.scrollPositionRestoration=r.scrollPositionRestoration||"disabled",r.anchorScrolling=r.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(e=>{e instanceof ip?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Dr&&(this.lastId=e.id,this.scheduleScrollEvent(e,this.router.parseUrl(e.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(e=>{e instanceof Px&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.router.triggerEvent(new Px(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return n.\u0275fac=function(e){oh()},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();function Vs(n,t){return{\u0275kind:n,\u0275providers:t}}function xp(n){return[{provide:_p,multi:!0,useValue:n}]}function mD(){const n=Se(Lt);return t=>{const e=n.get(Uo);if(t!==e.components[0])return;const i=n.get(ut),r=n.get(yD);1===n.get(Dp)&&i.initialNavigation(),n.get(_D,null,B.Optional)?.setUpPreloading(),n.get(Cp,null,B.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),r.closed||(r.next(),r.unsubscribe())}}const yD=new S("",{factory:()=>new De}),Dp=new S("",{providedIn:"root",factory:()=>1});const _D=new S("");function f2(n){return Vs(0,[{provide:_D,useExisting:c2},{provide:fD,useExisting:n}])}const vD=new S("ROUTER_FORROOT_GUARD"),p2=[vf,{provide:Dx,useClass:Yf},{provide:ut,useFactory:dD},oa,{provide:Gi,useFactory:function gD(n){return n.routerState.root},deps:[ut]},vp];function g2(){return new Ow("Router",ut)}let bD=(()=>{class n{constructor(e){}static forRoot(e,i){return{ngModule:n,providers:[p2,[],xp(e),{provide:vD,useFactory:v2,deps:[[ut,new Fi,new is]]},{provide:Nc,useValue:i||{}},i?.useHash?{provide:_r,useClass:dP}:{provide:_r,useClass:sC},{provide:Cp,useFactory:()=>{const n=Se(ut),t=Se(SN),e=Se(Nc);return e.scrollOffset&&t.setOffset(e.scrollOffset),new pD(n,t,e)}},i?.preloadingStrategy?f2(i.preloadingStrategy).\u0275providers:[],{provide:Ow,multi:!0,useFactory:g2},i?.initialNavigation?b2(i):[],[{provide:wD,useFactory:mD},{provide:tf,multi:!0,useExisting:wD}]]}}static forChild(e){return{ngModule:n,providers:[xp(e)]}}}return n.\u0275fac=function(e){return new(e||n)(b(vD,8))},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[dp]}),n})();function v2(n){return"guarded"}function b2(n){return["disabled"===n.initialNavigation?Vs(3,[{provide:jl,multi:!0,useFactory:()=>{const t=Se(ut);return()=>{t.setUpLocationChangeListener()}}},{provide:Dp,useValue:2}]).\u0275providers:[],"enabledBlocking"===n.initialNavigation?Vs(2,[{provide:Dp,useValue:0},{provide:jl,multi:!0,deps:[Lt],useFactory:t=>{const e=t.get(cP,Promise.resolve());let i=!1;return()=>e.then(()=>new Promise(s=>{const o=t.get(ut),a=t.get(yD);(function r(s){t.get(ut).events.pipe(jt(a=>a instanceof Dr||a instanceof Mc||a instanceof Ox),U(a=>a instanceof Dr||a instanceof Mc&&(0===a.code||1===a.code)&&null),jt(a=>null!==a),Kn(1)).subscribe(()=>{s()})})(()=>{s(!0),i=!0}),o.afterPreactivation=()=>(s(!0),i||a.closed?F(void 0):a),o.initialNavigation()}))}}]).\u0275providers:[]]}const wD=new S("");let Mp,Ep=(()=>{class n{constructor(e){this.http=e}getData(){return this.http.get("assets/projectList.json")}getBaseData(){return this.http.get("assets/siteBasics.json")}getProjectDetails(e){return this.http.get("assets/"+e+"/"+e+"Details.json")}checkProjectInstallation(e){return this.http.post("http://localhost:3000/api/checkDashboardStatus",e)}}return n.\u0275fac=function(e){return new(e||n)(b(gc))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();try{Mp=typeof Intl<"u"&&Intl.v8BreakIterator}catch{Mp=!1}let ha,Sp,Xn=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?br(this._platformId):"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&&!Mp)&&typeof CSS<"u"&&!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)&&!("MSStream"in window),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}}return n.\u0275fac=function(e){return new(e||n)(b(pn))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function jc(n){return function C2(){if(null==ha&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>ha=!0}))}finally{ha=ha||!1}return ha}()?n:!!n.capture}function xD(n){if(function x2(){if(null==Sp){const n=typeof document<"u"?document.head:null;Sp=!(!n||!n.createShadowRoot&&!n.attachShadow)}return Sp}()){const t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}function fa(n){return n.composedPath?n.composedPath()[0]:n.target}function $c(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}class V2 extends Ue{constructor(t,e){super()}schedule(t,e=0){return this}}const Uc={setInterval(n,t,...e){const{delegate:i}=Uc;return i?.setInterval?i.setInterval(n,t,...e):setInterval(n,t,...e)},clearInterval(n){const{delegate:t}=Uc;return(t?.clearInterval||clearInterval)(n)},delegate:void 0};class Ap extends V2{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){var i;if(this.closed)return this;this.state=t;const r=this.id,s=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(s,r,e)),this.pending=!0,this.delay=e,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(s,this.id,e),this}requestAsyncId(t,e,i=0){return Uc.setInterval(t.flush.bind(t,this),i)}recycleAsyncId(t,e,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return e;null!=e&&Uc.clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(t,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let r,i=!1;try{this.work(t)}catch(s){i=!0,r=s||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:t,scheduler:e}=this,{actions:i}=e;this.work=this.state=this.scheduler=null,this.pending=!1,Vr(i,this),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null,super.unsubscribe()}}}const TD={now:()=>(TD.delegate||Date).now(),delegate:void 0};class pa{constructor(t,e=pa.now){this.schedulerActionCtor=t,this.now=e}schedule(t,e=0,i){return new this.schedulerActionCtor(this,t).schedule(i,e)}}pa.now=TD.now;class Tp extends pa{constructor(t,e=pa.now){super(t,e),this.actions=[],this._active=!1}flush(t){const{actions:e}=this;if(this._active)return void e.push(t);let i;this._active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this._active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}}const Gc=new Tp(Ap),B2=Gc;function ID(n,t=Gc){return Ne((e,i)=>{let r=null,s=null,o=null;const a=()=>{if(r){r.unsubscribe(),r=null;const c=s;s=null,i.next(c)}};function l(){const c=o+n,u=t.now();if(u{s=c,o=t.now(),r||(r=t.schedule(l,n),i.add(r))},()=>{a(),i.complete()},void 0,()=>{s=r=null}))})}function RD(n){return jt((t,e)=>n<=e)}function FD(n,t=Si){return n=n??j2,Ne((e,i)=>{let r,s=!0;e.subscribe(Te(i,o=>{const a=t(o);(s||!n(r,a))&&(s=!1,r=a,i.next(o))}))})}function j2(n,t){return n===t}function mt(n){return Ne((t,e)=>{Ot(n).subscribe(Te(e,()=>e.complete(),Oa)),!e.closed&&t.subscribe(e)})}function ft(n){return null!=n&&"false"!=`${n}`}function Mr(n,t=0){return function H2(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):t}function js(n){return n instanceof k?n.nativeElement:n}let kD=(()=>{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),$2=(()=>{class n{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=js(e);return new xe(r=>{const o=this._observeElement(i).subscribe(r);return()=>{o.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new De,r=this._mutationObserverFactory.create(s=>i.next(s));r&&r.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:r,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:r}=this._observedElements.get(e);i&&i.disconnect(),r.complete(),this._observedElements.delete(e)}}}return n.\u0275fac=function(e){return new(e||n)(b(kD))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),U2=(()=>{class n{constructor(e,i,r){this._contentObserver=e,this._elementRef=i,this._ngZone=r,this.event=new ee,this._disabled=!1,this._currentSubscription=null}get disabled(){return this._disabled}set disabled(e){this._disabled=ft(e),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=Mr(e),this._subscribe()}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(ID(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(f($2),f(k),f(ae))},n.\u0275dir=w({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]}),n})(),OD=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({providers:[kD]}),n})();class LD extends class W2{constructor(t){this._items=t,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new De,this._typeaheadSubscription=Ue.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._skipPredicateFn=e=>e.disabled,this._pressedLetters=[],this.tabOut=new De,this.change=new De,t instanceof Ms&&t.changes.subscribe(e=>{if(this._activeItem){const r=e.toArray().indexOf(this._activeItem);r>-1&&r!==this._activeItemIndex&&(this._activeItemIndex=r)}})}skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(Je(e=>this._pressedLetters.push(e)),ID(t),jt(()=>this._pressedLetters.length>0),U(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let r=1;r!t[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&r){this.setNextItemActive();break}return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&r){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&r){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}return;default:return void((r||$c(t,"shiftKey"))&&(t.key&&1===t.key.length?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(e>=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],t.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(t){const e=this._getItemsArray(),i="number"==typeof t?t:e.indexOf(t);this._activeItem=e[i]??null,this._activeItemIndex=i}_setActiveItemByDelta(t){this._wrap?this._setActiveInWrapMode(t):this._setActiveInDefaultMode(t)}_setActiveInWrapMode(t){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const r=(this._activeItemIndex+t*i+e.length)%e.length;if(!this._skipPredicateFn(e[r]))return void this.setActiveItem(r)}}_setActiveInDefaultMode(t){this._setActiveItemByIndex(this._activeItemIndex+t,t)}_setActiveItemByIndex(t,e){const i=this._getItemsArray();if(i[t]){for(;this._skipPredicateFn(i[t]);)if(!i[t+=e])return;this.setActiveItem(t)}}_getItemsArray(){return this._items instanceof Ms?this._items.toArray():this._items}}{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}}function BD(n){return 0===n.buttons||0===n.offsetX&&0===n.offsetY}function jD(n){const t=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!(!t||-1!==t.identifier||null!=t.radiusX&&1!==t.radiusX||null!=t.radiusY&&1!==t.radiusY)}const X2=new S("cdk-input-modality-detector-options"),J2={ignoreKeys:[18,17,224,91,16]},Hs=jc({passive:!0,capture:!0});let ej=(()=>{class n{constructor(e,i,r,s){this._platform=e,this._mostRecentTarget=null,this._modality=new Ht(null),this._lastTouchMs=0,this._onKeydown=o=>{this._options?.ignoreKeys?.some(a=>a===o.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=fa(o))},this._onMousedown=o=>{Date.now()-this._lastTouchMs<650||(this._modality.next(BD(o)?"keyboard":"mouse"),this._mostRecentTarget=fa(o))},this._onTouchstart=o=>{jD(o)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=fa(o))},this._options={...J2,...s},this.modalityDetected=this._modality.pipe(RD(1)),this.modalityChanged=this.modalityDetected.pipe(FD()),e.isBrowser&&i.runOutsideAngular(()=>{r.addEventListener("keydown",this._onKeydown,Hs),r.addEventListener("mousedown",this._onMousedown,Hs),r.addEventListener("touchstart",this._onTouchstart,Hs)})}get mostRecentModality(){return this._modality.value}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Hs),document.removeEventListener("mousedown",this._onMousedown,Hs),document.removeEventListener("touchstart",this._onTouchstart,Hs))}}return n.\u0275fac=function(e){return new(e||n)(b(Xn),b(ae),b(ie),b(X2,8))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const nj=new S("cdk-focus-monitor-default-options"),zc=jc({passive:!0,capture:!0});let Ip=(()=>{class n{constructor(e,i,r,s,o){this._ngZone=e,this._platform=i,this._inputModalityDetector=r,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new De,this._rootNodeFocusAndBlurListener=a=>{const l=fa(a),c="focus"===a.type?this._onFocus:this._onBlur;for(let u=l;u;u=u.parentElement)c.call(this,a,u)},this._document=s,this._detectionMode=o?.detectionMode||0}monitor(e,i=!1){const r=js(e);if(!this._platform.isBrowser||1!==r.nodeType)return F(null);const s=xD(r)||this._getDocument(),o=this._elementInfo.get(r);if(o)return i&&(o.checkChildren=!0),o.subject;const a={checkChildren:i,subject:new De,rootNode:s};return this._elementInfo.set(r,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(e){const i=js(e),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(e,i,r){const s=js(e);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([a,l])=>this._originChanged(a,i,l)):(this._setOrigin(i),"function"==typeof s.focus&&s.focus(r))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:"program"}_shouldBeAttributedToTouch(e){return 1===this._detectionMode||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const r=this._elementInfo.get(i),s=fa(e);!r||!r.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),r)}_onBlur(e,i){const r=this._elementInfo.get(i);!r||r.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(r.subject,null))}_emitOrigin(e,i){this._ngZone.run(()=>e.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,zc),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,zc)}),this._rootNodeFocusListenerCount.set(i,r+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(mt(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,zc),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,zc),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,r){this._setClasses(e,i),this._emitOrigin(r.subject,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((r,s)=>{(s===e||r.checkChildren&&s.contains(e))&&i.push([s,r])}),i}}return n.\u0275fac=function(e){return new(e||n)(b(ae),b(Xn),b(ej),b(ie,8),b(nj,8))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),ij=(()=>{class n{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this.cdkFocusChange=new ee}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>this.cdkFocusChange.emit(i))}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Ip))},n.\u0275dir=w({type:n,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"}}),n})();const $D="cdk-high-contrast-black-on-white",UD="cdk-high-contrast-white-on-black",Rp="cdk-high-contrast-active";let GD=(()=>{class n{constructor(e,i){this._platform=e,this._document=i}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(e):null,s=(r&&r.backgroundColor||"").replace(/ /g,"");switch(e.remove(),s){case"rgb(0,0,0)":return 2;case"rgb(255,255,255)":return 1}return 0}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(Rp),e.remove($D),e.remove(UD),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?(e.add(Rp),e.add($D)):2===i&&(e.add(Rp),e.add(UD))}}}return n.\u0275fac=function(e){return new(e||n)(b(Xn),b(ie))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),rj=(()=>{class n{constructor(e){e._applyBodyHighContrastModeCssClasses()}}return n.\u0275fac=function(e){return new(e||n)(b(GD))},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[OD]]}),n})();const sj=new S("cdk-dir-doc",{providedIn:"root",factory:function oj(){return Se(ie)}}),aj=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Sr=(()=>{class n{constructor(e){if(this.value="ltr",this.change=new ee,e){const r=e.documentElement?e.documentElement.dir:null;this.value=function lj(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?aj.test(navigator.language)?"rtl":"ltr":"rtl"===t?"rtl":"ltr"}((e.body?e.body.dir:null)||r||"ltr")}}ngOnDestroy(){this.change.complete()}}return n.\u0275fac=function(e){return new(e||n)(b(sj,8))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),Fp=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({}),n})();const uj=new S("mat-sanity-checks",{providedIn:"root",factory:function cj(){return!0}});let Be=(()=>{class n{constructor(e,i,r){this._sanityChecks=i,this._document=r,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!function D2(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}}return n.\u0275fac=function(e){return new(e||n)(b(GD),b(uj,8),b(ie))},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[Fp],Fp]}),n})();function kp(n){return class extends n{constructor(...t){super(...t),this._disabled=!1}get disabled(){return this._disabled}set disabled(t){this._disabled=ft(t)}}}function ga(n,t){return class extends n{constructor(...e){super(...e),this.defaultColor=t,this.color=t}get color(){return this._color}set color(e){const i=e||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}}}function Wc(n){return class extends n{constructor(...t){super(...t),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=ft(t)}}}let qc=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[Be],Be]}),n})();class pj{constructor(t,e,i){this._renderer=t,this.element=e,this.config=i,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const qD={enterDuration:225,exitDuration:150},Op=jc({passive:!0}),QD=["mousedown","touchstart"],KD=["mouseup","mouseleave","touchend","touchcancel"];class mj{constructor(t,e,i,r){this._target=t,this._ngZone=e,this._isPointerDown=!1,this._activeRipples=new Set,this._pointerUpEventsRegistered=!1,r.isBrowser&&(this._containerElement=js(i))}fadeInRipple(t,e,i={}){const r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s={...qD,...i.animation};i.centered&&(t=r.left+r.width/2,e=r.top+r.height/2);const o=i.radius||function _j(n,t,e){const i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),r=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+r*r)}(t,e,r),a=t-r.left,l=e-r.top,c=s.enterDuration,u=document.createElement("div");u.classList.add("mat-ripple-element"),u.style.left=a-o+"px",u.style.top=l-o+"px",u.style.height=2*o+"px",u.style.width=2*o+"px",null!=i.color&&(u.style.backgroundColor=i.color),u.style.transitionDuration=`${c}ms`,this._containerElement.appendChild(u),function yj(n){window.getComputedStyle(n).getPropertyValue("opacity")}(u),u.style.transform="scale(1)";const d=new pj(this,u,i);return d.state=0,this._activeRipples.add(d),i.persistent||(this._mostRecentTransientRipple=d),this._runTimeoutOutsideZone(()=>{const h=d===this._mostRecentTransientRipple;d.state=1,!i.persistent&&(!h||!this._isPointerDown)&&d.fadeOut()},c),d}fadeOutRipple(t){const e=this._activeRipples.delete(t);if(t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),this._activeRipples.size||(this._containerRect=null),!e)return;const i=t.element,r={...qD,...t.config.animation};i.style.transitionDuration=`${r.exitDuration}ms`,i.style.opacity="0",t.state=2,this._runTimeoutOutsideZone(()=>{t.state=3,i.remove()},r.exitDuration)}fadeOutAll(){this._activeRipples.forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._activeRipples.forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){const e=js(t);!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,this._registerEvents(QD))}handleEvent(t){"mousedown"===t.type?this._onMousedown(t):"touchstart"===t.type?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._registerEvents(KD),this._pointerUpEventsRegistered=!0)}_onMousedown(t){const e=BD(t),i=this._lastTouchStartEvent&&Date.now(){!t.config.persistent&&(1===t.state||t.config.terminateOnPointerUp&&0===t.state)&&t.fadeOut()}))}_runTimeoutOutsideZone(t,e=0){this._ngZone.runOutsideAngular(()=>setTimeout(t,e))}_registerEvents(t){this._ngZone.runOutsideAngular(()=>{t.forEach(e=>{this._triggerElement.addEventListener(e,this,Op)})})}_removeTriggerEvents(){this._triggerElement&&(QD.forEach(t=>{this._triggerElement.removeEventListener(t,this,Op)}),this._pointerUpEventsRegistered&&KD.forEach(t=>{this._triggerElement.removeEventListener(t,this,Op)}))}}const vj=new S("mat-ripple-global-options");let ya=(()=>{class n{constructor(e,i,r,s,o){this._elementRef=e,this._animationMode=o,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new mj(this,i,e,r)}get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,r){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...r}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(ae),f(Xn),f(vj,8),f(en,8))},n.\u0275dir=w({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(e,i){2&e&&Ie("mat-ripple-unbounded",i.unbounded)},inputs:{color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],radius:["matRippleRadius","radius"],animation:["matRippleAnimation","animation"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"]},exportAs:["matRipple"]}),n})(),Pp=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[Be],Be]}),n})(),ZD=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[Be]]}),n})();const wj=["*",[["mat-card-footer"]]],Cj=["*","mat-card-footer"],xj=[[["","mat-card-avatar",""],["","matCardAvatar",""]],[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],"*"],Dj=["[mat-card-avatar], [matCardAvatar]","mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","*"],Ej=[[["mat-card-title"],["mat-card-subtitle"],["","mat-card-title",""],["","mat-card-subtitle",""],["","matCardTitle",""],["","matCardSubtitle",""]],[["img"]],"*"],Mj=["mat-card-title, mat-card-subtitle,\n [mat-card-title], [mat-card-subtitle],\n [matCardTitle], [matCardSubtitle]","img","*"];let Sj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=w({type:n,selectors:[["mat-card-content"],["","mat-card-content",""],["","matCardContent",""]],hostAttrs:[1,"mat-card-content"]}),n})(),Aj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=w({type:n,selectors:[["mat-card-title"],["","mat-card-title",""],["","matCardTitle",""]],hostAttrs:[1,"mat-card-title"]}),n})(),Tj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=w({type:n,selectors:[["mat-card-subtitle"],["","mat-card-subtitle",""],["","matCardSubtitle",""]],hostAttrs:[1,"mat-card-subtitle"]}),n})(),Ij=(()=>{class n{constructor(){this.align="start"}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=w({type:n,selectors:[["mat-card-actions"]],hostAttrs:[1,"mat-card-actions"],hostVars:2,hostBindings:function(e,i){2&e&&Ie("mat-card-actions-align-end","end"===i.align)},inputs:{align:"align"},exportAs:["matCardActions"]}),n})(),Rj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=w({type:n,selectors:[["","mat-card-lg-image",""],["","matCardImageLarge",""]],hostAttrs:[1,"mat-card-lg-image"]}),n})(),Fj=(()=>{class n{constructor(e){this._animationMode=e}}return n.\u0275fac=function(e){return new(e||n)(f(en,8))},n.\u0275cmp=Ke({type:n,selectors:[["mat-card"]],hostAttrs:[1,"mat-card","mat-focus-indicator"],hostVars:2,hostBindings:function(e,i){2&e&&Ie("_mat-animation-noopable","NoopAnimations"===i._animationMode)},exportAs:["matCard"],ngContentSelectors:Cj,decls:2,vars:0,template:function(e,i){1&e&&(Tn(wj),ht(0),ht(1,1))},styles:[".mat-card{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:block;position:relative;padding:16px;border-radius:4px}._mat-animation-noopable.mat-card{transition:none;animation:none}.mat-card .mat-divider-horizontal{position:absolute;left:0;width:100%}[dir=rtl] .mat-card .mat-divider-horizontal{left:auto;right:0}.mat-card .mat-divider-horizontal.mat-divider-inset{position:static;margin:0}[dir=rtl] .mat-card .mat-divider-horizontal.mat-divider-inset{margin-right:0}.cdk-high-contrast-active .mat-card{outline:solid 1px}.mat-card-actions,.mat-card-subtitle,.mat-card-content{display:block;margin-bottom:16px}.mat-card-title{display:block;margin-bottom:8px}.mat-card-actions{margin-left:-8px;margin-right:-8px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 32px);margin:0 -16px 16px -16px;display:block;overflow:hidden}.mat-card-image img{width:100%}.mat-card-footer{display:block;margin:0 -16px -16px -16px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button,.mat-card-actions .mat-stroked-button{margin:0 8px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header .mat-card-title{margin-bottom:12px}.mat-card-header-text{margin:0 16px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.mat-card-title-group{display:flex;justify-content:space-between}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-title-group>.mat-card-xl-image{margin:-8px 0 8px}@media(max-width: 599px){.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}}.mat-card>:first-child,.mat-card-content>:first-child{margin-top:0}.mat-card>:last-child:not(.mat-card-footer),.mat-card-content>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-16px;border-top-left-radius:inherit;border-top-right-radius:inherit}.mat-card>.mat-card-actions:last-child{margin-bottom:-8px;padding-bottom:0}.mat-card-actions:not(.mat-card-actions-align-end) .mat-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-raised-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-stroked-button:first-child{margin-left:0;margin-right:0}.mat-card-actions-align-end .mat-button:last-child,.mat-card-actions-align-end .mat-raised-button:last-child,.mat-card-actions-align-end .mat-stroked-button:last-child{margin-left:0;margin-right:0}.mat-card-title:not(:first-child),.mat-card-subtitle: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}\n"],encapsulation:2,changeDetection:0}),n})(),kj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Ke({type:n,selectors:[["mat-card-header"]],hostAttrs:[1,"mat-card-header"],ngContentSelectors:Dj,decls:4,vars:0,consts:[[1,"mat-card-header-text"]],template:function(e,i){1&e&&(Tn(xj),ht(0),N(1,"div",0),ht(2,1),L(),ht(3,2))},encapsulation:2,changeDetection:0}),n})(),Oj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Ke({type:n,selectors:[["mat-card-title-group"]],hostAttrs:[1,"mat-card-title-group"],ngContentSelectors:Mj,decls:4,vars:0,template:function(e,i){1&e&&(Tn(Ej),N(0,"div"),ht(1),L(),ht(2,1),ht(3,2))},encapsulation:2,changeDetection:0}),n})(),Pj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[Be],Be]}),n})();const Nj=["mat-button",""],Lj=["*"],Bj=["mat-button","mat-flat-button","mat-icon-button","mat-raised-button","mat-stroked-button","mat-mini-fab","mat-fab"],jj=ga(kp(Wc(class{constructor(n){this._elementRef=n}})));let YD=(()=>{class n extends jj{constructor(e,i,r){super(e),this._focusMonitor=i,this._animationMode=r,this.isRoundButton=this._hasHostAttributes("mat-fab","mat-mini-fab"),this.isIconButton=this._hasHostAttributes("mat-icon-button");for(const s of Bj)this._hasHostAttributes(s)&&this._getHostElement().classList.add(s);e.nativeElement.classList.add("mat-button-base"),this.isRoundButton&&(this.color="accent")}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(e,i){e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i)}_getHostElement(){return this._elementRef.nativeElement}_isRippleDisabled(){return this.disableRipple||this.disabled}_hasHostAttributes(...e){return e.some(i=>this._getHostElement().hasAttribute(i))}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Ip),f(en,8))},n.\u0275cmp=Ke({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-icon-button",""],["button","mat-fab",""],["button","mat-mini-fab",""],["button","mat-stroked-button",""],["button","mat-flat-button",""]],viewQuery:function(e,i){if(1&e&&Jt(ya,5),2&e){let r;ke(r=Oe())&&(i.ripple=r.first)}},hostAttrs:[1,"mat-focus-indicator"],hostVars:5,hostBindings:function(e,i){2&e&&(Ze("disabled",i.disabled||null),Ie("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-button-disabled",i.disabled))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[M],attrs:Nj,ngContentSelectors:Lj,decls:4,vars:5,consts:[[1,"mat-button-wrapper"],["matRipple","",1,"mat-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-button-focus-overlay"]],template:function(e,i){1&e&&(Tn(),N(0,"span",0),ht(1),L(),ze(2,"span",1)(3,"span",2)),2&e&&(q(2),Ie("mat-button-ripple-round",i.isRoundButton||i.isIconButton),X("matRippleDisabled",i._isRippleDisabled())("matRippleCentered",i.isIconButton)("matRippleTrigger",i._getHostElement()))},dependencies:[ya],styles:[".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;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:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;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:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}._mat-animation-noopable.mat-raised-button{transition:none;animation:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;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:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-fab{transition:none;animation:none}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;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:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-mini-fab{transition:none;animation:none}.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 i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n"],encapsulation:2,changeDetection:0}),n})(),Hj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[Pp,Be],Be]}),n})();const $j=["*"];let Qc;function _a(n){return function Uj(){if(void 0===Qc&&(Qc=null,typeof window<"u")){const n=window;void 0!==n.trustedTypes&&(Qc=n.trustedTypes.createPolicy("angular#components",{createHTML:t=>t}))}return Qc}()?.createHTML(n)||n}function JD(n){return Error(`Unable to find icon with the name "${n}"`)}function eE(n){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${n}".`)}function tE(n){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${n}".`)}class Ar{constructor(t,e,i){this.url=t,this.svgText=e,this.options=i}}let Kc=(()=>{class n{constructor(e,i,r,s){this._httpClient=e,this._sanitizer=i,this._errorHandler=s,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass="material-icons",this._document=r}addSvgIcon(e,i,r){return this.addSvgIconInNamespace("",e,i,r)}addSvgIconLiteral(e,i,r){return this.addSvgIconLiteralInNamespace("",e,i,r)}addSvgIconInNamespace(e,i,r,s){return this._addSvgIconConfig(e,i,new Ar(r,null,s))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,r,s){const o=this._sanitizer.sanitize(de.HTML,r);if(!o)throw tE(r);const a=_a(o);return this._addSvgIconConfig(e,i,new Ar("",a,s))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,r){return this._addSvgIconSetConfig(e,new Ar(i,null,r))}addSvgIconSetLiteralInNamespace(e,i,r){const s=this._sanitizer.sanitize(de.HTML,i);if(!s)throw tE(i);const o=_a(s);return this._addSvgIconSetConfig(e,new Ar("",o,r))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){const i=this._sanitizer.sanitize(de.RESOURCE_URL,e);if(!i)throw eE(e);const r=this._cachedIconsByUrl.get(i);return r?F(Zc(r)):this._loadSvgIconFromConfig(new Ar(e,null)).pipe(Je(s=>this._cachedIconsByUrl.set(i,s)),U(s=>Zc(s)))}getNamedSvgIcon(e,i=""){const r=nE(i,e);let s=this._svgIconConfigs.get(r);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(i,e),s)return this._svgIconConfigs.set(r,s),this._getSvgFromConfig(s);const o=this._iconSetConfigs.get(i);return o?this._getSvgFromIconSetConfigs(e,o):Is(JD(r))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?F(Zc(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(U(i=>Zc(i)))}_getSvgFromIconSetConfigs(e,i){const r=this._extractIconWithNameFromAnySet(e,i);return r?F(r):function XD(...n){const t=fm(n),{args:e,keys:i}=ox(n),r=new xe(s=>{const{length:o}=e;if(!o)return void s.complete();const a=new Array(o);let l=o,c=o;for(let u=0;u{d||(d=!0,c--),a[u]=h},()=>l--,void 0,()=>{(!l||!d)&&(c||s.next(i?ax(i,a):a),s.complete())}))}});return t?r.pipe(qf(t)):r}(i.filter(o=>!o.svgText).map(o=>this._loadSvgIconSetFromConfig(o).pipe(Zn(a=>{const c=`Loading icon set URL: ${this._sanitizer.sanitize(de.RESOURCE_URL,o.url)} failed: ${a.message}`;return this._errorHandler.handleError(new Error(c)),F(null)})))).pipe(U(()=>{const o=this._extractIconWithNameFromAnySet(e,i);if(!o)throw JD(e);return o}))}_extractIconWithNameFromAnySet(e,i){for(let r=i.length-1;r>=0;r--){const s=i[r];if(s.svgText&&s.svgText.toString().indexOf(e)>-1){const o=this._svgElementFromConfig(s),a=this._extractSvgIconFromSet(o,e,s.options);if(a)return a}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(Je(i=>e.svgText=i),U(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?F(null):this._fetchIcon(e).pipe(Je(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,r){const s=e.querySelector(`[id="${i}"]`);if(!s)return null;const o=s.cloneNode(!0);if(o.removeAttribute("id"),"svg"===o.nodeName.toLowerCase())return this._setSvgAttributes(o,r);if("symbol"===o.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(o),r);const a=this._svgElementFromString(_a(" "));return a.appendChild(o),this._setSvgAttributes(a,r)}_svgElementFromString(e){const i=this._document.createElement("DIV");i.innerHTML=e;const r=i.querySelector("svg");if(!r)throw Error(" tag not found");return r}_toSvgElement(e){const i=this._svgElementFromString(_a(" ")),r=e.attributes;for(let s=0;s_a(c)),vc(()=>this._inProgressUrlFetches.delete(o)),ym());return this._inProgressUrlFetches.set(o,l),l}_addSvgIconConfig(e,i,r){return this._svgIconConfigs.set(nE(e,i),r),this}_addSvgIconSetConfig(e,i){const r=this._iconSetConfigs.get(e);return r?r.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){const i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let r=0;rt?t.pathname+t.search:""}}}),iE=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],Zj=iE.map(n=>`[${n}]`).join(", "),Yj=/^url\(['"]?#(.*?)['"]?\)$/;let rE=(()=>{class n extends qj{constructor(e,i,r,s,o){super(e),this._iconRegistry=i,this._location=s,this._errorHandler=o,this._inline=!1,this._currentIconFetch=Ue.EMPTY,r||e.nativeElement.setAttribute("aria-hidden","true")}get inline(){return this._inline}set inline(e){this._inline=ft(e)}get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_splitIconName(e){if(!e)return["",""];const i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const e=this._elementsWithExternalReferences;if(e&&e.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){const e=this._elementRef.nativeElement;let i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const r=e.childNodes[i];(1!==r.nodeType||"svg"===r.nodeName.toLowerCase())&&r.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const e=this._elementRef.nativeElement,i=this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet):this._iconRegistry.getDefaultFontSetClass();i!=this._previousFontSetClass&&(this._previousFontSetClass&&e.classList.remove(this._previousFontSetClass),i&&e.classList.add(i),this._previousFontSetClass=i),this.fontIcon!=this._previousFontIconClass&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return"string"==typeof e?e.trim().split(" ")[0]:e}_prependPathToReferences(e){const i=this._elementsWithExternalReferences;i&&i.forEach((r,s)=>{r.forEach(o=>{s.setAttribute(o.name,`url('${e}#${o.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(Zj),r=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s{const a=i[s],l=a.getAttribute(o),c=l?l.match(Yj):null;if(c){let u=r.get(a);u||(u=[],r.set(a,u)),u.push({name:o,value:c[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){const[i,r]=this._splitIconName(e);i&&(this._svgNamespace=i),r&&(this._svgName=r),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(r,i).pipe(Kn(1)).subscribe(s=>this._setSvgElement(s),s=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${r}! ${s.message}`))})}}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Kc),sr("aria-hidden"),f(Qj),f(ui))},n.\u0275cmp=Ke({type:n,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:7,hostBindings:function(e,i){2&e&&(Ze("data-mat-icon-type",i._usingFontIcon()?"font":"svg")("data-mat-icon-name",i._svgName||i.fontIcon)("data-mat-icon-namespace",i._svgNamespace||i.fontSet),Ie("mat-icon-inline",i.inline)("mat-icon-no-color","primary"!==i.color&&"accent"!==i.color&&"warn"!==i.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[M],ngContentSelectors:$j,decls:1,vars:0,template:function(e,i){1&e&&(Tn(),ht(0))},styles:[".mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\n"],encapsulation:2,changeDetection:0}),n})(),Xj=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[Be],Be]}),n})();function sE(n){for(let t in n){let e=n[t]??"";switch(t){case"display":n.display="flex"===e?["-webkit-flex","flex"]:"inline-flex"===e?["-webkit-inline-flex","inline-flex"]:e;break;case"align-items":case"align-self":case"align-content":case"flex":case"flex-basis":case"flex-flow":case"flex-grow":case"flex-shrink":case"flex-wrap":case"justify-content":n["-webkit-"+t]=e;break;case"flex-direction":n["-webkit-flex-direction"]=e,n["flex-direction"]=e;break;case"order":n.order=n["-webkit-"+t]=isNaN(+e)?"0":e}}return n}const Np="inline",Yc=["row","column","row-reverse","column-reverse"];function oE(n){let[t,e,i]=aE(n);return function eH(n,t=null,e=!1){return{display:e?"inline-flex":"flex","box-sizing":"border-box","flex-direction":n,"flex-wrap":t||null}}(t,e,i)}function aE(n){n=n?.toLowerCase()??"";let[t,e,i]=n.split(" ");return Yc.find(r=>r===t)||(t=Yc[0]),e===Np&&(e=i!==Np?i:"",i=Np),[t,Jj(e),!!i]}function va(n){let[t]=aE(n);return t.indexOf("row")>-1}function Jj(n){if(n)switch(n.toLowerCase()){case"reverse":case"wrap-reverse":case"reverse-wrap":n="wrap-reverse";break;case"no":case"none":case"nowrap":n="nowrap";break;default:n="wrap"}return n}function wi(n,...t){if(null==n)throw TypeError("Cannot convert undefined or null to object");for(let e of t)if(null!=e)for(let i in e)e.hasOwnProperty(i)&&(n[i]=e[i]);return n}const nH={provide:tf,useFactory:function tH(n,t){return()=>{if(br(t)){const e=Array.from(n.querySelectorAll(`[class*=${lE}]`)),i=/\bflex-layout-.+?\b/g;e.forEach(r=>{r.classList.contains(`${lE}ssr`)&&r.parentNode?r.parentNode.removeChild(r):r.className.replace(i,"")})}}},deps:[ie,pn],multi:!0},lE="flex-layout-";let Lp=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({providers:[nH]}),n})();class Tr{constructor(t=!1,e="all",i="",r="",s=0){this.matches=t,this.mediaQuery=e,this.mqAlias=i,this.suffix=r,this.priority=s,this.property=""}clone(){return new Tr(this.matches,this.mediaQuery,this.mqAlias,this.suffix)}}let iH=(()=>{class n{constructor(){this.stylesheet=new Map}addStyleToElement(e,i,r){const s=this.stylesheet.get(e);s?s.set(i,r):this.stylesheet.set(e,new Map([[i,r]]))}clearStyles(){this.stylesheet.clear()}getStyleForElement(e,i){const r=this.stylesheet.get(e);let s="";if(r){const o=r.get(i);("number"==typeof o||"string"==typeof o)&&(s=o+"")}return s}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Vp={addFlexToParent:!0,addOrientationBps:!1,disableDefaultBps:!1,disableVendorPrefixes:!1,serverLoaded:!1,useColumnBasisZero:!0,printWithBreakpoints:[],mediaTriggerAutoRestore:!0,ssrObserveBreakpoints:[],multiplier:void 0,defaultUnit:"px",detectLayoutDisplay:!1},Nn=new S("Flex Layout token, config options for the library",{providedIn:"root",factory:()=>Vp}),$s=new S("FlexLayoutServerLoaded",{providedIn:"root",factory:()=>!1}),Bp=new S("Flex Layout token, collect all breakpoints into one provider",{providedIn:"root",factory:()=>null});function cE(n,t){return n=n?.clone()??new Tr,t&&(n.mqAlias=t.alias,n.mediaQuery=t.mediaQuery,n.suffix=t.suffix,n.priority=t.priority),n}class Qe{constructor(){this.shouldCache=!0}sideEffect(t,e,i){}}let Re=(()=>{class n{constructor(e,i,r,s){this._serverStylesheet=e,this._serverModuleLoaded=i,this._platformId=r,this.layoutConfig=s}applyStyleToElement(e,i,r=null){let s={};"string"==typeof i&&(s[i]=r,i=s),s=this.layoutConfig.disableVendorPrefixes?i:sE(i),this._applyMultiValueStyleToElement(s,e)}applyStyleToElements(e,i=[]){const r=this.layoutConfig.disableVendorPrefixes?e:sE(e);i.forEach(s=>{this._applyMultiValueStyleToElement(r,s)})}getFlowDirection(e){const i="flex-direction";let r=this.lookupStyle(e,i);return[r||"row",this.lookupInlineStyle(e,i)||Ts(this._platformId)&&this._serverModuleLoaded?r:""]}hasWrap(e){return"wrap"===this.lookupStyle(e,"flex-wrap")}lookupAttributeValue(e,i){return e.getAttribute(i)??""}lookupInlineStyle(e,i){return br(this._platformId)?e.style.getPropertyValue(i):function rH(n,t){return uE(n)[t]??""}(e,i)}lookupStyle(e,i,r=!1){let s="";return e&&((s=this.lookupInlineStyle(e,i))||(br(this._platformId)?r||(s=getComputedStyle(e).getPropertyValue(i)):this._serverModuleLoaded&&(s=this._serverStylesheet.getStyleForElement(e,i)))),s?s.trim():""}_applyMultiValueStyleToElement(e,i){Object.keys(e).sort().forEach(r=>{const s=e[r],o=Array.isArray(s)?s:[s];o.sort();for(let a of o)a=a?a+"":"",br(this._platformId)||!this._serverModuleLoaded?br(this._platformId)?i.style.setProperty(r,a):sH(i,r,a):this._serverStylesheet.addStyleToElement(i,r,a)})}}return n.\u0275fac=function(e){return new(e||n)(b(iH),b($s),b(pn),b(Nn))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function sH(n,t,e){t=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();const i=uE(n);i[t]=e??"",function oH(n,t){let e="";for(const i in t)t[i]&&(e+=`${i}:${t[i]};`);n.setAttribute("style",e)}(n,i)}function uE(n){const t={},e=n.getAttribute("style");if(e){const i=e.split(/;+/g);for(let r=0;r0){const o=s.indexOf(":");if(-1===o)throw new Error(`Invalid CSS style: ${s}`);t[s.substr(0,o).trim()]=s.substr(o+1).trim()}}}return t}function ba(n,t){return(t&&t.priority||0)-(n&&n.priority||0)}function aH(n,t){return(n.priority||0)-(t.priority||0)}let jp=(()=>{class n{constructor(e,i,r){this._zone=e,this._platformId=i,this._document=r,this.source=new Ht(new Tr(!0)),this.registry=new Map,this.pendingRemoveListenerFns=[],this._observable$=this.source.asObservable()}get activations(){const e=[];return this.registry.forEach((i,r)=>{i.matches&&e.push(r)}),e}isActive(e){return this.registry.get(e)?.matches??this.registerQuery(e).some(r=>r.matches)}observe(e,i=!1){if(e&&e.length){const r=this._observable$.pipe(jt(o=>!i||e.indexOf(o.mediaQuery)>-1));return jr(new xe(o=>{const a=this.registerQuery(e);if(a.length){const l=a.pop();a.forEach(c=>{o.next(c)}),this.source.next(l)}o.complete()}),r)}return this._observable$}registerQuery(e){const i=Array.isArray(e)?e:[e],r=[];return function lH(n,t){const e=n.filter(i=>!dE[i]);if(e.length>0){const i=e.join(", ");try{const r=t.createElement("style");r.setAttribute("type","text/css"),r.styleSheet||r.appendChild(t.createTextNode(`\n/*\n @angular/flex-layout - workaround for possible browser quirk with mediaQuery listeners\n see http://bit.ly/2sd4HMP\n*/\n@media ${i} {.fx-query-test{ }}\n`)),t.head.appendChild(r),e.forEach(s=>dE[s]=r)}catch(r){console.error(r)}}}(i,this._document),i.forEach(s=>{const o=l=>{this._zone.run(()=>this.source.next(new Tr(l.matches,s)))};let a=this.registry.get(s);a||(a=this.buildMQL(s),a.addListener(o),this.pendingRemoveListenerFns.push(()=>a.removeListener(o)),this.registry.set(s,a)),a.matches&&r.push(new Tr(!0,s))}),r}ngOnDestroy(){let e;for(;e=this.pendingRemoveListenerFns.pop();)e()}buildMQL(e){return function uH(n,t){return t&&window.matchMedia("all").addListener?window.matchMedia(n):function cH(n){const t=new EventTarget;return t.matches="all"===n||""===n,t.media=n,t.addListener=()=>{},t.removeListener=()=>{},t.addEventListener=()=>{},t.dispatchEvent=()=>!1,t.onchange=null,t}(n)}(e,br(this._platformId))}}return n.\u0275fac=function(e){return new(e||n)(b(ae),b(pn),b(ie))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const dE={},dH=[{alias:"xs",mediaQuery:"screen and (min-width: 0px) and (max-width: 599.98px)",priority:1e3},{alias:"sm",mediaQuery:"screen and (min-width: 600px) and (max-width: 959.98px)",priority:900},{alias:"md",mediaQuery:"screen and (min-width: 960px) and (max-width: 1279.98px)",priority:800},{alias:"lg",mediaQuery:"screen and (min-width: 1280px) and (max-width: 1919.98px)",priority:700},{alias:"xl",mediaQuery:"screen and (min-width: 1920px) and (max-width: 4999.98px)",priority:600},{alias:"lt-sm",overlapping:!0,mediaQuery:"screen and (max-width: 599.98px)",priority:950},{alias:"lt-md",overlapping:!0,mediaQuery:"screen and (max-width: 959.98px)",priority:850},{alias:"lt-lg",overlapping:!0,mediaQuery:"screen and (max-width: 1279.98px)",priority:750},{alias:"lt-xl",overlapping:!0,priority:650,mediaQuery:"screen and (max-width: 1919.98px)"},{alias:"gt-xs",overlapping:!0,mediaQuery:"screen and (min-width: 600px)",priority:-950},{alias:"gt-sm",overlapping:!0,mediaQuery:"screen and (min-width: 960px)",priority:-850},{alias:"gt-md",overlapping:!0,mediaQuery:"screen and (min-width: 1280px)",priority:-750},{alias:"gt-lg",overlapping:!0,mediaQuery:"screen and (min-width: 1920px)",priority:-650}],hE="(orientation: portrait) and (max-width: 599.98px)",fE="(orientation: landscape) and (max-width: 959.98px)",pE="(orientation: portrait) and (min-width: 600px) and (max-width: 839.98px)",gE="(orientation: landscape) and (min-width: 960px) and (max-width: 1279.98px)",mE="(orientation: portrait) and (min-width: 840px)",yE="(orientation: landscape) and (min-width: 1280px)",Ci={HANDSET:`${hE}, ${fE}`,TABLET:`${pE} , ${gE}`,WEB:`${mE}, ${yE} `,HANDSET_PORTRAIT:`${hE}`,TABLET_PORTRAIT:`${pE} `,WEB_PORTRAIT:`${mE}`,HANDSET_LANDSCAPE:`${fE}`,TABLET_LANDSCAPE:`${gE}`,WEB_LANDSCAPE:`${yE}`},hH=[{alias:"handset",priority:2e3,mediaQuery:Ci.HANDSET},{alias:"handset.landscape",priority:2e3,mediaQuery:Ci.HANDSET_LANDSCAPE},{alias:"handset.portrait",priority:2e3,mediaQuery:Ci.HANDSET_PORTRAIT},{alias:"tablet",priority:2100,mediaQuery:Ci.TABLET},{alias:"tablet.landscape",priority:2100,mediaQuery:Ci.TABLET_LANDSCAPE},{alias:"tablet.portrait",priority:2100,mediaQuery:Ci.TABLET_PORTRAIT},{alias:"web",priority:2200,mediaQuery:Ci.WEB,overlapping:!0},{alias:"web.landscape",priority:2200,mediaQuery:Ci.WEB_LANDSCAPE,overlapping:!0},{alias:"web.portrait",priority:2200,mediaQuery:Ci.WEB_PORTRAIT,overlapping:!0}],fH=/(\.|-|_)/g;function pH(n){let t=n.length>0?n.charAt(0):"",e=n.length>1?n.slice(1):"";return t.toUpperCase()+e}const _H=new S("Token (@angular/flex-layout) Breakpoints",{providedIn:"root",factory:()=>{const n=Se(Bp),t=Se(Nn),e=[].concat.apply([],(n||[]).map(r=>Array.isArray(r)?r:[r]));return function yH(n,t=[]){const e={};return n.forEach(i=>{e[i.alias]=i}),t.forEach(i=>{e[i.alias]?wi(e[i.alias],i):e[i.alias]=i}),function mH(n){return n.forEach(t=>{t.suffix||(t.suffix=function gH(n){return n.replace(fH,"|").split("|").map(pH).join("")}(t.alias),t.overlapping=!!t.overlapping)}),n}(Object.keys(e).map(i=>e[i]))}((t.disableDefaultBps?[]:dH).concat(t.addOrientationBps?hH:[]),e)}});let Hp=(()=>{class n{constructor(e){this.findByMap=new Map,this.items=[...e].sort(aH)}findByAlias(e){return e?this.findWithPredicate(e,i=>i.alias===e):null}findByQuery(e){return this.findWithPredicate(e,i=>i.mediaQuery===e)}get overlappings(){return this.items.filter(e=>e.overlapping)}get aliases(){return this.items.map(e=>e.alias)}get suffixes(){return this.items.map(e=>e?.suffix??"")}findWithPredicate(e,i){let r=this.findByMap.get(e);return r||(r=this.items.find(i)??null,this.findByMap.set(e,r)),r??null}}return n.\u0275fac=function(e){return new(e||n)(b(_H))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Us="print",vH={alias:Us,mediaQuery:Us,priority:1e3};let bH=(()=>{class n{constructor(e,i,r){this.breakpoints=e,this.layoutConfig=i,this._document=r,this.registeredBeforeAfterPrintHooks=!1,this.isPrintingBeforeAfterEvent=!1,this.beforePrintEventListeners=[],this.afterPrintEventListeners=[],this.formerActivations=null,this.isPrinting=!1,this.queue=new wH,this.deactivations=[]}withPrintQuery(e){return[...e,Us]}isPrintEvent(e){return e.mediaQuery.startsWith(Us)}get printAlias(){return[...this.layoutConfig.printWithBreakpoints??[]]}get printBreakPoints(){return this.printAlias.map(e=>this.breakpoints.findByAlias(e)).filter(e=>null!==e)}getEventBreakpoints({mediaQuery:e}){const i=this.breakpoints.findByQuery(e);return(i?[...this.printBreakPoints,i]:this.printBreakPoints).sort(ba)}updateEvent(e){let i=this.breakpoints.findByQuery(e.mediaQuery);return this.isPrintEvent(e)&&(i=this.getEventBreakpoints(e)[0],e.mediaQuery=i?.mediaQuery??""),cE(e,i)}registerBeforeAfterPrintHooks(e){if(!this._document.defaultView||this.registeredBeforeAfterPrintHooks)return;this.registeredBeforeAfterPrintHooks=!0;const i=()=>{this.isPrinting||(this.isPrintingBeforeAfterEvent=!0,this.startPrinting(e,this.getEventBreakpoints(new Tr(!0,Us))),e.updateStyles())},r=()=>{this.isPrintingBeforeAfterEvent=!1,this.isPrinting&&(this.stopPrinting(e),e.updateStyles())};this._document.defaultView.addEventListener("beforeprint",i),this._document.defaultView.addEventListener("afterprint",r),this.beforePrintEventListeners.push(i),this.afterPrintEventListeners.push(r)}interceptEvents(e){return i=>{this.isPrintEvent(i)?i.matches&&!this.isPrinting?(this.startPrinting(e,this.getEventBreakpoints(i)),e.updateStyles()):!i.matches&&this.isPrinting&&!this.isPrintingBeforeAfterEvent&&(this.stopPrinting(e),e.updateStyles()):this.collectActivations(e,i)}}blockPropagation(){return e=>!(this.isPrinting||this.isPrintEvent(e))}startPrinting(e,i){this.isPrinting=!0,this.formerActivations=e.activatedBreakpoints,e.activatedBreakpoints=this.queue.addPrintBreakpoints(i)}stopPrinting(e){e.activatedBreakpoints=this.deactivations,this.deactivations=[],this.formerActivations=null,this.queue.clear(),this.isPrinting=!1}collectActivations(e,i){if(!this.isPrinting||this.isPrintingBeforeAfterEvent){if(!this.isPrintingBeforeAfterEvent)return void(this.deactivations=[]);if(!i.matches){const r=this.breakpoints.findByQuery(i.mediaQuery);if(r){const s=this.formerActivations&&this.formerActivations.includes(r),o=!this.formerActivations&&e.activatedBreakpoints.includes(r);(s||o)&&(this.deactivations.push(r),this.deactivations.sort(ba))}}}}ngOnDestroy(){this._document.defaultView&&(this.beforePrintEventListeners.forEach(e=>this._document.defaultView.removeEventListener("beforeprint",e)),this.afterPrintEventListeners.forEach(e=>this._document.defaultView.removeEventListener("afterprint",e)))}}return n.\u0275fac=function(e){return new(e||n)(b(Hp),b(Nn),b(ie))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class wH{constructor(){this.printBreakpoints=[]}addPrintBreakpoints(t){return t.push(vH),t.sort(ba),t.forEach(e=>this.addBreakpoint(e)),this.printBreakpoints}addBreakpoint(t){t&&void 0===this.printBreakpoints.find(i=>i.mediaQuery===t.mediaQuery)&&(this.printBreakpoints=function CH(n){return n?.mediaQuery.startsWith(Us)??!1}(t)?[t,...this.printBreakpoints]:[...this.printBreakpoints,t])}clear(){this.printBreakpoints=[]}}let Pe=(()=>{class n{constructor(e,i,r){this.matchMedia=e,this.breakpoints=i,this.hook=r,this._useFallbacks=!0,this._activatedBreakpoints=[],this.elementMap=new Map,this.elementKeyMap=new WeakMap,this.watcherMap=new WeakMap,this.updateMap=new WeakMap,this.clearMap=new WeakMap,this.subject=new De,this.observeActivations()}get activatedAlias(){return this.activatedBreakpoints[0]?.alias??""}set activatedBreakpoints(e){this._activatedBreakpoints=[...e]}get activatedBreakpoints(){return[...this._activatedBreakpoints]}set useFallbacks(e){this._useFallbacks=e}onMediaChange(e){const i=this.findByQuery(e.mediaQuery);if(i){e=cE(e,i);const r=this.activatedBreakpoints.indexOf(i);e.matches&&-1===r?(this._activatedBreakpoints.push(i),this._activatedBreakpoints.sort(ba),this.updateStyles()):!e.matches&&-1!==r&&(this._activatedBreakpoints.splice(r,1),this._activatedBreakpoints.sort(ba),this.updateStyles())}}init(e,i,r,s,o=[]){_E(this.updateMap,e,i,r),_E(this.clearMap,e,i,s),this.buildElementKeyMap(e,i),this.watchExtraTriggers(e,i,o)}getValue(e,i,r){const s=this.elementMap.get(e);if(s){const o=void 0!==r?s.get(r):this.getActivatedValues(s,i);if(o)return o.get(i)}}hasValue(e,i){const r=this.elementMap.get(e);if(r){const s=this.getActivatedValues(r,i);if(s)return void 0!==s.get(i)||!1}return!1}setValue(e,i,r,s){let o=this.elementMap.get(e);if(o){const l=(o.get(s)??new Map).set(i,r);o.set(s,l),this.elementMap.set(e,o)}else o=(new Map).set(s,(new Map).set(i,r)),this.elementMap.set(e,o);const a=this.getValue(e,i);void 0!==a&&this.updateElement(e,i,a)}trackValue(e,i){return this.subject.asObservable().pipe(jt(r=>r.element===e&&r.key===i))}updateStyles(){this.elementMap.forEach((e,i)=>{const r=new Set(this.elementKeyMap.get(i));let s=this.getActivatedValues(e);s&&s.forEach((o,a)=>{this.updateElement(i,a,o),r.delete(a)}),r.forEach(o=>{if(s=this.getActivatedValues(e,o),s){const a=s.get(o);this.updateElement(i,o,a)}else this.clearElement(i,o)})})}clearElement(e,i){const r=this.clearMap.get(e);if(r){const s=r.get(i);s&&(s(),this.subject.next({element:e,key:i,value:""}))}}updateElement(e,i,r){const s=this.updateMap.get(e);if(s){const o=s.get(i);o&&(o(r),this.subject.next({element:e,key:i,value:r}))}}releaseElement(e){const i=this.watcherMap.get(e);i&&(i.forEach(s=>s.unsubscribe()),this.watcherMap.delete(e));const r=this.elementMap.get(e);r&&(r.forEach((s,o)=>r.delete(o)),this.elementMap.delete(e))}triggerUpdate(e,i){const r=this.elementMap.get(e);if(r){const s=this.getActivatedValues(r,i);s&&(i?this.updateElement(e,i,s.get(i)):s.forEach((o,a)=>this.updateElement(e,a,o)))}}buildElementKeyMap(e,i){let r=this.elementKeyMap.get(e);r||(r=new Set,this.elementKeyMap.set(e,r)),r.add(i)}watchExtraTriggers(e,i,r){if(r&&r.length){let s=this.watcherMap.get(e);if(s||(s=new Map,this.watcherMap.set(e,s)),!s.get(i)){const a=jr(...r).subscribe(()=>{const l=this.getValue(e,i);this.updateElement(e,i,l)});s.set(i,a)}}}findByQuery(e){return this.breakpoints.findByQuery(e)}getActivatedValues(e,i){for(let s=0;si.mediaQuery);this.hook.registerBeforeAfterPrintHooks(this),this.matchMedia.observe(this.hook.withPrintQuery(e)).pipe(Je(this.hook.interceptEvents(this)),jt(this.hook.blockPropagation())).subscribe(this.onMediaChange.bind(this))}}return n.\u0275fac=function(e){return new(e||n)(b(jp),b(Hp),b(bH))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function _E(n,t,e,i){if(void 0!==i){const r=n.get(t)??new Map;r.set(e,i),n.set(t,r)}}let je=(()=>{class n{constructor(e,i,r,s){this.elementRef=e,this.styleBuilder=i,this.styler=r,this.marshal=s,this.DIRECTIVE_KEY="",this.inputs=[],this.mru={},this.destroySubject=new De,this.styleCache=new Map}get parentElement(){return this.elementRef.nativeElement.parentElement}get nativeElement(){return this.elementRef.nativeElement}get activatedValue(){return this.marshal.getValue(this.nativeElement,this.DIRECTIVE_KEY)}set activatedValue(e){this.marshal.setValue(this.nativeElement,this.DIRECTIVE_KEY,e,this.marshal.activatedAlias)}ngOnChanges(e){Object.keys(e).forEach(i=>{if(-1!==this.inputs.indexOf(i)){const r=i.split(".").slice(1).join(".");this.setValue(e[i].currentValue,r)}})}ngOnDestroy(){this.destroySubject.next(),this.destroySubject.complete(),this.marshal.releaseElement(this.nativeElement)}init(e=[]){this.marshal.init(this.elementRef.nativeElement,this.DIRECTIVE_KEY,this.updateWithValue.bind(this),this.clearStyles.bind(this),e)}addStyles(e,i){const r=this.styleBuilder,s=r.shouldCache;let o=this.styleCache.get(e);(!o||!s)&&(o=r.buildStyles(e,i),s&&this.styleCache.set(e,o)),this.mru={...o},this.applyStyleToElement(o),r.sideEffect(e,o,i)}clearStyles(){Object.keys(this.mru).forEach(e=>{this.mru[e]=""}),this.applyStyleToElement(this.mru),this.mru={},this.currentValue=void 0}triggerUpdate(){this.marshal.triggerUpdate(this.nativeElement,this.DIRECTIVE_KEY)}getFlexFlowDirection(e,i=!1){if(e){const[r,s]=this.styler.getFlowDirection(e);if(!s&&i){const o=oE(r);this.styler.applyStyleToElements(o,[e])}return r.trim()}return"row"}hasWrap(e){return this.styler.hasWrap(e)}applyStyleToElement(e,i,r=this.nativeElement){this.styler.applyStyleToElement(r,e,i)}setValue(e,i){this.marshal.setValue(this.nativeElement,this.DIRECTIVE_KEY,e,i)}updateWithValue(e){this.currentValue!==e&&(this.addStyles(e),this.currentValue=e)}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Qe),f(Re),f(Pe))},n.\u0275dir=w({type:n,features:[vt]}),n})();function vE(n,t="1",e="1"){let i=[t,e,n],r=n.indexOf("calc");if(r>0){i[2]=bE(n.substring(r).trim());let s=n.substr(0,r).trim().split(" ");2==s.length&&(i[0]=s[0],i[1]=s[1])}else if(0==r)i[2]=bE(n.trim());else{let s=n.split(" ");i=3===s.length?s:[t,e,n]}return i}function bE(n){return n.replace(/[\s]/g,"").replace(/[\/\*\+\-]/g," $& ")}function Xc(n,t){if(void 0===t)return n;const e=i=>{const r=+i.slice(0,-"x".length);return n.endsWith("x")&&!isNaN(r)?`${r*t.value}${t.unit}`:n};return n.includes(" ")?n.split(" ").map(e).join(" "):e(n)}EventTarget;let EH=(()=>{class n extends Qe{buildStyles(e,{display:i}){const r=oE(e);return{...r,display:"none"===i?i:r.display}}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=O(n)))(i||n)}}(),n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const MH=["fxLayout","fxLayout.xs","fxLayout.sm","fxLayout.md","fxLayout.lg","fxLayout.xl","fxLayout.lt-sm","fxLayout.lt-md","fxLayout.lt-lg","fxLayout.lt-xl","fxLayout.gt-xs","fxLayout.gt-sm","fxLayout.gt-md","fxLayout.gt-lg"];let SH=(()=>{class n extends je{constructor(e,i,r,s,o){super(e,r,i,s),this._config=o,this.DIRECTIVE_KEY="layout",this.init()}updateWithValue(e){const r=this._config.detectLayoutDisplay?this.styler.lookupStyle(this.nativeElement,"display"):"";this.styleCache=xE.get(r)??new Map,xE.set(r,this.styleCache),this.currentValue!==e&&(this.addStyles(e,{display:r}),this.currentValue=e)}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Re),f(EH),f(Pe),f(Nn))},n.\u0275dir=w({type:n,features:[M]}),n})(),CE=(()=>{class n extends SH{constructor(){super(...arguments),this.inputs=MH}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=O(n)))(i||n)}}(),n.\u0275dir=w({type:n,selectors:[["","fxLayout",""],["","fxLayout.xs",""],["","fxLayout.sm",""],["","fxLayout.md",""],["","fxLayout.lg",""],["","fxLayout.xl",""],["","fxLayout.lt-sm",""],["","fxLayout.lt-md",""],["","fxLayout.lt-lg",""],["","fxLayout.lt-xl",""],["","fxLayout.gt-xs",""],["","fxLayout.gt-sm",""],["","fxLayout.gt-md",""],["","fxLayout.gt-lg",""]],inputs:{fxLayout:"fxLayout","fxLayout.xs":"fxLayout.xs","fxLayout.sm":"fxLayout.sm","fxLayout.md":"fxLayout.md","fxLayout.lg":"fxLayout.lg","fxLayout.xl":"fxLayout.xl","fxLayout.lt-sm":"fxLayout.lt-sm","fxLayout.lt-md":"fxLayout.lt-md","fxLayout.lt-lg":"fxLayout.lt-lg","fxLayout.lt-xl":"fxLayout.lt-xl","fxLayout.gt-xs":"fxLayout.gt-xs","fxLayout.gt-sm":"fxLayout.gt-sm","fxLayout.gt-md":"fxLayout.gt-md","fxLayout.gt-lg":"fxLayout.gt-lg"},features:[M]}),n})();const xE=new Map,DE={"margin-left":null,"margin-right":null,"margin-top":null,"margin-bottom":null};let AH=(()=>{class n extends Qe{constructor(e,i){super(),this._styler=e,this._config=i}buildStyles(e,i){return e.endsWith(Jc)?function NH(n,t){const[e,i]=n.split(" "),s=c=>`-${c}`;let o="0px",a=s(i??e),l="0px";return"rtl"===t?l=s(e):o=s(e),{margin:`0px ${o} ${a} ${l}`}}(e=Xc(e=e.slice(0,e.indexOf(Jc)),this._config.multiplier),i.directionality):{}}sideEffect(e,i,r){const s=r.items;if(e.endsWith(Jc)){const o=function PH(n,t){const[e,i]=n.split(" ");let s="0px",a="0px";return"rtl"===t?a=e:s=e,{padding:`0px ${s} ${i??e} ${a}`}}(e=Xc(e=e.slice(0,e.indexOf(Jc)),this._config.multiplier),r.directionality);this._styler.applyStyleToElements(o,r.items)}else{e=Xc(e,this._config.multiplier),e=this.addFallbackUnit(e);const o=s.pop(),a=function LH(n,t){const e=ME(t.directionality,t.layout),i={...DE};return i[e]=n,i}(e,r);this._styler.applyStyleToElements(a,s),this._styler.applyStyleToElements(DE,[o])}}addFallbackUnit(e){return isNaN(+e)?e:`${e}${this._config.defaultUnit}`}}return n.\u0275fac=function(e){return new(e||n)(b(Re),b(Nn))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const TH=["fxLayoutGap","fxLayoutGap.xs","fxLayoutGap.sm","fxLayoutGap.md","fxLayoutGap.lg","fxLayoutGap.xl","fxLayoutGap.lt-sm","fxLayoutGap.lt-md","fxLayoutGap.lt-lg","fxLayoutGap.lt-xl","fxLayoutGap.gt-xs","fxLayoutGap.gt-sm","fxLayoutGap.gt-md","fxLayoutGap.gt-lg"];let IH=(()=>{class n extends je{constructor(e,i,r,s,o,a){super(e,o,s,a),this.zone=i,this.directionality=r,this.styleUtils=s,this.layout="row",this.DIRECTIVE_KEY="layout-gap",this.observerSubject=new De;const l=[this.directionality.change,this.observerSubject.asObservable()];this.init(l),this.marshal.trackValue(this.nativeElement,"layout").pipe(mt(this.destroySubject)).subscribe(this.onLayoutChange.bind(this))}get childrenNodes(){const e=this.nativeElement.children,i=[];for(let r=e.length;r--;)i[r]=e[r];return i}ngAfterContentInit(){this.buildChildObservable(),this.triggerUpdate()}ngOnDestroy(){super.ngOnDestroy(),this.observer&&this.observer.disconnect()}onLayoutChange(e){const r=e.value.split(" ");this.layout=r[0],Yc.find(s=>s===this.layout)||(this.layout="row"),this.triggerUpdate()}updateWithValue(e){const i=this.childrenNodes.filter(r=>1===r.nodeType&&this.willDisplay(r)).sort((r,s)=>{const o=+this.styler.lookupStyle(r,"order"),a=+this.styler.lookupStyle(s,"order");return isNaN(o)||isNaN(a)||o===a?0:o>a?1:-1});if(i.length>0){const r=this.directionality.value,s=this.layout;"row"===s&&"rtl"===r?this.styleCache=RH:"row"===s&&"rtl"!==r?this.styleCache=kH:"column"===s&&"rtl"===r?this.styleCache=FH:"column"===s&&"rtl"!==r&&(this.styleCache=OH),this.addStyles(e,{directionality:r,items:i,layout:s})}}clearStyles(){const e=Object.keys(this.mru).length>0,i=e?"padding":ME(this.directionality.value,this.layout);e&&super.clearStyles(),this.styleUtils.applyStyleToElements({[i]:""},this.childrenNodes)}willDisplay(e){const i=this.marshal.getValue(e,"show-hide");return!0===i||void 0===i&&"none"!==this.styleUtils.lookupStyle(e,"display")}buildChildObservable(){this.zone.runOutsideAngular(()=>{typeof MutationObserver<"u"&&(this.observer=new MutationObserver(e=>{e.some(r=>r.addedNodes&&r.addedNodes.length>0||r.removedNodes&&r.removedNodes.length>0)&&this.observerSubject.next()}),this.observer.observe(this.nativeElement,{childList:!0}))})}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(ae),f(Sr),f(Re),f(AH),f(Pe))},n.\u0275dir=w({type:n,features:[M]}),n})(),EE=(()=>{class n extends IH{constructor(){super(...arguments),this.inputs=TH}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=O(n)))(i||n)}}(),n.\u0275dir=w({type:n,selectors:[["","fxLayoutGap",""],["","fxLayoutGap.xs",""],["","fxLayoutGap.sm",""],["","fxLayoutGap.md",""],["","fxLayoutGap.lg",""],["","fxLayoutGap.xl",""],["","fxLayoutGap.lt-sm",""],["","fxLayoutGap.lt-md",""],["","fxLayoutGap.lt-lg",""],["","fxLayoutGap.lt-xl",""],["","fxLayoutGap.gt-xs",""],["","fxLayoutGap.gt-sm",""],["","fxLayoutGap.gt-md",""],["","fxLayoutGap.gt-lg",""]],inputs:{fxLayoutGap:"fxLayoutGap","fxLayoutGap.xs":"fxLayoutGap.xs","fxLayoutGap.sm":"fxLayoutGap.sm","fxLayoutGap.md":"fxLayoutGap.md","fxLayoutGap.lg":"fxLayoutGap.lg","fxLayoutGap.xl":"fxLayoutGap.xl","fxLayoutGap.lt-sm":"fxLayoutGap.lt-sm","fxLayoutGap.lt-md":"fxLayoutGap.lt-md","fxLayoutGap.lt-lg":"fxLayoutGap.lt-lg","fxLayoutGap.lt-xl":"fxLayoutGap.lt-xl","fxLayoutGap.gt-xs":"fxLayoutGap.gt-xs","fxLayoutGap.gt-sm":"fxLayoutGap.gt-sm","fxLayoutGap.gt-md":"fxLayoutGap.gt-md","fxLayoutGap.gt-lg":"fxLayoutGap.gt-lg"},features:[M]}),n})();const RH=new Map,FH=new Map,kH=new Map,OH=new Map,Jc=" grid";function ME(n,t){switch(t){case"column":return"margin-bottom";case"column-reverse":return"margin-top";case"row":default:return"rtl"===n?"margin-left":"margin-right";case"row-reverse":return"rtl"===n?"margin-right":"margin-left"}}let VH=(()=>{class n extends Qe{constructor(e){super(),this.layoutConfig=e}buildStyles(e,i){let[r,s,...o]=e.split(" "),a=o.join(" ");const l=i.direction.indexOf("column")>-1?"column":"row",c=va(l)?"max-width":"max-height",u=va(l)?"min-width":"min-height",d=String(a).indexOf("calc")>-1,h=d||"auto"===a,p=String(a).indexOf("%")>-1&&!d,g=String(a).indexOf("px")>-1||String(a).indexOf("rem")>-1||String(a).indexOf("em")>-1||String(a).indexOf("vw")>-1||String(a).indexOf("vh")>-1;let m=d||g;r="0"==r?0:r,s="0"==s?0:s;const _=!r&&!s;let y={};const D={"max-width":null,"max-height":null,"min-width":null,"min-height":null};switch(a||""){case"":const v=!1!==this.layoutConfig.useColumnBasisZero;a="row"===l?"0%":v?"0.000000001px":"auto";break;case"initial":case"nogrow":r=0,a="auto";break;case"grow":a="100%";break;case"noshrink":s=0,a="auto";break;case"auto":break;case"none":r=0,s=0,a="auto";break;default:!m&&!p&&!isNaN(a)&&(a+="%"),"0%"===a&&(m=!0),"0px"===a&&(a="0%"),y=wi(D,d?{"flex-grow":r,"flex-shrink":s,"flex-basis":m?a:"100%"}:{flex:`${r} ${s} ${m?a:"100%"}`})}return y.flex||y["flex-grow"]||(y=wi(D,d?{"flex-grow":r,"flex-shrink":s,"flex-basis":a}:{flex:`${r} ${s} ${a}`})),"0%"!==a&&"0px"!==a&&"0.000000001px"!==a&&"auto"!==a&&(y[u]=_||m&&r?a:null,y[c]=_||!h&&s?a:null),y[u]||y[c]?i.hasWrap&&(y[d?"flex-basis":"flex"]=y[c]?d?y[c]:`${r} ${s} ${y[c]}`:d?y[u]:`${r} ${s} ${y[u]}`):y=wi(D,d?{"flex-grow":r,"flex-shrink":s,"flex-basis":a}:{flex:`${r} ${s} ${a}`}),wi(y,{"box-sizing":"border-box"})}}return n.\u0275fac=function(e){return new(e||n)(b(Nn))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const BH=["fxFlex","fxFlex.xs","fxFlex.sm","fxFlex.md","fxFlex.lg","fxFlex.xl","fxFlex.lt-sm","fxFlex.lt-md","fxFlex.lt-lg","fxFlex.lt-xl","fxFlex.gt-xs","fxFlex.gt-sm","fxFlex.gt-md","fxFlex.gt-lg"];let jH=(()=>{class n extends je{constructor(e,i,r,s,o){super(e,s,i,o),this.layoutConfig=r,this.marshal=o,this.DIRECTIVE_KEY="flex",this.direction=void 0,this.wrap=void 0,this.flexGrow="1",this.flexShrink="1",this.init()}get shrink(){return this.flexShrink}set shrink(e){this.flexShrink=e||"1",this.triggerReflow()}get grow(){return this.flexGrow}set grow(e){this.flexGrow=e||"1",this.triggerReflow()}ngOnInit(){this.parentElement&&(this.marshal.trackValue(this.parentElement,"layout").pipe(mt(this.destroySubject)).subscribe(this.onLayoutChange.bind(this)),this.marshal.trackValue(this.nativeElement,"layout-align").pipe(mt(this.destroySubject)).subscribe(this.triggerReflow.bind(this)))}onLayoutChange(e){const r=e.value.split(" ");this.direction=r[0],this.wrap=void 0!==r[1]&&"wrap"===r[1],this.triggerUpdate()}updateWithValue(e){void 0===this.direction&&(this.direction=this.getFlexFlowDirection(this.parentElement,!1!==this.layoutConfig.addFlexToParent)),void 0===this.wrap&&(this.wrap=this.hasWrap(this.parentElement));const r=this.direction,s=r.startsWith("row"),o=this.wrap;s&&o?this.styleCache=UH:s&&!o?this.styleCache=HH:!s&&o?this.styleCache=GH:!s&&!o&&(this.styleCache=$H);const l=vE(String(e).replace(";",""),this.flexGrow,this.flexShrink);this.addStyles(l.join(" "),{direction:r,hasWrap:o})}triggerReflow(){const e=this.activatedValue;if(void 0!==e){const i=vE(e+"",this.flexGrow,this.flexShrink);this.marshal.updateElement(this.nativeElement,this.DIRECTIVE_KEY,i.join(" "))}}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Re),f(Nn),f(VH),f(Pe))},n.\u0275dir=w({type:n,inputs:{shrink:["fxShrink","shrink"],grow:["fxGrow","grow"]},features:[M]}),n})(),SE=(()=>{class n extends jH{constructor(){super(...arguments),this.inputs=BH}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=O(n)))(i||n)}}(),n.\u0275dir=w({type:n,selectors:[["","fxFlex",""],["","fxFlex.xs",""],["","fxFlex.sm",""],["","fxFlex.md",""],["","fxFlex.lg",""],["","fxFlex.xl",""],["","fxFlex.lt-sm",""],["","fxFlex.lt-md",""],["","fxFlex.lt-lg",""],["","fxFlex.lt-xl",""],["","fxFlex.gt-xs",""],["","fxFlex.gt-sm",""],["","fxFlex.gt-md",""],["","fxFlex.gt-lg",""]],inputs:{fxFlex:"fxFlex","fxFlex.xs":"fxFlex.xs","fxFlex.sm":"fxFlex.sm","fxFlex.md":"fxFlex.md","fxFlex.lg":"fxFlex.lg","fxFlex.xl":"fxFlex.xl","fxFlex.lt-sm":"fxFlex.lt-sm","fxFlex.lt-md":"fxFlex.lt-md","fxFlex.lt-lg":"fxFlex.lt-lg","fxFlex.lt-xl":"fxFlex.lt-xl","fxFlex.gt-xs":"fxFlex.gt-xs","fxFlex.gt-sm":"fxFlex.gt-sm","fxFlex.gt-md":"fxFlex.gt-md","fxFlex.gt-lg":"fxFlex.gt-lg"},features:[M]}),n})();const HH=new Map,$H=new Map,UH=new Map,GH=new Map;let AE=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[Lp,Fp]}),n})();function E$(n,t){if(1&n){const e=fr();N(0,"button",7),Ce("click",function(){ri(e);const r=ge().$implicit;return si(ge().installProject(r))}),N(1,"mat-icon",8),We(2,"install_desktop"),L(),We(3," Install "),L()}2&n&&Fo("title","Install ",ge().$implicit.name,"")}function M$(n,t){if(1&n){const e=fr();N(0,"button",7),Ce("click",function(){ri(e);const r=ge().$implicit;return si(ge().navigateToDashboard(r))}),N(1,"mat-icon",9),We(2,"open_in_new"),L(),We(3),L()}if(2&n){const e=ge().$implicit;Fo("title","View ",e.name," Dashboard"),q(3),hn(" ",e.name," Dashboard ")}}function S$(n,t){if(1&n){const e=fr();N(0,"div",2)(1,"mat-card",3)(2,"mat-card-header")(3,"mat-card-title-group")(4,"mat-card-title"),We(5),L(),N(6,"mat-card-subtitle"),We(7),L(),ze(8,"img",4),L()(),N(9,"mat-card-content")(10,"p"),We(11),L()(),N(12,"mat-card-actions")(13,"button",5),Ce("click",function(){const s=ri(e).$implicit;return si(ge().navigateTo(s.name))}),We(14,"Project Details"),L(),_e(15,E$,4,1,"button",6),_e(16,M$,4,2,"button",6),L()()()}if(2&n){const e=t.$implicit;X("fxFlex",100/ge().gridColumns+"%"),q(5),Li(e.name),q(2),Li(e.shortDescription),q(1),Ro("src",e.logo,os),q(3),hn(" ",e.description," "),q(4),X("ngIf",!e.installed),q(1),X("ngIf",e.installed)}}let A$=(()=>{class n{constructor(e,i){this.api=e,this.route=i,this.col="2",this.row="1",this.gridColumns=3}ngOnInit(){this.getData()}getData(){this.api.getData().subscribe(e=>{this.projects=e,this.projects.forEach(i=>{this.api.checkProjectInstallation({dashboardUrl:"http://localhost:"+i.installedPort}).subscribe(s=>{i.installed=200===s.status&&"installed"===s.dashboard})})})}toggleGridColumns(){this.gridColumns=3===this.gridColumns?4:3}navigateTo(e){this.route.navigateByUrl("/project-details/"+e)}navigateToDashboard(e){window.open("http://localhost:"+e.installedPort)}installProject(e){console.log(e)}}return n.\u0275fac=function(e){return new(e||n)(f(Ep),f(ut))},n.\u0275cmp=Ke({type:n,selectors:[["app-project-intro"]],decls:2,vars:1,consts:[["fxLayout","row wrap","fxLayoutGap","16px grid",1,"content"],["fxFlex.xs","100%","fxFlex.sm","33%",3,"fxFlex",4,"ngFor","ngForOf"],["fxFlex.xs","100%","fxFlex.sm","33%",3,"fxFlex"],[1,"mat-elevation-z4","project-list"],["mat-card-lg-image","",1,"project-logo",3,"src"],["mat-raised-button","","color","primary",2,"float","right",3,"click"],["style","float:right;","mat-raised-button","","color","primary",3,"title","click",4,"ngIf"],["mat-raised-button","","color","primary",2,"float","right",3,"title","click"],["aria-hidden","false","aria-label","Install Project"],["aria-hidden","false","aria-label","View Dashboard"]],template:function(e,i){1&e&&(N(0,"div",0),_e(1,S$,17,7,"div",1),L()),2&e&&(q(1),X("ngForOf",i.projects))},dependencies:[ic,vr,Fj,kj,Oj,Sj,Aj,Tj,Ij,Rj,YD,rE,CE,EE,SE],styles:[".content[_ngcontent-%COMP%]{padding:16px}.content[_ngcontent-%COMP%] > mat-card[_ngcontent-%COMP%]{margin-bottom:16px}.content[_ngcontent-%COMP%] > mat-card[_ngcontent-%COMP%]{width:200px;min-height:250px}.mat-card.project-list[_ngcontent-%COMP%]{min-height:250px}.mat-card.project-list[_ngcontent-%COMP%] > mat-card-content[_ngcontent-%COMP%]{min-height:40px}.mat-card.project-list[_ngcontent-%COMP%] .mat-card-title-group[_ngcontent-%COMP%]{width:100%}"]}),n})();const T$=["*",[["mat-toolbar-row"]]],I$=["*","mat-toolbar-row"],R$=ga(class{constructor(n){this._elementRef=n}});let $p=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=w({type:n,selectors:[["mat-toolbar-row"]],hostAttrs:[1,"mat-toolbar-row"],exportAs:["matToolbarRow"]}),n})(),TE=(()=>{class n extends R${constructor(e,i,r){super(e),this._platform=i,this._document=r}ngAfterViewInit(){this._platform.isBrowser&&(this._checkToolbarMixedModes(),this._toolbarRows.changes.subscribe(()=>this._checkToolbarMixedModes()))}_checkToolbarMixedModes(){}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Xn),f(ie))},n.\u0275cmp=Ke({type:n,selectors:[["mat-toolbar"]],contentQueries:function(e,i,r){if(1&e&&fn(r,$p,5),2&e){let s;ke(s=Oe())&&(i._toolbarRows=s)}},hostAttrs:[1,"mat-toolbar"],hostVars:4,hostBindings:function(e,i){2&e&&Ie("mat-toolbar-multiple-rows",i._toolbarRows.length>0)("mat-toolbar-single-row",0===i._toolbarRows.length)},inputs:{color:"color"},exportAs:["matToolbar"],features:[M],ngContentSelectors:I$,decls:2,vars:0,template:function(e,i){1&e&&(Tn(T$),ht(0),ht(1,1))},styles:[".cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.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%}\n"],encapsulation:2,changeDetection:0}),n})(),F$=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[Be],Be]}),n})();class Up{attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t&&(this._attachedHost=null,t.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class k$ extends Up{constructor(t,e,i,r){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=r}}class Gp extends Up{constructor(t,e,i){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class O$ extends Up{constructor(t){super(),this.element=t instanceof k?t.nativeElement:t}}let N$=(()=>{class n extends Gp{constructor(e,i){super(e,i)}}return n.\u0275fac=function(e){return new(e||n)(f(Xt),f(Ct))},n.\u0275dir=w({type:n,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[M]}),n})(),zp=(()=>{class n extends class P${constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof k$?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof Gp?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof O$?(this._attachedPortal=t,this.attachDomPortal(t)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}{constructor(e,i,r){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new ee,this.attachDomPortal=s=>{const o=s.element,a=this._document.createComment("dom-portal");s.setAttachedHost(this),o.parentNode.insertBefore(a,o),this._getRootNode().appendChild(o),this._attachedPortal=s,super.setDisposeFn(()=>{a.parentNode&&a.parentNode.replaceChild(o,a)})},this._document=r}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedPortal=null,this._attachedRef=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,s=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),o=i.createComponent(s,i.length,e.injector||i.injector);return i!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),super.setDisposeFn(()=>o.destroy()),this._attachedPortal=e,this._attachedRef=o,this.attached.emit(o),o}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context);return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}}return n.\u0275fac=function(e){return new(e||n)(f(ur),f(Ct),f(ie))},n.\u0275dir=w({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[M]}),n})(),L$=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({}),n})();const V$=["addListener","removeListener"],B$=["addEventListener","removeEventListener"],j$=["on","off"];function wa(n,t,e,i){if(le(e)&&(i=e,e=void 0),i)return wa(n,t,e).pipe(qf(i));const[r,s]=function U$(n){return le(n.addEventListener)&&le(n.removeEventListener)}(n)?B$.map(o=>a=>n[o](t,a,e)):function H$(n){return le(n.addListener)&&le(n.removeListener)}(n)?V$.map(IE(n,t)):function $$(n){return le(n.on)&&le(n.off)}(n)?j$.map(IE(n,t)):[];if(!r&&Pu(n))return st(o=>wa(o,t,e))(Ot(n));if(!r)throw new TypeError("Invalid event target");return new xe(o=>{const a=(...l)=>o.next(1s(a)})}function IE(n,t){return e=>i=>n[e](t,i)}function Wp(n=0,t,e=B2){let i=-1;return null!=t&&(hm(t)?e=t:i=t),new xe(r=>{let s=function G$(n){return n instanceof Date&&!isNaN(n)}(n)?+n-e.now():n;s<0&&(s=0);let o=0;return e.schedule(function(){r.closed||(r.next(o++),0<=i?this.schedule(void 0,i):r.complete())},s)})}class RE{}const xi="*";function W$(n,t){return{type:7,name:n,definitions:t,options:{}}}function qp(n,t=null){return{type:4,styles:t,timings:n}}function FE(n,t=null){return{type:2,steps:n,options:t}}function Ir(n){return{type:6,styles:n,offset:null}}function Qp(n,t,e){return{type:0,name:n,styles:t,options:e}}function Kp(n,t,e=null){return{type:1,expr:n,animation:t,options:e}}function kE(n){Promise.resolve().then(n)}class Ca{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){kE(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class OE{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,r=0;const s=this.players.length;0==s?kE(()=>this._onFinish()):this.players.forEach(o=>{o.onDone(()=>{++e==s&&this._onFinish()}),o.onDestroy(()=>{++i==s&&this._onDestroy()}),o.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((o,a)=>Math.max(o,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){const t=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}const xa={schedule(n){let t=requestAnimationFrame,e=cancelAnimationFrame;const{delegate:i}=xa;i&&(t=i.requestAnimationFrame,e=i.cancelAnimationFrame);const r=t(s=>{e=void 0,n(s)});return new Ue(()=>e?.(r))},requestAnimationFrame(...n){const{delegate:t}=xa;return(t?.requestAnimationFrame||requestAnimationFrame)(...n)},cancelAnimationFrame(...n){const{delegate:t}=xa;return(t?.cancelAnimationFrame||cancelAnimationFrame)(...n)},delegate:void 0};new class Q$ extends Tp{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class q$ extends Ap{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=xa.requestAnimationFrame(()=>t.flush(void 0))))}recycleAsyncId(t,e,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(t,e,i);const{actions:s}=t;null!=e&&(null===(r=s[s.length-1])||void 0===r?void 0:r.id)!==e&&(xa.cancelAnimationFrame(e),t._scheduled=void 0)}});let Yp,Z$=1;const eu={};function PE(n){return n in eu&&(delete eu[n],!0)}const Y$={setImmediate(n){const t=Z$++;return eu[t]=!0,Yp||(Yp=Promise.resolve()),Yp.then(()=>PE(t)&&n()),t},clearImmediate(n){PE(n)}},{setImmediate:X$,clearImmediate:J$}=Y$,tu={setImmediate(...n){const{delegate:t}=tu;return(t?.setImmediate||X$)(...n)},clearImmediate(n){const{delegate:t}=tu;return(t?.clearImmediate||J$)(n)},delegate:void 0};new class tU extends Tp{flush(t){this._active=!0;const e=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;t=t||i.shift();do{if(r=t.execute(t.state,t.delay))break}while((t=i[0])&&t.id===e&&i.shift());if(this._active=!1,r){for(;(t=i[0])&&t.id===e&&i.shift();)t.unsubscribe();throw r}}}(class eU extends Ap{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,i=0){return null!==i&&i>0?super.requestAsyncId(t,e,i):(t.actions.push(this),t._scheduled||(t._scheduled=tu.setImmediate(t.flush.bind(t,void 0))))}recycleAsyncId(t,e,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(t,e,i);const{actions:s}=t;null!=e&&(null===(r=s[s.length-1])||void 0===r?void 0:r.id)!==e&&(tu.clearImmediate(e),t._scheduled=void 0)}});let nu=(()=>{class n{constructor(e,i,r){this._platform=e,this._change=new De,this._changeListener=s=>{this._change.next(s)},this._document=r,i.runOutsideAngular(()=>{if(e.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+r,right:e.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),r=e.documentElement,s=r.getBoundingClientRect();return{top:-s.top||e.body.scrollTop||i.scrollY||r.scrollTop||0,left:-s.left||e.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(function rU(n,t=Gc){return function iU(n){return Ne((t,e)=>{let i=!1,r=null,s=null,o=!1;const a=()=>{if(s?.unsubscribe(),s=null,i){i=!1;const c=r;r=null,e.next(c)}o&&e.complete()},l=()=>{s=null,o&&e.complete()};t.subscribe(Te(e,c=>{i=!0,r=c,s||Ot(n(c)).subscribe(s=Te(e,a,l))},()=>{o=!0,(!i||!s||s.closed)&&e.complete()}))})}(()=>Wp(n,t))}(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}}return n.\u0275fac=function(e){return new(e||n)(b(Xn),b(ae),b(ie,8))},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function oU(n,t){1&n&&ht(0)}const NE=["*"];function aU(n,t){}const lU=function(n){return{animationDuration:n}},cU=function(n,t){return{value:n,params:t}},uU=["tabListContainer"],dU=["tabList"],hU=["tabListInner"],fU=["nextPaginator"],pU=["previousPaginator"],gU=["tabBodyWrapper"],mU=["tabHeader"];function yU(n,t){}function _U(n,t){1&n&&_e(0,yU,0,0,"ng-template",10),2&n&&X("cdkPortalOutlet",ge().$implicit.templateLabel)}function vU(n,t){1&n&&We(0),2&n&&Li(ge().$implicit.textLabel)}function bU(n,t){if(1&n){const e=fr();N(0,"div",6),Ce("click",function(){const r=ri(e),s=r.$implicit,o=r.index,a=ge(),l=So(1);return si(a._handleClick(s,l,o))})("cdkFocusChange",function(r){const o=ri(e).index;return si(ge()._tabFocusChanged(r,o))}),N(1,"div",7),_e(2,_U,1,1,"ng-template",8),_e(3,vU,1,1,"ng-template",null,9,aw),L()()}if(2&n){const e=t.$implicit,i=t.index,r=So(4),s=ge();Ie("mat-tab-label-active",s.selectedIndex===i),X("id",s._getTabLabelId(i))("ngClass",e.labelClass)("disabled",e.disabled)("matRippleDisabled",e.disabled||s.disableRipple),Ze("tabIndex",s._getTabIndex(e,i))("aria-posinset",i+1)("aria-setsize",s._tabs.length)("aria-controls",s._getTabContentId(i))("aria-selected",s.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),q(2),X("ngIf",e.templateLabel)("ngIfElse",r)}}function wU(n,t){if(1&n){const e=fr();N(0,"mat-tab-body",11),Ce("_onCentered",function(){return ri(e),si(ge()._removeTabBodyWrapperHeight())})("_onCentering",function(r){return ri(e),si(ge()._setTabBodyWrapperHeight(r))}),L()}if(2&n){const e=t.$implicit,i=t.index,r=ge();Ie("mat-tab-body-active",r.selectedIndex===i),X("id",r._getTabContentId(i))("ngClass",e.bodyClass)("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",r.animationDuration),Ze("tabindex",null!=r.contentTabIndex&&r.selectedIndex===i?r.contentTabIndex:null)("aria-labelledby",r._getTabLabelId(i))}}const CU=new S("MatInkBarPositioner",{providedIn:"root",factory:function xU(){return t=>({left:t?(t.offsetLeft||0)+"px":"0",width:t?(t.offsetWidth||0)+"px":"0"})}});let LE=(()=>{class n{constructor(e,i,r,s){this._elementRef=e,this._ngZone=i,this._inkBarPositioner=r,this._animationMode=s}alignToElement(e){this.show(),this._ngZone.onStable.pipe(Kn(1)).subscribe(()=>{const i=this._inkBarPositioner(e),r=this._elementRef.nativeElement;r.style.left=i.left,r.style.width=i.width})}show(){this._elementRef.nativeElement.style.visibility="visible"}hide(){this._elementRef.nativeElement.style.visibility="hidden"}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(ae),f(CU),f(en,8))},n.\u0275dir=w({type:n,selectors:[["mat-ink-bar"]],hostAttrs:[1,"mat-ink-bar"],hostVars:2,hostBindings:function(e,i){2&e&&Ie("_mat-animation-noopable","NoopAnimations"===i._animationMode)}}),n})();const DU=new S("MatTabContent"),VE=new S("MatTabLabel"),BE=new S("MAT_TAB");let EU=(()=>{class n extends N${constructor(e,i,r){super(e,i),this._closestTab=r}}return n.\u0275fac=function(e){return new(e||n)(f(Xt),f(Ct),f(BE,8))},n.\u0275dir=w({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[ve([{provide:VE,useExisting:n}]),M]}),n})();const MU=kp(class{}),jE=new S("MAT_TAB_GROUP");let HE=(()=>{class n extends MU{constructor(e,i){super(),this._viewContainerRef=e,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new De,this.position=null,this.origin=null,this.isActive=!1}get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}get content(){return this._contentPortal}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Gp(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}}return n.\u0275fac=function(e){return new(e||n)(f(Ct),f(jE,8))},n.\u0275cmp=Ke({type:n,selectors:[["mat-tab"]],contentQueries:function(e,i,r){if(1&e&&(fn(r,VE,5),fn(r,DU,7,Xt)),2&e){let s;ke(s=Oe())&&(i.templateLabel=s.first),ke(s=Oe())&&(i._explicitContent=s.first)}},viewQuery:function(e,i){if(1&e&&Jt(Xt,7),2&e){let r;ke(r=Oe())&&(i._implicitContent=r.first)}},inputs:{disabled:"disabled",textLabel:["label","textLabel"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},exportAs:["matTab"],features:[ve([{provide:BE,useExisting:n}]),M,vt],ngContentSelectors:NE,decls:1,vars:0,template:function(e,i){1&e&&(Tn(),_e(0,oU,1,0,"ng-template"))},encapsulation:2}),n})();const SU={translateTab:W$("translateTab",[Qp("center, void, left-origin-center, right-origin-center",Ir({transform:"none"})),Qp("left",Ir({transform:"translate3d(-100%, 0, 0)",minHeight:"1px"})),Qp("right",Ir({transform:"translate3d(100%, 0, 0)",minHeight:"1px"})),Kp("* => left, * => right, left => center, right => center",qp("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Kp("void => left-origin-center",[Ir({transform:"translate3d(-100%, 0, 0)"}),qp("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Kp("void => right-origin-center",[Ir({transform:"translate3d(100%, 0, 0)"}),qp("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let AU=(()=>{class n extends zp{constructor(e,i,r,s){super(e,i,s),this._host=r,this._centeringSub=Ue.EMPTY,this._leavingSub=Ue.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(Rs(this._host._isCenterPosition(this._host._position))).subscribe(e=>{e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(f(ur),f(Ct),f(me(()=>$E)),f(ie))},n.\u0275dir=w({type:n,selectors:[["","matTabBodyHost",""]],features:[M]}),n})(),TU=(()=>{class n{constructor(e,i,r){this._elementRef=e,this._dir=i,this._dirChangeSubscription=Ue.EMPTY,this._translateTabComplete=new De,this._onCentering=new ee,this._beforeCentering=new ee,this._afterLeavingCenter=new ee,this._onCentered=new ee(!0),this.animationDuration="500ms",i&&(this._dirChangeSubscription=i.change.subscribe(s=>{this._computePositionAnimationState(s),r.markForCheck()})),this._translateTabComplete.pipe(FD((s,o)=>s.fromState===o.fromState&&s.toState===o.toState)).subscribe(s=>{this._isCenterPosition(s.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(s.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}set position(e){this._positionIndex=e,this._computePositionAnimationState()}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){const i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e}_computePositionAnimationState(e=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center"}_computePositionFromOrigin(e){const i=this._getLayoutDirection();return"ltr"==i&&e<=0||"rtl"==i&&e>0?"left-origin-center":"right-origin-center"}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Sr,8),f(Vt))},n.\u0275dir=w({type:n,inputs:{_content:["content","_content"],origin:"origin",animationDuration:"animationDuration",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}}),n})(),$E=(()=>{class n extends TU{constructor(e,i,r){super(e,i,r)}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Sr,8),f(Vt))},n.\u0275cmp=Ke({type:n,selectors:[["mat-tab-body"]],viewQuery:function(e,i){if(1&e&&Jt(zp,5),2&e){let r;ke(r=Oe())&&(i._portalHost=r.first)}},hostAttrs:[1,"mat-tab-body"],features:[M],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(e,i){1&e&&(N(0,"div",0,1),Ce("@translateTab.start",function(s){return i._onTranslateTabStarted(s)})("@translateTab.done",function(s){return i._translateTabComplete.next(s)}),_e(2,aU,0,0,"ng-template",2),L()),2&e&&X("@translateTab",zb(3,cU,i._position,$h(1,lU,i.animationDuration)))},dependencies:[AU],styles:['.mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}.mat-tab-body-content[style*="visibility: hidden"]{display:none}\n'],encapsulation:2,data:{animation:[SU.translateTab]}}),n})();const UE=new S("MAT_TABS_CONFIG"),IU=kp(class{});let GE=(()=>{class n extends IU{constructor(e){super(),this.elementRef=e}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}}return n.\u0275fac=function(e){return new(e||n)(f(k))},n.\u0275dir=w({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(e,i){2&e&&(Ze("aria-disabled",!!i.disabled),Ie("mat-tab-disabled",i.disabled))},inputs:{disabled:"disabled"},features:[M]}),n})();const zE=jc({passive:!0});let kU=(()=>{class n{constructor(e,i,r,s,o,a,l){this._elementRef=e,this._changeDetectorRef=i,this._viewportRuler=r,this._dir=s,this._ngZone=o,this._platform=a,this._animationMode=l,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new De,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new De,this.disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new ee,this.indexFocused=new ee,o.runOutsideAngular(()=>{wa(e.nativeElement,"mouseleave").pipe(mt(this._destroyed)).subscribe(()=>{this._stopInterval()})})}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){e=Mr(e),this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}ngAfterViewInit(){wa(this._previousPaginator.nativeElement,"touchstart",zE).pipe(mt(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),wa(this._nextPaginator.nativeElement,"touchstart",zE).pipe(mt(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const e=this._dir?this._dir.change:F("ltr"),i=this._viewportRuler.change(150),r=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new LD(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap(),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe(Kn(1)).subscribe(r),jr(e,i,this._items.changes,this._itemsResized()).pipe(mt(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),r()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.pipe(mt(this._destroyed)).subscribe(s=>{this.indexFocused.emit(s),this._setTabFocus(s)})}_itemsResized(){return"function"!=typeof ResizeObserver?Bn:this._items.changes.pipe(Rs(this._items),Pn(e=>new xe(i=>this._ngZone.runOutsideAngular(()=>{const r=new ResizeObserver(()=>{i.next()});return e.forEach(s=>{r.observe(s.elementRef.nativeElement)}),()=>{r.disconnect()}}))),RD(1))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.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())}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!$c(e))switch(e.keyCode){case 13:case 32:this.focusIndex!==this.selectedIndex&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e));break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){const e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){if(!this._items)return!0;const i=this._items?this._items.toArray()[e]:null;return!!i&&!i.disabled}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const e=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){return this._scrollTo(this._scrollDistance+("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;const i=this._items?this._items.toArray()[e]:null;if(!i)return;const r=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:o}=i.elementRef.nativeElement;let a,l;"ltr"==this._getLayoutDirection()?(a=s,l=a+o):(l=this._tabListInner.nativeElement.offsetWidth-s,a=l-o);const c=this.scrollDistance,u=this.scrollDistance+r;au&&(this.scrollDistance+=l-u+60)}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const e=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),Wp(650,100).pipe(mt(jr(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:r,distance:s}=this._scrollHeader(e);(0===s||s>=r)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Vt),f(nu),f(Sr,8),f(ae),f(Xn),f(en,8))},n.\u0275dir=w({type:n,inputs:{disablePagination:"disablePagination"}}),n})(),OU=(()=>{class n extends kU{constructor(e,i,r,s,o,a,l){super(e,i,r,s,o,a,l),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=ft(e)}_itemSelected(e){e.preventDefault()}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Vt),f(nu),f(Sr,8),f(ae),f(Xn),f(en,8))},n.\u0275dir=w({type:n,inputs:{disableRipple:"disableRipple"},features:[M]}),n})(),PU=(()=>{class n extends OU{constructor(e,i,r,s,o,a,l){super(e,i,r,s,o,a,l)}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Vt),f(nu),f(Sr,8),f(ae),f(Xn),f(en,8))},n.\u0275cmp=Ke({type:n,selectors:[["mat-tab-header"]],contentQueries:function(e,i,r){if(1&e&&fn(r,GE,4),2&e){let s;ke(s=Oe())&&(i._items=s)}},viewQuery:function(e,i){if(1&e&&(Jt(LE,7),Jt(uU,7),Jt(dU,7),Jt(hU,7),Jt(fU,5),Jt(pU,5)),2&e){let r;ke(r=Oe())&&(i._inkBar=r.first),ke(r=Oe())&&(i._tabListContainer=r.first),ke(r=Oe())&&(i._tabList=r.first),ke(r=Oe())&&(i._tabListInner=r.first),ke(r=Oe())&&(i._nextPaginator=r.first),ke(r=Oe())&&(i._previousPaginator=r.first)}},hostAttrs:[1,"mat-tab-header"],hostVars:4,hostBindings:function(e,i){2&e&&Ie("mat-tab-header-pagination-controls-enabled",i._showPaginationControls)("mat-tab-header-rtl","rtl"==i._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[M],ngContentSelectors:NE,decls:14,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-tab-header-pagination","mat-tab-header-pagination-before","mat-elevation-z4",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-tab-header-pagination-chevron"],[1,"mat-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-tab-header-pagination","mat-tab-header-pagination-after","mat-elevation-z4",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(e,i){1&e&&(Tn(),N(0,"button",0,1),Ce("click",function(){return i._handlePaginatorClick("before")})("mousedown",function(s){return i._handlePaginatorPress("before",s)})("touchend",function(){return i._stopInterval()}),ze(2,"div",2),L(),N(3,"div",3,4),Ce("keydown",function(s){return i._handleKeydown(s)}),N(5,"div",5,6),Ce("cdkObserveContent",function(){return i._onContentChanges()}),N(7,"div",7,8),ht(9),L(),ze(10,"mat-ink-bar"),L()(),N(11,"button",9,10),Ce("mousedown",function(s){return i._handlePaginatorPress("after",s)})("click",function(){return i._handlePaginatorClick("after")})("touchend",function(){return i._stopInterval()}),ze(13,"div",2),L()),2&e&&(Ie("mat-tab-header-pagination-disabled",i._disableScrollBefore),X("matRippleDisabled",i._disableScrollBefore||i.disableRipple)("disabled",i._disableScrollBefore||null),q(5),Ie("_mat-animation-noopable","NoopAnimations"===i._animationMode),q(6),Ie("mat-tab-header-pagination-disabled",i._disableScrollAfter),X("matRippleDisabled",i._disableScrollAfter||i.disableRipple)("disabled",i._disableScrollAfter||null))},dependencies:[ya,U2,LE],styles:[".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.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-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.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:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\n"],encapsulation:2}),n})(),NU=0;class LU{}const VU=ga(Wc(class{constructor(n){this._elementRef=n}}),"primary");let BU=(()=>{class n extends VU{constructor(e,i,r,s){super(e),this._changeDetectorRef=i,this._animationMode=s,this._tabs=new Ms,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=Ue.EMPTY,this._tabLabelSubscription=Ue.EMPTY,this._selectedIndex=null,this.headerPosition="above",this.selectedIndexChange=new ee,this.focusChange=new ee,this.animationDone=new ee,this.selectedTabChange=new ee(!0),this._groupId=NU++,this.animationDuration=r&&r.animationDuration?r.animationDuration:"500ms",this.disablePagination=!(!r||null==r.disablePagination)&&r.disablePagination,this.dynamicHeight=!(!r||null==r.dynamicHeight)&&r.dynamicHeight,this.contentTabIndex=r?.contentTabIndex??null}get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(e){this._dynamicHeight=ft(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=Mr(e,null)}get animationDuration(){return this._animationDuration}set animationDuration(e){this._animationDuration=/^\d+$/.test(e+"")?e+"ms":e}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=Mr(e,null)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){const i=this._elementRef.nativeElement;i.classList.remove(`mat-background-${this.backgroundColor}`),e&&i.classList.add(`mat-background-${e}`),this._backgroundColor=e}ngAfterContentChecked(){const e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));const r=this._tabBodyWrapper.nativeElement;r.style.minHeight=r.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((r,s)=>r.isActive=s===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,r)=>{i.position=r-e,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){const i=this._tabs.toArray();let r;for(let s=0;s{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(Rs(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){const i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){const i=new LU;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=jr(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`mat-tab-label-${this._groupId}-${e}`}_getTabContentId(e){return`mat-tab-content-${this._groupId}-${e}`}_setTabBodyWrapperHeight(e){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){const e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,r){e.disabled||(this.selectedIndex=i.focusIndex=r)}_getTabIndex(e,i){return e.disabled?null:i===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(e,i){e&&"mouse"!==e&&"touch"!==e&&(this._tabHeader.focusIndex=i)}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Vt),f(UE,8),f(en,8))},n.\u0275dir=w({type:n,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[M]}),n})(),jU=(()=>{class n extends BU{constructor(e,i,r,s){super(e,i,r,s)}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Vt),f(UE,8),f(en,8))},n.\u0275cmp=Ke({type:n,selectors:[["mat-tab-group"]],contentQueries:function(e,i,r){if(1&e&&fn(r,HE,5),2&e){let s;ke(s=Oe())&&(i._allTabs=s)}},viewQuery:function(e,i){if(1&e&&(Jt(gU,5),Jt(mU,5)),2&e){let r;ke(r=Oe())&&(i._tabBodyWrapper=r.first),ke(r=Oe())&&(i._tabHeader=r.first)}},hostAttrs:[1,"mat-tab-group"],hostVars:4,hostBindings:function(e,i){2&e&&Ie("mat-tab-group-dynamic-height",i.dynamicHeight)("mat-tab-group-inverted-header","below"===i.headerPosition)},inputs:{color:"color",disableRipple:"disableRipple"},exportAs:["matTabGroup"],features:[ve([{provide:jE,useExisting:n}]),M],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mat-tab-label mat-focus-indicator","role","tab","matTabLabelWrapper","","mat-ripple","","cdkMonitorElementFocus","",3,"id","mat-tab-label-active","ngClass","disabled","matRippleDisabled","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-tab-body-active","ngClass","content","position","origin","animationDuration","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","mat-ripple","","cdkMonitorElementFocus","",1,"mat-tab-label","mat-focus-indicator",3,"id","ngClass","disabled","matRippleDisabled","click","cdkFocusChange"],[1,"mat-tab-label-content"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","_onCentered","_onCentering"]],template:function(e,i){1&e&&(N(0,"mat-tab-header",0,1),Ce("indexFocused",function(s){return i._focusChanged(s)})("selectFocusedIndex",function(s){return i.selectedIndex=s}),_e(2,bU,5,15,"div",2),L(),N(3,"div",3,4),_e(5,wU,1,10,"mat-tab-body",5),L()),2&e&&(X("selectedIndex",i.selectedIndex||0)("disableRipple",i.disableRipple)("disablePagination",i.disablePagination),q(2),X("ngForOf",i._tabs),q(1),Ie("_mat-animation-noopable","NoopAnimations"===i._animationMode),q(2),X("ngForOf",i._tabs))},dependencies:[PU,$E,ic,GE,ya,ij,nc,vr,zp],styles:[".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.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:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.cdk-high-contrast-active .mat-tab-label:focus{outline:dotted 2px;outline-offset:-2px}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.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}\n"],encapsulation:2}),n})(),HU=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[oc,Be,L$,Pp,OD,rj],Be]}),n})(),$U=(()=>{class n{constructor(e){this.domSanitizer=e}transform(e){return this.domSanitizer.bypassSecurityTrustResourceUrl(e)}}return n.\u0275fac=function(e){return new(e||n)(f(Zo,16))},n.\u0275pipe=Et({name:"safe",type:n,pure:!0}),n})();function UU(n,t){1&n&&We(0),2&n&&Li(ge().$implicit.tabName)}function GU(n,t){if(1&n&&(N(0,"li"),We(1),L()),2&n){const e=t.$implicit;q(1),hn(" ",e," ")}}function zU(n,t){if(1&n&&(N(0,"div",11)(1,"ul"),_e(2,GU,2,1,"li",7),L()()),2&n){const e=ge().$implicit;q(2),X("ngForOf",e.content)}}function WU(n,t){if(1&n&&(N(0,"li"),We(1),L()),2&n){const e=t.$implicit;q(1),hn(" ",e," ")}}function qU(n,t){if(1&n&&(Ao(0),N(1,"div",12),We(2),L(),N(3,"div",13)(4,"ul"),_e(5,WU,2,1,"li",7),L()(),To()),2&n){const e=t.$implicit;q(2),hn(" ",e.title," "),q(3),X("ngForOf",e.content)}}function QU(n,t){if(1&n&&(N(0,"div",11),_e(1,qU,6,2,"ng-container",7),L()),2&n){const e=ge().$implicit;q(1),X("ngForOf",e.content)}}function KU(n,t){if(1&n&&(N(0,"div",11)(1,"div",15),ze(2,"img",16),L(),N(3,"div",17),We(4),L()()),2&n){const e=ge().$implicit;q(2),Ro("src",e.url,os),q(2),hn(" ",e.description," ")}}function ZU(n,t){if(1&n&&(N(0,"div",11)(1,"ul")(2,"li")(3,"a",18),We(4),L()()()()),2&n){const e=ge().$implicit;q(3),Ro("href",e.url,os),q(1),hn(" ",e.description," ")}}function YU(n,t){if(1&n&&(N(0,"div",19)(1,"div",20)(2,"p"),We(3),L(),ze(4,"iframe",21),function Yb(n,t){const e=oe();let i;const r=n+22;e.firstCreatePass?(i=function LO(n,t){if(t)for(let e=t.length-1;e>=0;e--){const i=t[e];if(n===i.name)return i}}(t,e.pipeRegistry),e.data[r]=i,i.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(r,i.onDestroy)):i=e.data[r];const s=i.factory||(i.factory=rr(i.type)),o=ln(f);try{const a=tl(!1),l=s();return tl(a),function RF(n,t,e,i){e>=n.data.length&&(n.data[e]=null,n.blueprint[e]=null),t[e]=i}(e,x(),r,l),l}finally{ln(o)}}(5,"safe"),L()()),2&n){const e=ge().$implicit;q(3),Li(e.description),q(1),X("src",function Xb(n,t,e){const i=n+22,r=x(),s=Wr(r,i);return function jo(n,t){return n[1].data[t].pure}(r,i)?Wb(r,At(),t,s.transform,e,s):s.transform(e)}(5,2,e.url),zd)}}function XU(n,t){if(1&n&&(Ao(0),_e(1,KU,5,2,"div",9),_e(2,ZU,5,2,"div",9),_e(3,YU,6,4,"div",14),To()),2&n){const e=t.$implicit;q(1),X("ngIf","image"==e.type),q(1),X("ngIf","url"==e.type),q(1),X("ngIf","video"==e.type)}}function JU(n,t){if(1&n&&(N(0,"div"),_e(1,XU,4,3,"ng-container",7),L()),2&n){const e=ge().$implicit;q(1),X("ngForOf",e.content)}}function eG(n,t){if(1&n&&(N(0,"mat-tab"),_e(1,UU,1,1,"ng-template",8),_e(2,zU,3,1,"div",9),_e(3,QU,2,1,"div",9),_e(4,JU,2,1,"div",10),L()),2&n){const e=t.$implicit;q(2),X("ngIf","array"==e.type),q(1),X("ngIf","array-object"==e.type),q(1),X("ngIf","object"==e.type)}}function tG(n,t){if(1&n){const e=fr();N(0,"div",1)(1,"div",2)(2,"mat-toolbar")(3,"mat-toolbar-row")(4,"div",3),We(5),L(),ze(6,"span",4),N(7,"button",5),Ce("click",function(){return ri(e),si(ge().returnBack())}),N(8,"mat-icon"),We(9,"arrow_back"),L()()()()(),N(10,"div",6)(11,"mat-tab-group"),_e(12,eG,5,3,"mat-tab",7),L()()()}if(2&n){const e=ge();q(5),hn("Project - ",e.projectDetails.name,""),q(7),X("ngForOf",e.projectDetails.details)}}const nG=[{path:"",redirectTo:"projects",pathMatch:"full"},{path:"projects",component:A$},{path:"project-details/:projectName",component:(()=>{class n{constructor(e,i,r){this.api=e,this.route=i,this.router=r,this.tabs=[]}ngOnInit(){this.projectName=this.route.snapshot.paramMap.get("projectName")?.toLowerCase(),this.getProjectDetails()}getProjectDetails(){this.api.getProjectDetails(this.projectName).subscribe(e=>{this.projectDetails=e})}returnBack(){this.router.navigateByUrl("projects")}}return n.\u0275fac=function(e){return new(e||n)(f(Ep),f(Gi),f(ut))},n.\u0275cmp=Ke({type:n,selectors:[["app-project-details"]],decls:1,vars:1,consts:[["class","project-details-container",4,"ngIf"],[1,"project-details-container"],[1,"details-top"],[1,"p-name"],[1,"example-spacer"],["mat-raised-button","","color","accent",3,"click"],[1,"details-container"],[4,"ngFor","ngForOf"],["mat-tab-label",""],["class","tab-content",4,"ngIf"],[4,"ngIf"],[1,"tab-content"],[1,"title"],[1,"line-items"],["class","tab-content-video",4,"ngIf"],[1,"arch-images"],[3,"src"],[1,"arch-desc"],["target","_blank",3,"href"],[1,"tab-content-video"],[1,"video-content"],["width","640","height","480","allow","autoplay",3,"src"]],template:function(e,i){1&e&&_e(0,tG,13,2,"div",0),2&e&&X("ngIf",i.projectDetails)},dependencies:[ic,vr,YD,TE,$p,rE,jU,EU,HE,$U],styles:[".project-details-container[_ngcontent-%COMP%]{padding:12px}.project-details-container[_ngcontent-%COMP%] .p-name[_ngcontent-%COMP%]{font-weight:700;font-size:18px}.project-details-container[_ngcontent-%COMP%] .example-spacer[_ngcontent-%COMP%]{flex:1 1 auto}.project-details-container[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%]{clear:both}.project-details-container[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-weight:700;font-size:16px;margin:12px 0}.project-details-container[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{list-style:none;font-size:16px;padding-bottom:12px;list-style-type:disclosure-closed}.project-details-container[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#314b78;text-decoration:none}.project-details-container[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#00f}.project-details-container[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%] .arch-images[_ngcontent-%COMP%]{max-width:60%;max-height:40%;margin:24px;float:left}.project-details-container[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%] .arch-images[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:100%;box-sizing:border-box;max-width:100%;max-height:100%;width:100%}.project-details-container[_ngcontent-%COMP%] .tab-content[_ngcontent-%COMP%] .arch-desc[_ngcontent-%COMP%]{padding:24px;font-size:16px}.project-details-container[_ngcontent-%COMP%] .tab-content-video[_ngcontent-%COMP%]{float:left;width:48%;padding:1%;font-size:16px;font-weight:700}"]}),n})()}];let iG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[bD.forRoot(nG),bD]}),n})();function qE(n,t){return t?e=>yc(t.pipe(Kn(1),function rG(){return Ne((n,t)=>{n.subscribe(Te(t,Oa))})}()),e.pipe(qE(n))):st((e,i)=>n(e,i).pipe(Kn(1),gx(e)))}let QE=(()=>{class n{constructor(){this.loadingSub=new Ht(!1),this.loadingMap=new Map}setLoading(e,i){if(!i)throw new Error("The request URL must be provided to the LoadingService.setLoading function");!0===e?(this.loadingMap.set(i,e),this.loadingSub.next(!0)):!1===e&&this.loadingMap.has(i)&&this.loadingMap.delete(i),0===this.loadingMap.size&&this.loadingSub.next(!1)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function oG(n,t){if(1&n&&(Ka(),ze(0,"circle",4)),2&n){const e=ge(),i=So(1);xs("animation-name","mat-progress-spinner-stroke-rotate-"+e._spinnerAnimationLabel)("stroke-dashoffset",e._getStrokeDashOffset(),"px")("stroke-dasharray",e._getStrokeCircumference(),"px")("stroke-width",e._getCircleStrokeWidth(),"%")("transform-origin",e._getCircleTransformOrigin(i)),Ze("r",e._getCircleRadius())}}function aG(n,t){if(1&n&&(Ka(),ze(0,"circle",4)),2&n){const e=ge(),i=So(1);xs("stroke-dashoffset",e._getStrokeDashOffset(),"px")("stroke-dasharray",e._getStrokeCircumference(),"px")("stroke-width",e._getCircleStrokeWidth(),"%")("transform-origin",e._getCircleTransformOrigin(i)),Ze("r",e._getCircleRadius())}}const cG=ga(class{constructor(n){this._elementRef=n}},"primary"),uG=new S("mat-progress-spinner-default-options",{providedIn:"root",factory:function dG(){return{diameter:100}}});class Di extends cG{constructor(t,e,i,r,s,o,a,l){super(t),this._document=i,this._diameter=100,this._value=0,this._resizeSubscription=Ue.EMPTY,this.mode="determinate";const c=Di._diameters;this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),c.has(i.head)||c.set(i.head,new Set([100])),this._noopAnimations="NoopAnimations"===r&&!!s&&!s._forceAnimations,"mat-spinner"===t.nativeElement.nodeName.toLowerCase()&&(this.mode="indeterminate"),s&&(s.diameter&&(this.diameter=s.diameter),s.strokeWidth&&(this.strokeWidth=s.strokeWidth)),e.isBrowser&&e.SAFARI&&a&&o&&l&&(this._resizeSubscription=a.change(150).subscribe(()=>{"indeterminate"===this.mode&&l.run(()=>o.markForCheck())}))}get diameter(){return this._diameter}set diameter(t){this._diameter=Mr(t),this._spinnerAnimationLabel=this._getSpinnerAnimationLabel(),this._styleRoot&&this._attachStyleNode()}get strokeWidth(){return this._strokeWidth||this.diameter/10}set strokeWidth(t){this._strokeWidth=Mr(t)}get value(){return"determinate"===this.mode?this._value:0}set value(t){this._value=Math.max(0,Math.min(100,Mr(t)))}ngOnInit(){const t=this._elementRef.nativeElement;this._styleRoot=xD(t)||this._document.head,this._attachStyleNode(),t.classList.add("mat-progress-spinner-indeterminate-animation")}ngOnDestroy(){this._resizeSubscription.unsubscribe()}_getCircleRadius(){return(this.diameter-10)/2}_getViewBox(){const t=2*this._getCircleRadius()+this.strokeWidth;return`0 0 ${t} ${t}`}_getStrokeCircumference(){return 2*Math.PI*this._getCircleRadius()}_getStrokeDashOffset(){return"determinate"===this.mode?this._getStrokeCircumference()*(100-this._value)/100:null}_getCircleStrokeWidth(){return this.strokeWidth/this.diameter*100}_getCircleTransformOrigin(t){const e=50*(t.currentScale??1);return`${e}% ${e}%`}_attachStyleNode(){const t=this._styleRoot,e=this._diameter,i=Di._diameters;let r=i.get(t);if(!r||!r.has(e)){const s=this._document.createElement("style");s.setAttribute("mat-spinner-animation",this._spinnerAnimationLabel),s.textContent=this._getAnimationText(),t.appendChild(s),r||(r=new Set,i.set(t,r)),r.add(e)}}_getAnimationText(){const t=this._getStrokeCircumference();return"\n @keyframes mat-progress-spinner-stroke-rotate-DIAMETER {\n 0% { stroke-dashoffset: START_VALUE; transform: rotate(0); }\n 12.5% { stroke-dashoffset: END_VALUE; transform: rotate(0); }\n 12.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n 25% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n\n 25.0001% { stroke-dashoffset: START_VALUE; transform: rotate(270deg); }\n 37.5% { stroke-dashoffset: END_VALUE; transform: rotate(270deg); }\n 37.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n 50% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n\n 50.0001% { stroke-dashoffset: START_VALUE; transform: rotate(180deg); }\n 62.5% { stroke-dashoffset: END_VALUE; transform: rotate(180deg); }\n 62.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n 75% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n\n 75.0001% { stroke-dashoffset: START_VALUE; transform: rotate(90deg); }\n 87.5% { stroke-dashoffset: END_VALUE; transform: rotate(90deg); }\n 87.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n 100% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n }\n".replace(/START_VALUE/g,""+.95*t).replace(/END_VALUE/g,""+.2*t).replace(/DIAMETER/g,`${this._spinnerAnimationLabel}`)}_getSpinnerAnimationLabel(){return this.diameter.toString().replace(".","_")}}Di._diameters=new WeakMap,Di.\u0275fac=function(t){return new(t||Di)(f(k),f(Xn),f(ie,8),f(en,8),f(uG),f(Vt),f(nu),f(ae))},Di.\u0275cmp=Ke({type:Di,selectors:[["mat-progress-spinner"],["mat-spinner"]],hostAttrs:["role","progressbar","tabindex","-1",1,"mat-progress-spinner","mat-spinner"],hostVars:10,hostBindings:function(t,e){2&t&&(Ze("aria-valuemin","determinate"===e.mode?0:null)("aria-valuemax","determinate"===e.mode?100:null)("aria-valuenow","determinate"===e.mode?e.value:null)("mode",e.mode),xs("width",e.diameter,"px")("height",e.diameter,"px"),Ie("_mat-animation-noopable",e._noopAnimations))},inputs:{color:"color",diameter:"diameter",strokeWidth:"strokeWidth",mode:"mode",value:"value"},exportAs:["matProgressSpinner"],features:[M],decls:4,vars:8,consts:[["preserveAspectRatio","xMidYMid meet","focusable","false","aria-hidden","true",3,"ngSwitch"],["svg",""],["cx","50%","cy","50%",3,"animation-name","stroke-dashoffset","stroke-dasharray","stroke-width","transform-origin",4,"ngSwitchCase"],["cx","50%","cy","50%",3,"stroke-dashoffset","stroke-dasharray","stroke-width","transform-origin",4,"ngSwitchCase"],["cx","50%","cy","50%"]],template:function(t,e){1&t&&(Ka(),N(0,"svg",0,1),_e(2,oG,1,11,"circle",2),_e(3,aG,1,9,"circle",3),L()),2&t&&(xs("width",e.diameter,"px")("height",e.diameter,"px"),X("ngSwitch","indeterminate"===e.mode),Ze("viewBox",e._getViewBox()),q(2),X("ngSwitchCase",!0),q(1),X("ngSwitchCase",!1))},dependencies:[rc,bC],styles:[".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:transparent;transition:stroke-dashoffset 225ms linear}._mat-animation-noopable.mat-progress-spinner circle{transition:none;animation:none}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] svg{transition:none;animation:none}.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}._mat-animation-noopable.mat-progress-spinner.mat-progress-spinner-indeterminate-animation[mode=indeterminate] circle{transition:none;animation:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\n"],encapsulation:2,changeDetection:0});let fG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[Be,oc],Be]}),n})();class MG{constructor(t,e,i=!0){this.key=t,this.value=e,this.key=i?t.replace(/['"]/g,"").trim():t.trim(),this.value=i?e.replace(/['"]/g,"").trim():e.trim(),this.value=this.value.replace(/;/,"")}}function KE(n){let t=typeof n;return"object"===t?n.constructor===Array?"array":n.constructor===Set?"set":"object":t}function YE(n){const[t,...e]=n.split(":");return new MG(t,e.join(":"))}function XE(n,t){return t.key&&(n[t.key]=t.value),n}let TG=(()=>{class n extends je{constructor(e,i,r,s,o,a,l,c,u){super(e,null,i,r),this.sanitizer=s,this.ngStyleInstance=l,this.DIRECTIVE_KEY="ngStyle",this.ngStyleInstance||(this.ngStyleInstance=new sc(e,o,a)),this.init();const d=this.nativeElement.getAttribute("style")??"";this.fallbackStyles=this.buildStyleMap(d),this.isServer=c&&Ts(u)}updateWithValue(e){const i=this.buildStyleMap(e);this.ngStyleInstance.ngStyle={...this.fallbackStyles,...i},this.isServer&&this.applyStyleToElement(i),this.ngStyleInstance.ngDoCheck()}clearStyles(){this.ngStyleInstance.ngStyle=this.fallbackStyles,this.ngStyleInstance.ngDoCheck()}buildStyleMap(e){const i=r=>this.sanitizer.sanitize(de.STYLE,r)??"";if(e)switch(KE(e)){case"string":return e0(function SG(n,t=";"){return String(n).trim().split(t).map(e=>e.trim()).filter(e=>""!==e)}(e),i);case"array":return e0(e,i);default:return function ZE(n,t){let e=[];return"set"===KE(n)?n.forEach(i=>e.push(i)):Object.keys(n).forEach(i=>{e.push(`${i}:${n[i]}`)}),function AG(n,t){return n.map(YE).filter(i=>!!i).map(i=>(t&&(i.value=t(i.value)),i)).reduce(XE,{})}(e,t)}(e,i)}return{}}ngDoCheck(){this.ngStyleInstance.ngDoCheck()}}return n.\u0275fac=function(e){return new(e||n)(f(k),f(Re),f(Pe),f(Zo),f(yr),f(Mn),f(sc,10),f($s),f(pn))},n.\u0275dir=w({type:n,features:[M]}),n})();const IG=["ngStyle","ngStyle.xs","ngStyle.sm","ngStyle.md","ngStyle.lg","ngStyle.xl","ngStyle.lt-sm","ngStyle.lt-md","ngStyle.lt-lg","ngStyle.lt-xl","ngStyle.gt-xs","ngStyle.gt-sm","ngStyle.gt-md","ngStyle.gt-lg"];let JE=(()=>{class n extends TG{constructor(){super(...arguments),this.inputs=IG}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=O(n)))(i||n)}}(),n.\u0275dir=w({type:n,selectors:[["","ngStyle",""],["","ngStyle.xs",""],["","ngStyle.sm",""],["","ngStyle.md",""],["","ngStyle.lg",""],["","ngStyle.xl",""],["","ngStyle.lt-sm",""],["","ngStyle.lt-md",""],["","ngStyle.lt-lg",""],["","ngStyle.lt-xl",""],["","ngStyle.gt-xs",""],["","ngStyle.gt-sm",""],["","ngStyle.gt-md",""],["","ngStyle.gt-lg",""]],inputs:{ngStyle:"ngStyle","ngStyle.xs":"ngStyle.xs","ngStyle.sm":"ngStyle.sm","ngStyle.md":"ngStyle.md","ngStyle.lg":"ngStyle.lg","ngStyle.xl":"ngStyle.xl","ngStyle.lt-sm":"ngStyle.lt-sm","ngStyle.lt-md":"ngStyle.lt-md","ngStyle.lt-lg":"ngStyle.lt-lg","ngStyle.lt-xl":"ngStyle.lt-xl","ngStyle.gt-xs":"ngStyle.gt-xs","ngStyle.gt-sm":"ngStyle.gt-sm","ngStyle.gt-md":"ngStyle.gt-md","ngStyle.gt-lg":"ngStyle.gt-lg"},features:[M]}),n})();function e0(n,t){return n.map(YE).filter(i=>!!i).map(i=>(t&&(i.value=t(i.value)),i)).reduce(XE,{})}let t0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[Lp]}),n})();const RG=function(n){return{left:n}};function FG(n,t){if(1&n&&(N(0,"div",1)(1,"div",2),ze(2,"div",3),N(3,"div",4),ze(4,"mat-spinner"),L(),N(5,"div",5)(6,"p",6),We(7,"Loading The SODA Experience"),L()()()()),2&n){const e=ge();X("ngStyle",$h(1,RG,e.windowWidth))}}let kG=(()=>{class n{constructor(){this.showSplash=!1}ngOnInit(){(void 0===window.sessionStorage.getItem("showSplash")||!window.sessionStorage.getItem("showSplash"))&&(this.showSplash=!0,window.sessionStorage.setItem("showSplash","1"),setTimeout(()=>{this.windowWidth="-"+window.innerWidth+"px",setTimeout(()=>{this.showSplash=!this.showSplash},500)},3e3))}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=Ke({type:n,selectors:[["splash-screen"]],decls:1,vars:1,consts:[["class","app-splash-screen",3,"ngStyle",4,"ngIf"],[1,"app-splash-screen",3,"ngStyle"],[1,"app-splash-inner"],[1,"app-logo"],[1,"app-loader"],[1,"app-label"],[1,"animate-charcter"]],template:function(e,i){1&e&&_e(0,FG,8,3,"div",0),2&e&&X("ngIf",i.showSplash)},dependencies:[vr,sc,Di,JE],styles:[".app-splash-screen[_ngcontent-%COMP%]{background:#212327;position:fixed;inset:0;display:flex;justify-content:center;align-items:center;width:100%;height:100%;z-index:100;transition:left .5s}.app-splash-screen[_ngcontent-%COMP%] .app-splash-inner[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center}.app-splash-screen[_ngcontent-%COMP%] .app-label[_ngcontent-%COMP%]{margin-top:32px;color:#fff;font-size:2.5em;font-family:Pacifico,cursive}.app-splash-screen[_ngcontent-%COMP%] .app-logo[_ngcontent-%COMP%]{background:url(soda-foundation-logo-white.20237df79d76ee5e.svg);background-repeat:no-repeat;max-width:100%;background-position:center;background-size:contain;width:600px;height:400px}"]}),n})();function OG(n,t){1&n&&(N(0,"div",8),ze(1,"div",9),L())}let PG=(()=>{class n{constructor(e,i){this._loading=e,this.api=i,this.loading=!1,this.siteDetails=[]}ngOnInit(){this.listenToLoading(),this.getBaseData()}listenToLoading(){this._loading.loadingSub.pipe(function sG(n,t=Gc){const e=Wp(n,t);return qE(()=>e)}(0)).subscribe(e=>{this.loading=e})}getBaseData(){this.api.getBaseData().subscribe(e=>{this.siteDetails=e})}}return n.\u0275fac=function(e){return new(e||n)(f(QE),f(Ep))},n.\u0275cmp=Ke({type:n,selectors:[["app-root"]],decls:14,vars:3,consts:[["class","loading-container flex-content-center",4,"ngIf"],[1,"header"],["color","primary"],[1,"logo"],["src","../assets/soda-foundation-logo-white.svg"],[1,"example-spacer"],[1,"main-container"],[1,"footer"],[1,"loading-container","flex-content-center"],[1,"spin"]],template:function(e,i){1&e&&(_e(0,OG,2,0,"div",0),ze(1,"splash-screen"),N(2,"div",1)(3,"mat-toolbar",2)(4,"mat-toolbar-row")(5,"div",3),ze(6,"img",4),L(),ze(7,"span",5),We(8),L()()(),N(9,"div",6),ze(10,"router-outlet"),L(),N(11,"div",7)(12,"p"),We(13),L()()),2&e&&(X("ngIf",i.loading),q(8),hn(" Latest Release - ",i.siteDetails.release," "),q(5),Li(i.siteDetails.footerText))},dependencies:[vr,up,TE,$p,kG],styles:['@keyframes spinner{0%{transform:translate3d(-50%,-50%,0) rotate(0)}to{transform:translate3d(-50%,-50%,0) rotate(360deg)}}.example-spacer[_ngcontent-%COMP%]{flex:1 1 auto}.footer[_ngcontent-%COMP%]{position:fixed;bottom:0;left:0;width:100%;height:20px;background:#3f51b5;padding:8px;color:#fff;text-align:center;z-index:50}.loading-container[_ngcontent-%COMP%]{display:flex;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000b3;z-index:5}.spin[_ngcontent-%COMP%]:before{animation:1.5s linear infinite spinner;animation-play-state:inherit;border:solid 5px #cfd0d1;border-bottom-color:#1c87c9;border-radius:50%;content:"";height:40px;width:40px;position:absolute;top:35vw;left:50vw;transform:translate3d(-50%,-50%,0);will-change:transform}']}),n})();function n0(n){return new C(3e3,!1)}function mz(){return typeof window<"u"&&typeof window.document<"u"}function eg(){return typeof process<"u"&&"[object process]"==={}.toString.call(process)}function zi(n){switch(n.length){case 0:return new Ca;case 1:return n[0];default:return new OE(n)}}function r0(n,t,e,i,r=new Map,s=new Map){const o=[],a=[];let l=-1,c=null;if(i.forEach(u=>{const d=u.get("offset"),h=d==l,p=h&&c||new Map;u.forEach((g,m)=>{let _=m,y=g;if("offset"!==m)switch(_=t.normalizePropertyName(_,o),y){case"!":y=r.get(m);break;case xi:y=s.get(m);break;default:y=t.normalizeStyleValue(m,_,y,o)}p.set(_,y)}),h||a.push(p),c=p,l=d}),o.length)throw function rz(n){return new C(3502,!1)}();return a}function tg(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&ng(e,"start",n)));break;case"done":n.onDone(()=>i(e&&ng(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&ng(e,"destroy",n)))}}function ng(n,t,e){const s=ig(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,e.totalTime??n.totalTime,!!e.disabled),o=n._data;return null!=o&&(s._data=o),s}function ig(n,t,e,i,r="",s=0,o){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:s,disabled:!!o}}function tn(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function s0(n){const t=n.indexOf(":");return[n.substring(1,t),n.slice(t+1)]}let rg=(n,t)=>!1,o0=(n,t,e)=>[],a0=null;function sg(n){const t=n.parentNode||n.host;return t===a0?null:t}(eg()||typeof Element<"u")&&(mz()?(a0=(()=>document.documentElement)(),rg=(n,t)=>{for(;t;){if(t===n)return!0;t=sg(t)}return!1}):rg=(n,t)=>n.contains(t),o0=(n,t,e)=>{if(e)return Array.from(n.querySelectorAll(t));const i=n.querySelector(t);return i?[i]:[]});let Rr=null,l0=!1;const c0=rg,u0=o0;let d0=(()=>{class n{validateStyleProperty(e){return function _z(n){Rr||(Rr=function vz(){return typeof document<"u"?document.body:null}()||{},l0=!!Rr.style&&"WebkitAppearance"in Rr.style);let t=!0;return Rr.style&&!function yz(n){return"ebkit"==n.substring(1,6)}(n)&&(t=n in Rr.style,!t&&l0&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in Rr.style)),t}(e)}matchesElement(e,i){return!1}containsElement(e,i){return c0(e,i)}getParentElement(e){return sg(e)}query(e,i,r){return u0(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,s,o,a=[],l){return new Ca(r,s)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})(),og=(()=>{class n{}return n.NOOP=new d0,n})();const ag="ng-enter",iu="ng-leave",ru="ng-trigger",su=".ng-trigger",f0="ng-animating",lg=".ng-animating";function Ei(n){if("number"==typeof n)return n;const t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:cg(parseFloat(t[1]),t[2])}function cg(n,t){return"s"===t?1e3*n:n}function ou(n,t,e){return n.hasOwnProperty("duration")?n:function Cz(n,t,e){let r,s=0,o="";if("string"==typeof n){const a=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return t.push(n0()),{duration:0,delay:0,easing:""};r=cg(parseFloat(a[1]),a[2]);const l=a[3];null!=l&&(s=cg(parseFloat(l),a[4]));const c=a[5];c&&(o=c)}else r=n;if(!e){let a=!1,l=t.length;r<0&&(t.push(function NG(){return new C(3100,!1)}()),a=!0),s<0&&(t.push(function LG(){return new C(3101,!1)}()),a=!0),a&&t.splice(l,0,n0())}return{duration:r,delay:s,easing:o}}(n,t,e)}function Da(n,t={}){return Object.keys(n).forEach(e=>{t[e]=n[e]}),t}function p0(n){const t=new Map;return Object.keys(n).forEach(e=>{t.set(e,n[e])}),t}function Wi(n,t=new Map,e){if(e)for(let[i,r]of e)t.set(i,r);for(let[i,r]of n)t.set(i,r);return t}function m0(n,t,e){return e?t+":"+e+";":""}function y0(n){let t="";for(let e=0;e{const s=dg(r);e&&!e.has(r)&&e.set(r,n.style[s]),n.style[s]=i}),eg()&&y0(n))}function Fr(n,t){n.style&&(t.forEach((e,i)=>{const r=dg(i);n.style[r]=""}),eg()&&y0(n))}function Ea(n){return Array.isArray(n)?1==n.length?n[0]:FE(n):n}const ug=new RegExp("{{\\s*(.+?)\\s*}}","g");function _0(n){let t=[];if("string"==typeof n){let e;for(;e=ug.exec(n);)t.push(e[1]);ug.lastIndex=0}return t}function Ma(n,t,e){const i=n.toString(),r=i.replace(ug,(s,o)=>{let a=t[o];return null==a&&(e.push(function BG(n){return new C(3003,!1)}()),a=""),a.toString()});return r==i?n:r}function au(n){const t=[];let e=n.next();for(;!e.done;)t.push(e.value),e=n.next();return t}const Ez=/-+([a-z0-9])/g;function dg(n){return n.replace(Ez,(...t)=>t[1].toUpperCase())}function Mz(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function nn(n,t,e){switch(t.type){case 7:return n.visitTrigger(t,e);case 0:return n.visitState(t,e);case 1:return n.visitTransition(t,e);case 2:return n.visitSequence(t,e);case 3:return n.visitGroup(t,e);case 4:return n.visitAnimate(t,e);case 5:return n.visitKeyframes(t,e);case 6:return n.visitStyle(t,e);case 8:return n.visitReference(t,e);case 9:return n.visitAnimateChild(t,e);case 10:return n.visitAnimateRef(t,e);case 11:return n.visitQuery(t,e);case 12:return n.visitStagger(t,e);default:throw function jG(n){return new C(3004,!1)}()}}function v0(n,t){return window.getComputedStyle(n)[t]}function Fz(n,t){const e=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function kz(n,t,e){if(":"==n[0]){const l=function Oz(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(n,e);if("function"==typeof l)return void t.push(l);n=l}const i=n.match(/^(\*|[-\w]+)\s*([=-]>)\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function JG(n){return new C(3015,!1)}()),t;const r=i[1],s=i[2],o=i[3];t.push(b0(r,o));"<"==s[0]&&!("*"==r&&"*"==o)&&t.push(b0(o,r))}(i,e,t)):e.push(n),e}const du=new Set(["true","1"]),hu=new Set(["false","0"]);function b0(n,t){const e=du.has(n)||hu.has(n),i=du.has(t)||hu.has(t);return(r,s)=>{let o="*"==n||n==r,a="*"==t||t==s;return!o&&e&&"boolean"==typeof r&&(o=r?du.has(n):hu.has(n)),!a&&i&&"boolean"==typeof s&&(a=s?du.has(t):hu.has(t)),o&&a}}const Pz=new RegExp("s*:selfs*,?","g");function hg(n,t,e,i){return new Nz(n).build(t,e,i)}class Nz{constructor(t){this._driver=t}build(t,e,i){const r=new Bz(e);return this._resetContextStyleTimingState(r),nn(this,Ea(t),r)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles=new Map,t.collectedStyles.set("",new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0;const s=[],o=[];return"@"==t.name.charAt(0)&&e.errors.push(function $G(){return new C(3006,!1)}()),t.definitions.forEach(a=>{if(this._resetContextStyleTimingState(e),0==a.type){const l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(u=>{l.name=u,s.push(this.visitState(l,e))}),l.name=c}else if(1==a.type){const l=this.visitTransition(a,e);i+=l.queryCount,r+=l.depCount,o.push(l)}else e.errors.push(function UG(){return new C(3007,!1)}())}),{type:7,name:t.name,states:s,transitions:o,queryCount:i,depCount:r,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){const s=new Set,o=r||{};i.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{_0(l).forEach(c=>{o.hasOwnProperty(c)||s.add(c)})})}),s.size&&(au(s.values()),e.errors.push(function GG(n,t){return new C(3008,!1)}()))}return{type:0,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=nn(this,Ea(t.animation),e);return{type:1,matchers:Fz(t.expr,e.errors),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:kr(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map(i=>nn(this,i,e)),options:kr(t.options)}}visitGroup(t,e){const i=e.currentTime;let r=0;const s=t.steps.map(o=>{e.currentTime=i;const a=nn(this,o,e);return r=Math.max(r,e.currentTime),a});return e.currentTime=r,{type:3,steps:s,options:kr(t.options)}}visitAnimate(t,e){const i=function Hz(n,t){if(n.hasOwnProperty("duration"))return n;if("number"==typeof n)return fg(ou(n,t).duration,0,"");const e=n;if(e.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=fg(0,0,"");return s.dynamic=!0,s.strValue=e,s}const r=ou(e,t);return fg(r.duration,r.delay,r.easing)}(t.timings,e.errors);e.currentAnimateTimings=i;let r,s=t.styles?t.styles:Ir({});if(5==s.type)r=this.visitKeyframes(s,e);else{let o=t.styles,a=!1;if(!o){a=!0;const c={};i.easing&&(c.easing=i.easing),o=Ir(c)}e.currentTime+=i.duration+i.delay;const l=this.visitStyle(o,e);l.isEmptyStep=a,r=l}return e.currentAnimateTimings=null,{type:4,timings:i,style:r,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[],r=Array.isArray(t.styles)?t.styles:[t.styles];for(let a of r)"string"==typeof a?a===xi?i.push(a):e.errors.push(new C(3002,!1)):i.push(p0(a));let s=!1,o=null;return i.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(o=a.get("easing"),a.delete("easing")),!s))for(let l of a.values())if(l.toString().indexOf("{{")>=0){s=!0;break}}),{type:6,styles:i,easing:o,offset:t.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let r=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(o=>{"string"!=typeof o&&o.forEach((a,l)=>{const c=e.collectedStyles.get(e.currentQuerySelector),u=c.get(l);let d=!0;u&&(s!=r&&s>=u.startTime&&r<=u.endTime&&(e.errors.push(function WG(n,t,e,i,r){return new C(3010,!1)}()),d=!1),s=u.startTime),d&&c.set(l,{startTime:s,endTime:r}),e.options&&function Dz(n,t,e){const i=t.params||{},r=_0(n);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||e.push(function VG(n){return new C(3001,!1)}())})}(a,e.options,e.errors)})})}visitKeyframes(t,e){const i={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function qG(){return new C(3011,!1)}()),i;let s=0;const o=[];let a=!1,l=!1,c=0;const u=t.steps.map(y=>{const D=this._makeStyleAst(y,e);let v=null!=D.offset?D.offset:function jz(n){if("string"==typeof n)return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){const e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}(D.styles),A=0;return null!=v&&(s++,A=D.offset=v),l=l||A<0||A>1,a=a||A0&&s{const v=h>0?D==p?1:h*D:o[D],A=v*_;e.currentTime=g+m.delay+A,m.duration=A,this._validateStyleAst(y,e),y.offset=v,i.styles.push(y)}),i}visitReference(t,e){return{type:8,animation:nn(this,Ea(t.animation),e),options:kr(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:kr(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:kr(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;const[s,o]=function Lz(n){const t=!!n.split(/\s*,\s*/).find(e=>":self"==e);return t&&(n=n.replace(Pz,"")),n=n.replace(/@\*/g,su).replace(/@\w+/g,e=>su+"-"+e.slice(1)).replace(/:animating/g,lg),[n,t]}(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,tn(e.collectedStyles,e.currentQuerySelector,new Map);const a=nn(this,Ea(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:11,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:o,animation:a,originalSelector:t.selector,options:kr(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(function YG(){return new C(3013,!1)}());const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:ou(t.timings,e.errors,!0);return{type:12,animation:nn(this,Ea(t.animation),e),timings:i,options:null}}}class Bz{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function kr(n){return n?(n=Da(n)).params&&(n.params=function Vz(n){return n?Da(n):null}(n.params)):n={},n}function fg(n,t,e){return{duration:n,delay:t,easing:e}}function pg(n,t,e,i,r,s,o=null,a=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:o,subTimeline:a}}class fu{constructor(){this._map=new Map}get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const Gz=new RegExp(":enter","g"),Wz=new RegExp(":leave","g");function gg(n,t,e,i,r,s=new Map,o=new Map,a,l,c=[]){return(new qz).buildKeyframes(n,t,e,i,r,s,o,a,l,c)}class qz{buildKeyframes(t,e,i,r,s,o,a,l,c,u=[]){c=c||new fu;const d=new mg(t,e,c,r,s,u,[]);d.options=l;const h=l.delay?Ei(l.delay):0;d.currentTimeline.delayNextStep(h),d.currentTimeline.setStyles([o],null,d.errors,l),nn(this,i,d);const p=d.timelines.filter(g=>g.containsAnimation());if(p.length&&a.size){let g;for(let m=p.length-1;m>=0;m--){const _=p[m];if(_.element===e){g=_;break}}g&&!g.allowOnlyTimelineStyles()&&g.setStyles([a],null,d.errors,l)}return p.length?p.map(g=>g.buildKeyframes()):[pg(e,[],[],[],0,h,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.get(e.element);if(i){const r=e.createSubContext(t.options),s=e.currentTimeline.currentTime,o=this._visitSubInstructions(i,r,r.options);s!=o&&e.transformIntoNewTimeline(o)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(const r of t){const s=r?.delay;if(s){const o="number"==typeof s?s:Ei(Ma(s,r?.params??{},e.errors));i.delayNextStep(o)}}}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime;const o=null!=i.duration?Ei(i.duration):null,a=null!=i.delay?Ei(i.delay):null;return 0!==o&&t.forEach(l=>{const c=e.appendInstructionToTimeline(l,o,a);s=Math.max(s,c.duration+c.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),nn(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let r=e;const s=t.options;if(s&&(s.params||s.delay)&&(r=e.createSubContext(s),r.transformIntoNewTimeline(),null!=s.delay)){6==r.previousNode.type&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=pu);const o=Ei(s.delay);r.delayNextStep(o)}t.steps.length&&(t.steps.forEach(o=>nn(this,o,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let r=e.currentTimeline.currentTime;const s=t.options&&t.options.delay?Ei(t.options.delay):0;t.steps.forEach(o=>{const a=e.createSubContext(t.options);s&&a.delayNextStep(s),nn(this,o,a),r=Math.max(r,a.currentTimeline.currentTime),i.push(a.currentTimeline)}),i.forEach(o=>e.currentTimeline.mergeTimelineCollectedStyles(o)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return ou(e.params?Ma(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());const s=t.style;5==s.type?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();const s=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,r=e.currentTimeline.duration,s=i.duration,a=e.createSubContext().currentTimeline;a.easing=i.easing,t.styles.forEach(l=>{a.forwardTime((l.offset||0)*s),a.setStyles(l.styles,l.easing,e.errors,e.options),a.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(a),e.transformIntoNewTimeline(r+s),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,r=t.options||{},s=r.delay?Ei(r.delay):0;s&&(6===e.previousNode.type||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=pu);let o=i;const a=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=a.length;let l=null;a.forEach((c,u)=>{e.currentQueryIndex=u;const d=e.createSubContext(t.options,c);s&&d.delayNextStep(s),c===e.element&&(l=d.currentTimeline),nn(this,t.animation,d),d.currentTimeline.applyStylesToKeyframe(),o=Math.max(o,d.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(o),l&&(e.currentTimeline.mergeTimelineCollectedStyles(l),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,r=e.currentTimeline,s=t.timings,o=Math.abs(s.duration),a=o*(e.currentQueryTotal-1);let l=o*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":l=a-l;break;case"full":l=i.currentStaggerTime}const u=e.currentTimeline;l&&u.delayNextStep(l);const d=u.currentTime;nn(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-d+(r.startTime-i.currentTimeline.startTime)}}const pu={};class mg{constructor(t,e,i,r,s,o,a,l){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=o,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=pu,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=l||new gu(this._driver,e,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let r=this.options;null!=i.duration&&(r.duration=Ei(i.duration)),null!=i.delay&&(r.delay=Ei(i.delay));const s=i.params;if(s){let o=r.params;o||(o=this.options.params={}),Object.keys(s).forEach(a=>{(!e||!o.hasOwnProperty(a))&&(o[a]=Ma(s[a],o,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){const r=e||this.element,s=new mg(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=pu,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new Qz(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,s,o){let a=[];if(r&&a.push(this.element),t.length>0){t=(t=t.replace(Gz,"."+this._enterClassName)).replace(Wz,"."+this._leaveClassName);let c=this._driver.query(this.element,t,1!=i);0!==i&&(c=i<0?c.slice(c.length+i,c.length):c.slice(0,i)),a.push(...c)}return!s&&0==a.length&&o.push(function XG(n){return new C(3014,!1)}()),a}}class gu{constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new gu(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||xi),this._currentKeyframe.set(e,xi);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&this._previousKeyframe.set("easing",e);const s=r&&r.params||{},o=function Kz(n,t){const e=new Map;let i;return n.forEach(r=>{if("*"===r){i=i||t.keys();for(let s of i)e.set(s,xi)}else Wi(r,e)}),e}(t,this._globalTimelineStyles);for(let[a,l]of o){const c=Ma(l,s,i);this._pendingStyles.set(a,c),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??xi),this._updateStyle(a,c)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{const r=this._styleSummary.get(i);(!r||e.time>r.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((a,l)=>{const c=Wi(a,new Map,this._backFill);c.forEach((u,d)=>{"!"===u?t.add(d):u===xi&&e.add(d)}),i||c.set("offset",l/this.duration),r.push(c)});const s=t.size?au(t.values()):[],o=e.size?au(e.values()):[];if(i){const a=r[0],l=new Map(a);a.set("offset",0),l.set("offset",1),r=[a,l]}return pg(this.element,r,s,o,this.duration,this.startTime,this.easing,!1)}}class Qz extends gu{constructor(t,e,i,r,s,o,a=!1){super(t,e,o.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=s,this._stretchStartingKeyframe=a,this.timings={duration:o.duration,delay:o.delay,easing:o.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){const s=[],o=i+e,a=e/o,l=Wi(t[0]);l.set("offset",0),s.push(l);const c=Wi(t[0]);c.set("offset",x0(a)),s.push(c);const u=t.length-1;for(let d=1;d<=u;d++){let h=Wi(t[d]);const p=h.get("offset");h.set("offset",x0((e+p*i)/o)),s.push(h)}i=o,e=0,r="",t=s}return pg(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}}function x0(n,t=3){const e=Math.pow(10,t-1);return Math.round(n*e)/e}class yg{}const Zz=new Set(["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"]);class Yz extends yg{normalizePropertyName(t,e){return dg(t)}normalizeStyleValue(t,e,i,r){let s="";const o=i.toString().trim();if(Zz.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const a=i.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&r.push(function HG(n,t){return new C(3005,!1)}())}return o+s}}function D0(n,t,e,i,r,s,o,a,l,c,u,d,h){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:s,toState:i,toStyles:o,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:d,errors:h}}const _g={};class E0{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return function Xz(n,t,e,i,r){return n.some(s=>s(t,e,i,r))}(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){let r=this._stateStyles.get("*");return void 0!==t&&(r=this._stateStyles.get(t?.toString())||r),r?r.buildStyles(e,i):new Map}build(t,e,i,r,s,o,a,l,c,u){const d=[],h=this.ast.options&&this.ast.options.params||_g,g=this.buildStyles(i,a&&a.params||_g,d),m=l&&l.params||_g,_=this.buildStyles(r,m,d),y=new Set,D=new Map,v=new Map,A="void"===r,Y={params:Jz(m,h),delay:this.ast.options?.delay},re=u?[]:gg(t,e,this.ast.animation,s,o,g,_,Y,c,d);let He=0;if(re.forEach(sn=>{He=Math.max(sn.duration+sn.delay,He)}),d.length)return D0(e,this._triggerName,i,r,A,g,_,[],[],D,v,He,d);re.forEach(sn=>{const on=sn.element,Ws=tn(D,on,new Set);sn.preStyleProps.forEach(Vn=>Ws.add(Vn));const Mi=tn(v,on,new Set);sn.postStyleProps.forEach(Vn=>Mi.add(Vn)),on!==e&&y.add(on)});const rn=au(y.values());return D0(e,this._triggerName,i,r,A,g,_,re,rn,D,v,He)}}function Jz(n,t){const e=Da(t);for(const i in n)n.hasOwnProperty(i)&&null!=n[i]&&(e[i]=n[i]);return e}class e3{constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){const i=new Map,r=Da(this.defaultParams);return Object.keys(t).forEach(s=>{const o=t[s];null!==o&&(r[s]=o)}),this.styles.styles.forEach(s=>{"string"!=typeof s&&s.forEach((o,a)=>{o&&(o=Ma(o,r,e));const l=this.normalizer.normalizePropertyName(a,e);o=this.normalizer.normalizeStyleValue(a,l,o,e),i.set(l,o)})}),i}}class n3{constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(r=>{this.states.set(r.name,new e3(r.style,r.options&&r.options.params||{},i))}),M0(this.states,"true","1"),M0(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new E0(t,r,this.states))}),this.fallbackTransition=function r3(n,t,e){return new E0(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[(o,a)=>!0],options:null,queryCount:0,depCount:0},t)}(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(o=>o.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function M0(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}const s3=new fu;class o3{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(t,e){const i=[],s=hg(this._driver,e,i,[]);if(i.length)throw function sz(n){return new C(3503,!1)}();this._animations.set(t,s)}_buildPlayer(t,e,i){const r=t.element,s=r0(0,this._normalizer,0,t.keyframes,e,i);return this._driver.animate(r,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const r=[],s=this._animations.get(t);let o;const a=new Map;if(s?(o=gg(this._driver,e,s,ag,iu,new Map,new Map,i,s3,r),o.forEach(u=>{const d=tn(a,u.element,new Map);u.postStyleProps.forEach(h=>d.set(h,null))})):(r.push(function oz(){return new C(3300,!1)}()),o=[]),r.length)throw function az(n){return new C(3504,!1)}();a.forEach((u,d)=>{u.forEach((h,p)=>{u.set(p,this._driver.computeStyle(d,p,xi))})});const c=zi(o.map(u=>{const d=a.get(u.element);return this._buildPlayer(u,new Map,d)}));return this._playersById.set(t,c),c.onDestroy(()=>this.destroy(t)),this.players.push(c),c}destroy(t){const e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById.get(t);if(!e)throw function lz(n){return new C(3301,!1)}();return e}listen(t,e,i,r){const s=ig(e,"","","");return tg(this._getPlayer(t),i,s,r),()=>{}}command(t,e,i,r){if("register"==i)return void this.register(t,r[0]);if("create"==i)return void this.create(t,e,r[0]||{});const s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t)}}}const S0="ng-animate-queued",vg="ng-animate-disabled",d3=[],A0={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},h3={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},_n="__ng_removed";class bg{constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=function m3(n){return n??null}(i?t.value:t),i){const s=Da(t);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const i=this.options.params;Object.keys(e).forEach(r=>{null==i[r]&&(i[r]=e[r])})}}}const Sa="void",wg=new bg(Sa);class f3{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,vn(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.has(e))throw function cz(n,t){return new C(3302,!1)}();if(null==i||0==i.length)throw function uz(n){return new C(3303,!1)}();if(!function y3(n){return"start"==n||"done"==n}(i))throw function dz(n,t){return new C(3400,!1)}();const s=tn(this._elementListeners,t,[]),o={name:e,phase:i,callback:r};s.push(o);const a=tn(this._engine.statesByElement,t,new Map);return a.has(e)||(vn(t,ru),vn(t,ru+"-"+e),a.set(e,wg)),()=>{this._engine.afterFlush(()=>{const l=s.indexOf(o);l>=0&&s.splice(l,1),this._triggers.has(e)||a.delete(e)})}}register(t,e){return!this._triggers.has(t)&&(this._triggers.set(t,e),!0)}_getTrigger(t){const e=this._triggers.get(t);if(!e)throw function hz(n){return new C(3401,!1)}();return e}trigger(t,e,i,r=!0){const s=this._getTrigger(e),o=new Cg(this.id,e,t);let a=this._engine.statesByElement.get(t);a||(vn(t,ru),vn(t,ru+"-"+e),this._engine.statesByElement.set(t,a=new Map));let l=a.get(e);const c=new bg(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(e,c),l||(l=wg),c.value!==Sa&&l.value===c.value){if(!function b3(n,t){const e=Object.keys(n),i=Object.keys(t);if(e.length!=i.length)return!1;for(let r=0;r{Fr(t,_),Jn(t,y)})}return}const h=tn(this._engine.playersByElement,t,[]);h.forEach(m=>{m.namespaceId==this.id&&m.triggerName==e&&m.queued&&m.destroy()});let p=s.matchTransition(l.value,c.value,t,c.params),g=!1;if(!p){if(!r)return;p=s.fallbackTransition,g=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:p,fromState:l,toState:c,player:o,isFallbackTransition:g}),g||(vn(t,S0),o.onStart(()=>{Gs(t,S0)})),o.onDone(()=>{let m=this.players.indexOf(o);m>=0&&this.players.splice(m,1);const _=this._engine.playersByElement.get(t);if(_){let y=_.indexOf(o);y>=0&&_.splice(y,1)}}),this.players.push(o),h.push(o),o}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,su,!0);i.forEach(r=>{if(r[_n])return;const s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(o=>o.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){const s=this._engine.statesByElement.get(t),o=new Map;if(s){const a=[];if(s.forEach((l,c)=>{if(o.set(c,l.value),this._triggers.has(c)){const u=this.trigger(t,c,Sa,r);u&&a.push(u)}}),a.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,o),i&&zi(a).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const r=new Set;e.forEach(s=>{const o=s.name;if(r.has(o))return;r.add(o);const l=this._triggers.get(o).fallbackTransition,c=i.get(o)||wg,u=new bg(Sa),d=new Cg(this.id,o,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:o,transition:l,fromState:c,toState:u,player:d,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)r=!0;else{let o=t;for(;o=o.parentNode;)if(i.statesByElement.get(o)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{const s=t[_n];(!s||s===A0)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){vn(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const s=i.element,o=this._elementListeners.get(s);o&&o.forEach(a=>{if(a.name==i.triggerName){const l=ig(s,i.triggerName,i.fromState.value,i.toState.value);l._data=t,tg(i.player,a.phase,l,a.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{const s=i.transition.ast.depCount,o=r.transition.ast.depCount;return 0==s||0==o?s-o:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(i=>i.element===t)||e,e}}class p3{constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i,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=(r,s)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){const i=new f3(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let o=!1,a=this.driver.getParentElement(e);for(;a;){const l=r.get(a);if(l){const c=i.indexOf(l);i.splice(c+1,0,t),o=!0;break}a=this.driver.getParentElement(a)}o||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){if(!t)return;const i=this._fetchNamespace(t);this.afterFlush(()=>{this.namespacesByHostElement.delete(i.hostElement),delete this._namespaceLookup[t];const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1)}),this.afterFlushAnimationsDone(()=>i.destroy(e))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i)for(let r of i.values())if(r.namespaceId){const s=this._fetchNamespace(r.namespaceId);s&&e.add(s)}return e}trigger(t,e,i,r){if(mu(e)){const s=this._fetchNamespace(t);if(s)return s.trigger(e,i,r),!0}return!1}insertNode(t,e,i,r){if(!mu(e))return;const s=e[_n];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const o=this.collectedLeaveElements.indexOf(e);o>=0&&this.collectedLeaveElements.splice(o,1)}if(t){const o=this._fetchNamespace(t);o&&o.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),vn(t,vg)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Gs(t,vg))}removeNode(t,e,i,r){if(mu(e)){const s=t?this._fetchNamespace(t):null;if(s?s.removeNode(e,r):this.markElementAsRemoved(t,e,!1,r),i){const o=this.namespacesByHostElement.get(e);o&&o.id!==t&&o.removeNode(e,r)}}else this._onRemovalComplete(e,r)}markElementAsRemoved(t,e,i,r,s){this.collectedLeaveElements.push(e),e[_n]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,r,s){return mu(e)?this._fetchNamespace(t).listen(e,i,r,s):()=>{}}_buildInstruction(t,e,i,r,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,su,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,lg,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return zi(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t[_n];if(e&&e.setForRemoval){if(t[_n]=A0,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(vg)&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?zi(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw function fz(n){return new C(3402,!1)}()}_flushAnimations(t,e){const i=new fu,r=[],s=new Map,o=[],a=new Map,l=new Map,c=new Map,u=new Set;this.disabledNodes.forEach(R=>{u.add(R);const P=this.driver.query(R,".ng-animate-queued",!0);for(let H=0;H{const H=ag+m++;g.set(P,H),R.forEach(ue=>vn(ue,H))});const _=[],y=new Set,D=new Set;for(let R=0;Ry.add(ue)):D.add(P))}const v=new Map,A=R0(h,Array.from(y));A.forEach((R,P)=>{const H=iu+m++;v.set(P,H),R.forEach(ue=>vn(ue,H))}),t.push(()=>{p.forEach((R,P)=>{const H=g.get(P);R.forEach(ue=>Gs(ue,H))}),A.forEach((R,P)=>{const H=v.get(P);R.forEach(ue=>Gs(ue,H))}),_.forEach(R=>{this.processLeaveNode(R)})});const Y=[],re=[];for(let R=this._namespaceList.length-1;R>=0;R--)this._namespaceList[R].drainQueuedTransitions(e).forEach(H=>{const ue=H.player,pt=H.element;if(Y.push(ue),this.collectedEnterElements.length){const Dt=pt[_n];if(Dt&&Dt.setForMove){if(Dt.previousTriggersValues&&Dt.previousTriggersValues.has(H.triggerName)){const Lr=Dt.previousTriggersValues.get(H.triggerName),bn=this.statesByElement.get(H.element);if(bn&&bn.has(H.triggerName)){const Au=bn.get(H.triggerName);Au.value=Lr,bn.set(H.triggerName,Au)}}return void ue.destroy()}}const ei=!d||!this.driver.containsElement(d,pt),an=v.get(pt),Zi=g.get(pt),$e=this._buildInstruction(H,i,Zi,an,ei);if($e.errors&&$e.errors.length)return void re.push($e);if(ei)return ue.onStart(()=>Fr(pt,$e.fromStyles)),ue.onDestroy(()=>Jn(pt,$e.toStyles)),void r.push(ue);if(H.isFallbackTransition)return ue.onStart(()=>Fr(pt,$e.fromStyles)),ue.onDestroy(()=>Jn(pt,$e.toStyles)),void r.push(ue);const iS=[];$e.timelines.forEach(Dt=>{Dt.stretchStartingKeyframe=!0,this.disabledNodes.has(Dt.element)||iS.push(Dt)}),$e.timelines=iS,i.append(pt,$e.timelines),o.push({instruction:$e,player:ue,element:pt}),$e.queriedElements.forEach(Dt=>tn(a,Dt,[]).push(ue)),$e.preStyleProps.forEach((Dt,Lr)=>{if(Dt.size){let bn=l.get(Lr);bn||l.set(Lr,bn=new Set),Dt.forEach((Au,zg)=>bn.add(zg))}}),$e.postStyleProps.forEach((Dt,Lr)=>{let bn=c.get(Lr);bn||c.set(Lr,bn=new Set),Dt.forEach((Au,zg)=>bn.add(zg))})});if(re.length){const R=[];re.forEach(P=>{R.push(function pz(n,t){return new C(3505,!1)}())}),Y.forEach(P=>P.destroy()),this.reportError(R)}const He=new Map,rn=new Map;o.forEach(R=>{const P=R.element;i.has(P)&&(rn.set(P,P),this._beforeAnimationBuild(R.player.namespaceId,R.instruction,He))}),r.forEach(R=>{const P=R.element;this._getPreviousPlayers(P,!1,R.namespaceId,R.triggerName,null).forEach(ue=>{tn(He,P,[]).push(ue),ue.destroy()})});const sn=_.filter(R=>k0(R,l,c)),on=new Map;I0(on,this.driver,D,c,xi).forEach(R=>{k0(R,l,c)&&sn.push(R)});const Mi=new Map;p.forEach((R,P)=>{I0(Mi,this.driver,new Set(R),l,"!")}),sn.forEach(R=>{const P=on.get(R),H=Mi.get(R);on.set(R,new Map([...Array.from(P?.entries()??[]),...Array.from(H?.entries()??[])]))});const Vn=[],qs=[],Qs={};o.forEach(R=>{const{element:P,player:H,instruction:ue}=R;if(i.has(P)){if(u.has(P))return H.onDestroy(()=>Jn(P,ue.toStyles)),H.disabled=!0,H.overrideTotalTime(ue.totalTime),void r.push(H);let pt=Qs;if(rn.size>1){let an=P;const Zi=[];for(;an=an.parentNode;){const $e=rn.get(an);if($e){pt=$e;break}Zi.push(an)}Zi.forEach($e=>rn.set($e,pt))}const ei=this._buildAnimation(H.namespaceId,ue,He,s,Mi,on);if(H.setRealPlayer(ei),pt===Qs)Vn.push(H);else{const an=this.playersByElement.get(pt);an&&an.length&&(H.parentPlayer=zi(an)),r.push(H)}}else Fr(P,ue.fromStyles),H.onDestroy(()=>Jn(P,ue.toStyles)),qs.push(H),u.has(P)&&r.push(H)}),qs.forEach(R=>{const P=s.get(R.element);if(P&&P.length){const H=zi(P);R.setRealPlayer(H)}}),r.forEach(R=>{R.parentPlayer?R.syncPlayerEvents(R.parentPlayer):R.destroy()});for(let R=0;R<_.length;R++){const P=_[R],H=P[_n];if(Gs(P,iu),H&&H.hasAnimation)continue;let ue=[];if(a.size){let ei=a.get(P);ei&&ei.length&&ue.push(...ei);let an=this.driver.query(P,lg,!0);for(let Zi=0;Zi!ei.destroyed);pt.length?_3(this,P,pt):this.processLeaveNode(P)}return _.length=0,Vn.forEach(R=>{this.players.push(R),R.onDone(()=>{R.destroy();const P=this.players.indexOf(R);this.players.splice(P,1)}),R.play()}),Vn}elementContainsData(t,e){let i=!1;const r=e[_n];return r&&r.setForRemoval&&(i=!0),this.playersByElement.has(e)&&(i=!0),this.playersByQueriedElement.has(e)&&(i=!0),this.statesByElement.has(e)&&(i=!0),this._fetchNamespace(t).elementContainsData(e)||i}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,s){let o=[];if(e){const a=this.playersByQueriedElement.get(t);a&&(o=a)}else{const a=this.playersByElement.get(t);if(a){const l=!s||s==Sa;a.forEach(c=>{c.queued||!l&&c.triggerName!=r||o.push(c)})}}return(i||r)&&(o=o.filter(a=>!(i&&i!=a.namespaceId||r&&r!=a.triggerName))),o}_beforeAnimationBuild(t,e,i){const s=e.element,o=e.isRemovalTransition?void 0:t,a=e.isRemovalTransition?void 0:e.triggerName;for(const l of e.timelines){const c=l.element,u=c!==s,d=tn(i,c,[]);this._getPreviousPlayers(c,u,o,a,e.toState).forEach(p=>{const g=p.getRealPlayer();g.beforeDestroy&&g.beforeDestroy(),p.destroy(),d.push(p)})}Fr(s,e.fromStyles)}_buildAnimation(t,e,i,r,s,o){const a=e.triggerName,l=e.element,c=[],u=new Set,d=new Set,h=e.timelines.map(g=>{const m=g.element;u.add(m);const _=m[_n];if(_&&_.removedBeforeQueried)return new Ca(g.duration,g.delay);const y=m!==l,D=function v3(n){const t=[];return F0(n,t),t}((i.get(m)||d3).map(He=>He.getRealPlayer())).filter(He=>!!He.element&&He.element===m),v=s.get(m),A=o.get(m),Y=r0(0,this._normalizer,0,g.keyframes,v,A),re=this._buildPlayer(g,Y,D);if(g.subTimeline&&r&&d.add(m),y){const He=new Cg(t,a,m);He.setRealPlayer(re),c.push(He)}return re});c.forEach(g=>{tn(this.playersByQueriedElement,g.element,[]).push(g),g.onDone(()=>function g3(n,t,e){let i=n.get(t);if(i){if(i.length){const r=i.indexOf(e);i.splice(r,1)}0==i.length&&n.delete(t)}return i}(this.playersByQueriedElement,g.element,g))}),u.forEach(g=>vn(g,f0));const p=zi(h);return p.onDestroy(()=>{u.forEach(g=>Gs(g,f0)),Jn(l,e.toStyles)}),d.forEach(g=>{tn(r,g,[]).push(p)}),p}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new Ca(t.duration,t.delay)}}class Cg{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new Ca,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(r=>tg(t,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){tn(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function mu(n){return n&&1===n.nodeType}function T0(n,t){const e=n.style.display;return n.style.display=t??"none",e}function I0(n,t,e,i,r){const s=[];e.forEach(l=>s.push(T0(l)));const o=[];i.forEach((l,c)=>{const u=new Map;l.forEach(d=>{const h=t.computeStyle(c,d,r);u.set(d,h),(!h||0==h.length)&&(c[_n]=h3,o.push(c))}),n.set(c,u)});let a=0;return e.forEach(l=>T0(l,s[a++])),o}function R0(n,t){const e=new Map;if(n.forEach(a=>e.set(a,[])),0==t.length)return e;const r=new Set(t),s=new Map;function o(a){if(!a)return 1;let l=s.get(a);if(l)return l;const c=a.parentNode;return l=e.has(c)?c:r.has(c)?1:o(c),s.set(a,l),l}return t.forEach(a=>{const l=o(a);1!==l&&e.get(l).push(a)}),e}function vn(n,t){n.classList?.add(t)}function Gs(n,t){n.classList?.remove(t)}function _3(n,t,e){zi(e).onDone(()=>n.processLeaveNode(t))}function F0(n,t){for(let e=0;er.add(s)):t.set(n,i),e.delete(n),!0}class yu{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(r,s)=>{},this._transitionEngine=new p3(t,e,i),this._timelineEngine=new o3(t,e,i),this._transitionEngine.onRemovalComplete=(r,s)=>this.onRemovalComplete(r,s)}registerTrigger(t,e,i,r,s){const o=t+"-"+r;let a=this._triggerCache[o];if(!a){const l=[],u=hg(this._driver,s,l,[]);if(l.length)throw function iz(n,t){return new C(3404,!1)}();a=function t3(n,t,e){return new n3(n,t,e)}(r,u,this._normalizer),this._triggerCache[o]=a}this._transitionEngine.registerTrigger(e,r,a)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i,r){this._transitionEngine.removeNode(t,e,r||!1,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if("@"==i.charAt(0)){const[s,o]=s0(i);this._timelineEngine.command(s,e,o,r)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,s){if("@"==i.charAt(0)){const[o,a]=s0(i);return this._timelineEngine.listen(o,e,a,s)}return this._transitionEngine.listen(t,e,i,r,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}let C3=(()=>{class n{constructor(e,i,r){this._element=e,this._startStyles=i,this._endStyles=r,this._state=0;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&Jn(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Jn(this._element,this._initialStyles),this._endStyles&&(Jn(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(Fr(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Fr(this._element,this._endStyles),this._endStyles=null),Jn(this._element,this._initialStyles),this._state=3)}}return n.initialStylesByElement=new WeakMap,n})();function xg(n){let t=null;return n.forEach((e,i)=>{(function x3(n){return"display"===n||"position"===n})(i)&&(t=t||new Map,t.set(i,e))}),t}class O0{constructor(t,e,i,r){this.element=t,this.keyframes=e,this.options=i,this._specialStyles=r,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:new Map,this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(t){const e=[];return t.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(t,e,i){return t.animate(this._convertKeyframesToObject(e),i)}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,r)=>{"offset"!==r&&t.set(r,this._finished?i:v0(this.element,r))}),this.currentSnapshot=t}triggerCallback(t){const e="start"===t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class D3{validateStyleProperty(t){return!0}validateAnimatableStyleProperty(t){return!0}matchesElement(t,e){return!1}containsElement(t,e){return c0(t,e)}getParentElement(t){return sg(t)}query(t,e,i){return u0(t,e,i)}computeStyle(t,e,i){return window.getComputedStyle(t)[e]}animate(t,e,i,r,s,o=[]){const l={duration:i,delay:r,fill:0==r?"both":"forwards"};s&&(l.easing=s);const c=new Map,u=o.filter(p=>p instanceof O0);(function Sz(n,t){return 0===n||0===t})(i,r)&&u.forEach(p=>{p.currentSnapshot.forEach((g,m)=>c.set(m,g))});let d=function xz(n){return n.length?n[0]instanceof Map?n:n.map(t=>p0(t)):[]}(e).map(p=>Wi(p));d=function Az(n,t,e){if(e.size&&t.length){let i=t[0],r=[];if(e.forEach((s,o)=>{i.has(o)||r.push(o),i.set(o,s)}),r.length)for(let s=1;so.set(a,v0(n,a)))}}return t}(t,d,c);const h=function w3(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=xg(t[0]),t.length>1&&(i=xg(t[t.length-1]))):t instanceof Map&&(e=xg(t)),e||i?new C3(n,e,i):null}(t,d);return new O0(t,d,l,h)}}let E3=(()=>{class n extends RE{constructor(e,i){super(),this._nextAnimationId=0,this._renderer=e.createRenderer(i.body,{id:"0",encapsulation:Cn.None,styles:[],data:{animation:[]}})}build(e){const i=this._nextAnimationId.toString();this._nextAnimationId++;const r=Array.isArray(e)?FE(e):e;return P0(this._renderer,null,i,"register",[r]),new M3(i,this._renderer)}}return n.\u0275fac=function(e){return new(e||n)(b(Co),b(ie))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();class M3 extends class z${}{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new S3(this._id,t,e||{},this._renderer)}}class S3{constructor(t,e,i,r){this.id=t,this.element=e,this._renderer=r,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return P0(this._renderer,this.element,this.id,t,e)}onDone(t){this._listen("done",t)}onStart(t){this._listen("start",t)}onDestroy(t){this._listen("destroy",t)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(t){this._command("setPosition",t)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function P0(n,t,e,i,r){return n.setProperty(t,`@@${e}:${i}`,r)}const N0="@.disabled";let A3=(()=>{class n{constructor(e,i,r){this.delegate=e,this.engine=i,this._zone=r,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),i.onRemovalComplete=(s,o)=>{const a=o?.parentNode(s);a&&o.removeChild(a,s)}}createRenderer(e,i){const s=this.delegate.createRenderer(e,i);if(!(e&&i&&i.data&&i.data.animation)){let u=this._rendererCache.get(s);return u||(u=new L0("",s,this.engine,()=>this._rendererCache.delete(s)),this._rendererCache.set(s,u)),u}const o=i.id,a=i.id+"-"+this._currentId;this._currentId++,this.engine.register(a,e);const l=u=>{Array.isArray(u)?u.forEach(l):this.engine.registerTrigger(o,a,e,u.name,u)};return i.data.animation.forEach(l),new T3(this,a,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(e,i,r){e>=0&&ei(r)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[o,a]=s;o(a)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([i,r]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return n.\u0275fac=function(e){return new(e||n)(b(Co),b(yu),b(ae))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})();class L0{constructor(t,e,i,r){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=r,this.destroyNode=this.delegate.destroyNode?s=>e.destroyNode(s):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy(),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate,i)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){"@"==e.charAt(0)&&e==N0?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class T3 extends L0{constructor(t,e,i,r,s){super(e,i,r,s),this.factory=t,this.namespaceId=e}setProperty(t,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==N0?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if("@"==e.charAt(0)){const r=function I3(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(t);let s=e.slice(1),o="";return"@"!=s.charAt(0)&&([s,o]=function R3(n){const t=n.indexOf(".");return[n.substring(0,t),n.slice(t+1)]}(s)),this.engine.listen(this.namespaceId,r,s,o,a=>{this.factory.scheduleListenerCallback(a._data||-1,i,a)})}return this.delegate.listen(t,e,i)}}const V0=[{provide:RE,useClass:E3},{provide:yg,useFactory:function k3(){return new Yz}},{provide:yu,useClass:(()=>{class n extends yu{constructor(e,i,r,s){super(e.body,i,r)}ngOnDestroy(){this.flush()}}return n.\u0275fac=function(e){return new(e||n)(b(ie),b(og),b(yg),b(Uo))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})()},{provide:Co,useFactory:function O3(n,t,e){return new A3(n,t,e)},deps:[fc,yu,ae]}],Dg=[{provide:og,useFactory:()=>new D3},{provide:en,useValue:"BrowserAnimations"},...V0],B0=[{provide:og,useClass:d0},{provide:en,useValue:"NoopAnimations"},...V0];let P3=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?B0:Dg}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({providers:Dg,imports:[zC]}),n})(),N3=(()=>{class n{constructor(e){this._loading=e}intercept(e,i){return this._loading.setLoading(!0,e.url),i.handle(e).pipe(Zn(r=>(this._loading.setLoading(!1,e.url),r))).pipe(U(r=>(r instanceof Xo&&this._loading.setLoading(!1,e.url),r)))}}return n.\u0275fac=function(e){return new(e||n)(b(QE))},n.\u0275prov=E({token:n,factory:n.\u0275fac}),n})(),B3=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[qc,Be],qc,Be]}),n})(),j8=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[Be],Be]}),n})(),e5=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[[qc,Pp,Be,ZD,oc],qc,Be,ZD,j8]}),n})(),nS=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[Lp]}),n})(),D4=(()=>{class n{constructor(e,i){Ts(i)&&!e&&console.warn("Warning: Flex Layout loaded on the server without FlexLayoutServerModule")}static withConfig(e,i=[]){return{ngModule:n,providers:e.serverLoaded?[{provide:Nn,useValue:{...Vp,...e}},{provide:Bp,useValue:i,multi:!0},{provide:$s,useValue:!0}]:[{provide:Nn,useValue:{...Vp,...e}},{provide:Bp,useValue:i,multi:!0}]}}}return n.\u0275fac=function(e){return new(e||n)(b($s),b(pn))},n.\u0275mod=ce({type:n}),n.\u0275inj=se({imports:[AE,t0,nS,AE,t0,nS]}),n})(),E4=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=ce({type:n,bootstrap:[PG]}),n.\u0275inj=se({providers:[{provide:Uf,useClass:N3,multi:!0}],imports:[zC,iG,P3,fG,WL,B3,Pj,Hj,F$,Xj,e5,D4,HU]}),n})();(function $1(){Gw=!1})(),xL().bootstrapModule(E4).catch(n=>console.error(n))}},le=>{le(le.s=505)}]);
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/polyfills.7cf66eac1a880863.js b/sodaexpserver/dist/sodaexp/polyfills.7cf66eac1a880863.js
new file mode 100644
index 00000000..5cf3ce07
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/polyfills.7cf66eac1a880863.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunksodaexp=self.webpackChunksodaexp||[]).push([[429],{435:(ie,Ee,de)=>{de(583)},583:()=>{!function(e){const n=e.performance;function i(M){n&&n.mark&&n.mark(M)}function o(M,E){n&&n.measure&&n.measure(M,E)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function a(M){return c+M}const y=!0===e[a("forceDuplicateZoneCheck")];if(e.Zone){if(y||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let d=(()=>{class M{constructor(t,r){this._parent=t,this._name=r?r.name||"unnamed":"",this._properties=r&&r.properties||{},this._zoneDelegate=new v(this,this._parent&&this._parent._zoneDelegate,r)}static assertZonePatched(){if(e.Promise!==oe.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.)")}static get root(){let t=M.current;for(;t.parent;)t=t.parent;return t}static get current(){return U.zone}static get currentTask(){return re}static __load_patch(t,r,k=!1){if(oe.hasOwnProperty(t)){if(!k&&y)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const C="Zone:"+t;i(C),oe[t]=r(e,M,z),o(C,C)}}get parent(){return this._parent}get name(){return this._name}get(t){const r=this.getZoneWith(t);if(r)return r._properties[t]}getZoneWith(t){let r=this;for(;r;){if(r._properties.hasOwnProperty(t))return r;r=r._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,r){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const k=this._zoneDelegate.intercept(this,t,r),C=this;return function(){return C.runGuarded(k,this,arguments,r)}}run(t,r,k,C){U={parent:U,zone:this};try{return this._zoneDelegate.invoke(this,t,r,k,C)}finally{U=U.parent}}runGuarded(t,r=null,k,C){U={parent:U,zone:this};try{try{return this._zoneDelegate.invoke(this,t,r,k,C)}catch($){if(this._zoneDelegate.handleError(this,$))throw $}}finally{U=U.parent}}runTask(t,r,k){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||K).name+"; Execution: "+this.name+")");if(t.state===x&&(t.type===Q||t.type===w))return;const C=t.state!=p;C&&t._transitionTo(p,j),t.runCount++;const $=re;re=t,U={parent:U,zone:this};try{t.type==w&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,r,k)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==x&&t.state!==h&&(t.type==Q||t.data&&t.data.isPeriodic?C&&t._transitionTo(j,p):(t.runCount=0,this._updateTaskCount(t,-1),C&&t._transitionTo(x,p,x))),U=U.parent,re=$}}scheduleTask(t){if(t.zone&&t.zone!==this){let k=this;for(;k;){if(k===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);k=k.parent}}t._transitionTo(X,x);const r=[];t._zoneDelegates=r,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(k){throw t._transitionTo(h,X,x),this._zoneDelegate.handleError(this,k),k}return t._zoneDelegates===r&&this._updateTaskCount(t,1),t.state==X&&t._transitionTo(j,X),t}scheduleMicroTask(t,r,k,C){return this.scheduleTask(new m(I,t,r,k,C,void 0))}scheduleMacroTask(t,r,k,C,$){return this.scheduleTask(new m(w,t,r,k,C,$))}scheduleEventTask(t,r,k,C,$){return this.scheduleTask(new m(Q,t,r,k,C,$))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||K).name+"; Execution: "+this.name+")");t._transitionTo(G,j,p);try{this._zoneDelegate.cancelTask(this,t)}catch(r){throw t._transitionTo(h,G),this._zoneDelegate.handleError(this,r),r}return this._updateTaskCount(t,-1),t._transitionTo(x,G),t.runCount=0,t}_updateTaskCount(t,r){const k=t._zoneDelegates;-1==r&&(t._zoneDelegates=null);for(let C=0;CM.hasTask(t,r),onScheduleTask:(M,E,t,r)=>M.scheduleTask(t,r),onInvokeTask:(M,E,t,r,k,C)=>M.invokeTask(t,r,k,C),onCancelTask:(M,E,t,r)=>M.cancelTask(t,r)};class v{constructor(E,t,r){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=E,this._parentDelegate=t,this._forkZS=r&&(r&&r.onFork?r:t._forkZS),this._forkDlgt=r&&(r.onFork?t:t._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:t._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:t._interceptZS),this._interceptDlgt=r&&(r.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:t._invokeZS),this._invokeDlgt=r&&(r.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:t._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:t._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:t._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:t._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const k=r&&r.onHasTask;(k||t&&t._hasTaskZS)&&(this._hasTaskZS=k?r:P,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=E,r.onScheduleTask||(this._scheduleTaskZS=P,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=P,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=P,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(E,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,E,t):new d(E,t)}intercept(E,t,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,E,t,r):t}invoke(E,t,r,k,C){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,E,t,r,k,C):t.apply(r,k)}handleError(E,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,E,t)}scheduleTask(E,t){let r=t;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,E,t),r||(r=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=I)throw new Error("Task is missing scheduleFn.");R(t)}return r}invokeTask(E,t,r,k){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,E,t,r,k):t.callback.apply(r,k)}cancelTask(E,t){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,E,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");r=t.cancelFn(t)}return r}hasTask(E,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,E,t)}catch(r){this.handleError(E,r)}}_updateTaskCount(E,t){const r=this._taskCounts,k=r[E],C=r[E]=k+t;if(C<0)throw new Error("More tasks executed then were scheduled.");0!=k&&0!=C||this.hasTask(this.zone,{microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:E})}}class m{constructor(E,t,r,k,C,$){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=E,this.source=t,this.data=k,this.scheduleFn=C,this.cancelFn=$,!r)throw new Error("callback is not defined");this.callback=r;const l=this;this.invoke=E===Q&&k&&k.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(E,t,r){E||(E=this),ee++;try{return E.runCount++,E.zone.runTask(E,t,r)}finally{1==ee&&_(),ee--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(x,X)}_transitionTo(E,t,r){if(this._state!==t&&this._state!==r)throw new Error(`${this.type} '${this.source}': can not transition to '${E}', expecting state '${t}'${r?" or '"+r+"'":""}, was '${this._state}'.`);this._state=E,E==x&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const L=a("setTimeout"),Z=a("Promise"),N=a("then");let J,B=[],H=!1;function q(M){if(J||e[Z]&&(J=e[Z].resolve(0)),J){let E=J[N];E||(E=J.then),E.call(J,M)}else e[L](M,0)}function R(M){0===ee&&0===B.length&&q(_),M&&B.push(M)}function _(){if(!H){for(H=!0;B.length;){const M=B;B=[];for(let E=0;EU,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:R,showUncaughtError:()=>!d[a("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:q};let U={parent:null,zone:new d(null,null)},re=null,ee=0;function W(){}o("Zone","Zone"),e.Zone=d}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ie=Object.getOwnPropertyDescriptor,Ee=Object.defineProperty,de=Object.getPrototypeOf,ge=Object.create,Ve=Array.prototype.slice,Oe="addEventListener",Se="removeEventListener",Ze=Zone.__symbol__(Oe),Ne=Zone.__symbol__(Se),ce="true",ae="false",ke=Zone.__symbol__("");function Ie(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,o,c){return Zone.current.scheduleMacroTask(e,n,i,o,c)}const A=Zone.__symbol__,Pe=typeof window<"u",Te=Pe?window:void 0,Y=Pe&&Te||"object"==typeof self&&self||global;function Le(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Ie(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Be=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,we=!("nw"in Y)&&typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process),je=!we&&!Be&&!(!Pe||!Te.HTMLElement),Ue=typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process)&&!Be&&!(!Pe||!Te.HTMLElement),Re={},We=function(e){if(!(e=e||Y.event))return;let n=Re[e.type];n||(n=Re[e.type]=A("ON_PROPERTY"+e.type));const i=this||e.target||Y,o=i[n];let c;if(je&&i===Te&&"error"===e.type){const a=e;c=o&&o.call(this,a.message,a.filename,a.lineno,a.colno,a.error),!0===c&&e.preventDefault()}else c=o&&o.apply(this,arguments),null!=c&&!c&&e.preventDefault();return c};function qe(e,n,i){let o=ie(e,n);if(!o&&i&&ie(i,n)&&(o={enumerable:!0,configurable:!0}),!o||!o.configurable)return;const c=A("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete o.writable,delete o.value;const a=o.get,y=o.set,d=n.slice(2);let P=Re[d];P||(P=Re[d]=A("ON_PROPERTY"+d)),o.set=function(v){let m=this;!m&&e===Y&&(m=Y),m&&("function"==typeof m[P]&&m.removeEventListener(d,We),y&&y.call(m,null),m[P]=v,"function"==typeof v&&m.addEventListener(d,We,!1))},o.get=function(){let v=this;if(!v&&e===Y&&(v=Y),!v)return null;const m=v[P];if(m)return m;if(a){let L=a.call(this);if(L)return o.set.call(this,L),"function"==typeof v.removeAttribute&&v.removeAttribute(n),L}return null},Ee(e,n,o),e[c]=!0}function Xe(e,n,i){if(n)for(let o=0;ofunction(y,d){const P=i(y,d);return P.cbIdx>=0&&"function"==typeof d[P.cbIdx]?Me(P.name,d[P.cbIdx],P,c):a.apply(y,d)})}function ue(e,n){e[A("OriginalDelegate")]=n}let ze=!1,Ae=!1;function ft(){if(ze)return Ae;ze=!0;try{const e=Te.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(Ae=!0)}catch{}return Ae}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const o=Object.getOwnPropertyDescriptor,c=Object.defineProperty,y=i.symbol,d=[],P=!0===e[y("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],v=y("Promise"),m=y("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const u=l&&l.rejection;u?console.error("Unhandled Promise rejection:",u instanceof Error?u.message:u,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",u,u instanceof Error?u.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;d.length;){const l=d.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(u){N(u)}}};const Z=y("unhandledPromiseRejectionHandler");function N(l){i.onUnhandledError(l);try{const u=n[Z];"function"==typeof u&&u.call(this,l)}catch{}}function B(l){return l&&l.then}function H(l){return l}function J(l){return t.reject(l)}const q=y("state"),R=y("value"),_=y("finally"),K=y("parentPromiseValue"),x=y("parentPromiseState"),j=null,p=!0,G=!1;function I(l,u){return s=>{try{z(l,u,s)}catch(f){z(l,!1,f)}}}const w=function(){let l=!1;return function(s){return function(){l||(l=!0,s.apply(null,arguments))}}},oe=y("currentTaskTrace");function z(l,u,s){const f=w();if(l===s)throw new TypeError("Promise resolved with itself");if(l[q]===j){let g=null;try{("object"==typeof s||"function"==typeof s)&&(g=s&&s.then)}catch(b){return f(()=>{z(l,!1,b)})(),l}if(u!==G&&s instanceof t&&s.hasOwnProperty(q)&&s.hasOwnProperty(R)&&s[q]!==j)re(s),z(l,s[q],s[R]);else if(u!==G&&"function"==typeof g)try{g.call(s,f(I(l,u)),f(I(l,!1)))}catch(b){f(()=>{z(l,!1,b)})()}else{l[q]=u;const b=l[R];if(l[R]=s,l[_]===_&&u===p&&(l[q]=l[x],l[R]=l[K]),u===G&&s instanceof Error){const T=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;T&&c(s,oe,{configurable:!0,enumerable:!1,writable:!0,value:T})}for(let T=0;T{try{const D=l[R],O=!!s&&_===s[_];O&&(s[K]=D,s[x]=b);const S=u.run(T,void 0,O&&T!==J&&T!==H?[]:[D]);z(s,!0,S)}catch(D){z(s,!1,D)}},s)}const M=function(){},E=e.AggregateError;class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(u){return z(new this(null),p,u)}static reject(u){return z(new this(null),G,u)}static any(u){if(!u||"function"!=typeof u[Symbol.iterator])return Promise.reject(new E([],"All promises were rejected"));const s=[];let f=0;try{for(let T of u)f++,s.push(t.resolve(T))}catch{return Promise.reject(new E([],"All promises were rejected"))}if(0===f)return Promise.reject(new E([],"All promises were rejected"));let g=!1;const b=[];return new t((T,D)=>{for(let O=0;O{g||(g=!0,T(S))},S=>{b.push(S),f--,0===f&&(g=!0,D(new E(b,"All promises were rejected")))})})}static race(u){let s,f,g=new this((D,O)=>{s=D,f=O});function b(D){s(D)}function T(D){f(D)}for(let D of u)B(D)||(D=this.resolve(D)),D.then(b,T);return g}static all(u){return t.allWithCallback(u)}static allSettled(u){return(this&&this.prototype instanceof t?this:t).allWithCallback(u,{thenCallback:f=>({status:"fulfilled",value:f}),errorCallback:f=>({status:"rejected",reason:f})})}static allWithCallback(u,s){let f,g,b=new this((S,V)=>{f=S,g=V}),T=2,D=0;const O=[];for(let S of u){B(S)||(S=this.resolve(S));const V=D;try{S.then(F=>{O[V]=s?s.thenCallback(F):F,T--,0===T&&f(O)},F=>{s?(O[V]=s.errorCallback(F),T--,0===T&&f(O)):g(F)})}catch(F){g(F)}T++,D++}return T-=2,0===T&&f(O),b}constructor(u){const s=this;if(!(s instanceof t))throw new Error("Must be an instanceof Promise.");s[q]=j,s[R]=[];try{const f=w();u&&u(f(I(s,p)),f(I(s,G)))}catch(f){z(s,!1,f)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(u,s){var f;let g=null===(f=this.constructor)||void 0===f?void 0:f[Symbol.species];(!g||"function"!=typeof g)&&(g=this.constructor||t);const b=new g(M),T=n.current;return this[q]==j?this[R].push(T,b,u,s):ee(this,T,b,u,s),b}catch(u){return this.then(null,u)}finally(u){var s;let f=null===(s=this.constructor)||void 0===s?void 0:s[Symbol.species];(!f||"function"!=typeof f)&&(f=t);const g=new f(M);g[_]=_;const b=n.current;return this[q]==j?this[R].push(b,g,u,u):ee(this,b,g,u,u),g}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const r=e[v]=e.Promise;e.Promise=t;const k=y("thenPatched");function C(l){const u=l.prototype,s=o(u,"then");if(s&&(!1===s.writable||!s.configurable))return;const f=u.then;u[m]=f,l.prototype.then=function(g,b){return new t((D,O)=>{f.call(this,D,O)}).then(g,b)},l[k]=!0}return i.patchThen=C,r&&(C(r),le(e,"fetch",l=>function $(l){return function(u,s){let f=l.apply(u,s);if(f instanceof t)return f;let g=f.constructor;return g[k]||C(g),f}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=d,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=A("OriginalDelegate"),o=A("Promise"),c=A("Error"),a=function(){if("function"==typeof this){const v=this[i];if(v)return"function"==typeof v?n.call(v):Object.prototype.toString.call(v);if(this===Promise){const m=e[o];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};a[i]=n,Function.prototype.toString=a;const y=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":y.call(this)}});let ye=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){ye=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{ye=!1}const ht={useG:!0},te={},Ye={},$e=new RegExp("^"+ke+"(\\w+)(true|false)$"),Ke=A("propagationStopped");function Je(e,n){const i=(n?n(e):e)+ae,o=(n?n(e):e)+ce,c=ke+i,a=ke+o;te[e]={},te[e][ae]=c,te[e][ce]=a}function dt(e,n,i,o){const c=o&&o.add||Oe,a=o&&o.rm||Se,y=o&&o.listeners||"eventListeners",d=o&&o.rmAll||"removeAllListeners",P=A(c),v="."+c+":",Z=function(R,_,K){if(R.isRemoved)return;const x=R.callback;let X;"object"==typeof x&&x.handleEvent&&(R.callback=p=>x.handleEvent(p),R.originalDelegate=x);try{R.invoke(R,_,[K])}catch(p){X=p}const j=R.options;return j&&"object"==typeof j&&j.once&&_[a].call(_,K.type,R.originalDelegate?R.originalDelegate:R.callback,j),X};function N(R,_,K){if(!(_=_||e.event))return;const x=R||_.target||e,X=x[te[_.type][K?ce:ae]];if(X){const j=[];if(1===X.length){const p=Z(X[0],x,_);p&&j.push(p)}else{const p=X.slice();for(let G=0;G{throw G})}}}const B=function(R){return N(this,R,!1)},H=function(R){return N(this,R,!0)};function J(R,_){if(!R)return!1;let K=!0;_&&void 0!==_.useG&&(K=_.useG);const x=_&&_.vh;let X=!0;_&&void 0!==_.chkDup&&(X=_.chkDup);let j=!1;_&&void 0!==_.rt&&(j=_.rt);let p=R;for(;p&&!p.hasOwnProperty(c);)p=de(p);if(!p&&R[c]&&(p=R),!p||p[P])return!1;const G=_&&_.eventNameToString,h={},I=p[P]=p[c],w=p[A(a)]=p[a],Q=p[A(y)]=p[y],oe=p[A(d)]=p[d];let z;function U(s,f){return!ye&&"object"==typeof s&&s?!!s.capture:ye&&f?"boolean"==typeof s?{capture:s,passive:!0}:s?"object"==typeof s&&!1!==s.passive?Object.assign(Object.assign({},s),{passive:!0}):s:{passive:!0}:s}_&&_.prepend&&(z=p[A(_.prepend)]=p[_.prepend]);const t=K?function(s){if(!h.isExisting)return I.call(h.target,h.eventName,h.capture?H:B,h.options)}:function(s){return I.call(h.target,h.eventName,s.invoke,h.options)},r=K?function(s){if(!s.isRemoved){const f=te[s.eventName];let g;f&&(g=f[s.capture?ce:ae]);const b=g&&s.target[g];if(b)for(let T=0;Tfunction(c,a){c[Ke]=!0,o&&o.apply(c,a)})}function Et(e,n,i,o,c){const a=Zone.__symbol__(o);if(n[a])return;const y=n[a]=n[o];n[o]=function(d,P,v){return P&&P.prototype&&c.forEach(function(m){const L=`${i}.${o}::`+m,Z=P.prototype;try{if(Z.hasOwnProperty(m)){const N=e.ObjectGetOwnPropertyDescriptor(Z,m);N&&N.value?(N.value=e.wrapWithCurrentZone(N.value,L),e._redefineProperty(P.prototype,m,N)):Z[m]&&(Z[m]=e.wrapWithCurrentZone(Z[m],L))}else Z[m]&&(Z[m]=e.wrapWithCurrentZone(Z[m],L))}catch{}}),y.call(n,d,P,v)},e.attachOriginToPatched(n[o],y)}function et(e,n,i){if(!i||0===i.length)return n;const o=i.filter(a=>a.target===e);if(!o||0===o.length)return n;const c=o[0].ignoreProperties;return n.filter(a=>-1===c.indexOf(a))}function tt(e,n,i,o){e&&Xe(e,et(e,n,i),o)}function He(e){return Object.getOwnPropertyNames(e).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}Zone.__load_patch("util",(e,n,i)=>{const o=He(e);i.patchOnProperties=Xe,i.patchMethod=le,i.bindArguments=Le,i.patchMacroTask=lt;const c=n.__symbol__("BLACK_LISTED_EVENTS"),a=n.__symbol__("UNPATCHED_EVENTS");e[a]&&(e[c]=e[a]),e[c]&&(n[c]=n[a]=e[c]),i.patchEventPrototype=_t,i.patchEventTarget=dt,i.isIEOrEdge=ft,i.ObjectDefineProperty=Ee,i.ObjectGetOwnPropertyDescriptor=ie,i.ObjectCreate=ge,i.ArraySlice=Ve,i.patchClass=ve,i.wrapWithCurrentZone=Ie,i.filterProperties=et,i.attachOriginToPatched=ue,i._redefineProperty=Object.defineProperty,i.patchCallbacks=Et,i.getGlobalObjects=()=>({globalSources:Ye,zoneSymbolEventNames:te,eventNames:o,isBrowser:je,isMix:Ue,isNode:we,TRUE_STR:ce,FALSE_STR:ae,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Oe,REMOVE_EVENT_LISTENER_STR:Se})});const Ce=A("zoneTask");function pe(e,n,i,o){let c=null,a=null;i+=o;const y={};function d(v){const m=v.data;return m.args[0]=function(){return v.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),v}function P(v){return a.call(e,v.data.handleId)}c=le(e,n+=o,v=>function(m,L){if("function"==typeof L[0]){const Z={isPeriodic:"Interval"===o,delay:"Timeout"===o||"Interval"===o?L[1]||0:void 0,args:L},N=L[0];L[0]=function(){try{return N.apply(this,arguments)}finally{Z.isPeriodic||("number"==typeof Z.handleId?delete y[Z.handleId]:Z.handleId&&(Z.handleId[Ce]=null))}};const B=Me(n,L[0],Z,d,P);if(!B)return B;const H=B.data.handleId;return"number"==typeof H?y[H]=B:H&&(H[Ce]=B),H&&H.ref&&H.unref&&"function"==typeof H.ref&&"function"==typeof H.unref&&(B.ref=H.ref.bind(H),B.unref=H.unref.bind(H)),"number"==typeof H||H?H:B}return v.apply(e,L)}),a=le(e,i,v=>function(m,L){const Z=L[0];let N;"number"==typeof Z?N=y[Z]:(N=Z&&Z[Ce],N||(N=Z)),N&&"string"==typeof N.type?"notScheduled"!==N.state&&(N.cancelFn&&N.data.isPeriodic||0===N.runCount)&&("number"==typeof Z?delete y[Z]:Z&&(Z[Ce]=null),N.zone.cancelTask(N)):v.apply(e,L)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",o=>function(c,a){n.current.scheduleMicroTask("queueMicrotask",a[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";pe(e,n,i,"Timeout"),pe(e,n,i,"Interval"),pe(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{pe(e,"request","cancel","AnimationFrame"),pe(e,"mozRequest","mozCancel","AnimationFrame"),pe(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let o=0;ofunction(P,v){return n.current.run(a,e,v,d)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function mt(e,n){n.patchEventPrototype(e,n)})(e,i),function pt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:o,TRUE_STR:c,FALSE_STR:a,ZONE_SYMBOL_PREFIX:y}=n.getGlobalObjects();for(let P=0;P{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Tt(e,n){if(we&&!Ue||Zone[e.symbol("patchEvents")])return;const i=n.__Zone_ignore_on_properties;let o=[];if(je){const c=window;o=o.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const a=function ut(){try{const e=Te.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:c,ignoreProperties:["error"]}]:[];tt(c,He(c),i&&i.concat(a),de(c))}o=o.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{!function yt(e,n){const{isBrowser:i,isMix:o}=n.getGlobalObjects();(i||o)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function P(v){const m=v.XMLHttpRequest;if(!m)return;const L=m.prototype;let N=L[Ze],B=L[Ne];if(!N){const h=v.XMLHttpRequestEventTarget;if(h){const I=h.prototype;N=I[Ze],B=I[Ne]}}const H="readystatechange",J="scheduled";function q(h){const I=h.data,w=I.target;w[a]=!1,w[d]=!1;const Q=w[c];N||(N=w[Ze],B=w[Ne]),Q&&B.call(w,H,Q);const oe=w[c]=()=>{if(w.readyState===w.DONE)if(!I.aborted&&w[a]&&h.state===J){const U=w[n.__symbol__("loadfalse")];if(0!==w.status&&U&&U.length>0){const re=h.invoke;h.invoke=function(){const ee=w[n.__symbol__("loadfalse")];for(let W=0;Wfunction(h,I){return h[o]=0==I[2],h[y]=I[1],K.apply(h,I)}),X=A("fetchTaskAborting"),j=A("fetchTaskScheduling"),p=le(L,"send",()=>function(h,I){if(!0===n.current[j]||h[o])return p.apply(h,I);{const w={target:h,url:h[y],isPeriodic:!1,args:I,aborted:!1},Q=Me("XMLHttpRequest.send",R,w,q,_);h&&!0===h[d]&&!w.aborted&&Q.state===J&&Q.invoke()}}),G=le(L,"abort",()=>function(h,I){const w=function Z(h){return h[i]}(h);if(w&&"string"==typeof w.type){if(null==w.cancelFn||w.data&&w.data.aborted)return;w.zone.cancelTask(w)}else if(!0===n.current[X])return G.apply(h,I)})}(e);const i=A("xhrTask"),o=A("xhrSync"),c=A("xhrListener"),a=A("xhrScheduled"),y=A("xhrURL"),d=A("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function at(e,n){const i=e.constructor.name;for(let o=0;o{const P=function(){return d.apply(this,Le(arguments,i+"."+c))};return ue(P,d),P})(a)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(o){return function(c){Qe(e,o).forEach(y=>{const d=e.PromiseRejectionEvent;if(d){const P=new d(o,{promise:c.promise,reason:c.rejection});y.invoke(P)}})}}e.PromiseRejectionEvent&&(n[A("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[A("rejectionHandledHandler")]=i("rejectionhandled"))})}},ie=>{ie(ie.s=435)}]);
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/runtime.4990085508e0f9cc.js b/sodaexpserver/dist/sodaexp/runtime.4990085508e0f9cc.js
new file mode 100644
index 00000000..63ddc1e6
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/runtime.4990085508e0f9cc.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,_={},d={};function n(e){var a=d[e];if(void 0!==a)return a.exports;var r=d[e]={exports:{}};return _[e](r,r.exports,n),r.exports}n.m=_,e=[],n.O=(a,r,u,l)=>{if(!r){var s=1/0;for(f=0;f=l)&&Object.keys(n.O).every(h=>n.O[h](r[t]))?r.splice(t--,1):(c=!1,l0&&e[f-1][2]>l;f--)e[f]=e[f-1];e[f]=[r,u,l]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={666:0};n.O.j=u=>0===e[u];var a=(u,l)=>{var t,o,[f,s,c]=l,v=0;if(f.some(b=>0!==e[b])){for(t in s)n.o(s,t)&&(n.m[t]=s[t]);if(c)var p=c(n)}for(u&&u(l);v
\ No newline at end of file
diff --git a/sodaexpserver/dist/sodaexp/styles.f5d630ac06784ae8.css b/sodaexpserver/dist/sodaexp/styles.f5d630ac06784ae8.css
new file mode 100644
index 00000000..65f75bd9
--- /dev/null
+++ b/sodaexpserver/dist/sodaexp/styles.f5d630ac06784ae8.css
@@ -0,0 +1 @@
+.mat-badge-content{font-weight:600;font-size:12px;font-family:Roboto,Helvetica Neue,sans-serif}.mat-badge-small .mat-badge-content{font-size:9px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography .mat-h1,.mat-typography .mat-headline,.mat-typography h1{font:400 24px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography .mat-h2,.mat-typography .mat-title,.mat-typography h2{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography .mat-h3,.mat-typography .mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography .mat-h4,.mat-typography .mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-body-2,.mat-typography .mat-body-strong,.mat-typography .mat-body-2{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body,.mat-body-1,.mat-typography .mat-body,.mat-typography .mat-body-1,.mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body p,.mat-body-1 p,.mat-typography .mat-body p,.mat-typography .mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.05em;margin:0 0 56px}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.02em;margin:0 0 64px}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.005em;margin:0 0 64px}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-button,.mat-raised-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button,.mat-fab,.mat-mini-fab{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:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-subtitle,.mat-card-content{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:14px;font-weight:500}.mat-chip .mat-chip-trailing-icon.mat-icon,.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,.mat-footer-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;letter-spacing:normal}.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;letter-spacing:normal}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field-wrapper{padding-bottom:1.34375em}.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:.5em 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{transform:translateY(-1.34375em) scale(.75);width:133.3333333333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.3333433333%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.7916666667em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);width:133.3333533333%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.5416666667em;top:calc(100% - 1.6666666667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em}.mat-form-field-appearance-fill .mat-form-field-label{top:1.09375em;margin-top:-.5em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.3333433333%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0}.mat-form-field-appearance-outline .mat-form-field-label{top:1.84375em;margin-top:-.25em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.3333433333%}.mat-grid-tile-header,.mat-grid-tile-footer{font-size:14px}.mat-grid-tile-header .mat-line,.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2),.mat-grid-tile-footer .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:14px;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-family:Roboto,Helvetica Neue,sans-serif}.mat-slider-thumb-label-text{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-stepper-vertical,.mat-stepper-horizontal{font-family:Roboto,Helvetica Neue,sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:400}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto,Helvetica Neue,sans-serif;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;letter-spacing:normal;margin:0}.mat-tooltip{font-family:Roboto,Helvetica Neue,sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-tooltip-handset{font-size:14px;padding-top:8px;padding-bottom:8px}.mat-list-item,.mat-list-option{font-family:Roboto,Helvetica Neue,sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[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;letter-spacing:normal}.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-tree{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tree-node,.mat-nested-tree-node{font-weight:400;font-size:14px}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale(0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator,.mat-mdc-focus-indicator{position:relative}.mat-ripple-element{background-color:#0000001a}.mat-option{color:#000000de}.mat-option:hover:not(.mat-option-disabled),.mat-option:focus:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-active{background:rgba(0,0,0,.04);color:#000000de}.mat-option.mat-option-disabled{color:#00000061}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#3f51b5}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#ff4081}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#f44336}.mat-optgroup-label{color:#0000008a}.mat-optgroup-disabled .mat-optgroup-label{color:#00000061}.mat-pseudo-checkbox{color:#0000008a}.mat-pseudo-checkbox:after{color:#fafafa}.mat-pseudo-checkbox-disabled{color:#b0b0b0}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#3f51b5}.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate,.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate{background:#ff4081}.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;color:#000000de}.mat-elevation-z0{box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-elevation-z1{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mat-elevation-z2{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-elevation-z3{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-elevation-z4{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-elevation-z5{box-shadow:0 3px 5px -1px #0003,0 5px 8px #00000024,0 1px 14px #0000001f}.mat-elevation-z6{box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-elevation-z7{box-shadow:0 4px 5px -2px #0003,0 7px 10px 1px #00000024,0 2px 16px 1px #0000001f}.mat-elevation-z8{box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-elevation-z9{box-shadow:0 5px 6px -3px #0003,0 9px 12px 1px #00000024,0 3px 16px 2px #0000001f}.mat-elevation-z10{box-shadow:0 6px 6px -3px #0003,0 10px 14px 1px #00000024,0 4px 18px 3px #0000001f}.mat-elevation-z11{box-shadow:0 6px 7px -4px #0003,0 11px 15px 1px #00000024,0 4px 20px 3px #0000001f}.mat-elevation-z12{box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.mat-elevation-z13{box-shadow:0 7px 8px -4px #0003,0 13px 19px 2px #00000024,0 5px 24px 4px #0000001f}.mat-elevation-z14{box-shadow:0 7px 9px -4px #0003,0 14px 21px 2px #00000024,0 5px 26px 4px #0000001f}.mat-elevation-z15{box-shadow:0 8px 9px -5px #0003,0 15px 22px 2px #00000024,0 6px 28px 5px #0000001f}.mat-elevation-z16{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-elevation-z17{box-shadow:0 8px 11px -5px #0003,0 17px 26px 2px #00000024,0 6px 32px 5px #0000001f}.mat-elevation-z18{box-shadow:0 9px 11px -5px #0003,0 18px 28px 2px #00000024,0 7px 34px 6px #0000001f}.mat-elevation-z19{box-shadow:0 9px 12px -6px #0003,0 19px 29px 2px #00000024,0 7px 36px 6px #0000001f}.mat-elevation-z20{box-shadow:0 10px 13px -6px #0003,0 20px 31px 3px #00000024,0 8px 38px 7px #0000001f}.mat-elevation-z21{box-shadow:0 10px 13px -6px #0003,0 21px 33px 3px #00000024,0 8px 40px 7px #0000001f}.mat-elevation-z22{box-shadow:0 10px 14px -6px #0003,0 22px 35px 3px #00000024,0 8px 42px 7px #0000001f}.mat-elevation-z23{box-shadow:0 11px 14px -7px #0003,0 23px 36px 3px #00000024,0 9px 44px 8px #0000001f}.mat-elevation-z24{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#fff;color:#000000de}.mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.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:#000000de}.mat-badge{position:relative}.mat-badge.mat-badge{overflow:visible}.mat-badge-hidden .mat-badge-content{display:none}.mat-badge-content{position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:transform .2s ease-in-out;transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.ng-animate-disabled .mat-badge-content,.mat-badge-content._mat-animation-noopable{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:16px;height:16px;line-height:16px}.mat-badge-small.mat-badge-above .mat-badge-content{top:-8px}.mat-badge-small.mat-badge-below .mat-badge-content{bottom:-8px}.mat-badge-small.mat-badge-before .mat-badge-content{left:-16px}[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content{left:auto;right:-16px}.mat-badge-small.mat-badge-after .mat-badge-content{right:-16px}[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content{right:auto;left:-16px}.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-8px}[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-8px}.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-8px}[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-8px}.mat-badge-medium .mat-badge-content{width:22px;height:22px;line-height:22px}.mat-badge-medium.mat-badge-above .mat-badge-content{top:-11px}.mat-badge-medium.mat-badge-below .mat-badge-content{bottom:-11px}.mat-badge-medium.mat-badge-before .mat-badge-content{left:-22px}[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content{left:auto;right:-22px}.mat-badge-medium.mat-badge-after .mat-badge-content{right:-22px}[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content{right:auto;left:-22px}.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-11px}[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-11px}.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-11px}[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-11px}.mat-badge-large .mat-badge-content{width:28px;height:28px;line-height:28px}.mat-badge-large.mat-badge-above .mat-badge-content{top:-14px}.mat-badge-large.mat-badge-below .mat-badge-content{bottom:-14px}.mat-badge-large.mat-badge-before .mat-badge-content{left:-28px}[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content{left:auto;right:-28px}.mat-badge-large.mat-badge-after .mat-badge-content{right:-28px}[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content{right:auto;left:-28px}.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:-14px}[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content{left:auto;right:-14px}.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:-14px}[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content{right:auto;left:-14px}.mat-badge-content{color:#fff;background:#3f51b5}.cdk-high-contrast-active .mat-badge-content{outline:solid 1px;border-radius:0}.mat-badge-accent .mat-badge-content{background:#ff4081;color:#fff}.mat-badge-warn .mat-badge-content{color:#fff;background:#f44336}.mat-badge-disabled .mat-badge-content{background:#b9b9b9;color:#00000061}.mat-bottom-sheet-container{box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f;background:#fff;color:#000000de}.mat-button,.mat-icon-button,.mat-stroked-button{color:inherit;background:transparent}.mat-button.mat-primary,.mat-icon-button.mat-primary,.mat-stroked-button.mat-primary{color:#3f51b5}.mat-button.mat-accent,.mat-icon-button.mat-accent,.mat-stroked-button.mat-accent{color:#ff4081}.mat-button.mat-warn,.mat-icon-button.mat-warn,.mat-stroked-button.mat-warn{color:#f44336}.mat-button.mat-primary.mat-button-disabled,.mat-button.mat-accent.mat-button-disabled,.mat-button.mat-warn.mat-button-disabled,.mat-button.mat-button-disabled.mat-button-disabled,.mat-icon-button.mat-primary.mat-button-disabled,.mat-icon-button.mat-accent.mat-button-disabled,.mat-icon-button.mat-warn.mat-button-disabled,.mat-icon-button.mat-button-disabled.mat-button-disabled,.mat-stroked-button.mat-primary.mat-button-disabled,.mat-stroked-button.mat-accent.mat-button-disabled,.mat-stroked-button.mat-warn.mat-button-disabled,.mat-stroked-button.mat-button-disabled.mat-button-disabled{color:#00000042}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay,.mat-stroked-button.mat-primary .mat-button-focus-overlay{background-color:#3f51b5}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay,.mat-stroked-button.mat-accent .mat-button-focus-overlay{background-color:#ff4081}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay,.mat-stroked-button.mat-warn .mat-button-focus-overlay{background-color:#f44336}.mat-button.mat-button-disabled .mat-button-focus-overlay,.mat-icon-button.mat-button-disabled .mat-button-focus-overlay,.mat-stroked-button.mat-button-disabled .mat-button-focus-overlay{background-color:transparent}.mat-button .mat-ripple-element,.mat-icon-button .mat-ripple-element,.mat-stroked-button .mat-ripple-element{opacity:.1;background-color:currentColor}.mat-button-focus-overlay{background:#000}.mat-stroked-button:not(.mat-button-disabled){border-color:#0000001f}.mat-flat-button,.mat-raised-button,.mat-fab,.mat-mini-fab{color:#000000de;background-color:#fff}.mat-flat-button.mat-primary,.mat-raised-button.mat-primary,.mat-fab.mat-primary,.mat-mini-fab.mat-primary,.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent,.mat-flat-button.mat-warn,.mat-raised-button.mat-warn,.mat-fab.mat-warn,.mat-mini-fab.mat-warn{color:#fff}.mat-flat-button.mat-primary.mat-button-disabled,.mat-flat-button.mat-accent.mat-button-disabled,.mat-flat-button.mat-warn.mat-button-disabled,.mat-flat-button.mat-button-disabled.mat-button-disabled,.mat-raised-button.mat-primary.mat-button-disabled,.mat-raised-button.mat-accent.mat-button-disabled,.mat-raised-button.mat-warn.mat-button-disabled,.mat-raised-button.mat-button-disabled.mat-button-disabled,.mat-fab.mat-primary.mat-button-disabled,.mat-fab.mat-accent.mat-button-disabled,.mat-fab.mat-warn.mat-button-disabled,.mat-fab.mat-button-disabled.mat-button-disabled,.mat-mini-fab.mat-primary.mat-button-disabled,.mat-mini-fab.mat-accent.mat-button-disabled,.mat-mini-fab.mat-warn.mat-button-disabled,.mat-mini-fab.mat-button-disabled.mat-button-disabled{color:#00000042}.mat-flat-button.mat-primary,.mat-raised-button.mat-primary,.mat-fab.mat-primary,.mat-mini-fab.mat-primary{background-color:#3f51b5}.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent{background-color:#ff4081}.mat-flat-button.mat-warn,.mat-raised-button.mat-warn,.mat-fab.mat-warn,.mat-mini-fab.mat-warn{background-color:#f44336}.mat-flat-button.mat-primary.mat-button-disabled,.mat-flat-button.mat-accent.mat-button-disabled,.mat-flat-button.mat-warn.mat-button-disabled,.mat-flat-button.mat-button-disabled.mat-button-disabled,.mat-raised-button.mat-primary.mat-button-disabled,.mat-raised-button.mat-accent.mat-button-disabled,.mat-raised-button.mat-warn.mat-button-disabled,.mat-raised-button.mat-button-disabled.mat-button-disabled,.mat-fab.mat-primary.mat-button-disabled,.mat-fab.mat-accent.mat-button-disabled,.mat-fab.mat-warn.mat-button-disabled,.mat-fab.mat-button-disabled.mat-button-disabled,.mat-mini-fab.mat-primary.mat-button-disabled,.mat-mini-fab.mat-accent.mat-button-disabled,.mat-mini-fab.mat-warn.mat-button-disabled,.mat-mini-fab.mat-button-disabled.mat-button-disabled{background-color:#0000001f}.mat-flat-button.mat-primary .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element,.mat-fab.mat-primary .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element,.mat-flat-button.mat-accent .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element,.mat-fab.mat-accent .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element,.mat-flat-button.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element,.mat-fab.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element{background-color:#ffffff1a}.mat-stroked-button:not([class*=mat-elevation-z]),.mat-flat-button:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-fab:not([class*=mat-elevation-z]),.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]),.mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px #0003,0 12px 17px 2px #00000024,0 5px 22px 4px #0000001f}.mat-fab.mat-button-disabled:not([class*=mat-elevation-z]),.mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}.mat-button-toggle{color:#00000061}.mat-button-toggle .mat-button-toggle-focus-overlay{background-color:#0000001f}.mat-button-toggle-appearance-standard{color:#000000de;background:#fff}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#000}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:solid 1px #e0e0e0}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:solid 1px #e0e0e0}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:solid 1px #e0e0e0}.mat-button-toggle-checked{background-color:#e0e0e0;color:#0000008a}.mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#000000de}.mat-button-toggle-disabled{color:#00000042;background-color:#eee}.mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#fff}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border:solid 1px #e0e0e0}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px}.mat-card{background:#fff;color:#000000de}.mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}.mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 #0003,0 0 #00000024,0 0 #0000001f}.mat-card-subtitle{color:#0000008a}.mat-checkbox-frame{border-color:#0000008a}.mat-checkbox-checkmark{fill:#fafafa}.mat-checkbox-checkmark-path{stroke:#fafafa!important}.mat-checkbox-mixedmark{background-color:#fafafa}.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background,.mat-checkbox-checked.mat-primary .mat-checkbox-background{background-color:#3f51b5}.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background,.mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#ff4081}.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background,.mat-checkbox-checked.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:#00000061}.mat-checkbox .mat-ripple-element{background-color:#000}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element{background:#3f51b5}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element{background:#ff4081}.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element{background:#f44336}.mat-chip.mat-standard-chip{background-color:#e0e0e0;color:#000000de}.mat-chip.mat-standard-chip .mat-chip-remove{color:#000000de;opacity:.4}.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-standard-chip.mat-chip-disabled{opacity:.4}.mat-chip.mat-standard-chip:after{background:#000}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#3f51b5;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element{background-color:#ffffff1a}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn{background-color:#f44336;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element{background-color:#ffffff1a}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#ff4081;color:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background-color:#ffffff1a}.mat-table{background:#fff}.mat-table thead,.mat-table tbody,.mat-table tfoot,mat-header-row,mat-row,mat-footer-row,[mat-header-row],[mat-row],[mat-footer-row],.mat-table-sticky{background:inherit}mat-row,mat-header-row,mat-footer-row,th.mat-header-cell,td.mat-cell,td.mat-footer-cell{border-bottom-color:#0000001f}.mat-header-cell{color:#0000008a}.mat-cell,.mat-footer-cell{color:#000000de}.mat-calendar-arrow{fill:#0000008a}.mat-datepicker-toggle,.mat-datepicker-content .mat-calendar-next-button,.mat-datepicker-content .mat-calendar-previous-button{color:#0000008a}.mat-calendar-table-header-divider:after{background:rgba(0,0,0,.12)}.mat-calendar-table-header,.mat-calendar-body-label{color:#0000008a}.mat-calendar-body-cell-content,.mat-date-range-input-separator{color:#000000de;border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.mat-calendar-body-in-preview{color:#0000003d}.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.mat-calendar-body-in-range:before{background:rgba(63,81,181,.2)}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-calendar-body-comparison-bridge-start:before,[dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(63,81,181,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-calendar-body-comparison-bridge-end:before,[dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(63,81,181,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-calendar-body-selected{background-color:#3f51b5;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#3f51b566}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}@media (hover: hover){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}}.mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(255,64,129,.2)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,64,129,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,64,129,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#ff4081;color:#fff}.mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff408166}.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff40814d}@media (hover: hover){.mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff40814d}}.mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(244,67,54,.2)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(244,67,54,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(244,67,54,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#f44336;color:#fff}.mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#f4433666}.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#f443364d}@media (hover: hover){.mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#f443364d}}.mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-datepicker-toggle-active{color:#3f51b5}.mat-datepicker-toggle-active.mat-accent{color:#ff4081}.mat-datepicker-toggle-active.mat-warn{color:#f44336}.mat-date-range-input-inner[disabled]{color:#00000061}.mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.mat-divider{border-top-color:#0000001f}.mat-divider-vertical{border-right-color:#0000001f}.mat-expansion-panel{background:#fff;color:#000000de}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-action-row{border-top-color:#0000001f}.mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.mat-expansion-panel-header-title{color:#000000de}.mat-expansion-panel-header-description,.mat-expansion-indicator:after{color:#0000008a}.mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header{height:48px}.mat-expansion-panel-header.mat-expanded{height:64px}.mat-form-field-label,.mat-hint{color:#0009}.mat-form-field.mat-focused .mat-form-field-label{color:#3f51b5}.mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#ff4081}.mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#ff4081}.mat-form-field-ripple{background-color:#000000de}.mat-form-field.mat-focused .mat-form-field-ripple{background-color:#3f51b5}.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#ff4081}.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#f44336}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#3f51b5}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#ff4081}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-label,.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#f44336}.mat-error{color:#f44336}.mat-form-field-appearance-legacy .mat-form-field-label,.mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#3f51b5}.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#ff4081}.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#f44336}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.mat-icon.mat-primary{color:#3f51b5}.mat-icon.mat-accent{color:#ff4081}.mat-icon.mat-warn{color:#f44336}.mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.mat-input-element:disabled,.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.mat-input-element{caret-color:#3f51b5}.mat-input-element::placeholder{color:#0000006b}.mat-input-element::-moz-placeholder{color:#0000006b}.mat-input-element::-webkit-input-placeholder{color:#0000006b}.mat-input-element:-ms-input-placeholder{color:#0000006b}.mat-form-field.mat-accent .mat-input-element{caret-color:#ff4081}.mat-form-field.mat-warn .mat-input-element,.mat-form-field-invalid .mat-input-element{caret-color:#f44336}.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#f44336}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{color:#000000de}.mat-list-base .mat-subheader{color:#0000008a}.mat-list-base .mat-list-item-disabled{background-color:#eee;color:#00000061}.mat-list-option:hover,.mat-list-option:focus,.mat-nav-list .mat-list-item:hover,.mat-nav-list .mat-list-item:focus,.mat-action-list .mat-list-item:hover,.mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.mat-list-single-selected-option,.mat-list-single-selected-option:hover,.mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.mat-menu-panel{background:#fff}.mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-menu-item{background:transparent;color:#000000de}.mat-menu-item[disabled],.mat-menu-item[disabled] .mat-menu-submenu-icon,.mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.mat-menu-item .mat-icon-no-color,.mat-menu-submenu-icon{color:#0000008a}.mat-menu-item:hover:not([disabled]),.mat-menu-item.cdk-program-focused:not([disabled]),.mat-menu-item.cdk-keyboard-focused:not([disabled]),.mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:#0000008a}.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-paginator-first,.mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.mat-paginator-container{min-height:56px}.mat-progress-bar-background{fill:#cbd0e9}.mat-progress-bar-buffer{background-color:#cbd0e9}.mat-progress-bar-fill:after{background-color:#3f51b5}.mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#fbccdc}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#fbccdc}.mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#ff4081}.mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#f9ccc9}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#f9ccc9}.mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#3f51b5}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#ff4081}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:#0000008a}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#3f51b5}.mat-radio-button.mat-primary .mat-radio-inner-circle,.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#3f51b5}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#ff4081}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#ff4081}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#f44336}.mat-radio-button.mat-warn .mat-radio-inner-circle,.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#f44336}.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.mat-radio-button .mat-ripple-element{background-color:#000}.mat-select-value{color:#000000de}.mat-select-placeholder{color:#0000006b}.mat-select-disabled .mat-select-value{color:#00000061}.mat-select-arrow{color:#0000008a}.mat-select-panel{background:#fff}.mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.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:#3f51b5}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#ff4081}.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:#00000061}.mat-drawer-container{background-color:#fafafa;color:#000000de}.mat-drawer{background-color:#fff;color:#000000de}.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.mat-drawer-side.mat-drawer-end,[dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#ff4081}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#ff40818a}.mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#ff4081}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#3f51b5}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#3f51b58a}.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#3f51b5}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#f44336}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#f443368a}.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#f44336}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.mat-slide-toggle-bar{background-color:#00000061}.mat-slider-track-background{background-color:#00000042}.mat-slider.mat-primary .mat-slider-track-fill,.mat-slider.mat-primary .mat-slider-thumb,.mat-slider.mat-primary .mat-slider-thumb-label{background-color:#3f51b5}.mat-slider.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-slider.mat-primary .mat-slider-focus-ring{background-color:#3f51b533}.mat-slider.mat-accent .mat-slider-track-fill,.mat-slider.mat-accent .mat-slider-thumb,.mat-slider.mat-accent .mat-slider-thumb-label{background-color:#ff4081}.mat-slider.mat-accent .mat-slider-thumb-label-text{color:#fff}.mat-slider.mat-accent .mat-slider-focus-ring{background-color:#ff408133}.mat-slider.mat-warn .mat-slider-track-fill,.mat-slider.mat-warn .mat-slider-thumb,.mat-slider.mat-warn .mat-slider-thumb-label{background-color:#f44336}.mat-slider.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider.mat-warn .mat-slider-focus-ring{background-color:#f4433633}.mat-slider:hover .mat-slider-track-background,.mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.mat-slider.mat-slider-disabled .mat-slider-track-background,.mat-slider.mat-slider-disabled .mat-slider-track-fill,.mat-slider.mat-slider-disabled .mat-slider-thumb,.mat-slider.mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.mat-slider.mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.mat-slider.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.mat-slider.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.mat-slider.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:transparent}.mat-slider.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.mat-slider.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#00000061}.mat-slider.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.mat-slider.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,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(to bottom,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:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.mat-step-header:hover{background:none}}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:#0000008a}.mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.mat-step-header .mat-step-icon-selected,.mat-step-header .mat-step-icon-state-done,.mat-step-header .mat-step-icon-state-edit{background-color:#3f51b5;color:#fff}.mat-step-header.mat-accent .mat-step-icon{color:#fff}.mat-step-header.mat-accent .mat-step-icon-selected,.mat-step-header.mat-accent .mat-step-icon-state-done,.mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#ff4081;color:#fff}.mat-step-header.mat-warn .mat-step-icon{color:#fff}.mat-step-header.mat-warn .mat-step-icon-selected,.mat-step-header.mat-warn .mat-step-icon-state-done,.mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#f44336;color:#fff}.mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#f44336}.mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.mat-step-header .mat-step-label.mat-step-label-error{color:#f44336}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#fff}.mat-stepper-vertical-line:before{border-left-color:#0000001f}.mat-horizontal-stepper-header:before,.mat-horizontal-stepper-header:after,.mat-stepper-horizontal-line{border-top-color:#0000001f}.mat-horizontal-stepper-header{height:72px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.mat-vertical-stepper-header{padding:24px}.mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before{top:36px}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.mat-sort-header-arrow{color:#757575}.mat-tab-nav-bar,.mat-tab-header{border-bottom:1px solid rgba(0,0,0,.12)}.mat-tab-group-inverted-header .mat-tab-nav-bar,.mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:#000000de}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:#00000061}.mat-tab-header-pagination-chevron{border-color:#000000de}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.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.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#c5cae94d}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#3f51b5}.mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ff80ab4d}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#ff4081}.mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ffcdd24d}.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-tab-header .mat-ink-bar,.mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#c5cae94d}.mat-tab-group.mat-background-primary>.mat-tab-header,.mat-tab-group.mat-background-primary>.mat-tab-link-container,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#3f51b5}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.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 .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:#fff;opacity:.4}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ff80ab4d}.mat-tab-group.mat-background-accent>.mat-tab-header,.mat-tab-group.mat-background-accent>.mat-tab-link-container,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#ff4081}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.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 .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:#fff;opacity:.4}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ffcdd24d}.mat-tab-group.mat-background-warn>.mat-tab-header,.mat-tab-group.mat-background-warn>.mat-tab-link-container,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#f44336}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.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 .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:#fff;opacity:.4}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.mat-toolbar{background:#f5f5f5;color:#000000de}.mat-toolbar.mat-primary{background:#3f51b5;color:#fff}.mat-toolbar.mat-accent{background:#ff4081;color:#fff}.mat-toolbar.mat-warn{background:#f44336;color:#fff}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar-multiple-rows{min-height:64px}.mat-toolbar-row,.mat-toolbar-single-row{height:64px}@media (max-width: 599px){.mat-toolbar-multiple-rows{min-height:56px}.mat-toolbar-row,.mat-toolbar-single-row{height:56px}}.mat-tooltip{background:rgba(97,97,97,.9)}.mat-tree{background:#fff}.mat-tree-node,.mat-nested-tree-node{color:#000000de}.mat-tree-node{min-height:48px}.mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-simple-snackbar-action{color:#ff4081}html,body{height:100%}body{margin:0;font-family:Roboto,Helvetica Neue,sans-serif}
diff --git a/sodaexpserver/package-lock.json b/sodaexpserver/package-lock.json
new file mode 100644
index 00000000..89916f35
--- /dev/null
+++ b/sodaexpserver/package-lock.json
@@ -0,0 +1,2034 @@
+{
+ "name": "sodaexperienceserver",
+ "version": "0.0.1",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "sodaexperienceserver",
+ "version": "0.0.1",
+ "license": "GPL",
+ "dependencies": {
+ "bcryptjs": "^2.4.3",
+ "body-parser": "^1.20.0",
+ "cookie-parser": "^1.4.6",
+ "cookie-session": "^2.0.0",
+ "cors": "^2.8.5",
+ "express": "^4.18.1",
+ "express-session": "^1.17.3",
+ "jsonwebtoken": "^8.5.1",
+ "mysql": "^2.18.1",
+ "session": "^0.1.0"
+ },
+ "devDependencies": {
+ "axios": "^1.3.5"
+ }
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true
+ },
+ "node_modules/axios": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.5.tgz",
+ "integrity": "sha512-glL/PvG/E+xCWwV8S6nCHcrfg1exGx7vxyUIivIA1iL7BIh6bePylCfVHwp6k13ao7SATxB6imau2kqY+I67kw==",
+ "dev": true,
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "node_modules/bcryptjs": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
+ "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="
+ },
+ "node_modules/bignumber.js": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
+ "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-parser": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz",
+ "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
+ "dependencies": {
+ "cookie": "0.4.1",
+ "cookie-signature": "1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/cookie-parser/node_modules/cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-session": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0.tgz",
+ "integrity": "sha512-hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==",
+ "dependencies": {
+ "cookies": "0.8.0",
+ "debug": "3.2.7",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/cookie-session/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/cookie-session/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "node_modules/cookies": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
+ "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "keygrip": "~1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express": {
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
+ "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.0",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.10.3",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/express-session": {
+ "version": "1.17.3",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz",
+ "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==",
+ "dependencies": {
+ "cookie": "0.4.2",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~2.0.0",
+ "on-headers": "~1.0.2",
+ "parseurl": "~1.3.3",
+ "safe-buffer": "5.2.1",
+ "uid-safe": "~2.1.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/express-session/node_modules/cookie": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/eyes": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==",
+ "engines": {
+ "node": "> 0.1.90"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/jsonwebtoken": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
+ "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+ "dependencies": {
+ "jws": "^3.2.2",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=4",
+ "npm": ">=1.4.28"
+ }
+ },
+ "node_modules/jsonwebtoken/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/jwa": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "dependencies": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "dependencies": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/keygrip": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
+ "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
+ "dependencies": {
+ "tsscmp": "1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
+ },
+ "node_modules/lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
+ },
+ "node_modules/lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
+ },
+ "node_modules/lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
+ },
+ "node_modules/lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
+ },
+ "node_modules/lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
+ },
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/mysql": {
+ "version": "2.18.1",
+ "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
+ "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==",
+ "dependencies": {
+ "bignumber.js": "9.0.0",
+ "readable-stream": "2.3.7",
+ "safe-buffer": "5.1.2",
+ "sqlstring": "2.3.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mysql/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ },
+ "node_modules/qs": {
+ "version": "6.10.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/random-bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
+ "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/readable-stream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "dependencies": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/session": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/session/-/session-0.1.0.tgz",
+ "integrity": "sha512-rWQtVE5G+t/dg7wP6HB4wwCTaN4iDR7UW57KpLvf4bJGHqUuYo7z5WUSBdXvgNSBbrtuP1dLig1UjYDQ4SHm+g==",
+ "dependencies": {
+ "vows": "*"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/sqlstring": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
+ "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/tsscmp": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
+ "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==",
+ "engines": {
+ "node": ">=0.6.x"
+ }
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/uid-safe": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
+ "dependencies": {
+ "random-bytes": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vows": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/vows/-/vows-0.8.3.tgz",
+ "integrity": "sha512-PVIxa/ovXhrw5gA3mz6M+ZF3PHlqX4tutR2p/y9NWPAaFVKcWBE8b2ktfr0opQM/qFmcOVWKjSCJVjnYOvjXhw==",
+ "dependencies": {
+ "diff": "^4.0.1",
+ "eyes": "~0.1.6",
+ "glob": "^7.1.2"
+ },
+ "bin": {
+ "vows": "bin/vows"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ }
+ },
+ "dependencies": {
+ "accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "requires": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ }
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true
+ },
+ "axios": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.5.tgz",
+ "integrity": "sha512-glL/PvG/E+xCWwV8S6nCHcrfg1exGx7vxyUIivIA1iL7BIh6bePylCfVHwp6k13ao7SATxB6imau2kqY+I67kw==",
+ "dev": true,
+ "requires": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "bcryptjs": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
+ "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ=="
+ },
+ "bignumber.js": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz",
+ "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A=="
+ },
+ "body-parser": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
+ "requires": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
+ },
+ "bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "requires": {
+ "safe-buffer": "5.2.1"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+ },
+ "cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
+ },
+ "cookie-parser": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz",
+ "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
+ "requires": {
+ "cookie": "0.4.1",
+ "cookie-signature": "1.0.6"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
+ }
+ }
+ },
+ "cookie-session": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0.tgz",
+ "integrity": "sha512-hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==",
+ "requires": {
+ "cookies": "0.8.0",
+ "debug": "3.2.7",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.2.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "cookies": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
+ "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
+ "requires": {
+ "depd": "~2.0.0",
+ "keygrip": "~1.1.0"
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ },
+ "destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
+ },
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
+ },
+ "ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
+ },
+ "express": {
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
+ "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
+ "requires": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.0",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.10.3",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ }
+ },
+ "express-session": {
+ "version": "1.17.3",
+ "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz",
+ "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==",
+ "requires": {
+ "cookie": "0.4.2",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~2.0.0",
+ "on-headers": "~1.0.2",
+ "parseurl": "~1.3.3",
+ "safe-buffer": "5.2.1",
+ "uid-safe": "~2.1.5"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
+ }
+ }
+ },
+ "eyes": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ=="
+ },
+ "finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "dev": true
+ },
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "get-intrinsic": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ },
+ "http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "requires": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "jsonwebtoken": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
+ "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+ "requires": {
+ "jws": "^3.2.2",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^5.6.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "jwa": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "requires": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "requires": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "keygrip": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
+ "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
+ "requires": {
+ "tsscmp": "1.0.6"
+ }
+ },
+ "lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
+ },
+ "lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
+ },
+ "lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
+ },
+ "lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
+ },
+ "lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
+ },
+ "lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
+ },
+ "lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "mysql": {
+ "version": "2.18.1",
+ "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
+ "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==",
+ "requires": {
+ "bignumber.js": "9.0.0",
+ "readable-stream": "2.3.7",
+ "safe-buffer": "5.1.2",
+ "sqlstring": "2.3.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ },
+ "on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "requires": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ }
+ },
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.10.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "random-bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
+ "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ=="
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "raw-body": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "requires": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ }
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "send": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ }
+ },
+ "session": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/session/-/session-0.1.0.tgz",
+ "integrity": "sha512-rWQtVE5G+t/dg7wP6HB4wwCTaN4iDR7UW57KpLvf4bJGHqUuYo7z5WUSBdXvgNSBbrtuP1dLig1UjYDQ4SHm+g==",
+ "requires": {
+ "vows": "*"
+ }
+ },
+ "setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "sqlstring": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
+ "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ=="
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ }
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
+ },
+ "tsscmp": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
+ "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "uid-safe": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
+ "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
+ "requires": {
+ "random-bytes": "~1.0.0"
+ }
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
+ },
+ "vows": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/vows/-/vows-0.8.3.tgz",
+ "integrity": "sha512-PVIxa/ovXhrw5gA3mz6M+ZF3PHlqX4tutR2p/y9NWPAaFVKcWBE8b2ktfr0opQM/qFmcOVWKjSCJVjnYOvjXhw==",
+ "requires": {
+ "diff": "^4.0.1",
+ "eyes": "~0.1.6",
+ "glob": "^7.1.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ }
+ }
+}
diff --git a/sodaexpserver/package.json b/sodaexpserver/package.json
new file mode 100644
index 00000000..43d2ff8b
--- /dev/null
+++ b/sodaexpserver/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "sodaexperienceserver",
+ "version": "0.0.1",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "start": "node index.js"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "GPL",
+ "dependencies": {
+ "bcryptjs": "^2.4.3",
+ "body-parser": "^1.20.0",
+ "cookie-parser": "^1.4.6",
+ "cookie-session": "^2.0.0",
+ "cors": "^2.8.5",
+ "express": "^4.18.1",
+ "express-session": "^1.17.3",
+ "jsonwebtoken": "^8.5.1",
+ "mysql": "^2.18.1",
+ "session": "^0.1.0"
+ },
+ "devDependencies": {
+ "axios": "^1.3.5"
+ }
+}
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 651b9515..1bb2782a 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { ProjectIntroComponent } from './project-intro/project-intro.component';
import { ProjectDetailsComponent } from './project-details/project-details.component';
+import { InstallProjectComponent } from './install-project/install-project.component';
const routes: Routes = [
{
@@ -16,6 +17,10 @@ const routes: Routes = [
{
path: 'project-details/:projectName',
component: ProjectDetailsComponent
+ },
+ {
+ path: 'project-details/install/:projectName',
+ component: InstallProjectComponent
}
];
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 47aa76b3..5bde3299 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -33,6 +33,7 @@ export class AppComponent implements OnInit {
getBaseData(){
this.api.getBaseData().subscribe(data => {
this.siteDetails = data;
+ window.sessionStorage.setItem('serverPort', this.siteDetails.serverPort);
});
}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 7839c62b..0921479c 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -20,6 +20,7 @@ import { MatListModule } from '@angular/material/list';
import { FlexLayoutModule } from "@angular/flex-layout";
import { MatTabsModule } from '@angular/material/tabs';
import { SafePipe } from './common/safePipe';
+import { InstallProjectComponent } from './install-project/install-project.component';
@NgModule({
declarations: [
@@ -27,7 +28,8 @@ import { SafePipe } from './common/safePipe';
SplashScreenComponent,
ProjectIntroComponent,
ProjectDetailsComponent,
- SafePipe
+ SafePipe,
+ InstallProjectComponent
],
imports: [
BrowserModule,
diff --git a/src/app/install-project/install-project.component.html b/src/app/install-project/install-project.component.html
new file mode 100644
index 00000000..c3f2adc9
--- /dev/null
+++ b/src/app/install-project/install-project.component.html
@@ -0,0 +1,47 @@
+
+
+
+ Install - {{projectName}}
+
+
+ arrow_back
+
+
+
+
+
+
+
+
+
+ Project Installation Configuration
+ Change the parameters as required or install with default values
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System Requirements
+ OS, Software and Tools Check
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/install-project/install-project.component.scss b/src/app/install-project/install-project.component.scss
new file mode 100644
index 00000000..a43e6620
--- /dev/null
+++ b/src/app/install-project/install-project.component.scss
@@ -0,0 +1,34 @@
+.content {
+ padding: 16px;
+ }
+
+ .content > mat-card {
+ margin-bottom: 16px;
+ }
+
+ .content > mat-card {
+ width: 200px;
+ min-height: 250px;
+ }
+
+ .mat-card.project-list {
+ min-height: 250px;
+ }
+
+ .mat-card.project-list > mat-card-content{
+ min-height: 40px;
+ }
+
+ .mat-card.project-list .mat-card-title-group{
+ width: 100%;
+ }
+.details-top{
+ padding: 12px;
+ .p-name{
+ font-weight: bold;
+ font-size: 18px;
+ }
+ .example-spacer{
+ flex: 1 1 auto;
+ }
+}
\ No newline at end of file
diff --git a/src/app/install-project/install-project.component.spec.ts b/src/app/install-project/install-project.component.spec.ts
new file mode 100644
index 00000000..21949355
--- /dev/null
+++ b/src/app/install-project/install-project.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { InstallProjectComponent } from './install-project.component';
+
+describe('InstallProjectComponent', () => {
+ let component: InstallProjectComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [ InstallProjectComponent ]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(InstallProjectComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/install-project/install-project.component.ts b/src/app/install-project/install-project.component.ts
new file mode 100644
index 00000000..d74cb57d
--- /dev/null
+++ b/src/app/install-project/install-project.component.ts
@@ -0,0 +1,50 @@
+import { Component, OnInit } from '@angular/core';
+import { HttpService } from '../services/http.service';
+import { ActivatedRoute } from '@angular/router';
+import { Router } from '@angular/router';
+
+@Component({
+ selector: 'app-install-project',
+ templateUrl: './install-project.component.html',
+ styleUrls: ['./install-project.component.scss']
+})
+export class InstallProjectComponent implements OnInit {
+ projects: any;
+ col: string = '2';
+ row: string = '1';
+ gridColumns = 2;
+
+ constructor(
+ private api: HttpService,
+ private route: ActivatedRoute,
+ private router: Router
+ ) { }
+
+ projectName: any;
+ projectDetails: any;
+
+ ngOnInit(): void {
+ this.projectName = this.route.snapshot.paramMap.get('projectName');
+ this.getProjectDetails();
+ }
+
+ getProjectDetails(){
+ this.api.getProjectDetails(this.projectName.toLowerCase()).subscribe(resp => {
+ this.projectDetails = resp;
+ this.checkSystemRequirements();
+ });
+ }
+
+
+ checkSystemRequirements(){
+ this.api.checkSystemRequirements(this.projectDetails.systemRequirements).subscribe(resp =>{
+ console.log(resp);
+ });
+ }
+
+ returnBack(){
+ this.router.navigateByUrl('projects');
+ }
+
+
+}
diff --git a/src/app/project-intro/project-intro.component.ts b/src/app/project-intro/project-intro.component.ts
index be416253..5f9e18a5 100644
--- a/src/app/project-intro/project-intro.component.ts
+++ b/src/app/project-intro/project-intro.component.ts
@@ -22,24 +22,20 @@ export class ProjectIntroComponent implements OnInit {
this.getData();
}
- /*
- * getData() needs to be rewritten after the NodeJS Express server is implemented
- * Making a call to check the project installation will create a CORS issue
- * Every project installation status can be checked on the server
- */
-
getData() {
this.api.getData().subscribe(data => {
this.projects = data;
this.projects.forEach((project: any) => {
- let url = 'http://localhost:' + project.installedPort;
+ let url = {
+ dashboardUrl: 'http://localhost:' + project.installedPort
+ }
this.api.checkProjectInstallation(url).subscribe((resp: any) => {
const projectStatus = resp;
- projectStatus.forEach((status: any) => {
- if(project.name === status.project){
- project['installed'] = status.installed;
- }
- });
+ if(projectStatus.status === 200 && projectStatus.dashboard === 'installed'){
+ project['installed'] = true;
+ } else {
+ project['installed'] = false;
+ }
});
});
});
@@ -58,8 +54,7 @@ export class ProjectIntroComponent implements OnInit {
}
installProject(project: any){
- // To be implemented once the NodeJS serveris implemented
- console.log(project);
+ this.route.navigateByUrl('/project-details/install/' + project.name);
}
}
diff --git a/src/app/services/http.service.ts b/src/app/services/http.service.ts
index d3b87842..547d9014 100644
--- a/src/app/services/http.service.ts
+++ b/src/app/services/http.service.ts
@@ -10,6 +10,8 @@ export class HttpService {
private http: HttpClient
) { }
+ serverPort = window.sessionStorage.getItem('serverPort');
+
getData() {
return this.http.get('assets/projectList.json');
}
@@ -22,12 +24,12 @@ export class HttpService {
return this.http.get('assets/'+projectName+'/'+projectName+'Details.json');
}
- /*
- * The below API should be pointing to an API on the NodeJS server
- * This is a mock API implementation to implement the UI functonality
- */
checkProjectInstallation(url: any){
- return this.http.get('assets/projectInstallStatus.json');
+ return this.http.post('http://localhost:'+ this.serverPort +'/api/checkDashboardStatus', url);
+ }
+
+ checkSystemRequirements(systemRequirements: any){
+ return this.http.post('http://localhost:'+ this.serverPort +'/api/checkSystemRequirements', systemRequirements);
}
}
diff --git a/src/assets/como/comoDetails.json b/src/assets/como/comoDetails.json
index 8ef12ede..9c0221a4 100644
--- a/src/assets/como/comoDetails.json
+++ b/src/assets/como/comoDetails.json
@@ -1,6 +1,36 @@
{
"name": "COMO",
"slackLink": "",
+ "systemRequirements": [
+ {
+ "type": "OS",
+ "requirement" : {
+ "name": "UBUNTU",
+ "version": "20.04"
+ }
+ },
+ {
+ "type": "software",
+ "requirement": {
+ "name": "PYTHON",
+ "version": "3.6"
+ }
+ },
+ {
+ "type": "software",
+ "requirement": {
+ "name": "DOCKER",
+ "version": "20.10.21"
+ }
+ },
+ {
+ "type": "software",
+ "requirement":{
+ "name": "ansible",
+ "version": "5.10.0"
+ }
+ }
+ ],
"details" : [
{
"tabName" : "Use Cases",
diff --git a/src/assets/delfin/delfinDetails.json b/src/assets/delfin/delfinDetails.json
index da03528c..a8a6bf47 100644
--- a/src/assets/delfin/delfinDetails.json
+++ b/src/assets/delfin/delfinDetails.json
@@ -1,5 +1,35 @@
{
"name": "Delfin",
+ "systemRequirements": [
+ {
+ "type": "OS",
+ "requirement" : {
+ "name": "UBUNTU",
+ "version": "20.04"
+ }
+ },
+ {
+ "type": "software",
+ "requirement": {
+ "name": "PYTHON",
+ "version": "3.6"
+ }
+ },
+ {
+ "type": "software",
+ "requirement": {
+ "name": "DOCKER",
+ "version": "20.10.21"
+ }
+ },
+ {
+ "type": "software",
+ "requirement":{
+ "name": "ansible",
+ "version": "5.10.0"
+ }
+ }
+ ],
"details" : [
{
"tabName" : "Use Cases",
diff --git a/src/assets/kahu/kahuDetails.json b/src/assets/kahu/kahuDetails.json
index 296df57d..2a7531c5 100644
--- a/src/assets/kahu/kahuDetails.json
+++ b/src/assets/kahu/kahuDetails.json
@@ -1,6 +1,36 @@
{
"name": "KAHU",
"slackLink": "",
+ "systemRequirements": [
+ {
+ "type": "OS",
+ "requirement" : {
+ "name": "UBUNTU",
+ "version": "20.04"
+ }
+ },
+ {
+ "type": "software",
+ "requirement": {
+ "name": "PYTHON",
+ "version": "3.6"
+ }
+ },
+ {
+ "type": "software",
+ "requirement": {
+ "name": "DOCKER",
+ "version": "20.10.21"
+ }
+ },
+ {
+ "type": "software",
+ "requirement":{
+ "name": "ansible",
+ "version": "5.10.0"
+ }
+ }
+ ],
"details" : [
{
"tabName" : "Use Cases",
diff --git a/src/assets/projectInstallStatus.json b/src/assets/projectInstallStatus.json
deleted file mode 100644
index 19f608e6..00000000
--- a/src/assets/projectInstallStatus.json
+++ /dev/null
@@ -1,22 +0,0 @@
-[
- {
- "project": "DELFIN",
- "installed": true
- },
- {
- "project": "STRATO",
- "installed": false
- },
- {
- "project": "KAHU",
- "installed": true
- },
- {
- "project": "COMO",
- "installed": false
- },
- {
- "project": "TERRA",
- "installed": false
- }
-]
\ No newline at end of file
diff --git a/src/assets/siteBasics.json b/src/assets/siteBasics.json
index 73c73ead..bb260143 100644
--- a/src/assets/siteBasics.json
+++ b/src/assets/siteBasics.json
@@ -1,4 +1,5 @@
{
"release": "Navarino (v1.8.0)",
- "footerText": "SODA Expereince Dashboard. Explore SODA framework projects"
+ "footerText": "SODA Expereince Dashboard. Explore SODA framework projects",
+ "serverPort": 3000
}
diff --git a/src/assets/strato/stratoDetails.json b/src/assets/strato/stratoDetails.json
index 42b43939..e8f6a396 100644
--- a/src/assets/strato/stratoDetails.json
+++ b/src/assets/strato/stratoDetails.json
@@ -1,6 +1,36 @@
{
"name": "STRATO",
"slackLink": "",
+ "systemRequirements": [
+ {
+ "type": "OS",
+ "requirement" : {
+ "name": "UBUNTU",
+ "version": "20.04"
+ }
+ },
+ {
+ "type": "software",
+ "requirement": {
+ "name": "PYTHON",
+ "version": "3.6"
+ }
+ },
+ {
+ "type": "software",
+ "requirement": {
+ "name": "DOCKER",
+ "version": "20.10.21"
+ }
+ },
+ {
+ "type": "software",
+ "requirement":{
+ "name": "ansible",
+ "version": "5.10.0"
+ }
+ }
+ ],
"details" : [
{
"tabName" : "Use Cases",
diff --git a/src/assets/terra/terraDetails.json b/src/assets/terra/terraDetails.json
index cd1029fd..f0d39cd0 100644
--- a/src/assets/terra/terraDetails.json
+++ b/src/assets/terra/terraDetails.json
@@ -1,6 +1,36 @@
{
"name": "TERRA",
"slackLink": "",
+ "systemRequirements": [
+ {
+ "type": "OS",
+ "requirement" : {
+ "name": "UBUNTU",
+ "version": "20.04"
+ }
+ },
+ {
+ "type": "software",
+ "requirement": {
+ "name": "PYTHON",
+ "version": "3.6"
+ }
+ },
+ {
+ "type": "software",
+ "requirement": {
+ "name": "DOCKER",
+ "version": "20.10.21"
+ }
+ },
+ {
+ "type": "software",
+ "requirement":{
+ "name": "ansible",
+ "version": "5.10.0"
+ }
+ }
+ ],
"details" : [
{
"tabName" : "Use Cases",