diff --git a/typescript/simio-client/.editorconfig b/typescript/simio-client/.editorconfig
new file mode 100644
index 0000000..e89330a
--- /dev/null
+++ b/typescript/simio-client/.editorconfig
@@ -0,0 +1,13 @@
+# Editor configuration, see https://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
diff --git a/typescript/simio-client/.gitignore b/typescript/simio-client/.gitignore
new file mode 100644
index 0000000..d89e729
--- /dev/null
+++ b/typescript/simio-client/.gitignore
@@ -0,0 +1,105 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+/dist
+/tmp
+/out-tsc
+
+# dependencies
+/node_modules
+
+# profiling files
+chrome-profiler-events.json
+speed-measure-plugin.json
+
+# IDEs and editors
+/.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# IDE - VSCode
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+.history/*
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage
+/libpeerconnection.log
+npm-debug.log
+yarn-error.log
+testem.log
+/typings
+
+# System Files
+.DS_Store
+Thumbs.db
+# 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/typescript/simio-client/LICENSE b/typescript/simio-client/LICENSE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/typescript/simio-client/LICENSE
@@ -0,0 +1,201 @@
+                                 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 [yyyy] [name of copyright owner]
+
+   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.
diff --git a/typescript/simio-client/README.md b/typescript/simio-client/README.md
new file mode 100644
index 0000000..d644973
--- /dev/null
+++ b/typescript/simio-client/README.md
@@ -0,0 +1,3 @@
+# Simio client:
+
+This project is pretty much dead. It was my first angular project, so i did a lot of things 'the wrong way'.
diff --git a/typescript/simio-client/angular.json b/typescript/simio-client/angular.json
new file mode 100644
index 0000000..f820527
--- /dev/null
+++ b/typescript/simio-client/angular.json
@@ -0,0 +1,140 @@
+{
+  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+  "version": 1,
+  "newProjectRoot": "projects",
+  "projects": {
+    "angular-client": {
+      "root": "",
+      "sourceRoot": "src",
+      "projectType": "application",
+      "prefix": "app",
+      "schematics": {
+        "@schematics/angular:component": {
+          "style": "sass"
+        }
+      },
+      "architect": {
+        "build": {
+          "builder": "@angular-devkit/build-angular:browser",
+          "options": {
+            "outputPath": "dist/angular-client",
+            "index": "src/index.html",
+            "main": "src/main.ts",
+            "polyfills": "src/polyfills.ts",
+            "tsConfig": "src/tsconfig.app.json",
+            "assets": [
+              "src/favicon.ico",
+              "src/assets"
+            ],
+            "styles": [
+              "src/styles.sass"
+            ],
+            "scripts": [],
+            "es5BrowserSupport": true
+          },
+          "configurations": {
+            "production": {
+              "fileReplacements": [
+                {
+                  "replace": "src/environments/environment.ts",
+                  "with": "src/environments/environment.prod.ts"
+                }
+              ],
+              "optimization": true,
+              "outputHashing": "all",
+              "sourceMap": false,
+              "extractCss": true,
+              "namedChunks": false,
+              "aot": true,
+              "extractLicenses": true,
+              "vendorChunk": false,
+              "buildOptimizer": true,
+              "budgets": [
+                {
+                  "type": "initial",
+                  "maximumWarning": "2mb",
+                  "maximumError": "5mb"
+                }
+              ]
+            }
+          }
+        },
+        "serve": {
+          "builder": "@angular-devkit/build-angular:dev-server",
+          "options": {
+            "browserTarget": "angular-client:build"
+          },
+          "configurations": {
+            "production": {
+              "browserTarget": "angular-client:build:production"
+            }
+          }
+        },
+        "extract-i18n": {
+          "builder": "@angular-devkit/build-angular:extract-i18n",
+          "options": {
+            "browserTarget": "angular-client:build"
+          }
+        },
+        "test": {
+          "builder": "@angular-devkit/build-angular:karma",
+          "options": {
+            "main": "src/test.ts",
+            "polyfills": "src/polyfills.ts",
+            "tsConfig": "src/tsconfig.spec.json",
+            "karmaConfig": "src/karma.conf.js",
+            "styles": [
+              "src/styles.sass"
+            ],
+            "scripts": [],
+            "assets": [
+              "src/favicon.ico",
+              "src/assets"
+            ]
+          }
+        },
+        "lint": {
+          "builder": "@angular-devkit/build-angular:tslint",
+          "options": {
+            "tsConfig": [
+              "src/tsconfig.app.json",
+              "src/tsconfig.spec.json"
+            ],
+            "exclude": [
+              "**/node_modules/**"
+            ]
+          }
+        }
+      }
+    },
+    "angular-client-e2e": {
+      "root": "e2e/",
+      "projectType": "application",
+      "prefix": "",
+      "architect": {
+        "e2e": {
+          "builder": "@angular-devkit/build-angular:protractor",
+          "options": {
+            "protractorConfig": "e2e/protractor.conf.js",
+            "devServerTarget": "angular-client:serve"
+          },
+          "configurations": {
+            "production": {
+              "devServerTarget": "angular-client:serve:production"
+            }
+          }
+        },
+        "lint": {
+          "builder": "@angular-devkit/build-angular:tslint",
+          "options": {
+            "tsConfig": "e2e/tsconfig.e2e.json",
+            "exclude": [
+              "**/node_modules/**"
+            ]
+          }
+        }
+      }
+    }
+  },
+  "defaultProject": "angular-client"
+}
\ No newline at end of file
diff --git a/typescript/simio-client/docs/3rdpartylicenses.txt b/typescript/simio-client/docs/3rdpartylicenses.txt
new file mode 100644
index 0000000..ca7c154
--- /dev/null
+++ b/typescript/simio-client/docs/3rdpartylicenses.txt
@@ -0,0 +1,748 @@
+@angular-devkit/build-angular
+MIT
+The MIT License
+
+Copyright (c) 2017 Google, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+@angular/animations
+MIT
+
+@angular/cdk
+MIT
+The MIT License
+
+Copyright (c) 2019 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/fire
+MIT
+
+@angular/fire/auth
+MIT
+
+@angular/fire/firestore
+MIT
+
+@angular/forms
+MIT
+
+@angular/material
+MIT
+The MIT License
+
+Copyright (c) 2019 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/material/button
+
+@angular/material/card
+
+@angular/material/core
+
+@angular/material/form-field
+
+@angular/material/icon
+
+@angular/material/list
+
+@angular/material/menu
+
+@angular/material/sidenav
+
+@angular/material/tooltip
+
+@angular/platform-browser
+MIT
+
+@angular/router
+MIT
+
+@firebase/app
+Apache-2.0
+
+@firebase/auth
+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 [yyyy] [name of copyright owner]
+
+   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.
+
+
+@firebase/database
+Apache-2.0
+
+@firebase/firestore
+Apache-2.0
+
+@firebase/functions
+Apache-2.0
+
+@firebase/logger
+Apache-2.0
+
+@firebase/messaging
+Apache-2.0
+
+@firebase/polyfill
+Apache-2.0
+
+@firebase/storage
+Apache-2.0
+
+@firebase/util
+Apache-2.0
+
+@firebase/webchannel-wrapper
+Apache-2.0
+
+core-js
+MIT
+Copyright (c) 2014-2019 Denis Pushkarev
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+firebase
+Apache-2.0
+
+firebase/app
+
+firebase/auth
+
+firebase/firestore
+
+hammerjs
+MIT
+The MIT License (MIT)
+
+Copyright (C) 2011-2014 by Jorik Tangelder (Eight Media)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+promise-polyfill
+MIT
+Copyright (c) 2014 Taylor Hakes
+Copyright (c) 2014 Forbes Lindesay
+
+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.
+
+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
+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:
+
+You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+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
+
+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
+
+
+whatwg-fetch
+MIT
+Copyright (c) 2014-2016 GitHub, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+zone.js
+MIT
+The MIT License
+
+Copyright (c) 2016-2018 Google, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/typescript/simio-client/docs/es2015-polyfills.1e04665e16f944715fd2.js b/typescript/simio-client/docs/es2015-polyfills.1e04665e16f944715fd2.js
new file mode 100644
index 0000000..ada3f6d
--- /dev/null
+++ b/typescript/simio-client/docs/es2015-polyfills.1e04665e16f944715fd2.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{"+auO":function(t,n,r){var e=r("XKFU"),i=r("lvtm");e(e.S,"Math",{cbrt:function(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},"+lvF":function(t,n,r){t.exports=r("VTer")("native-function-to-string",Function.toString)},"+oPb":function(t,n,r){"use strict";r("OGtf")("blink",function(t){return function(){return t(this,"blink","","")}})},"+rLv":function(t,n,r){var e=r("dyZX").document;t.exports=e&&e.documentElement},"/KAi":function(t,n,r){var e=r("XKFU"),i=r("dyZX").isFinite;e(e.S,"Number",{isFinite:function(t){return"number"==typeof t&&i(t)}})},"/SS/":function(t,n,r){var e=r("XKFU");e(e.S,"Object",{setPrototypeOf:r("i5dc").set})},"/e88":function(t,n){t.exports="\t\n\v\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},"0/R4":function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},"0E+W":function(t,n,r){r("elZq")("Array")},"0LDn":function(t,n,r){"use strict";r("OGtf")("italics",function(t){return function(){return t(this,"i","","")}})},"0l/t":function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(2);e(e.P+e.F*!r("LyE8")([].filter,!0),"Array",{filter:function(t){return i(this,t,arguments[1])}})},"0mN4":function(t,n,r){"use strict";r("OGtf")("fixed",function(t){return function(){return t(this,"tt","","")}})},"0sh+":function(t,n,r){var e=r("quPj"),i=r("vhPU");t.exports=function(t,n,r){if(e(n))throw TypeError("String#"+r+" doesn't accept regex!");return String(i(t))}},1:function(t,n,r){t.exports=r("tRfe")},"11IZ":function(t,n,r){var e=r("dyZX").parseFloat,i=r("qncB").trim;t.exports=1/e(r("/e88")+"-0")!=-1/0?function(t){var n=i(String(t),3),r=e(n);return 0===r&&"-"==n.charAt(0)?-0:r}:e},"1MBn":function(t,n,r){var e=r("DVgA"),i=r("JiEa"),o=r("UqcF");t.exports=function(t){var n=e(t),r=i.f;if(r)for(var u,c=r(t),a=o.f,f=0;c.length>f;)a.call(t,u=c[f++])&&n.push(u);return n}},"1TsA":function(t,n){t.exports=function(t,n){return{value:n,done:!!t}}},"1sa7":function(t,n){t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},"25dN":function(t,n,r){var e=r("XKFU");e(e.S,"Object",{is:r("g6HL")})},"2OiF":function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"2Spj":function(t,n,r){var e=r("XKFU");e(e.P,"Function",{bind:r("8MEG")})},"2atp":function(t,n,r){var e=r("XKFU"),i=Math.atanh;e(e.S+e.F*!(i&&1/i(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},"3Lyj":function(t,n,r){var e=r("KroJ");t.exports=function(t,n,r){for(var i in n)e(t,i,n[i],r);return t}},"4A4+":function(t,n,r){r("2Spj"),r("f3/d"),r("IXt9"),t.exports=r("g3g5").Function},"4LiD":function(t,n,r){"use strict";var e=r("dyZX"),i=r("XKFU"),o=r("KroJ"),u=r("3Lyj"),c=r("Z6vF"),a=r("SlkY"),f=r("9gX7"),s=r("0/R4"),l=r("eeVq"),h=r("XMVh"),v=r("fyDq"),p=r("Xbzi");t.exports=function(t,n,r,g,y,d){var x=e[t],F=x,b=y?"set":"add",S=F&&F.prototype,m={},E=function(t){var n=S[t];o(S,t,"delete"==t?function(t){return!(d&&!s(t))&&n.call(this,0===t?0:t)}:"has"==t?function(t){return!(d&&!s(t))&&n.call(this,0===t?0:t)}:"get"==t?function(t){return d&&!s(t)?void 0:n.call(this,0===t?0:t)}:"add"==t?function(t){return n.call(this,0===t?0:t),this}:function(t,r){return n.call(this,0===t?0:t,r),this})};if("function"==typeof F&&(d||S.forEach&&!l(function(){(new F).entries().next()}))){var K=new F,O=K[b](d?{}:-0,1)!=K,M=l(function(){K.has(1)}),w=h(function(t){new F(t)}),U=!d&&l(function(){for(var t=new F,n=5;n--;)t[b](n,n);return!t.has(-0)});w||((F=n(function(n,r){f(n,F,t);var e=p(new x,n,F);return null!=r&&a(r,y,e[b],e),e})).prototype=S,S.constructor=F),(M||U)&&(E("delete"),E("has"),y&&E("get")),(U||O)&&E(b),d&&S.clear&&delete S.clear}else F=g.getConstructor(n,t,y,b),u(F.prototype,r),c.NEED=!0;return v(F,t),m[t]=F,i(i.G+i.W+i.F*(F!=x),m),d||g.setStrong(F,t,y),F}},"4R4u":function(t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"5Pf0":function(t,n,r){var e=r("S/j/"),i=r("OP3Y");r("Xtr8")("getPrototypeOf",function(){return function(t){return i(e(t))}})},"69bn":function(t,n,r){var e=r("y3w9"),i=r("2OiF"),o=r("K0xU")("species");t.exports=function(t,n){var r,u=e(t).constructor;return void 0===u||null==(r=e(u)[o])?n:i(r)}},"6AQ9":function(t,n,r){"use strict";var e=r("XKFU"),i=r("8a7r");e(e.S+e.F*r("eeVq")(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,n=arguments.length,r=new("function"==typeof this?this:Array)(n);n>t;)i(r,t,arguments[t++]);return r.length=n,r}})},"6FMO":function(t,n,r){var e=r("0/R4"),i=r("EWmC"),o=r("K0xU")("species");t.exports=function(t){var n;return i(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!i(n.prototype)||(n=void 0),e(n)&&null===(n=n[o])&&(n=void 0)),void 0===n?Array:n}},"7h0T":function(t,n,r){var e=r("XKFU");e(e.S,"Number",{isNaN:function(t){return t!=t}})},"8+KV":function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(0),o=r("LyE8")([].forEach,!0);e(e.P+e.F*!o,"Array",{forEach:function(t){return i(this,t,arguments[1])}})},"84bF":function(t,n,r){"use strict";r("OGtf")("small",function(t){return function(){return t(this,"small","","")}})},"8MEG":function(t,n,r){"use strict";var e=r("2OiF"),i=r("0/R4"),o=r("MfQN"),u=[].slice,c={};t.exports=Function.bind||function(t){var n=e(this),r=u.call(arguments,1),a=function(){var e=r.concat(u.call(arguments));return this instanceof a?function(t,n,r){if(!(n in c)){for(var e=[],i=0;i<n;i++)e[i]="a["+i+"]";c[n]=Function("F,a","return new F("+e.join(",")+")")}return c[n](t,r)}(n,e.length,e):o(n,e,t)};return i(n.prototype)&&(a.prototype=n.prototype),a}},"8a7r":function(t,n,r){"use strict";var e=r("hswa"),i=r("RjD/");t.exports=function(t,n,r){n in t?e.f(t,n,i(0,r)):t[n]=r}},"91GP":function(t,n,r){var e=r("XKFU");e(e.S+e.F,"Object",{assign:r("czNK")})},"99sg":function(t,n,r){r("ioFf"),r("hHhE"),r("HAE/"),r("WLL4"),r("mYba"),r("5Pf0"),r("RW0V"),r("JduL"),r("DW2E"),r("z2o2"),r("mura"),r("Zshi"),r("V/DX"),r("FlsD"),r("91GP"),r("25dN"),r("/SS/"),r("Btvt"),t.exports=r("g3g5").Object},"9AAn":function(t,n,r){"use strict";var e=r("wmvG"),i=r("s5qY");t.exports=r("4LiD")("Map",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var n=e.getEntry(i(this,"Map"),t);return n&&n.v},set:function(t,n){return e.def(i(this,"Map"),0===t?0:t,n)}},e,!0)},"9P93":function(t,n,r){var e=r("XKFU"),i=Math.imul;e(e.S+e.F*r("eeVq")(function(){return-5!=i(4294967295,5)||2!=i.length}),"Math",{imul:function(t,n){var r=+t,e=+n,i=65535&r,o=65535&e;return 0|i*o+((65535&r>>>16)*o+i*(65535&e>>>16)<<16>>>0)}})},"9VmF":function(t,n,r){"use strict";var e=r("XKFU"),i=r("ne8i"),o=r("0sh+"),u="".startsWith;e(e.P+e.F*r("UUeW")("startsWith"),"String",{startsWith:function(t){var n=o(this,t,"startsWith"),r=i(Math.min(arguments.length>1?arguments[1]:void 0,n.length)),e=String(t);return u?u.call(n,e,r):n.slice(r,r+e.length)===e}})},"9gX7":function(t,n){t.exports=function(t,n,r,e){if(!(t instanceof n)||void 0!==e&&e in t)throw TypeError(r+": incorrect invocation!");return t}},A2zW:function(t,n,r){"use strict";var e=r("XKFU"),i=r("RYi7"),o=r("vvmO"),u=r("l0Rn"),c=1..toFixed,a=Math.floor,f=[0,0,0,0,0,0],s="Number.toFixed: incorrect invocation!",l=function(t,n){for(var r=-1,e=n;++r<6;)f[r]=(e+=t*f[r])%1e7,e=a(e/1e7)},h=function(t){for(var n=6,r=0;--n>=0;)f[n]=a((r+=f[n])/t),r=r%t*1e7},v=function(){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==f[t]){var r=String(f[t]);n=""===n?r:n+u.call("0",7-r.length)+r}return n},p=function(t,n,r){return 0===n?r:n%2==1?p(t,n-1,r*t):p(t*t,n/2,r)};e(e.P+e.F*(!!c&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!r("eeVq")(function(){c.call({})})),"Number",{toFixed:function(t){var n,r,e,c,a=o(this,s),f=i(t),g="",y="0";if(f<0||f>20)throw RangeError(s);if(a!=a)return"NaN";if(a<=-1e21||a>=1e21)return String(a);if(a<0&&(g="-",a=-a),a>1e-21)if(r=(n=function(t){for(var n=0,r=t;r>=4096;)n+=12,r/=4096;for(;r>=2;)n+=1,r/=2;return n}(a*p(2,69,1))-69)<0?a*p(2,-n,1):a/p(2,n,1),r*=4503599627370496,(n=52-n)>0){for(l(0,r),e=f;e>=7;)l(1e7,0),e-=7;for(l(p(10,e,1),0),e=n-1;e>=23;)h(1<<23),e-=23;h(1<<e),l(1,1),h(2),y=v()}else l(0,r),l(1<<-n,0),y=v()+u.call("0",f);return f>0?g+((c=y.length)<=f?"0."+u.call("0",f-c)+y:y.slice(0,c-f)+"."+y.slice(c-f)):g+y}})},A5AN:function(t,n,r){"use strict";var e=r("AvRE")(!0);t.exports=function(t,n,r){return n+(r?e(t,n).length:1)}},Afnz:function(t,n,r){"use strict";var e=r("LQAc"),i=r("XKFU"),o=r("KroJ"),u=r("Mukb"),c=r("hPIQ"),a=r("QaDb"),f=r("fyDq"),s=r("OP3Y"),l=r("K0xU")("iterator"),h=!([].keys&&"next"in[].keys()),v=function(){return this};t.exports=function(t,n,r,p,g,y,d){a(r,n,p);var x,F,b,S=function(t){if(!h&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new r(this,t)}}return function(){return new r(this,t)}},m=n+" Iterator",E="values"==g,K=!1,O=t.prototype,M=O[l]||O["@@iterator"]||g&&O[g],w=M||S(g),U=g?E?S("entries"):w:void 0,X="Array"==n&&O.entries||M;if(X&&(b=s(X.call(new t)))!==Object.prototype&&b.next&&(f(b,m,!0),e||"function"==typeof b[l]||u(b,l,v)),E&&M&&"values"!==M.name&&(K=!0,w=function(){return M.call(this)}),e&&!d||!h&&!K&&O[l]||u(O,l,w),c[n]=w,c[m]=v,g)if(x={values:E?w:S("values"),keys:y?w:S("keys"),entries:U},d)for(F in x)F in O||o(O,F,x[F]);else i(i.P+i.F*(h||K),n,x);return x}},AphP:function(t,n,r){"use strict";var e=r("XKFU"),i=r("S/j/"),o=r("apmT");e(e.P+e.F*r("eeVq")(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function(t){var n=i(this),r=o(n);return"number"!=typeof r||isFinite(r)?n.toISOString():null}})},AvRE:function(t,n,r){var e=r("RYi7"),i=r("vhPU");t.exports=function(t){return function(n,r){var o,u,c=String(i(n)),a=e(r),f=c.length;return a<0||a>=f?t?"":void 0:(o=c.charCodeAt(a))<55296||o>56319||a+1===f||(u=c.charCodeAt(a+1))<56320||u>57343?t?c.charAt(a):o:t?c.slice(a,a+2):u-56320+(o-55296<<10)+65536}}},BC7C:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{fround:r("kcoS")})},"BJ/l":function(t,n,r){var e=r("XKFU");e(e.S,"Math",{log1p:r("1sa7")})},BP8U:function(t,n,r){var e=r("XKFU"),i=r("PKUr");e(e.S+e.F*(Number.parseInt!=i),"Number",{parseInt:i})},Btvt:function(t,n,r){"use strict";var e=r("I8a+"),i={};i[r("K0xU")("toStringTag")]="z",i+""!="[object z]"&&r("KroJ")(Object.prototype,"toString",function(){return"[object "+e(this)+"]"},!0)},"C/va":function(t,n,r){"use strict";var e=r("y3w9");t.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},CkkT:function(t,n,r){var e=r("m0Pp"),i=r("Ymqv"),o=r("S/j/"),u=r("ne8i"),c=r("zRwo");t.exports=function(t,n){var r=1==t,a=2==t,f=3==t,s=4==t,l=6==t,h=5==t||l,v=n||c;return function(n,c,p){for(var g,y,d=o(n),x=i(d),F=e(c,p,3),b=u(x.length),S=0,m=r?v(n,b):a?v(n,0):void 0;b>S;S++)if((h||S in x)&&(y=F(g=x[S],S,d),t))if(r)m[S]=y;else if(y)switch(t){case 3:return!0;case 5:return g;case 6:return S;case 2:m.push(g)}else if(s)return!1;return l?-1:f||s?s:m}}},CuTL:function(t,n,r){r("fyVe"),r("U2t9"),r("2atp"),r("+auO"),r("MtdB"),r("Jcmo"),r("nzyx"),r("BC7C"),r("x8ZO"),r("9P93"),r("eHKK"),r("BJ/l"),r("pp/T"),r("CyHz"),r("bBoP"),r("x8Yj"),r("hLT2"),t.exports=r("g3g5").Math},CyHz:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{sign:r("lvtm")})},DNiP:function(t,n,r){"use strict";var e=r("XKFU"),i=r("eyMr");e(e.P+e.F*!r("LyE8")([].reduce,!0),"Array",{reduce:function(t){return i(this,t,arguments.length,arguments[1],!1)}})},DVgA:function(t,n,r){var e=r("zhAb"),i=r("4R4u");t.exports=Object.keys||function(t){return e(t,i)}},DW2E:function(t,n,r){var e=r("0/R4"),i=r("Z6vF").onFreeze;r("Xtr8")("freeze",function(t){return function(n){return t&&e(n)?t(i(n)):n}})},EK0E:function(t,n,r){"use strict";var e,i=r("dyZX"),o=r("CkkT")(0),u=r("KroJ"),c=r("Z6vF"),a=r("czNK"),f=r("ZD67"),s=r("0/R4"),l=r("s5qY"),h=r("s5qY"),v=!i.ActiveXObject&&"ActiveXObject"in i,p=c.getWeak,g=Object.isExtensible,y=f.ufstore,d=function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},x={get:function(t){if(s(t)){var n=p(t);return!0===n?y(l(this,"WeakMap")).get(t):n?n[this._i]:void 0}},set:function(t,n){return f.def(l(this,"WeakMap"),t,n)}},F=t.exports=r("4LiD")("WeakMap",d,x,f,!0,!0);h&&v&&(a((e=f.getConstructor(d,"WeakMap")).prototype,x),c.NEED=!0,o(["delete","has","get","set"],function(t){var n=F.prototype,r=n[t];u(n,t,function(n,i){if(s(n)&&!g(n)){this._f||(this._f=new e);var o=this._f[t](n,i);return"set"==t?this:o}return r.call(this,n,i)})}))},EWmC:function(t,n,r){var e=r("LZWt");t.exports=Array.isArray||function(t){return"Array"==e(t)}},EemH:function(t,n,r){var e=r("UqcF"),i=r("RjD/"),o=r("aCFj"),u=r("apmT"),c=r("aagx"),a=r("xpql"),f=Object.getOwnPropertyDescriptor;n.f=r("nh4g")?f:function(t,n){if(t=o(t),n=u(n,!0),a)try{return f(t,n)}catch(r){}if(c(t,n))return i(!e.f.call(t,n),t[n])}},FEjr:function(t,n,r){"use strict";r("OGtf")("strike",function(t){return function(){return t(this,"strike","","")}})},FJW5:function(t,n,r){var e=r("hswa"),i=r("y3w9"),o=r("DVgA");t.exports=r("nh4g")?Object.defineProperties:function(t,n){i(t);for(var r,u=o(n),c=u.length,a=0;c>a;)e.f(t,r=u[a++],n[r]);return t}},FLlr:function(t,n,r){var e=r("XKFU");e(e.P,"String",{repeat:r("l0Rn")})},FlsD:function(t,n,r){var e=r("0/R4");r("Xtr8")("isExtensible",function(t){return function(n){return!!e(n)&&(!t||t(n))}})},GNAe:function(t,n,r){var e=r("XKFU"),i=r("PKUr");e(e.G+e.F*(parseInt!=i),{parseInt:i})},H6hf:function(t,n,r){var e=r("y3w9");t.exports=function(t,n,r,i){try{return i?n(e(r)[0],r[1]):n(r)}catch(u){var o=t.return;throw void 0!==o&&e(o.call(t)),u}}},"HAE/":function(t,n,r){var e=r("XKFU");e(e.S+e.F*!r("nh4g"),"Object",{defineProperty:r("hswa").f})},HEwt:function(t,n,r){"use strict";var e=r("m0Pp"),i=r("XKFU"),o=r("S/j/"),u=r("H6hf"),c=r("M6Qj"),a=r("ne8i"),f=r("8a7r"),s=r("J+6e");i(i.S+i.F*!r("XMVh")(function(t){Array.from(t)}),"Array",{from:function(t){var n,r,i,l,h=o(t),v="function"==typeof this?this:Array,p=arguments.length,g=p>1?arguments[1]:void 0,y=void 0!==g,d=0,x=s(h);if(y&&(g=e(g,p>2?arguments[2]:void 0,2)),null==x||v==Array&&c(x))for(r=new v(n=a(h.length));n>d;d++)f(r,d,y?g(h[d],d):h[d]);else for(l=x.call(h),r=new v;!(i=l.next()).done;d++)f(r,d,y?u(l,g,[i.value,d],!0):i.value);return r.length=d,r}})},I78e:function(t,n,r){"use strict";var e=r("XKFU"),i=r("+rLv"),o=r("LZWt"),u=r("d/Gc"),c=r("ne8i"),a=[].slice;e(e.P+e.F*r("eeVq")(function(){i&&a.call(i)}),"Array",{slice:function(t,n){var r=c(this.length),e=o(this);if(n=void 0===n?r:n,"Array"==e)return a.call(this,t,n);for(var i=u(t,r),f=u(n,r),s=c(f-i),l=new Array(s),h=0;h<s;h++)l[h]="String"==e?this.charAt(i+h):this[i+h];return l}})},"I8a+":function(t,n,r){var e=r("LZWt"),i=r("K0xU")("toStringTag"),o="Arguments"==e(function(){return arguments}());t.exports=function(t){var n,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,n){try{return t[n]}catch(r){}}(n=Object(t),i))?r:o?e(n):"Object"==(u=e(n))&&"function"==typeof n.callee?"Arguments":u}},INYr:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(6),o="findIndex",u=!0;o in[]&&Array(1)[o](function(){u=!1}),e(e.P+e.F*u,"Array",{findIndex:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r("nGyu")(o)},"IU+Z":function(t,n,r){"use strict";r("sMXx");var e=r("KroJ"),i=r("Mukb"),o=r("eeVq"),u=r("vhPU"),c=r("K0xU"),a=r("Ugos"),f=c("species"),s=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),l=function(){var t=/(?:)/,n=t.exec;t.exec=function(){return n.apply(this,arguments)};var r="ab".split(t);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();t.exports=function(t,n,r){var h=c(t),v=!o(function(){var n={};return n[h]=function(){return 7},7!=""[t](n)}),p=v?!o(function(){var n=!1,r=/a/;return r.exec=function(){return n=!0,null},"split"===t&&(r.constructor={},r.constructor[f]=function(){return r}),r[h](""),!n}):void 0;if(!v||!p||"replace"===t&&!s||"split"===t&&!l){var g=/./[h],y=r(u,h,""[t],function(t,n,r,e,i){return n.exec===a?v&&!i?{done:!0,value:g.call(n,r,e)}:{done:!0,value:t.call(r,n,e)}:{done:!1}}),d=y[1];e(String.prototype,t,y[0]),i(RegExp.prototype,h,2==n?function(t,n){return d.call(t,this,n)}:function(t){return d.call(t,this)})}}},IXt9:function(t,n,r){"use strict";var e=r("0/R4"),i=r("OP3Y"),o=r("K0xU")("hasInstance"),u=Function.prototype;o in u||r("hswa").f(u,o,{value:function(t){if("function"!=typeof this||!e(t))return!1;if(!e(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},Iw71:function(t,n,r){var e=r("0/R4"),i=r("dyZX").document,o=e(i)&&e(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},"J+6e":function(t,n,r){var e=r("I8a+"),i=r("K0xU")("iterator"),o=r("hPIQ");t.exports=r("g3g5").getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[e(t)]}},JCqj:function(t,n,r){"use strict";r("OGtf")("sup",function(t){return function(){return t(this,"sup","","")}})},Jcmo:function(t,n,r){var e=r("XKFU"),i=Math.exp;e(e.S,"Math",{cosh:function(t){return(i(t=+t)+i(-t))/2}})},JduL:function(t,n,r){r("Xtr8")("getOwnPropertyNames",function(){return r("e7yV").f})},JiEa:function(t,n){n.f=Object.getOwnPropertySymbols},K0xU:function(t,n,r){var e=r("VTer")("wks"),i=r("ylqs"),o=r("dyZX").Symbol,u="function"==typeof o;(t.exports=function(t){return e[t]||(e[t]=u&&o[t]||(u?o:i)("Symbol."+t))}).store=e},KKXr:function(t,n,r){"use strict";var e=r("quPj"),i=r("y3w9"),o=r("69bn"),u=r("A5AN"),c=r("ne8i"),a=r("Xxuz"),f=r("Ugos"),s=r("eeVq"),l=Math.min,h=[].push,v=!s(function(){RegExp(4294967295,"y")});r("IU+Z")("split",2,function(t,n,r,s){var p;return p="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=String(this);if(void 0===t&&0===n)return[];if(!e(t))return r.call(i,t,n);for(var o,u,c,a=[],s=0,l=void 0===n?4294967295:n>>>0,v=new RegExp(t.source,(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":"")+"g");(o=f.call(v,i))&&!((u=v.lastIndex)>s&&(a.push(i.slice(s,o.index)),o.length>1&&o.index<i.length&&h.apply(a,o.slice(1)),c=o[0].length,s=u,a.length>=l));)v.lastIndex===o.index&&v.lastIndex++;return s===i.length?!c&&v.test("")||a.push(""):a.push(i.slice(s)),a.length>l?a.slice(0,l):a}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:r.call(this,t,n)}:r,[function(r,e){var i=t(this),o=null==r?void 0:r[n];return void 0!==o?o.call(r,i,e):p.call(String(i),r,e)},function(t,n){var e=s(p,t,this,n,p!==r);if(e.done)return e.value;var f=i(t),h=String(this),g=o(f,RegExp),y=f.unicode,d=new g(v?f:"^(?:"+f.source+")",(f.ignoreCase?"i":"")+(f.multiline?"m":"")+(f.unicode?"u":"")+(v?"y":"g")),x=void 0===n?4294967295:n>>>0;if(0===x)return[];if(0===h.length)return null===a(d,h)?[h]:[];for(var F=0,b=0,S=[];b<h.length;){d.lastIndex=v?b:0;var m,E=a(d,v?h:h.slice(b));if(null===E||(m=l(c(d.lastIndex+(v?0:b)),h.length))===F)b=u(h,b,y);else{if(S.push(h.slice(F,b)),S.length===x)return S;for(var K=1;K<=E.length-1;K++)if(S.push(E[K]),S.length===x)return S;b=F=m}}return S.push(h.slice(F)),S}]})},KroJ:function(t,n,r){var e=r("dyZX"),i=r("Mukb"),o=r("aagx"),u=r("ylqs")("src"),c=r("+lvF"),a=(""+c).split("toString");r("g3g5").inspectSource=function(t){return c.call(t)},(t.exports=function(t,n,r,c){var f="function"==typeof r;f&&(o(r,"name")||i(r,"name",n)),t[n]!==r&&(f&&(o(r,u)||i(r,u,t[n]?""+t[n]:a.join(String(n)))),t===e?t[n]=r:c?t[n]?t[n]=r:i(t,n,r):(delete t[n],i(t,n,r)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[u]||c.call(this)})},Kuth:function(t,n,r){var e=r("y3w9"),i=r("FJW5"),o=r("4R4u"),u=r("YTvA")("IE_PROTO"),c=function(){},a=function(){var t,n=r("Iw71")("iframe"),e=o.length;for(n.style.display="none",r("+rLv").appendChild(n),n.src="javascript:",(t=n.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),a=t.F;e--;)delete a.prototype[o[e]];return a()};t.exports=Object.create||function(t,n){var r;return null!==t?(c.prototype=e(t),r=new c,c.prototype=null,r[u]=t):r=a(),void 0===n?r:i(r,n)}},L9s1:function(t,n,r){"use strict";var e=r("XKFU"),i=r("0sh+");e(e.P+e.F*r("UUeW")("includes"),"String",{includes:function(t){return!!~i(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},LK8F:function(t,n,r){var e=r("XKFU");e(e.S,"Array",{isArray:r("EWmC")})},LQAc:function(t,n){t.exports=!1},LVwc:function(t,n){var r=Math.expm1;t.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:r},LZWt:function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},Ljet:function(t,n,r){var e=r("XKFU");e(e.S,"Number",{EPSILON:Math.pow(2,-52)})},Lmuc:function(t,n,r){r("xfY5"),r("A2zW"),r("VKir"),r("Ljet"),r("/KAi"),r("fN96"),r("7h0T"),r("sbF8"),r("h/M4"),r("knhD"),r("XfKG"),r("BP8U"),t.exports=r("g3g5").Number},LyE8:function(t,n,r){"use strict";var e=r("eeVq");t.exports=function(t,n){return!!t&&e(function(){n?t.call(null,function(){},1):t.call(null)})}},M6Qj:function(t,n,r){var e=r("hPIQ"),i=r("K0xU")("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(e.Array===t||o[i]===t)}},MfQN:function(t,n){t.exports=function(t,n,r){var e=void 0===r;switch(n.length){case 0:return e?t():t.call(r);case 1:return e?t(n[0]):t.call(r,n[0]);case 2:return e?t(n[0],n[1]):t.call(r,n[0],n[1]);case 3:return e?t(n[0],n[1],n[2]):t.call(r,n[0],n[1],n[2]);case 4:return e?t(n[0],n[1],n[2],n[3]):t.call(r,n[0],n[1],n[2],n[3])}return t.apply(r,n)}},MtdB:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},Mukb:function(t,n,r){var e=r("hswa"),i=r("RjD/");t.exports=r("nh4g")?function(t,n,r){return e.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},N8g3:function(t,n,r){n.f=r("K0xU")},Nr18:function(t,n,r){"use strict";var e=r("S/j/"),i=r("d/Gc"),o=r("ne8i");t.exports=function(t){for(var n=e(this),r=o(n.length),u=arguments.length,c=i(u>1?arguments[1]:void 0,r),a=u>2?arguments[2]:void 0,f=void 0===a?r:i(a,r);f>c;)n[c++]=t;return n}},Nz9U:function(t,n,r){"use strict";var e=r("XKFU"),i=r("aCFj"),o=[].join;e(e.P+e.F*(r("Ymqv")!=Object||!r("LyE8")(o)),"Array",{join:function(t){return o.call(i(this),void 0===t?",":t)}})},OEbY:function(t,n,r){r("nh4g")&&"g"!=/./g.flags&&r("hswa").f(RegExp.prototype,"flags",{configurable:!0,get:r("C/va")})},OG14:function(t,n,r){"use strict";var e=r("y3w9"),i=r("g6HL"),o=r("Xxuz");r("IU+Z")("search",1,function(t,n,r,u){return[function(r){var e=t(this),i=null==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},function(t){var n=u(r,t,this);if(n.done)return n.value;var c=e(t),a=String(this),f=c.lastIndex;i(f,0)||(c.lastIndex=0);var s=o(c,a);return i(c.lastIndex,f)||(c.lastIndex=f),null===s?-1:s.index}]})},OGtf:function(t,n,r){var e=r("XKFU"),i=r("eeVq"),o=r("vhPU"),u=/"/g,c=function(t,n,r,e){var i=String(o(t)),c="<"+n;return""!==r&&(c+=" "+r+'="'+String(e).replace(u,"&quot;")+'"'),c+">"+i+"</"+n+">"};t.exports=function(t,n){var r={};r[t]=n(c),e(e.P+e.F*i(function(){var n=""[t]('"');return n!==n.toLowerCase()||n.split('"').length>3}),"String",r)}},OP3Y:function(t,n,r){var e=r("aagx"),i=r("S/j/"),o=r("YTvA")("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),e(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},OnI7:function(t,n,r){var e=r("dyZX"),i=r("g3g5"),o=r("LQAc"),u=r("N8g3"),c=r("hswa").f;t.exports=function(t){var n=i.Symbol||(i.Symbol=o?{}:e.Symbol||{});"_"==t.charAt(0)||t in n||c(n,t,{value:u.f(t)})}},Oyvg:function(t,n,r){var e=r("dyZX"),i=r("Xbzi"),o=r("hswa").f,u=r("kJMx").f,c=r("quPj"),a=r("C/va"),f=e.RegExp,s=f,l=f.prototype,h=/a/g,v=/a/g,p=new f(h)!==h;if(r("nh4g")&&(!p||r("eeVq")(function(){return v[r("K0xU")("match")]=!1,f(h)!=h||f(v)==v||"/a/i"!=f(h,"i")}))){f=function(t,n){var r=this instanceof f,e=c(t),o=void 0===n;return!r&&e&&t.constructor===f&&o?t:i(p?new s(e&&!o?t.source:t,n):s((e=t instanceof f)?t.source:t,e&&o?a.call(t):n),r?this:l,f)};for(var g=function(t){t in f||o(f,t,{configurable:!0,get:function(){return s[t]},set:function(n){s[t]=n}})},y=u(s),d=0;y.length>d;)g(y[d++]);l.constructor=f,f.prototype=l,r("KroJ")(e,"RegExp",f)}r("elZq")("RegExp")},PKUr:function(t,n,r){var e=r("dyZX").parseInt,i=r("qncB").trim,o=r("/e88"),u=/^[-+]?0[xX]/;t.exports=8!==e(o+"08")||22!==e(o+"0x16")?function(t,n){var r=i(String(t),3);return e(r,n>>>0||(u.test(r)?16:10))}:e},QaDb:function(t,n,r){"use strict";var e=r("Kuth"),i=r("RjD/"),o=r("fyDq"),u={};r("Mukb")(u,r("K0xU")("iterator"),function(){return this}),t.exports=function(t,n,r){t.prototype=e(u,{next:i(1,r)}),o(t,n+" Iterator")}},RW0V:function(t,n,r){var e=r("S/j/"),i=r("DVgA");r("Xtr8")("keys",function(){return function(t){return i(e(t))}})},RYi7:function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},"RjD/":function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},"S/j/":function(t,n,r){var e=r("vhPU");t.exports=function(t){return Object(e(t))}},SMB2:function(t,n,r){"use strict";r("OGtf")("bold",function(t){return function(){return t(this,"b","","")}})},SPin:function(t,n,r){"use strict";var e=r("XKFU"),i=r("eyMr");e(e.P+e.F*!r("LyE8")([].reduceRight,!0),"Array",{reduceRight:function(t){return i(this,t,arguments.length,arguments[1],!0)}})},SRfc:function(t,n,r){"use strict";var e=r("y3w9"),i=r("ne8i"),o=r("A5AN"),u=r("Xxuz");r("IU+Z")("match",1,function(t,n,r,c){return[function(r){var e=t(this),i=null==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},function(t){var n=c(r,t,this);if(n.done)return n.value;var a=e(t),f=String(this);if(!a.global)return u(a,f);var s=a.unicode;a.lastIndex=0;for(var l,h=[],v=0;null!==(l=u(a,f));){var p=String(l[0]);h[v]=p,""===p&&(a.lastIndex=o(f,i(a.lastIndex),s)),v++}return 0===v?null:h}]})},SlkY:function(t,n,r){var e=r("m0Pp"),i=r("H6hf"),o=r("M6Qj"),u=r("y3w9"),c=r("ne8i"),a=r("J+6e"),f={},s={};(n=t.exports=function(t,n,r,l,h){var v,p,g,y,d=h?function(){return t}:a(t),x=e(r,l,n?2:1),F=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(o(d)){for(v=c(t.length);v>F;F++)if((y=n?x(u(p=t[F])[0],p[1]):x(t[F]))===f||y===s)return y}else for(g=d.call(t);!(p=g.next()).done;)if((y=i(g,x,p.value,n))===f||y===s)return y}).BREAK=f,n.RETURN=s},T39b:function(t,n,r){"use strict";var e=r("wmvG"),i=r("s5qY");t.exports=r("4LiD")("Set",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return e.def(i(this,"Set"),t=0===t?0:t,t)}},e)},Tze0:function(t,n,r){"use strict";r("qncB")("trim",function(t){return function(){return t(this,3)}})},U2t9:function(t,n,r){var e=r("XKFU"),i=Math.asinh;e(e.S+e.F*!(i&&1/i(0)>0),"Math",{asinh:function t(n){return isFinite(n=+n)&&0!=n?n<0?-t(-n):Math.log(n+Math.sqrt(n*n+1)):n}})},UUeW:function(t,n,r){var e=r("K0xU")("match");t.exports=function(t){var n=/./;try{"/./"[t](n)}catch(r){try{return n[e]=!1,!"/./"[t](n)}catch(i){}}return!0}},Ugos:function(t,n,r){"use strict";var e,i,o=r("C/va"),u=RegExp.prototype.exec,c=String.prototype.replace,a=u,f=(i=/b*/g,u.call(e=/a/,"a"),u.call(i,"a"),0!==e.lastIndex||0!==i.lastIndex),s=void 0!==/()??/.exec("")[1];(f||s)&&(a=function(t){var n,r,e,i,a=this;return s&&(r=new RegExp("^"+a.source+"$(?!\\s)",o.call(a))),f&&(n=a.lastIndex),e=u.call(a,t),f&&e&&(a.lastIndex=a.global?e.index+e[0].length:n),s&&e&&e.length>1&&c.call(e[0],r,function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(e[i]=void 0)}),e}),t.exports=a},UqcF:function(t,n){n.f={}.propertyIsEnumerable},"V+eJ":function(t,n,r){"use strict";var e=r("XKFU"),i=r("w2a5")(!1),o=[].indexOf,u=!!o&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!r("LyE8")(o)),"Array",{indexOf:function(t){return u?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},"V/DX":function(t,n,r){var e=r("0/R4");r("Xtr8")("isSealed",function(t){return function(n){return!e(n)||!!t&&t(n)}})},"V5/Y":function(t,n,r){r("VpUO"),r("eI33"),r("Tze0"),r("XfO3"),r("oDIu"),r("rvZc"),r("L9s1"),r("FLlr"),r("9VmF"),r("hEkN"),r("nIY7"),r("+oPb"),r("SMB2"),r("0mN4"),r("bDcW"),r("nsiH"),r("0LDn"),r("tUrg"),r("84bF"),r("FEjr"),r("Zz4T"),r("JCqj"),r("SRfc"),r("pIFo"),r("OG14"),r("KKXr"),t.exports=r("g3g5").String},VKir:function(t,n,r){"use strict";var e=r("XKFU"),i=r("eeVq"),o=r("vvmO"),u=1..toPrecision;e(e.P+e.F*(i(function(){return"1"!==u.call(1,void 0)})||!i(function(){u.call({})})),"Number",{toPrecision:function(t){var n=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?u.call(n):u.call(n,t)}})},VTer:function(t,n,r){var e=r("g3g5"),i=r("dyZX"),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,n){return o[t]||(o[t]=void 0!==n?n:{})})("versions",[]).push({version:e.version,mode:r("LQAc")?"pure":"global",copyright:"\xa9 2019 Denis Pushkarev (zloirock.ru)"})},VXxg:function(t,n,r){r("Btvt"),r("XfO3"),r("rGqo"),r("T39b"),t.exports=r("g3g5").Set},Vd3H:function(t,n,r){"use strict";var e=r("XKFU"),i=r("2OiF"),o=r("S/j/"),u=r("eeVq"),c=[].sort,a=[1,2,3];e(e.P+e.F*(u(function(){a.sort(void 0)})||!u(function(){a.sort(null)})||!r("LyE8")(c)),"Array",{sort:function(t){return void 0===t?c.call(o(this)):c.call(o(this),i(t))}})},VpUO:function(t,n,r){var e=r("XKFU"),i=r("d/Gc"),o=String.fromCharCode,u=String.fromCodePoint;e(e.S+e.F*(!!u&&1!=u.length),"String",{fromCodePoint:function(t){for(var n,r=[],e=arguments.length,u=0;e>u;){if(n=+arguments[u++],i(n,1114111)!==n)throw RangeError(n+" is not a valid code point");r.push(n<65536?o(n):o(55296+((n-=65536)>>10),n%1024+56320))}return r.join("")}})},WLL4:function(t,n,r){var e=r("XKFU");e(e.S+e.F*!r("nh4g"),"Object",{defineProperties:r("FJW5")})},XKFU:function(t,n,r){var e=r("dyZX"),i=r("g3g5"),o=r("Mukb"),u=r("KroJ"),c=r("m0Pp"),a=function(t,n,r){var f,s,l,h,v=t&a.F,p=t&a.G,g=t&a.P,y=t&a.B,d=p?e:t&a.S?e[n]||(e[n]={}):(e[n]||{}).prototype,x=p?i:i[n]||(i[n]={}),F=x.prototype||(x.prototype={});for(f in p&&(r=n),r)l=((s=!v&&d&&void 0!==d[f])?d:r)[f],h=y&&s?c(l,e):g&&"function"==typeof l?c(Function.call,l):l,d&&u(d,f,l,t&a.U),x[f]!=l&&o(x,f,h),g&&F[f]!=l&&(F[f]=l)};e.core=i,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},XMVh:function(t,n,r){var e=r("K0xU")("iterator"),i=!1;try{var o=[7][e]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(u){}t.exports=function(t,n){if(!n&&!i)return!1;var r=!1;try{var o=[7],c=o[e]();c.next=function(){return{done:r=!0}},o[e]=function(){return c},t(o)}catch(u){}return r}},Xbzi:function(t,n,r){var e=r("0/R4"),i=r("i5dc").set;t.exports=function(t,n,r){var o,u=n.constructor;return u!==r&&"function"==typeof u&&(o=u.prototype)!==r.prototype&&e(o)&&i&&i(t,o),t}},XfKG:function(t,n,r){var e=r("XKFU"),i=r("11IZ");e(e.S+e.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},XfO3:function(t,n,r){"use strict";var e=r("AvRE")(!0);r("Afnz")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})})},Xtr8:function(t,n,r){var e=r("XKFU"),i=r("g3g5"),o=r("eeVq");t.exports=function(t,n){var r=(i.Object||{})[t]||Object[t],u={};u[t]=n(r),e(e.S+e.F*o(function(){r(1)}),"Object",u)}},Xxuz:function(t,n,r){"use strict";var e=r("I8a+"),i=RegExp.prototype.exec;t.exports=function(t,n){var r=t.exec;if("function"==typeof r){var o=r.call(t,n);if("object"!=typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==e(t))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(t,n)}},YJVH:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(4);e(e.P+e.F*!r("LyE8")([].every,!0),"Array",{every:function(t){return i(this,t,arguments[1])}})},YTvA:function(t,n,r){var e=r("VTer")("keys"),i=r("ylqs");t.exports=function(t){return e[t]||(e[t]=i(t))}},Ymqv:function(t,n,r){var e=r("LZWt");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},Z6vF:function(t,n,r){var e=r("ylqs")("meta"),i=r("0/R4"),o=r("aagx"),u=r("hswa").f,c=0,a=Object.isExtensible||function(){return!0},f=!r("eeVq")(function(){return a(Object.preventExtensions({}))}),s=function(t){u(t,e,{value:{i:"O"+ ++c,w:{}}})},l=t.exports={KEY:e,NEED:!1,fastKey:function(t,n){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,e)){if(!a(t))return"F";if(!n)return"E";s(t)}return t[e].i},getWeak:function(t,n){if(!o(t,e)){if(!a(t))return!0;if(!n)return!1;s(t)}return t[e].w},onFreeze:function(t){return f&&l.NEED&&a(t)&&!o(t,e)&&s(t),t}}},ZD67:function(t,n,r){"use strict";var e=r("3Lyj"),i=r("Z6vF").getWeak,o=r("y3w9"),u=r("0/R4"),c=r("9gX7"),a=r("SlkY"),f=r("CkkT"),s=r("aagx"),l=r("s5qY"),h=f(5),v=f(6),p=0,g=function(t){return t._l||(t._l=new y)},y=function(){this.a=[]},d=function(t,n){return h(t.a,function(t){return t[0]===n})};y.prototype={get:function(t){var n=d(this,t);if(n)return n[1]},has:function(t){return!!d(this,t)},set:function(t,n){var r=d(this,t);r?r[1]=n:this.a.push([t,n])},delete:function(t){var n=v(this.a,function(n){return n[0]===t});return~n&&this.a.splice(n,1),!!~n}},t.exports={getConstructor:function(t,n,r,o){var f=t(function(t,e){c(t,f,n,"_i"),t._t=n,t._i=p++,t._l=void 0,null!=e&&a(e,r,t[o],t)});return e(f.prototype,{delete:function(t){if(!u(t))return!1;var r=i(t);return!0===r?g(l(this,n)).delete(t):r&&s(r,this._i)&&delete r[this._i]},has:function(t){if(!u(t))return!1;var r=i(t);return!0===r?g(l(this,n)).has(t):r&&s(r,this._i)}}),f},def:function(t,n,r){var e=i(o(n),!0);return!0===e?g(t).set(n,r):e[t._i]=r,t},ufstore:g}},Zshi:function(t,n,r){var e=r("0/R4");r("Xtr8")("isFrozen",function(t){return function(n){return!e(n)||!!t&&t(n)}})},Zz4T:function(t,n,r){"use strict";r("OGtf")("sub",function(t){return function(){return t(this,"sub","","")}})},a1Th:function(t,n,r){"use strict";r("OEbY");var e=r("y3w9"),i=r("C/va"),o=r("nh4g"),u=/./.toString,c=function(t){r("KroJ")(RegExp.prototype,"toString",t,!0)};r("eeVq")(function(){return"/a/b"!=u.call({source:"a",flags:"b"})})?c(function(){var t=e(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)}):"toString"!=u.name&&c(function(){return u.call(this)})},aCFj:function(t,n,r){var e=r("Ymqv"),i=r("vhPU");t.exports=function(t){return e(i(t))}},aagx:function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}},apmT:function(t,n,r){var e=r("0/R4");t.exports=function(t,n){if(!e(t))return t;var r,i;if(n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!e(i=r.call(t)))return i;if(!n&&"function"==typeof(r=t.toString)&&!e(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},bBoP:function(t,n,r){var e=r("XKFU"),i=r("LVwc"),o=Math.exp;e(e.S+e.F*r("eeVq")(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},bDcW:function(t,n,r){"use strict";r("OGtf")("fontcolor",function(t){return function(n){return t(this,"font","color",n)}})},bHtr:function(t,n,r){var e=r("XKFU");e(e.P,"Array",{fill:r("Nr18")}),r("nGyu")("fill")},bWfx:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(1);e(e.P+e.F*!r("LyE8")([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},czNK:function(t,n,r){"use strict";var e=r("DVgA"),i=r("JiEa"),o=r("UqcF"),u=r("S/j/"),c=r("Ymqv"),a=Object.assign;t.exports=!a||r("eeVq")(function(){var t={},n={},r=Symbol(),e="abcdefghijklmnopqrst";return t[r]=7,e.split("").forEach(function(t){n[t]=t}),7!=a({},t)[r]||Object.keys(a({},n)).join("")!=e})?function(t,n){for(var r=u(t),a=arguments.length,f=1,s=i.f,l=o.f;a>f;)for(var h,v=c(arguments[f++]),p=s?e(v).concat(s(v)):e(v),g=p.length,y=0;g>y;)l.call(v,h=p[y++])&&(r[h]=v[h]);return r}:a},"d/Gc":function(t,n,r){var e=r("RYi7"),i=Math.max,o=Math.min;t.exports=function(t,n){return(t=e(t))<0?i(t+n,0):o(t,n)}},"dE+T":function(t,n,r){var e=r("XKFU");e(e.P,"Array",{copyWithin:r("upKx")}),r("nGyu")("copyWithin")},dQfE:function(t,n,r){r("XfO3"),r("LK8F"),r("HEwt"),r("6AQ9"),r("Nz9U"),r("I78e"),r("Vd3H"),r("8+KV"),r("bWfx"),r("0l/t"),r("dZ+Y"),r("YJVH"),r("DNiP"),r("SPin"),r("V+eJ"),r("mGWK"),r("dE+T"),r("bHtr"),r("dRSK"),r("INYr"),r("0E+W"),r("yt8O"),t.exports=r("g3g5").Array},dRSK:function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),e(e.P+e.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),r("nGyu")("find")},"dZ+Y":function(t,n,r){"use strict";var e=r("XKFU"),i=r("CkkT")(3);e(e.P+e.F*!r("LyE8")([].some,!0),"Array",{some:function(t){return i(this,t,arguments[1])}})},dyZX:function(t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},e7yV:function(t,n,r){var e=r("aCFj"),i=r("kJMx").f,o={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return u&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(n){return u.slice()}}(t):i(e(t))}},eHKK:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{log10:function(t){return Math.log(t)*Math.LOG10E}})},eI33:function(t,n,r){var e=r("XKFU"),i=r("aCFj"),o=r("ne8i");e(e.S,"String",{raw:function(t){for(var n=i(t.raw),r=o(n.length),e=arguments.length,u=[],c=0;r>c;)u.push(String(n[c++])),c<e&&u.push(String(arguments[c]));return u.join("")}})},eM6i:function(t,n,r){var e=r("XKFU");e(e.S,"Date",{now:function(){return(new Date).getTime()}})},eeVq:function(t,n){t.exports=function(t){try{return!!t()}catch(n){return!0}}},elZq:function(t,n,r){"use strict";var e=r("dyZX"),i=r("hswa"),o=r("nh4g"),u=r("K0xU")("species");t.exports=function(t){var n=e[t];o&&n&&!n[u]&&i.f(n,u,{configurable:!0,get:function(){return this}})}},eyMr:function(t,n,r){var e=r("2OiF"),i=r("S/j/"),o=r("Ymqv"),u=r("ne8i");t.exports=function(t,n,r,c,a){e(n);var f=i(t),s=o(f),l=u(f.length),h=a?l-1:0,v=a?-1:1;if(r<2)for(;;){if(h in s){c=s[h],h+=v;break}if(h+=v,a?h<0:l<=h)throw TypeError("Reduce of empty array with no initial value")}for(;a?h>=0:l>h;h+=v)h in s&&(c=n(c,s[h],h,f));return c}},"f3/d":function(t,n,r){var e=r("hswa").f,i=Function.prototype,o=/^\s*function ([^ (]*)/;"name"in i||r("nh4g")&&e(i,"name",{configurable:!0,get:function(){try{return(""+this).match(o)[1]}catch(t){return""}}})},fN96:function(t,n,r){var e=r("XKFU");e(e.S,"Number",{isInteger:r("nBIS")})},fyDq:function(t,n,r){var e=r("hswa").f,i=r("aagx"),o=r("K0xU")("toStringTag");t.exports=function(t,n,r){t&&!i(t=r?t:t.prototype,o)&&e(t,o,{configurable:!0,value:n})}},fyVe:function(t,n,r){var e=r("XKFU"),i=r("1sa7"),o=Math.sqrt,u=Math.acosh;e(e.S+e.F*!(u&&710==Math.floor(u(Number.MAX_VALUE))&&u(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},g3g5:function(t,n){var r=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=r)},g4EE:function(t,n,r){"use strict";var e=r("y3w9"),i=r("apmT");t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return i(e(this),"number"!=t)}},g6HL:function(t,n){t.exports=Object.is||function(t,n){return t===n?0!==t||1/t==1/n:t!=t&&n!=n}},"h/M4":function(t,n,r){var e=r("XKFU");e(e.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},h7Nl:function(t,n,r){var e=Date.prototype,i=e.toString,o=e.getTime;new Date(NaN)+""!="Invalid Date"&&r("KroJ")(e,"toString",function(){var t=o.call(this);return t==t?i.call(this):"Invalid Date"})},hEkN:function(t,n,r){"use strict";r("OGtf")("anchor",function(t){return function(n){return t(this,"a","name",n)}})},hHhE:function(t,n,r){var e=r("XKFU");e(e.S,"Object",{create:r("Kuth")})},hLT2:function(t,n,r){var e=r("XKFU");e(e.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},hPIQ:function(t,n){t.exports={}},hYbK:function(t,n,r){r("Btvt"),r("yt8O"),r("EK0E"),t.exports=r("g3g5").WeakMap},hswa:function(t,n,r){var e=r("y3w9"),i=r("xpql"),o=r("apmT"),u=Object.defineProperty;n.f=r("nh4g")?Object.defineProperty:function(t,n,r){if(e(t),n=o(n,!0),e(r),i)try{return u(t,n,r)}catch(c){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},i5dc:function(t,n,r){var e=r("0/R4"),i=r("y3w9"),o=function(t,n){if(i(t),!e(n)&&null!==n)throw TypeError(n+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,e){try{(e=r("m0Pp")(Function.call,r("EemH").f(Object.prototype,"__proto__").set,2))(t,[]),n=!(t instanceof Array)}catch(i){n=!0}return function(t,r){return o(t,r),n?t.__proto__=r:e(t,r),t}}({},!1):void 0),check:o}},ifmr:function(t,n,r){r("tyy+"),t.exports=r("g3g5").parseFloat},ioFf:function(t,n,r){"use strict";var e=r("dyZX"),i=r("aagx"),o=r("nh4g"),u=r("XKFU"),c=r("KroJ"),a=r("Z6vF").KEY,f=r("eeVq"),s=r("VTer"),l=r("fyDq"),h=r("ylqs"),v=r("K0xU"),p=r("N8g3"),g=r("OnI7"),y=r("1MBn"),d=r("EWmC"),x=r("y3w9"),F=r("0/R4"),b=r("aCFj"),S=r("apmT"),m=r("RjD/"),E=r("Kuth"),K=r("e7yV"),O=r("EemH"),M=r("hswa"),w=r("DVgA"),U=O.f,X=M.f,A=K.f,P=e.Symbol,j=e.JSON,I=j&&j.stringify,N=v("_hidden"),_=v("toPrimitive"),T={}.propertyIsEnumerable,R=s("symbol-registry"),L=s("symbols"),k=s("op-symbols"),q=Object.prototype,V="function"==typeof P,C=e.QObject,D=!C||!C.prototype||!C.prototype.findChild,G=o&&f(function(){return 7!=E(X({},"a",{get:function(){return X(this,"a",{value:7}).a}})).a})?function(t,n,r){var e=U(q,n);e&&delete q[n],X(t,n,r),e&&t!==q&&X(q,n,e)}:X,Z=function(t){var n=L[t]=E(P.prototype);return n._k=t,n},W=V&&"symbol"==typeof P.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof P},Y=function(t,n,r){return t===q&&Y(k,n,r),x(t),n=S(n,!0),x(r),i(L,n)?(r.enumerable?(i(t,N)&&t[N][n]&&(t[N][n]=!1),r=E(r,{enumerable:m(0,!1)})):(i(t,N)||X(t,N,m(1,{})),t[N][n]=!0),G(t,n,r)):X(t,n,r)},z=function(t,n){x(t);for(var r,e=y(n=b(n)),i=0,o=e.length;o>i;)Y(t,r=e[i++],n[r]);return t},J=function(t){var n=T.call(this,t=S(t,!0));return!(this===q&&i(L,t)&&!i(k,t))&&(!(n||!i(this,t)||!i(L,t)||i(this,N)&&this[N][t])||n)},B=function(t,n){if(t=b(t),n=S(n,!0),t!==q||!i(L,n)||i(k,n)){var r=U(t,n);return!r||!i(L,n)||i(t,N)&&t[N][n]||(r.enumerable=!0),r}},H=function(t){for(var n,r=A(b(t)),e=[],o=0;r.length>o;)i(L,n=r[o++])||n==N||n==a||e.push(n);return e},Q=function(t){for(var n,r=t===q,e=A(r?k:b(t)),o=[],u=0;e.length>u;)!i(L,n=e[u++])||r&&!i(q,n)||o.push(L[n]);return o};V||(c((P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),n=function(r){this===q&&n.call(k,r),i(this,N)&&i(this[N],t)&&(this[N][t]=!1),G(this,t,m(1,r))};return o&&D&&G(q,t,{configurable:!0,set:n}),Z(t)}).prototype,"toString",function(){return this._k}),O.f=B,M.f=Y,r("kJMx").f=K.f=H,r("UqcF").f=J,r("JiEa").f=Q,o&&!r("LQAc")&&c(q,"propertyIsEnumerable",J,!0),p.f=function(t){return Z(v(t))}),u(u.G+u.W+u.F*!V,{Symbol:P});for(var $="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;$.length>tt;)v($[tt++]);for(var nt=w(v.store),rt=0;nt.length>rt;)g(nt[rt++]);u(u.S+u.F*!V,"Symbol",{for:function(t){return i(R,t+="")?R[t]:R[t]=P(t)},keyFor:function(t){if(!W(t))throw TypeError(t+" is not a symbol!");for(var n in R)if(R[n]===t)return n},useSetter:function(){D=!0},useSimple:function(){D=!1}}),u(u.S+u.F*!V,"Object",{create:function(t,n){return void 0===n?E(t):z(E(t),n)},defineProperty:Y,defineProperties:z,getOwnPropertyDescriptor:B,getOwnPropertyNames:H,getOwnPropertySymbols:Q}),j&&u(u.S+u.F*(!V||f(function(){var t=P();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))})),"JSON",{stringify:function(t){for(var n,r,e=[t],i=1;arguments.length>i;)e.push(arguments[i++]);if(r=n=e[1],(F(n)||void 0!==t)&&!W(t))return d(n)||(n=function(t,n){if("function"==typeof r&&(n=r.call(this,t,n)),!W(n))return n}),e[1]=n,I.apply(j,e)}}),P.prototype[_]||r("Mukb")(P.prototype,_,P.prototype.valueOf),l(P,"Symbol"),l(Math,"Math",!0),l(e.JSON,"JSON",!0)},jqX0:function(t,n,r){var e=r("XKFU"),i=r("jtBr");e(e.P+e.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},jtBr:function(t,n,r){"use strict";var e=r("eeVq"),i=Date.prototype.getTime,o=Date.prototype.toISOString,u=function(t){return t>9?t:"0"+t};t.exports=e(function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))})||!e(function(){o.call(new Date(NaN))})?function(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),r=t.getUTCMilliseconds(),e=n<0?"-":n>9999?"+":"";return e+("00000"+Math.abs(n)).slice(e?-6:-4)+"-"+u(t.getUTCMonth()+1)+"-"+u(t.getUTCDate())+"T"+u(t.getUTCHours())+":"+u(t.getUTCMinutes())+":"+u(t.getUTCSeconds())+"."+(r>99?r:"0"+u(r))+"Z"}:o},kJMx:function(t,n,r){var e=r("zhAb"),i=r("4R4u").concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return e(t,i)}},kcoS:function(t,n,r){var e=r("lvtm"),i=Math.pow,o=i(2,-52),u=i(2,-23),c=i(2,127)*(2-u),a=i(2,-126);t.exports=Math.fround||function(t){var n,r,i=Math.abs(t),f=e(t);return i<a?f*(i/a/u+1/o-1/o)*a*u:(r=(n=(1+u/o)*i)-(n-i))>c||r!=r?f*(1/0):f*r}},knhD:function(t,n,r){var e=r("XKFU");e(e.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},l0Rn:function(t,n,r){"use strict";var e=r("RYi7"),i=r("vhPU");t.exports=function(t){var n=String(i(this)),r="",o=e(t);if(o<0||o==1/0)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(n+=n))1&o&&(r+=n);return r}},lvtm:function(t,n){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},m0Pp:function(t,n,r){var e=r("2OiF");t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,i){return t.call(n,r,e,i)}}return function(){return t.apply(n,arguments)}}},mGWK:function(t,n,r){"use strict";var e=r("XKFU"),i=r("aCFj"),o=r("RYi7"),u=r("ne8i"),c=[].lastIndexOf,a=!!c&&1/[1].lastIndexOf(1,-0)<0;e(e.P+e.F*(a||!r("LyE8")(c)),"Array",{lastIndexOf:function(t){if(a)return c.apply(this,arguments)||0;var n=i(this),r=u(n.length),e=r-1;for(arguments.length>1&&(e=Math.min(e,o(arguments[1]))),e<0&&(e=r+e);e>=0;e--)if(e in n&&n[e]===t)return e||0;return-1}})},mYba:function(t,n,r){var e=r("aCFj"),i=r("EemH").f;r("Xtr8")("getOwnPropertyDescriptor",function(){return function(t,n){return i(e(t),n)}})},mura:function(t,n,r){var e=r("0/R4"),i=r("Z6vF").onFreeze;r("Xtr8")("preventExtensions",function(t){return function(n){return t&&e(n)?t(i(n)):n}})},nBIS:function(t,n,r){var e=r("0/R4"),i=Math.floor;t.exports=function(t){return!e(t)&&isFinite(t)&&i(t)===t}},nGyu:function(t,n,r){var e=r("K0xU")("unscopables"),i=Array.prototype;null==i[e]&&r("Mukb")(i,e,{}),t.exports=function(t){i[e][t]=!0}},nIY7:function(t,n,r){"use strict";r("OGtf")("big",function(t){return function(){return t(this,"big","","")}})},ne8i:function(t,n,r){var e=r("RYi7"),i=Math.min;t.exports=function(t){return t>0?i(e(t),9007199254740991):0}},nh4g:function(t,n,r){t.exports=!r("eeVq")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},nsiH:function(t,n,r){"use strict";r("OGtf")("fontsize",function(t){return function(n){return t(this,"font","size",n)}})},nx1v:function(t,n,r){r("eM6i"),r("AphP"),r("jqX0"),r("h7Nl"),r("yM4b"),t.exports=Date},nzyx:function(t,n,r){var e=r("XKFU"),i=r("LVwc");e(e.S+e.F*(i!=Math.expm1),"Math",{expm1:i})},oDIu:function(t,n,r){"use strict";var e=r("XKFU"),i=r("AvRE")(!1);e(e.P,"String",{codePointAt:function(t){return i(this,t)}})},"oka+":function(t,n,r){r("GNAe"),t.exports=r("g3g5").parseInt},pIFo:function(t,n,r){"use strict";var e=r("y3w9"),i=r("S/j/"),o=r("ne8i"),u=r("RYi7"),c=r("A5AN"),a=r("Xxuz"),f=Math.max,s=Math.min,l=Math.floor,h=/\$([$&`']|\d\d?|<[^>]*>)/g,v=/\$([$&`']|\d\d?)/g;r("IU+Z")("replace",2,function(t,n,r,p){return[function(e,i){var o=t(this),u=null==e?void 0:e[n];return void 0!==u?u.call(e,o,i):r.call(String(o),e,i)},function(t,n){var i=p(r,t,this,n);if(i.done)return i.value;var l=e(t),h=String(this),v="function"==typeof n;v||(n=String(n));var y=l.global;if(y){var d=l.unicode;l.lastIndex=0}for(var x=[];;){var F=a(l,h);if(null===F)break;if(x.push(F),!y)break;""===String(F[0])&&(l.lastIndex=c(h,o(l.lastIndex),d))}for(var b,S="",m=0,E=0;E<x.length;E++){F=x[E];for(var K=String(F[0]),O=f(s(u(F.index),h.length),0),M=[],w=1;w<F.length;w++)M.push(void 0===(b=F[w])?b:String(b));var U=F.groups;if(v){var X=[K].concat(M,O,h);void 0!==U&&X.push(U);var A=String(n.apply(void 0,X))}else A=g(K,h,O,M,U,n);O>=m&&(S+=h.slice(m,O)+A,m=O+K.length)}return S+h.slice(m)}];function g(t,n,e,o,u,c){var a=e+t.length,f=o.length,s=v;return void 0!==u&&(u=i(u),s=h),r.call(c,s,function(r,i){var c;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,e);case"'":return n.slice(a);case"<":c=u[i.slice(1,-1)];break;default:var s=+i;if(0===s)return r;if(s>f){var h=l(s/10);return 0===h?r:h<=f?void 0===o[h-1]?i.charAt(1):o[h-1]+i.charAt(1):r}c=o[s-1]}return void 0===c?"":c})}})},"pp/T":function(t,n,r){var e=r("XKFU");e(e.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},qKs0:function(t,n,r){r("Btvt"),r("XfO3"),r("rGqo"),r("9AAn"),t.exports=r("g3g5").Map},qncB:function(t,n,r){var e=r("XKFU"),i=r("vhPU"),o=r("eeVq"),u=r("/e88"),c="["+u+"]",a=RegExp("^"+c+c+"*"),f=RegExp(c+c+"*$"),s=function(t,n,r){var i={},c=o(function(){return!!u[t]()||"\u200b\x85"!="\u200b\x85"[t]()}),a=i[t]=c?n(l):u[t];r&&(i[r]=a),e(e.P+e.F*c,"String",i)},l=s.trim=function(t,n){return t=String(i(t)),1&n&&(t=t.replace(a,"")),2&n&&(t=t.replace(f,"")),t};t.exports=s},quPj:function(t,n,r){var e=r("0/R4"),i=r("LZWt"),o=r("K0xU")("match");t.exports=function(t){var n;return e(t)&&(void 0!==(n=t[o])?!!n:"RegExp"==i(t))}},rGqo:function(t,n,r){for(var e=r("yt8O"),i=r("DVgA"),o=r("KroJ"),u=r("dyZX"),c=r("Mukb"),a=r("hPIQ"),f=r("K0xU"),s=f("iterator"),l=f("toStringTag"),h=a.Array,v={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},p=i(v),g=0;g<p.length;g++){var y,d=p[g],x=v[d],F=u[d],b=F&&F.prototype;if(b&&(b[s]||c(b,s,h),b[l]||c(b,l,d),a[d]=h,x))for(y in e)b[y]||o(b,y,e[y],!0)}},rfyP:function(t,n,r){r("Oyvg"),r("sMXx"),r("a1Th"),r("OEbY"),r("SRfc"),r("pIFo"),r("OG14"),r("KKXr"),t.exports=r("g3g5").RegExp},rvZc:function(t,n,r){"use strict";var e=r("XKFU"),i=r("ne8i"),o=r("0sh+"),u="".endsWith;e(e.P+e.F*r("UUeW")("endsWith"),"String",{endsWith:function(t){var n=o(this,t,"endsWith"),r=arguments.length>1?arguments[1]:void 0,e=i(n.length),c=void 0===r?e:Math.min(i(r),e),a=String(t);return u?u.call(n,a,c):n.slice(c-a.length,c)===a}})},s5qY:function(t,n,r){var e=r("0/R4");t.exports=function(t,n){if(!e(t)||t._t!==n)throw TypeError("Incompatible receiver, "+n+" required!");return t}},sMXx:function(t,n,r){"use strict";var e=r("Ugos");r("XKFU")({target:"RegExp",proto:!0,forced:e!==/./.exec},{exec:e})},sbF8:function(t,n,r){var e=r("XKFU"),i=r("nBIS"),o=Math.abs;e(e.S,"Number",{isSafeInteger:function(t){return i(t)&&o(t)<=9007199254740991}})},tRfe:function(t,n,r){"use strict";r.r(n),r("vqGA"),r("99sg"),r("4A4+"),r("oka+"),r("ifmr"),r("Lmuc"),r("CuTL"),r("V5/Y"),r("nx1v"),r("dQfE"),r("rfyP"),r("qKs0"),r("hYbK"),r("VXxg")},tUrg:function(t,n,r){"use strict";r("OGtf")("link",function(t){return function(n){return t(this,"a","href",n)}})},"tyy+":function(t,n,r){var e=r("XKFU"),i=r("11IZ");e(e.G+e.F*(parseFloat!=i),{parseFloat:i})},upKx:function(t,n,r){"use strict";var e=r("S/j/"),i=r("d/Gc"),o=r("ne8i");t.exports=[].copyWithin||function(t,n){var r=e(this),u=o(r.length),c=i(t,u),a=i(n,u),f=arguments.length>2?arguments[2]:void 0,s=Math.min((void 0===f?u:i(f,u))-a,u-c),l=1;for(a<c&&c<a+s&&(l=-1,a+=s-1,c+=s-1);s-- >0;)a in r?r[c]=r[a]:delete r[c],c+=l,a+=l;return r}},vhPU:function(t,n){t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},vqGA:function(t,n,r){r("ioFf"),r("Btvt"),t.exports=r("g3g5").Symbol},vvmO:function(t,n,r){var e=r("LZWt");t.exports=function(t,n){if("number"!=typeof t&&"Number"!=e(t))throw TypeError(n);return+t}},w2a5:function(t,n,r){var e=r("aCFj"),i=r("ne8i"),o=r("d/Gc");t.exports=function(t){return function(n,r,u){var c,a=e(n),f=i(a.length),s=o(u,f);if(t&&r!=r){for(;f>s;)if((c=a[s++])!=c)return!0}else for(;f>s;s++)if((t||s in a)&&a[s]===r)return t||s||0;return!t&&-1}}},wmvG:function(t,n,r){"use strict";var e=r("hswa").f,i=r("Kuth"),o=r("3Lyj"),u=r("m0Pp"),c=r("9gX7"),a=r("SlkY"),f=r("Afnz"),s=r("1TsA"),l=r("elZq"),h=r("nh4g"),v=r("Z6vF").fastKey,p=r("s5qY"),g=h?"_s":"size",y=function(t,n){var r,e=v(n);if("F"!==e)return t._i[e];for(r=t._f;r;r=r.n)if(r.k==n)return r};t.exports={getConstructor:function(t,n,r,f){var s=t(function(t,e){c(t,s,n,"_i"),t._t=n,t._i=i(null),t._f=void 0,t._l=void 0,t[g]=0,null!=e&&a(e,r,t[f],t)});return o(s.prototype,{clear:function(){for(var t=p(this,n),r=t._i,e=t._f;e;e=e.n)e.r=!0,e.p&&(e.p=e.p.n=void 0),delete r[e.i];t._f=t._l=void 0,t[g]=0},delete:function(t){var r=p(this,n),e=y(r,t);if(e){var i=e.n,o=e.p;delete r._i[e.i],e.r=!0,o&&(o.n=i),i&&(i.p=o),r._f==e&&(r._f=i),r._l==e&&(r._l=o),r[g]--}return!!e},forEach:function(t){p(this,n);for(var r,e=u(t,arguments.length>1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(e(r.v,r.k,this);r&&r.r;)r=r.p},has:function(t){return!!y(p(this,n),t)}}),h&&e(s.prototype,"size",{get:function(){return p(this,n)[g]}}),s},def:function(t,n,r){var e,i,o=y(t,n);return o?o.v=r:(t._l=o={i:i=v(n,!0),k:n,v:r,p:e=t._l,n:void 0,r:!1},t._f||(t._f=o),e&&(e.n=o),t[g]++,"F"!==i&&(t._i[i]=o)),t},getEntry:y,setStrong:function(t,n,r){f(t,n,function(t,r){this._t=p(t,n),this._k=r,this._l=void 0},function(){for(var t=this._k,n=this._l;n&&n.r;)n=n.p;return this._t&&(this._l=n=n?n.n:this._t._f)?s(0,"keys"==t?n.k:"values"==t?n.v:[n.k,n.v]):(this._t=void 0,s(1))},r?"entries":"values",!r,!0),l(n)}}},x8Yj:function(t,n,r){var e=r("XKFU"),i=r("LVwc"),o=Math.exp;e(e.S,"Math",{tanh:function(t){var n=i(t=+t),r=i(-t);return n==1/0?1:r==1/0?-1:(n-r)/(o(t)+o(-t))}})},x8ZO:function(t,n,r){var e=r("XKFU"),i=Math.abs;e(e.S,"Math",{hypot:function(t,n){for(var r,e,o=0,u=0,c=arguments.length,a=0;u<c;)a<(r=i(arguments[u++]))?(o=o*(e=a/r)*e+1,a=r):o+=r>0?(e=r/a)*e:r;return a===1/0?1/0:a*Math.sqrt(o)}})},xfY5:function(t,n,r){"use strict";var e=r("dyZX"),i=r("aagx"),o=r("LZWt"),u=r("Xbzi"),c=r("apmT"),a=r("eeVq"),f=r("kJMx").f,s=r("EemH").f,l=r("hswa").f,h=r("qncB").trim,v=e.Number,p=v,g=v.prototype,y="Number"==o(r("Kuth")(g)),d="trim"in String.prototype,x=function(t){var n=c(t,!1);if("string"==typeof n&&n.length>2){var r,e,i,o=(n=d?n.trim():h(n,3)).charCodeAt(0);if(43===o||45===o){if(88===(r=n.charCodeAt(2))||120===r)return NaN}else if(48===o){switch(n.charCodeAt(1)){case 66:case 98:e=2,i=49;break;case 79:case 111:e=8,i=55;break;default:return+n}for(var u,a=n.slice(2),f=0,s=a.length;f<s;f++)if((u=a.charCodeAt(f))<48||u>i)return NaN;return parseInt(a,e)}}return+n};if(!v(" 0o1")||!v("0b1")||v("+0x1")){v=function(t){var n=arguments.length<1?0:t,r=this;return r instanceof v&&(y?a(function(){g.valueOf.call(r)}):"Number"!=o(r))?u(new p(x(n)),r,v):x(n)};for(var F,b=r("nh4g")?f(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),S=0;b.length>S;S++)i(p,F=b[S])&&!i(v,F)&&l(v,F,s(p,F));v.prototype=g,g.constructor=v,r("KroJ")(e,"Number",v)}},xpql:function(t,n,r){t.exports=!r("nh4g")&&!r("eeVq")(function(){return 7!=Object.defineProperty(r("Iw71")("div"),"a",{get:function(){return 7}}).a})},y3w9:function(t,n,r){var e=r("0/R4");t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},yM4b:function(t,n,r){var e=r("K0xU")("toPrimitive"),i=Date.prototype;e in i||r("Mukb")(i,e,r("g4EE"))},ylqs:function(t,n){var r=0,e=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+e).toString(36))}},yt8O:function(t,n,r){"use strict";var e=r("nGyu"),i=r("1TsA"),o=r("hPIQ"),u=r("aCFj");t.exports=r("Afnz")(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,i(1)):i(0,"keys"==n?r:"values"==n?t[r]:[r,t[r]])},"values"),o.Arguments=o.Array,e("keys"),e("values"),e("entries")},z2o2:function(t,n,r){var e=r("0/R4"),i=r("Z6vF").onFreeze;r("Xtr8")("seal",function(t){return function(n){return t&&e(n)?t(i(n)):n}})},zRwo:function(t,n,r){var e=r("6FMO");t.exports=function(t,n){return new(e(t))(n)}},zhAb:function(t,n,r){var e=r("aagx"),i=r("aCFj"),o=r("w2a5")(!1),u=r("YTvA")("IE_PROTO");t.exports=function(t,n){var r,c=i(t),a=0,f=[];for(r in c)r!=u&&e(c,r)&&f.push(r);for(;n.length>a;)e(c,r=n[a++])&&(~o(f,r)||f.push(r));return f}}},[[1,0]]]);
\ No newline at end of file
diff --git a/typescript/simio-client/docs/favicon.ico b/typescript/simio-client/docs/favicon.ico
new file mode 100644
index 0000000..8081c7c
Binary files /dev/null and b/typescript/simio-client/docs/favicon.ico differ
diff --git a/typescript/simio-client/docs/index.html b/typescript/simio-client/docs/index.html
new file mode 100644
index 0000000..5f15736
--- /dev/null
+++ b/typescript/simio-client/docs/index.html
@@ -0,0 +1,16 @@
+<!doctype html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <title>AngularClient</title>
+  <base href="C:/Program Files/Git/angular-client/">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link rel="icon" type="image/x-icon" href="favicon.ico">
+  <!-- <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> -->
+  <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet">
+  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
+<link rel="stylesheet" href="styles.257a2b02527cbc698feb.css"></head>
+<body>
+  <app-root></app-root>
+<script type="text/javascript" src="runtime.26209474bfa8dc87a77c.js"></script><script type="text/javascript" src="es2015-polyfills.1e04665e16f944715fd2.js" nomodule></script><script type="text/javascript" src="polyfills.8bbb231b43165d65d357.js"></script><script type="text/javascript" src="main.faeccd318d4cae944d61.js"></script></body>
+</html>
diff --git a/typescript/simio-client/docs/main.faeccd318d4cae944d61.js b/typescript/simio-client/docs/main.faeccd318d4cae944d61.js
new file mode 100644
index 0000000..58c1971
--- /dev/null
+++ b/typescript/simio-client/docs/main.faeccd318d4cae944d61.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"+v3u":function(t,e,n){n("q94Q")("match")},"//qW":function(t,e,n){"use strict";var r=n("Gp07"),i=n("LX9C"),o=n("stQs"),s=i.set,a=i.getterFor("String Iterator");o(String,"String",function(t){s(this,{type:"String Iterator",string:String(t),index:0})},function(){var t,e=a(this),n=e.string,i=e.index;return i>=n.length?{value:void 0,done:!0}:(t=r(n,i,!0),e.index+=t.length,{value:t,done:!1})})},0:function(t,e,n){t.exports=n("zUnb")},"0Bu/":function(t,e,n){var r=n("kpns"),i=n("bcPd");t.exports=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype")}},"0HDe":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"0i0S":function(t,e){t.exports={}},"0idE":function(t,e,n){var r=n("57wU"),i=n("SAp2"),o=n("qBi7")("IE_PROTO"),s=n("S5sp"),a=Object.prototype;t.exports=s?Object.getPrototypeOf:function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},"1VRj":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},"1f/i":function(t,e,n){var r=n("ysHE"),i=n("wBs/"),o=n("57wU"),s=n("nX7E"),a=n("5eG6"),u=n("LX9C"),l=u.get,c=u.enforce,h=String(a).split("toString");n("MfhB")("inspectSource",function(t){return a.call(t)}),(t.exports=function(t,e,n,a){var u=!!a&&!!a.unsafe,l=!!a&&!!a.enumerable,p=!!a&&!!a.noTargetGet;"function"==typeof n&&("string"!=typeof e||o(n,"name")||i(n,"name",e),c(n).source=h.join("string"==typeof e?e:"")),t!==r?(u?!p&&t[e]&&(l=!0):delete t[e],l?t[e]=n:i(t,e,n)):l?t[e]=n:s(e,n)})(Function.prototype,"toString",function(){return"function"==typeof this&&l(this).source||a.call(this)})},"2F3y":function(t,e,n){n("q94Q")("asyncIterator")},"2Hee":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"2w5C":function(t,e,n){var r=n("57wU"),i=n("IutQ"),o=n("55jA")(!1),s=n("vcTx");t.exports=function(t,e){var n,a=i(t),u=0,l=[];for(n in a)!r(s,n)&&r(a,n)&&l.push(n);for(;e.length>u;)r(a,n=e[u++])&&(~o(l,n)||l.push(n));return l}},"3Gxb":function(t,e,n){var r=n("2w5C"),i=n("o9j8").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},"44fV":function(t,e,n){"use strict";var r=n("ysHE"),i=n("57wU"),o=n("lb/b"),s=n("U5J1"),a=n("pSMy"),u=n("1f/i"),l=n("vcTx"),c=n("0HDe"),h=n("MfhB"),p=n("S4gH"),f=n("ptKZ"),d=n("aXXJ"),m=n("ahhG"),y=n("q94Q"),g=n("SIcJ"),v=n("k2qa"),_=n("bcPd"),b=n("kpns"),w=n("IutQ"),E=n("ehg7"),S=n("2Hee"),C=n("tzov"),T=n("zkF/"),I=n("pYsU"),x=n("TIpl"),k=n("iCuu"),A=n("wBs/"),O=n("Q2Kg"),N=n("qBi7")("hidden"),D=n("LX9C"),R=D.set,P=D.getterFor("Symbol"),M=I.f,L=x.f,F=T.f,j=r.Symbol,U=r.JSON,V=U&&U.stringify,q=d("toPrimitive"),B=k.f,H=h("symbol-registry"),z=h("symbols"),W=h("op-symbols"),Q=h("wks"),K=Object.prototype,G=r.QObject,Y=n("mk1t"),X=!G||!G.prototype||!G.prototype.findChild,J=o&&c(function(){return 7!=C(L({},"a",{get:function(){return L(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=M(K,e);r&&delete K[e],L(t,e,n),r&&t!==K&&L(K,e,r)}:L,Z=function(t,e){var n=z[t]=C(j.prototype);return R(n,{type:"Symbol",tag:t,description:e}),o||(n.description=e),n},$=Y&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof j},tt=function(t,e,n){return t===K&&tt(W,e,n),_(t),e=E(e,!0),_(n),i(z,e)?(n.enumerable?(i(t,N)&&t[N][e]&&(t[N][e]=!1),n=C(n,{enumerable:S(0,!1)})):(i(t,N)||L(t,N,S(1,{})),t[N][e]=!0),J(t,e,n)):L(t,e,n)},et=function(t,e){_(t);for(var n,r=g(e=w(e)),i=0,o=r.length;o>i;)tt(t,n=r[i++],e[n]);return t},nt=function(t){var e=B.call(this,t=E(t,!0));return!(this===K&&i(z,t)&&!i(W,t))&&(!(e||!i(this,t)||!i(z,t)||i(this,N)&&this[N][t])||e)},rt=function(t,e){if(t=w(t),e=E(e,!0),t!==K||!i(z,e)||i(W,e)){var n=M(t,e);return!n||!i(z,e)||i(t,N)&&t[N][e]||(n.enumerable=!0),n}},it=function(t){for(var e,n=F(w(t)),r=[],o=0;n.length>o;)i(z,e=n[o++])||i(l,e)||r.push(e);return r},ot=function(t){for(var e,n=t===K,r=F(n?W:w(t)),o=[],s=0;r.length>s;)!i(z,e=r[s++])||n&&!i(K,e)||o.push(z[e]);return o};Y||(u((j=function(){if(this instanceof j)throw TypeError("Symbol is not a constructor");var t=void 0===arguments[0]?void 0:String(arguments[0]),e=f(t),n=function(t){this===K&&n.call(W,t),i(this,N)&&i(this[N],e)&&(this[N][e]=!1),J(this,e,S(1,t))};return o&&X&&J(K,e,{configurable:!0,set:n}),Z(e,t)}).prototype,"toString",function(){return P(this).tag}),k.f=nt,x.f=tt,I.f=rt,n("3Gxb").f=T.f=it,n("fw2a").f=ot,o&&(L(j.prototype,"description",{configurable:!0,get:function(){return P(this).description}}),s||u(K,"propertyIsEnumerable",nt,{unsafe:!0})),m.f=function(t){return Z(d(t),t)}),a({global:!0,wrap:!0,forced:!Y,sham:!Y},{Symbol:j});for(var st=O(Q),at=0;st.length>at;)y(st[at++]);a({target:"Symbol",stat:!0,forced:!Y},{for:function(t){return i(H,t+="")?H[t]:H[t]=j(t)},keyFor:function(t){if(!$(t))throw TypeError(t+" is not a symbol");for(var e in H)if(H[e]===t)return e},useSetter:function(){X=!0},useSimple:function(){X=!1}}),a({target:"Object",stat:!0,forced:!Y,sham:!o},{create:function(t,e){return void 0===e?C(t):et(C(t),e)},defineProperty:tt,defineProperties:et,getOwnPropertyDescriptor:rt}),a({target:"Object",stat:!0,forced:!Y},{getOwnPropertyNames:it,getOwnPropertySymbols:ot}),U&&a({target:"JSON",stat:!0,forced:!Y||c(function(){var t=j();return"[null]"!=V([t])||"{}"!=V({a:t})||"{}"!=V(Object(t))})},{stringify:function(t){for(var e,n,r=[t],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=e=r[1],(b(e)||void 0!==t)&&!$(t))return v(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!$(e))return e}),r[1]=e,V.apply(U,r)}}),j.prototype[q]||A(j.prototype,q,j.prototype.valueOf),p(j,"Symbol"),l[N]=!0},"4Ea8":function(t,e,n){t.exports=n("ysHE")},"4mOR":function(t,e,n){"use strict";var r=n("vQkR")(6),i=!0;"findIndex"in[]&&Array(1).findIndex(function(){i=!1}),n("pSMy")({target:"Array",proto:!0,forced:i},{findIndex:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n("gJLK")("findIndex")},"55jA":function(t,e,n){var r=n("IutQ"),i=n("H6ty"),o=n("GJzV");t.exports=function(t){return function(e,n,s){var a,u=r(e),l=i(u.length),c=o(s,l);if(t&&n!=n){for(;l>c;)if((a=u[c++])!=a)return!0}else for(;l>c;c++)if((t||c in u)&&u[c]===n)return t||c||0;return!t&&-1}}},"57wU":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"5eG6":function(t,e,n){t.exports=n("MfhB")("native-function-to-string",Function.toString)},"6Joi":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n("wj3C"))&&"object"==typeof r&&"default"in r?r.default:r,o=n("q/0M"),s=n("mrSG"),a=n("x7I3"),u=n("zVF4"),l=i.SDK_VERSION,c=new o.Logger("@firebase/firestore"),h=function(t){return t[t.DEBUG=0]="DEBUG",t[t.ERROR=1]="ERROR",t[t.SILENT=2]="SILENT",t}({});function p(){return c.logLevel===o.LogLevel.DEBUG?h.DEBUG:c.logLevel===o.LogLevel.SILENT?h.SILENT:h.ERROR}function f(t){switch(t){case h.DEBUG:c.logLevel=o.LogLevel.DEBUG;break;case h.ERROR:c.logLevel=o.LogLevel.ERROR;break;case h.SILENT:c.logLevel=o.LogLevel.SILENT;break;default:c.error("Firestore ("+l+"): Invalid value passed to `setLogLevel`")}}function d(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(c.logLevel<=o.LogLevel.DEBUG){var i=n.map(y);c.debug.apply(c,["Firestore ("+l+") ["+t+"]: "+e].concat(i))}}function m(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(c.logLevel<=o.LogLevel.ERROR){var r=e.map(y);c.error.apply(c,["Firestore ("+l+"): "+t].concat(r))}}function y(t){if("string"==typeof t)return t;var e=_.getPlatform();try{return e.formatJSON(t)}catch(n){return t}}function g(t){var e="FIRESTORE ("+l+") INTERNAL ASSERTION FAILED: "+t;throw m(e),new Error(e)}function v(t,e){t||g(e)}var _=function(){function t(){}return t.setPlatform=function(e){t.platform&&g("Platform already defined"),t.platform=e},t.getPlatform=function(){return t.platform||g("Platform not set"),t.platform},t}();function b(){return _.getPlatform().emptyByteString}var w={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"},E=function(t){function e(e,n){var r=t.call(this,n)||this;return r.code=e,r.message=n,r.name="FirebaseError",r.toString=function(){return r.name+": [code="+r.code+"]: "+r.message},r}return s.__extends(e,t),e}(Error);function S(t,e){function n(){var t="This constructor is private.";throw e&&(t+=" ",t+=e),new E(w.INVALID_ARGUMENT,t)}for(var r in n.prototype=t.prototype,t)t.hasOwnProperty(r)&&(n[r]=t[r]);return n}function C(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function T(t,e){return void 0!==t?t:e}function I(t,e){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var r=Number(n);isNaN(r)||e(r,t[n])}}function x(t,e){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function k(t){for(var e in v(null!=t&&"object"==typeof t,"isEmpty() expects object parameter."),t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function A(t,e){if(0!==e.length)throw new E(w.INVALID_ARGUMENT,"Function "+t+"() does not support arguments, but was called with "+W(e.length,"argument")+".")}function O(t,e,n){if(e.length!==n)throw new E(w.INVALID_ARGUMENT,"Function "+t+"() requires "+W(n,"argument")+", but was called with "+W(e.length,"argument")+".")}function N(t,e,n){if(e.length<n)throw new E(w.INVALID_ARGUMENT,"Function "+t+"() requires at least "+W(n,"argument")+", but was called with "+W(e.length,"argument")+".")}function D(t,e,n,r){if(e.length<n||e.length>r)throw new E(w.INVALID_ARGUMENT,"Function "+t+"() requires between "+n+" and "+r+" arguments, but was called with "+W(e.length,"argument")+".")}function R(t,e,n,r){j(t,e,z(n)+" argument",r)}function P(t,e,n,r){void 0!==r&&R(t,e,n,r)}function M(t,e,n,r){j(t,e,n+" option",r)}function L(t,e,n,r){void 0!==r&&M(t,e,n,r)}function F(t,e,n,r,i){void 0!==r&&function(t,e,n,r,i){for(var o=[],s=0,a=i;s<a.length;s++){var u=a[s];if(u===r)return;o.push(V(u))}var l=V(r);throw new E(w.INVALID_ARGUMENT,"Invalid value "+l+" provided to function "+t+'() for option "'+n+'". Acceptable values: '+o.join(", "))}(t,0,n,r,i)}function j(t,e,n,r){if(!("object"===e?U(r):"non-empty string"===e?"string"==typeof r&&""!==r:typeof r===e)){var i=V(r);throw new E(w.INVALID_ARGUMENT,"Function "+t+"() requires its "+n+" to be of type "+e+", but it was: "+i)}}function U(t){return"object"==typeof t&&null!==t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))}function V(t){if(void 0===t)return"undefined";if(null===t)return"null";if("string"==typeof t)return t.length>20&&(t=t.substring(0,20)+"..."),JSON.stringify(t);if("number"==typeof t||"boolean"==typeof t)return""+t;if("object"==typeof t){if(t instanceof Array)return"an array";var e=function(t){if(t.constructor){var e=/function\s+([^\s(]+)\s*\(/.exec(t.constructor.toString());if(e&&e.length>1)return e[1]}return null}(t);return e?"a custom "+e+" object":"an object"}return"function"==typeof t?"a function":g("Unknown wrong type: "+typeof t)}function q(t,e,n){if(void 0===n)throw new E(w.INVALID_ARGUMENT,"Function "+t+"() requires a valid "+z(e)+" argument, but it was undefined.")}function B(t,e,n){x(e,function(e,r){if(n.indexOf(e)<0)throw new E(w.INVALID_ARGUMENT,"Unknown option '"+e+"' passed to function "+t+"(). Available options: "+n.join(", "))})}function H(t,e,n,r){var i=V(r);return new E(w.INVALID_ARGUMENT,"Function "+t+"() requires its "+z(n)+" argument to be a "+e+", but it was: "+i)}function z(t){switch(t){case 1:return"first";case 2:return"second";case 3:return"third";default:return t+"th"}}function W(t,e){return t+" "+e+(1===t?"":"s")}var Q=function(){function t(){}return t.newId=function(){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",e="",n=0;n<20;n++)e+=t.charAt(Math.floor(Math.random()*t.length));return v(20===e.length,"Invalid auto ID: "+e),e},t}();function K(t,e){return t<e?-1:t>e?1:0}function G(t,e){if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(!t[n].isEqual(e[n]))return!1;return!0}function Y(t){return t+"\0"}function X(){if("undefined"==typeof Uint8Array)throw new E(w.UNIMPLEMENTED,"Uint8Arrays are not available in this environment.")}function J(){if(!_.getPlatform().base64Available)throw new E(w.UNIMPLEMENTED,"Blobs are unavailable in Firestore in this environment.")}var Z=function(){function t(t){J(),this._binaryString=t}return t.fromBase64String=function(e){O("Blob.fromBase64String",arguments,1),R("Blob.fromBase64String","string",1,e),J();try{return new t(_.getPlatform().atob(e))}catch(n){throw new E(w.INVALID_ARGUMENT,"Failed to construct Blob from Base64 string: "+n)}},t.fromUint8Array=function(e){if(O("Blob.fromUint8Array",arguments,1),X(),!(e instanceof Uint8Array))throw H("Blob.fromUint8Array","Uint8Array",1,e);return new t(Array.prototype.map.call(e,function(t){return String.fromCharCode(t)}).join(""))},t.prototype.toBase64=function(){return O("Blob.toBase64",arguments,0),J(),_.getPlatform().btoa(this._binaryString)},t.prototype.toUint8Array=function(){O("Blob.toUint8Array",arguments,0),X();for(var t=new Uint8Array(this._binaryString.length),e=0;e<this._binaryString.length;e++)t[e]=this._binaryString.charCodeAt(e);return t},t.prototype.toString=function(){return"Blob(base64: "+this.toBase64()+")"},t.prototype.isEqual=function(t){return this._binaryString===t._binaryString},t.prototype._compareTo=function(t){return K(this._binaryString,t._binaryString)},t}(),$=S(Z,"Use Blob.fromUint8Array() or Blob.fromBase64String() instead."),tt=function(){function t(t,e){if(O("GeoPoint",arguments,2),R("GeoPoint","number",1,t),R("GeoPoint","number",2,e),!isFinite(t)||t<-90||t>90)throw new E(w.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(e)||e<-180||e>180)throw new E(w.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+e);this._lat=t,this._long=e}return Object.defineProperty(t.prototype,"latitude",{get:function(){return this._lat},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"longitude",{get:function(){return this._long},enumerable:!0,configurable:!0}),t.prototype.isEqual=function(t){return this._lat===t._lat&&this._long===t._long},t.prototype._compareTo=function(t){return K(this._lat,t._lat)||K(this._long,t._long)},t}(),et=function(){function t(t,e){if(this.seconds=t,this.nanoseconds=e,e<0)throw new E(w.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(e>=1e9)throw new E(w.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(t<-62135596800)throw new E(w.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new E(w.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}return t.now=function(){return t.fromMillis(Date.now())},t.fromDate=function(e){return t.fromMillis(e.getTime())},t.fromMillis=function(e){var n=Math.floor(e/1e3);return new t(n,1e6*(e-1e3*n))},t.prototype.toDate=function(){return new Date(this.toMillis())},t.prototype.toMillis=function(){return 1e3*this.seconds+this.nanoseconds/1e6},t.prototype._compareTo=function(t){return this.seconds===t.seconds?K(this.nanoseconds,t.nanoseconds):K(this.seconds,t.seconds)},t.prototype.isEqual=function(t){return t.seconds===this.seconds&&t.nanoseconds===this.nanoseconds},t.prototype.toString=function(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"},t}(),nt=function(){return function(t,e,n,r){this.databaseId=t,this.persistenceKey=e,this.host=n,this.ssl=r}}(),rt="(default)",it=function(){function t(t,e){this.projectId=t,this.database=e||rt}return Object.defineProperty(t.prototype,"isDefaultDatabase",{get:function(){return this.database===rt},enumerable:!0,configurable:!0}),t.prototype.isEqual=function(e){return e instanceof t&&e.projectId===this.projectId&&e.database===this.database},t.prototype.compareTo=function(t){return K(this.projectId,t.projectId)||K(this.database,t.database)},t}(),ot=function(){function t(t,e,n){this.init(t,e,n)}return t.prototype.init=function(t,e,n){void 0===e?e=0:e>t.length&&g("offset "+e+" out of range "+t.length),void 0===n?n=t.length-e:n>t.length-e&&g("length "+n+" out of range "+(t.length-e)),this.segments=t,this.offset=e,this.len=n},t.prototype.construct=function(t,e,n){var r=Object.create(Object.getPrototypeOf(this));return r.init(t,e,n),r},Object.defineProperty(t.prototype,"length",{get:function(){return this.len},enumerable:!0,configurable:!0}),t.prototype.isEqual=function(e){return 0===t.comparator(this,e)},t.prototype.child=function(e){var n=this.segments.slice(this.offset,this.limit());return e instanceof t?e.forEach(function(t){n.push(t)}):"string"==typeof e?n.push(e):g("Unknown parameter type for Path.child(): "+e),this.construct(n)},t.prototype.limit=function(){return this.offset+this.length},t.prototype.popFirst=function(t){return v(this.length>=(t=void 0===t?1:t),"Can't call popFirst() with less segments"),this.construct(this.segments,this.offset+t,this.length-t)},t.prototype.popLast=function(){return v(!this.isEmpty(),"Can't call popLast() on empty path"),this.construct(this.segments,this.offset,this.length-1)},t.prototype.firstSegment=function(){return v(!this.isEmpty(),"Can't call firstSegment() on empty path"),this.segments[this.offset]},t.prototype.lastSegment=function(){return this.get(this.length-1)},t.prototype.get=function(t){return v(t<this.length,"Index out of range"),this.segments[this.offset+t]},t.prototype.isEmpty=function(){return 0===this.length},t.prototype.isPrefixOf=function(t){if(t.length<this.length)return!1;for(var e=0;e<this.length;e++)if(this.get(e)!==t.get(e))return!1;return!0},t.prototype.isImmediateParentOf=function(t){if(this.length+1!==t.length)return!1;for(var e=0;e<this.length;e++)if(this.get(e)!==t.get(e))return!1;return!0},t.prototype.forEach=function(t){for(var e=this.offset,n=this.limit();e<n;e++)t(this.segments[e])},t.prototype.toArray=function(){return this.segments.slice(this.offset,this.limit())},t.comparator=function(t,e){for(var n=Math.min(t.length,e.length),r=0;r<n;r++){var i=t.get(r),o=e.get(r);if(i<o)return-1;if(i>o)return 1}return t.length<e.length?-1:t.length>e.length?1:0},t}(),st=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return s.__extends(e,t),e.prototype.canonicalString=function(){return this.toArray().join("/")},e.prototype.toString=function(){return this.canonicalString()},e.fromString=function(t){if(t.indexOf("//")>=0)throw new E(w.INVALID_ARGUMENT,"Invalid path ("+t+"). Paths must not contain // in them.");return new e(t.split("/").filter(function(t){return t.length>0}))},e.EMPTY_PATH=new e([]),e}(ot),at=/^[_a-zA-Z][_a-zA-Z0-9]*$/,ut=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return s.__extends(e,t),e.isValidIdentifier=function(t){return at.test(t)},e.prototype.canonicalString=function(){return this.toArray().map(function(t){return t=t.replace("\\","\\\\").replace("`","\\`"),e.isValidIdentifier(t)||(t="`"+t+"`"),t}).join(".")},e.prototype.toString=function(){return this.canonicalString()},e.prototype.isKeyField=function(){return 1===this.length&&"__name__"===this.get(0)},e.keyField=function(){return new e(["__name__"])},e.fromServerFormat=function(t){for(var n=[],r="",i=0,o=function(){if(0===r.length)throw new E(w.INVALID_ARGUMENT,"Invalid field path ("+t+"). Paths must not be empty, begin with '.', end with '.', or contain '..'");n.push(r),r=""},s=!1;i<t.length;){var a=t[i];if("\\"===a){if(i+1===t.length)throw new E(w.INVALID_ARGUMENT,"Path has trailing escape character: "+t);var u=t[i+1];if("\\"!==u&&"."!==u&&"`"!==u)throw new E(w.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);r+=u,i+=2}else"`"===a?(s=!s,i++):"."!==a||s?(r+=a,i++):(o(),i++)}if(o(),s)throw new E(w.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new e(n)},e.EMPTY_PATH=new e([]),e}(ot),lt=function(){function t(e){this.path=e,v(t.isDocumentKey(e),"Invalid DocumentKey with an odd number of segments: "+e.toArray().join("/"))}return t.prototype.hasCollectionId=function(t){return this.path.length>=2&&this.path.get(this.path.length-2)===t},t.prototype.isEqual=function(t){return null!==t&&0===st.comparator(this.path,t.path)},t.prototype.toString=function(){return this.path.toString()},t.comparator=function(t,e){return st.comparator(t.path,e.path)},t.isDocumentKey=function(t){return t.length%2==0},t.fromSegments=function(e){return new t(new st(e.slice()))},t.fromPathString=function(e){return new t(st.fromString(e))},t.EMPTY=new t(new st([])),t}(),ct=function(){function t(t,e){this.key=t,this.version=e}return t.compareByKey=function(t,e){return lt.comparator(t.key,e.key)},t}(),ht=function(t){function e(e,n,r,i,o){var s=t.call(this,e,n)||this;return s.data=r,s.proto=o,s.hasLocalMutations=!!i.hasLocalMutations,s.hasCommittedMutations=!!i.hasCommittedMutations,s}return s.__extends(e,t),e.prototype.field=function(t){return this.data.field(t)},e.prototype.fieldValue=function(t){var e=this.field(t);return e?e.value():void 0},e.prototype.value=function(){return this.data.value()},e.prototype.isEqual=function(t){return t instanceof e&&this.key.isEqual(t.key)&&this.version.isEqual(t.version)&&this.data.isEqual(t.data)&&this.hasLocalMutations===t.hasLocalMutations&&this.hasCommittedMutations===t.hasCommittedMutations},e.prototype.toString=function(){return"Document("+this.key+", "+this.version+", "+this.data.toString()+", {hasLocalMutations: "+this.hasLocalMutations+"}), {hasCommittedMutations: "+this.hasCommittedMutations+"})"},Object.defineProperty(e.prototype,"hasPendingWrites",{get:function(){return this.hasLocalMutations||this.hasCommittedMutations},enumerable:!0,configurable:!0}),e.compareByField=function(t,e,n){var r=e.field(t),i=n.field(t);return void 0!==r&&void 0!==i?r.compareTo(i):g("Trying to compare documents on fields that don't exist")},e}(ct),pt=function(t){function e(e,n,r){var i=t.call(this,e,n)||this;return i.hasCommittedMutations=!(!r||!r.hasCommittedMutations),i}return s.__extends(e,t),e.prototype.toString=function(){return"NoDocument("+this.key+", "+this.version+")"},Object.defineProperty(e.prototype,"hasPendingWrites",{get:function(){return this.hasCommittedMutations},enumerable:!0,configurable:!0}),e.prototype.isEqual=function(t){return t instanceof e&&t.hasCommittedMutations===this.hasCommittedMutations&&t.version.isEqual(this.version)&&t.key.isEqual(this.key)},e}(ct),ft=function(t){function e(e,n){return t.call(this,e,n)||this}return s.__extends(e,t),e.prototype.toString=function(){return"UnknownDocument("+this.key+", "+this.version+")"},Object.defineProperty(e.prototype,"hasPendingWrites",{get:function(){return!0},enumerable:!0,configurable:!0}),e.prototype.isEqual=function(t){return t instanceof e&&t.version.isEqual(this.version)&&t.key.isEqual(this.key)},e}(ct),dt=function(){function t(t,e){this.comparator=t,this.root=e||yt.EMPTY}return t.prototype.insert=function(e,n){return new t(this.comparator,this.root.insert(e,n,this.comparator).copy(null,null,yt.BLACK,null,null))},t.prototype.remove=function(e){return new t(this.comparator,this.root.remove(e,this.comparator).copy(null,null,yt.BLACK,null,null))},t.prototype.get=function(t){for(var e=this.root;!e.isEmpty();){var n=this.comparator(t,e.key);if(0===n)return e.value;n<0?e=e.left:n>0&&(e=e.right)}return null},t.prototype.indexOf=function(t){for(var e=0,n=this.root;!n.isEmpty();){var r=this.comparator(t,n.key);if(0===r)return e+n.left.size;r<0?n=n.left:(e+=n.left.size+1,n=n.right)}return-1},t.prototype.isEmpty=function(){return this.root.isEmpty()},Object.defineProperty(t.prototype,"size",{get:function(){return this.root.size},enumerable:!0,configurable:!0}),t.prototype.minKey=function(){return this.root.minKey()},t.prototype.maxKey=function(){return this.root.maxKey()},t.prototype.inorderTraversal=function(t){return this.root.inorderTraversal(t)},t.prototype.forEach=function(t){this.inorderTraversal(function(e,n){return t(e,n),!1})},t.prototype.toString=function(){var t=[];return this.inorderTraversal(function(e,n){return t.push(e+":"+n),!1}),"{"+t.join(", ")+"}"},t.prototype.reverseTraversal=function(t){return this.root.reverseTraversal(t)},t.prototype.getIterator=function(){return new mt(this.root,null,this.comparator,!1)},t.prototype.getIteratorFrom=function(t){return new mt(this.root,t,this.comparator,!1)},t.prototype.getReverseIterator=function(){return new mt(this.root,null,this.comparator,!0)},t.prototype.getReverseIteratorFrom=function(t){return new mt(this.root,t,this.comparator,!0)},t}(),mt=function(){function t(t,e,n,r){this.isReverse=r,this.nodeStack=[];for(var i=1;!t.isEmpty();)if(i=e?n(t.key,e):1,r&&(i*=-1),i<0)t=this.isReverse?t.left:t.right;else{if(0===i){this.nodeStack.push(t);break}this.nodeStack.push(t),t=this.isReverse?t.right:t.left}}return t.prototype.getNext=function(){v(this.nodeStack.length>0,"getNext() called on iterator when hasNext() is false.");var t=this.nodeStack.pop(),e={key:t.key,value:t.value};if(this.isReverse)for(t=t.left;!t.isEmpty();)this.nodeStack.push(t),t=t.right;else for(t=t.right;!t.isEmpty();)this.nodeStack.push(t),t=t.left;return e},t.prototype.hasNext=function(){return this.nodeStack.length>0},t.prototype.peek=function(){if(0===this.nodeStack.length)return null;var t=this.nodeStack[this.nodeStack.length-1];return{key:t.key,value:t.value}},t}(),yt=function(){function t(e,n,r,i,o){this.key=e,this.value=n,this.color=null!=r?r:t.RED,this.left=null!=i?i:t.EMPTY,this.right=null!=o?o:t.EMPTY,this.size=this.left.size+1+this.right.size}return t.prototype.copy=function(e,n,r,i,o){return new t(null!=e?e:this.key,null!=n?n:this.value,null!=r?r:this.color,null!=i?i:this.left,null!=o?o:this.right)},t.prototype.isEmpty=function(){return!1},t.prototype.inorderTraversal=function(t){return this.left.inorderTraversal(t)||t(this.key,this.value)||this.right.inorderTraversal(t)},t.prototype.reverseTraversal=function(t){return this.right.reverseTraversal(t)||t(this.key,this.value)||this.left.reverseTraversal(t)},t.prototype.min=function(){return this.left.isEmpty()?this:this.left.min()},t.prototype.minKey=function(){return this.min().key},t.prototype.maxKey=function(){return this.right.isEmpty()?this.key:this.right.maxKey()},t.prototype.insert=function(t,e,n){var r=this,i=n(t,r.key);return(r=i<0?r.copy(null,null,null,r.left.insert(t,e,n),null):0===i?r.copy(null,e,null,null,null):r.copy(null,null,null,null,r.right.insert(t,e,n))).fixUp()},t.prototype.removeMin=function(){if(this.left.isEmpty())return t.EMPTY;var e=this;return e.left.isRed()||e.left.left.isRed()||(e=e.moveRedLeft()),(e=e.copy(null,null,null,e.left.removeMin(),null)).fixUp()},t.prototype.remove=function(e,n){var r,i=this;if(n(e,i.key)<0)i.left.isEmpty()||i.left.isRed()||i.left.left.isRed()||(i=i.moveRedLeft()),i=i.copy(null,null,null,i.left.remove(e,n),null);else{if(i.left.isRed()&&(i=i.rotateRight()),i.right.isEmpty()||i.right.isRed()||i.right.left.isRed()||(i=i.moveRedRight()),0===n(e,i.key)){if(i.right.isEmpty())return t.EMPTY;r=i.right.min(),i=i.copy(r.key,r.value,null,null,i.right.removeMin())}i=i.copy(null,null,null,null,i.right.remove(e,n))}return i.fixUp()},t.prototype.isRed=function(){return this.color},t.prototype.fixUp=function(){var t=this;return t.right.isRed()&&!t.left.isRed()&&(t=t.rotateLeft()),t.left.isRed()&&t.left.left.isRed()&&(t=t.rotateRight()),t.left.isRed()&&t.right.isRed()&&(t=t.colorFlip()),t},t.prototype.moveRedLeft=function(){var t=this.colorFlip();return t.right.left.isRed()&&(t=(t=(t=t.copy(null,null,null,null,t.right.rotateRight())).rotateLeft()).colorFlip()),t},t.prototype.moveRedRight=function(){var t=this.colorFlip();return t.left.left.isRed()&&(t=(t=t.rotateRight()).colorFlip()),t},t.prototype.rotateLeft=function(){var e=this.copy(null,null,t.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)},t.prototype.rotateRight=function(){var e=this.copy(null,null,t.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)},t.prototype.colorFlip=function(){var t=this.left.copy(null,null,!this.left.color,null,null),e=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,t,e)},t.prototype.checkMaxDepth=function(){var t=this.check();return Math.pow(2,t)<=this.size+1},t.prototype.check=function(){if(this.isRed()&&this.left.isRed())throw g("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed())throw g("Right child of ("+this.key+","+this.value+") is red");var t=this.left.check();if(t!==this.right.check())throw g("Black depths differ");return t+(this.isRed()?0:1)},t.EMPTY=null,t.RED=!0,t.BLACK=!1,t}(),gt=function(){function t(){this.size=0}return t.prototype.copy=function(t,e,n,r,i){return this},t.prototype.insert=function(t,e,n){return new yt(t,e)},t.prototype.remove=function(t,e){return this},t.prototype.isEmpty=function(){return!0},t.prototype.inorderTraversal=function(t){return!1},t.prototype.reverseTraversal=function(t){return!1},t.prototype.minKey=function(){return null},t.prototype.maxKey=function(){return null},t.prototype.isRed=function(){return!1},t.prototype.checkMaxDepth=function(){return!0},t.prototype.check=function(){return 0},t}();yt.EMPTY=new gt;var vt=function(t){return t[t.NullValue=0]="NullValue",t[t.BooleanValue=1]="BooleanValue",t[t.NumberValue=2]="NumberValue",t[t.TimestampValue=3]="TimestampValue",t[t.StringValue=4]="StringValue",t[t.BlobValue=5]="BlobValue",t[t.RefValue=6]="RefValue",t[t.GeoPointValue=7]="GeoPointValue",t[t.ArrayValue=8]="ArrayValue",t[t.ObjectValue=9]="ObjectValue",t}({}),_t=function(t){return t[t.Default=0]="Default",t[t.Estimate=1]="Estimate",t[t.Previous=2]="Previous",t}({}),bt=function(){function t(t,e){this.serverTimestampBehavior=t,this.timestampsInSnapshots=e}return t.fromSnapshotOptions=function(e,n){switch(e.serverTimestamps){case"estimate":return new t(_t.Estimate,n);case"previous":return new t(_t.Previous,n);case"none":case void 0:return new t(_t.Default,n);default:return g("fromSnapshotOptions() called with invalid options.")}},t}(),wt=function(){function t(){}return t.prototype.toString=function(){var t=this.value();return null===t?"null":t.toString()},t.prototype.defaultCompareTo=function(t){return v(this.typeOrder!==t.typeOrder,"Default compareTo should not be used for values of same type."),K(this.typeOrder,t.typeOrder)},t}(),Et=function(t){function e(){var e=t.call(this)||this;return e.typeOrder=vt.NullValue,e.internalValue=null,e}return s.__extends(e,t),e.prototype.value=function(t){return null},e.prototype.isEqual=function(t){return t instanceof e},e.prototype.compareTo=function(t){return t instanceof e?0:this.defaultCompareTo(t)},e.INSTANCE=new e,e}(wt),St=function(t){function e(e){var n=t.call(this)||this;return n.internalValue=e,n.typeOrder=vt.BooleanValue,n}return s.__extends(e,t),e.prototype.value=function(t){return this.internalValue},e.prototype.isEqual=function(t){return t instanceof e&&this.internalValue===t.internalValue},e.prototype.compareTo=function(t){return t instanceof e?K(this,t):this.defaultCompareTo(t)},e.of=function(t){return t?e.TRUE:e.FALSE},e.TRUE=new e(!0),e.FALSE=new e(!1),e}(wt),Ct=function(t){function e(e){var n=t.call(this)||this;return n.internalValue=e,n.typeOrder=vt.NumberValue,n}return s.__extends(e,t),e.prototype.value=function(t){return this.internalValue},e.prototype.compareTo=function(t){return t instanceof e?(n=this.internalValue)<(r=t.internalValue)?-1:n>r?1:n===r?0:isNaN(n)?isNaN(r)?0:-1:1:this.defaultCompareTo(t);var n,r},e}(wt);function Tt(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}var It=function(t){function e(e){return t.call(this,e)||this}return s.__extends(e,t),e.prototype.isEqual=function(t){return t instanceof e&&Tt(this.internalValue,t.internalValue)},e}(Ct),xt=function(t){function e(e){var n=t.call(this,e)||this;return n.internalValue=e,n}return s.__extends(e,t),e.prototype.isEqual=function(t){return t instanceof e&&Tt(this.internalValue,t.internalValue)},e.NAN=new e(NaN),e.POSITIVE_INFINITY=new e(1/0),e.NEGATIVE_INFINITY=new e(-1/0),e}(Ct),kt=function(t){function e(e){var n=t.call(this)||this;return n.internalValue=e,n.typeOrder=vt.StringValue,n}return s.__extends(e,t),e.prototype.value=function(t){return this.internalValue},e.prototype.isEqual=function(t){return t instanceof e&&this.internalValue===t.internalValue},e.prototype.compareTo=function(t){return t instanceof e?K(this.internalValue,t.internalValue):this.defaultCompareTo(t)},e}(wt),At=function(t){function e(e){var n=t.call(this)||this;return n.internalValue=e,n.typeOrder=vt.TimestampValue,n}return s.__extends(e,t),e.prototype.value=function(t){return!t||t.timestampsInSnapshots?this.internalValue:this.internalValue.toDate()},e.prototype.isEqual=function(t){return t instanceof e&&this.internalValue.isEqual(t.internalValue)},e.prototype.compareTo=function(t){return t instanceof e?this.internalValue._compareTo(t.internalValue):t instanceof Ot?-1:this.defaultCompareTo(t)},e}(wt),Ot=function(t){function e(e,n){var r=t.call(this)||this;return r.localWriteTime=e,r.previousValue=n,r.typeOrder=vt.TimestampValue,r}return s.__extends(e,t),e.prototype.value=function(t){return t&&t.serverTimestampBehavior===_t.Estimate?new At(this.localWriteTime).value(t):t&&t.serverTimestampBehavior===_t.Previous&&this.previousValue?this.previousValue.value(t):null},e.prototype.isEqual=function(t){return t instanceof e&&this.localWriteTime.isEqual(t.localWriteTime)},e.prototype.compareTo=function(t){return t instanceof e?this.localWriteTime._compareTo(t.localWriteTime):t instanceof At?1:this.defaultCompareTo(t)},e.prototype.toString=function(){return"<ServerTimestamp localTime="+this.localWriteTime.toString()+">"},e}(wt),Nt=function(t){function e(e){var n=t.call(this)||this;return n.internalValue=e,n.typeOrder=vt.BlobValue,n}return s.__extends(e,t),e.prototype.value=function(t){return this.internalValue},e.prototype.isEqual=function(t){return t instanceof e&&this.internalValue.isEqual(t.internalValue)},e.prototype.compareTo=function(t){return t instanceof e?this.internalValue._compareTo(t.internalValue):this.defaultCompareTo(t)},e}(wt),Dt=function(t){function e(e,n){var r=t.call(this)||this;return r.databaseId=e,r.key=n,r.typeOrder=vt.RefValue,r}return s.__extends(e,t),e.prototype.value=function(t){return this.key},e.prototype.isEqual=function(t){return t instanceof e&&this.key.isEqual(t.key)&&this.databaseId.isEqual(t.databaseId)},e.prototype.compareTo=function(t){if(t instanceof e){var n=this.databaseId.compareTo(t.databaseId);return 0!==n?n:lt.comparator(this.key,t.key)}return this.defaultCompareTo(t)},e}(wt),Rt=function(t){function e(e){var n=t.call(this)||this;return n.internalValue=e,n.typeOrder=vt.GeoPointValue,n}return s.__extends(e,t),e.prototype.value=function(t){return this.internalValue},e.prototype.isEqual=function(t){return t instanceof e&&this.internalValue.isEqual(t.internalValue)},e.prototype.compareTo=function(t){return t instanceof e?this.internalValue._compareTo(t.internalValue):this.defaultCompareTo(t)},e}(wt),Pt=function(t){function e(e){var n=t.call(this)||this;return n.internalValue=e,n.typeOrder=vt.ObjectValue,n}return s.__extends(e,t),e.prototype.value=function(t){var e={};return this.internalValue.inorderTraversal(function(n,r){e[n]=r.value(t)}),e},e.prototype.forEach=function(t){this.internalValue.inorderTraversal(t)},e.prototype.isEqual=function(t){if(t instanceof e){for(var n=this.internalValue.getIterator(),r=t.internalValue.getIterator();n.hasNext()&&r.hasNext();){var i=n.getNext(),o=r.getNext();if(i.key!==o.key||!i.value.isEqual(o.value))return!1}return!n.hasNext()&&!r.hasNext()}return!1},e.prototype.compareTo=function(t){if(t instanceof e){for(var n=this.internalValue.getIterator(),r=t.internalValue.getIterator();n.hasNext()&&r.hasNext();){var i=n.getNext(),o=r.getNext(),s=K(i.key,o.key)||i.value.compareTo(o.value);if(s)return s}return K(n.hasNext(),r.hasNext())}return this.defaultCompareTo(t)},e.prototype.set=function(t,n){if(v(!t.isEmpty(),"Cannot set field for empty path on ObjectValue"),1===t.length)return this.setChild(t.firstSegment(),n);var r=this.child(t.firstSegment());r instanceof e||(r=e.EMPTY);var i=r.set(t.popFirst(),n);return this.setChild(t.firstSegment(),i)},e.prototype.delete=function(t){if(v(!t.isEmpty(),"Cannot delete field for empty path on ObjectValue"),1===t.length)return new e(this.internalValue.remove(t.firstSegment()));var n=this.child(t.firstSegment());if(n instanceof e){var r=n.delete(t.popFirst());return new e(this.internalValue.insert(t.firstSegment(),r))}return this},e.prototype.contains=function(t){return void 0!==this.field(t)},e.prototype.field=function(t){v(!t.isEmpty(),"Can't get field of empty path");var n=this;return t.forEach(function(t){n=n instanceof e&&n.internalValue.get(t)||void 0}),n},e.prototype.toString=function(){return this.internalValue.toString()},e.prototype.child=function(t){return this.internalValue.get(t)||void 0},e.prototype.setChild=function(t,n){return new e(this.internalValue.insert(t,n))},e.EMPTY=new e(new dt(K)),e}(wt),Mt=function(t){function e(e){var n=t.call(this)||this;return n.internalValue=e,n.typeOrder=vt.ArrayValue,n}return s.__extends(e,t),e.prototype.value=function(t){return this.internalValue.map(function(e){return e.value(t)})},e.prototype.forEach=function(t){this.internalValue.forEach(t)},e.prototype.isEqual=function(t){if(t instanceof e){if(this.internalValue.length!==t.internalValue.length)return!1;for(var n=0;n<this.internalValue.length;n++)if(!this.internalValue[n].isEqual(t.internalValue[n]))return!1;return!0}return!1},e.prototype.compareTo=function(t){if(t instanceof e){for(var n=Math.min(this.internalValue.length,t.internalValue.length),r=0;r<n;r++){var i=this.internalValue[r].compareTo(t.internalValue[r]);if(i)return i}return K(this.internalValue.length,t.internalValue.length)}return this.defaultCompareTo(t)},e.prototype.toString=function(){return"["+this.internalValue.map(function(t){return t.toString()}).join(",")+"]"},e}(wt),Lt=Number,Ft=Lt.MIN_SAFE_INTEGER||-(Math.pow(2,53)-1),jt=Lt.MAX_SAFE_INTEGER||Math.pow(2,53)-1,Ut=Lt.isInteger||function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t};function Vt(t){return null==t}function qt(t){return Ut(t)&&t<=jt&&t>=Ft}var Bt=function(){function t(t,e,n,r,i,o,s){void 0===e&&(e=null),void 0===n&&(n=[]),void 0===r&&(r=[]),void 0===i&&(i=null),void 0===o&&(o=null),void 0===s&&(s=null),this.path=t,this.collectionGroup=e,this.explicitOrderBy=n,this.filters=r,this.limit=i,this.startAt=o,this.endAt=s,this.memoizedCanonicalId=null,this.memoizedOrderBy=null,this.startAt&&this.assertValidBound(this.startAt),this.endAt&&this.assertValidBound(this.endAt)}return t.atPath=function(e){return new t(e)},Object.defineProperty(t.prototype,"orderBy",{get:function(){if(null===this.memoizedOrderBy){var t=this.getInequalityFilterField(),e=this.getFirstOrderByField();if(null!==t&&null===e)this.memoizedOrderBy=t.isKeyField()?[Jt]:[new Xt(t),Jt];else{v(null===t||null!==e&&t.isEqual(e),"First orderBy should match inequality field."),this.memoizedOrderBy=[];for(var n=!1,r=0,i=this.explicitOrderBy;r<i.length;r++){var o=i[r];this.memoizedOrderBy.push(o),o.field.isKeyField()&&(n=!0)}n||this.memoizedOrderBy.push((this.explicitOrderBy.length>0?this.explicitOrderBy[this.explicitOrderBy.length-1].dir:Gt.ASCENDING)===Gt.ASCENDING?Jt:Zt)}}return this.memoizedOrderBy},enumerable:!0,configurable:!0}),t.prototype.addFilter=function(e){v(null==this.getInequalityFilterField()||!(e instanceof Wt)||!e.isInequality()||e.field.isEqual(this.getInequalityFilterField()),"Query must only have one inequality field."),v(!this.isDocumentQuery(),"No filtering allowed for document query");var n=this.filters.concat([e]);return new t(this.path,this.collectionGroup,this.explicitOrderBy.slice(),n,this.limit,this.startAt,this.endAt)},t.prototype.addOrderBy=function(e){v(!this.startAt&&!this.endAt,"Bounds must be set after orderBy");var n=this.explicitOrderBy.concat([e]);return new t(this.path,this.collectionGroup,n,this.filters.slice(),this.limit,this.startAt,this.endAt)},t.prototype.withLimit=function(e){return new t(this.path,this.collectionGroup,this.explicitOrderBy.slice(),this.filters.slice(),e,this.startAt,this.endAt)},t.prototype.withStartAt=function(e){return new t(this.path,this.collectionGroup,this.explicitOrderBy.slice(),this.filters.slice(),this.limit,e,this.endAt)},t.prototype.withEndAt=function(e){return new t(this.path,this.collectionGroup,this.explicitOrderBy.slice(),this.filters.slice(),this.limit,this.startAt,e)},t.prototype.asCollectionQueryAtPath=function(e){return new t(e,null,this.explicitOrderBy.slice(),this.filters.slice(),this.limit,this.startAt,this.endAt)},t.prototype.canonicalId=function(){if(null===this.memoizedCanonicalId){var t=this.path.canonicalString();this.isCollectionGroupQuery()&&(t+="|cg:"+this.collectionGroup),t+="|f:";for(var e=0,n=this.filters;e<n.length;e++)t+=n[e].canonicalId(),t+=",";t+="|ob:";for(var r=0,i=this.orderBy;r<i.length;r++)t+=i[r].canonicalId(),t+=",";Vt(this.limit)||(t+="|l:",t+=this.limit),this.startAt&&(t+="|lb:",t+=this.startAt.canonicalId()),this.endAt&&(t+="|ub:",t+=this.endAt.canonicalId()),this.memoizedCanonicalId=t}return this.memoizedCanonicalId},t.prototype.toString=function(){var t="Query("+this.path.canonicalString();return this.isCollectionGroupQuery()&&(t+=" collectionGroup="+this.collectionGroup),this.filters.length>0&&(t+=", filters: ["+this.filters.join(", ")+"]"),Vt(this.limit)||(t+=", limit: "+this.limit),this.explicitOrderBy.length>0&&(t+=", orderBy: ["+this.explicitOrderBy.join(", ")+"]"),this.startAt&&(t+=", startAt: "+this.startAt.canonicalId()),this.endAt&&(t+=", endAt: "+this.endAt.canonicalId()),t+")"},t.prototype.isEqual=function(t){if(this.limit!==t.limit)return!1;if(this.orderBy.length!==t.orderBy.length)return!1;for(var e=0;e<this.orderBy.length;e++)if(!this.orderBy[e].isEqual(t.orderBy[e]))return!1;if(this.filters.length!==t.filters.length)return!1;for(e=0;e<this.filters.length;e++)if(!this.filters[e].isEqual(t.filters[e]))return!1;return this.collectionGroup===t.collectionGroup&&!!this.path.isEqual(t.path)&&!(null!==this.startAt?!this.startAt.isEqual(t.startAt):null!==t.startAt)&&(null!==this.endAt?this.endAt.isEqual(t.endAt):null===t.endAt)},t.prototype.docComparator=function(t,e){for(var n=!1,r=0,i=this.orderBy;r<i.length;r++){var o=i[r],s=o.compare(t,e);if(0!==s)return s;n=n||o.field.isKeyField()}return v(n,"orderBy used that doesn't compare on key field"),0},t.prototype.matches=function(t){return this.matchesPathAndCollectionGroup(t)&&this.matchesOrderBy(t)&&this.matchesFilters(t)&&this.matchesBounds(t)},t.prototype.hasLimit=function(){return!Vt(this.limit)},t.prototype.getFirstOrderByField=function(){return this.explicitOrderBy.length>0?this.explicitOrderBy[0].field:null},t.prototype.getInequalityFilterField=function(){for(var t=0,e=this.filters;t<e.length;t++){var n=e[t];if(n instanceof Wt&&n.isInequality())return n.field}return null},t.prototype.hasArrayContainsFilter=function(){return void 0!==this.filters.find(function(t){return t instanceof Wt&&t.op===zt.ARRAY_CONTAINS})},t.prototype.isDocumentQuery=function(){return lt.isDocumentKey(this.path)&&null===this.collectionGroup&&0===this.filters.length},t.prototype.isCollectionGroupQuery=function(){return null!==this.collectionGroup},t.prototype.matchesPathAndCollectionGroup=function(t){var e=t.key.path;return null!==this.collectionGroup?t.key.hasCollectionId(this.collectionGroup)&&this.path.isPrefixOf(e):lt.isDocumentKey(this.path)?this.path.isEqual(e):this.path.isImmediateParentOf(e)},t.prototype.matchesOrderBy=function(t){for(var e=0,n=this.explicitOrderBy;e<n.length;e++){var r=n[e];if(!r.field.isKeyField()&&void 0===t.field(r.field))return!1}return!0},t.prototype.matchesFilters=function(t){for(var e=0,n=this.filters;e<n.length;e++)if(!n[e].matches(t))return!1;return!0},t.prototype.matchesBounds=function(t){return!(this.startAt&&!this.startAt.sortsBeforeDocument(this.orderBy,t)||this.endAt&&this.endAt.sortsBeforeDocument(this.orderBy,t))},t.prototype.assertValidBound=function(t){v(t.position.length<=this.orderBy.length,"Bound is longer than orderBy")},t}(),Ht=function(){function t(){}return t.create=function(t,e,n){if(n.isEqual(Et.INSTANCE)){if(e!==zt.EQUAL)throw new E(w.INVALID_ARGUMENT,"Invalid query. You can only perform equals comparisons on null.");return new Qt(t)}if(n.isEqual(xt.NAN)){if(e!==zt.EQUAL)throw new E(w.INVALID_ARGUMENT,"Invalid query. You can only perform equals comparisons on NaN.");return new Kt(t)}return new Wt(t,e,n)},t}(),zt=function(){function t(t){this.name=t}return t.fromString=function(e){switch(e){case"<":return t.LESS_THAN;case"<=":return t.LESS_THAN_OR_EQUAL;case"==":return t.EQUAL;case">=":return t.GREATER_THAN_OR_EQUAL;case">":return t.GREATER_THAN;case"array-contains":return t.ARRAY_CONTAINS;default:return g("Unknown relation: "+e)}},t.prototype.toString=function(){return this.name},t.prototype.isEqual=function(t){return this.name===t.name},t.LESS_THAN=new t("<"),t.LESS_THAN_OR_EQUAL=new t("<="),t.EQUAL=new t("=="),t.GREATER_THAN=new t(">"),t.GREATER_THAN_OR_EQUAL=new t(">="),t.ARRAY_CONTAINS=new t("array-contains"),t}(),Wt=function(t){function e(e,n,r){var i=t.call(this)||this;return i.field=e,i.op=n,i.value=r,i}return s.__extends(e,t),e.prototype.matches=function(t){if(this.field.isKeyField()){v(this.value instanceof Dt,"Comparing on key, but filter value not a RefValue"),v(this.op!==zt.ARRAY_CONTAINS,"array-contains queries don't make sense on document keys.");var e=lt.comparator(t.key,this.value.key);return this.matchesComparison(e)}var n=t.field(this.field);return void 0!==n&&this.matchesValue(n)},e.prototype.matchesValue=function(t){var e=this;return this.op===zt.ARRAY_CONTAINS?t instanceof Mt&&void 0!==t.internalValue.find(function(t){return t.isEqual(e.value)}):this.value.typeOrder===t.typeOrder&&this.matchesComparison(t.compareTo(this.value))},e.prototype.matchesComparison=function(t){switch(this.op){case zt.LESS_THAN:return t<0;case zt.LESS_THAN_OR_EQUAL:return t<=0;case zt.EQUAL:return 0===t;case zt.GREATER_THAN:return t>0;case zt.GREATER_THAN_OR_EQUAL:return t>=0;default:return g("Unknown relation op"+this.op)}},e.prototype.isInequality=function(){return this.op!==zt.EQUAL&&this.op!==zt.ARRAY_CONTAINS},e.prototype.canonicalId=function(){return this.field.canonicalString()+this.op.toString()+this.value.toString()},e.prototype.isEqual=function(t){return t instanceof e&&this.op.isEqual(t.op)&&this.field.isEqual(t.field)&&this.value.isEqual(t.value)},e.prototype.toString=function(){return this.field.canonicalString()+" "+this.op+" "+this.value.value()},e}(Ht),Qt=function(t){function e(e){var n=t.call(this)||this;return n.field=e,n}return s.__extends(e,t),e.prototype.matches=function(t){var e=t.field(this.field);return void 0!==e&&null===e.value()},e.prototype.canonicalId=function(){return this.field.canonicalString()+" IS null"},e.prototype.toString=function(){return this.field.canonicalString()+" IS null"},e.prototype.isEqual=function(t){return t instanceof e&&this.field.isEqual(t.field)},e}(Ht),Kt=function(t){function e(e){var n=t.call(this)||this;return n.field=e,n}return s.__extends(e,t),e.prototype.matches=function(t){var e=t.field(this.field),n=e&&e.value();return"number"==typeof n&&isNaN(n)},e.prototype.canonicalId=function(){return this.field.canonicalString()+" IS NaN"},e.prototype.toString=function(){return this.field.canonicalString()+" IS NaN"},e.prototype.isEqual=function(t){return t instanceof e&&this.field.isEqual(t.field)},e}(Ht),Gt=function(){function t(t){this.name=t}return t.prototype.toString=function(){return this.name},t.ASCENDING=new t("asc"),t.DESCENDING=new t("desc"),t}(),Yt=function(){function t(t,e){this.position=t,this.before=e}return t.prototype.canonicalId=function(){for(var t=this.before?"b:":"a:",e=0,n=this.position;e<n.length;e++)t+=n[e].toString();return t},t.prototype.sortsBeforeDocument=function(t,e){v(this.position.length<=t.length,"Bound has more components than query's orderBy");for(var n=0,r=0;r<this.position.length;r++){var i=t[r],o=this.position[r];if(i.field.isKeyField())v(o instanceof Dt,"Bound has a non-key value where the key path is being used."),n=lt.comparator(o.key,e.key);else{var s=e.field(i.field);v(void 0!==s,"Field should exist since document matched the orderBy already."),n=o.compareTo(s)}if(i.dir===Gt.DESCENDING&&(n*=-1),0!==n)break}return this.before?n<=0:n<0},t.prototype.isEqual=function(t){if(null===t)return!1;if(this.before!==t.before||this.position.length!==t.position.length)return!1;for(var e=0;e<this.position.length;e++)return this.position[e].isEqual(t.position[e]);return!0},t}(),Xt=function(){function t(t,e){this.field=t,void 0===e&&(e=Gt.ASCENDING),this.dir=e,this.isKeyOrderBy=t.isKeyField()}return t.prototype.compare=function(t,e){var n=this.isKeyOrderBy?ht.compareByKey(t,e):ht.compareByField(this.field,t,e);switch(this.dir){case Gt.ASCENDING:return n;case Gt.DESCENDING:return-1*n;default:return g("Unknown direction: "+this.dir)}},t.prototype.canonicalId=function(){return this.field.canonicalString()+this.dir.toString()},t.prototype.toString=function(){return this.field.canonicalString()+" ("+this.dir+")"},t.prototype.isEqual=function(t){return this.dir===t.dir&&this.field.isEqual(t.field)},t}(),Jt=new Xt(ut.keyField(),Gt.ASCENDING),Zt=new Xt(ut.keyField(),Gt.DESCENDING),$t=function(){function t(t){this.timestamp=t}return t.fromMicroseconds=function(e){var n=Math.floor(e/1e6);return new t(new et(n,e%1e6*1e3))},t.fromTimestamp=function(e){return new t(e)},t.forDeletedDoc=function(){return t.MIN},t.prototype.compareTo=function(t){return this.timestamp._compareTo(t.timestamp)},t.prototype.isEqual=function(t){return this.timestamp.isEqual(t.timestamp)},t.prototype.toMicroseconds=function(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3},t.prototype.toString=function(){return"SnapshotVersion("+this.timestamp.toString()+")"},t.prototype.toTimestamp=function(){return this.timestamp},t.MIN=new t(new et(0,0)),t}(),te=function(t){return t[t.Listen=0]="Listen",t[t.ExistenceFilterMismatch=1]="ExistenceFilterMismatch",t[t.LimboResolution=2]="LimboResolution",t}({}),ee=function(){function t(t,e,n,r,i,o){void 0===i&&(i=$t.MIN),void 0===o&&(o=b()),this.query=t,this.targetId=e,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=i,this.resumeToken=o}return t.prototype.copy=function(e){return new t(this.query,this.targetId,this.purpose,void 0===e.sequenceNumber?this.sequenceNumber:e.sequenceNumber,void 0===e.snapshotVersion?this.snapshotVersion:e.snapshotVersion,void 0===e.resumeToken?this.resumeToken:e.resumeToken)},t.prototype.isEqual=function(t){return this.targetId===t.targetId&&this.purpose===t.purpose&&this.sequenceNumber===t.sequenceNumber&&this.snapshotVersion.isEqual(t.snapshotVersion)&&this.resumeToken===t.resumeToken&&this.query.isEqual(t.query)},t}(),ne=function(){function t(t){this.comparator=t,this.data=new dt(this.comparator)}return t.fromMapKeys=function(e){var n=new t(e.comparator);return e.forEach(function(t){n=n.add(t)}),n},t.prototype.has=function(t){return null!==this.data.get(t)},t.prototype.first=function(){return this.data.minKey()},t.prototype.last=function(){return this.data.maxKey()},Object.defineProperty(t.prototype,"size",{get:function(){return this.data.size},enumerable:!0,configurable:!0}),t.prototype.indexOf=function(t){return this.data.indexOf(t)},t.prototype.forEach=function(t){this.data.inorderTraversal(function(e,n){return t(e),!1})},t.prototype.forEachInRange=function(t,e){for(var n=this.data.getIteratorFrom(t[0]);n.hasNext();){var r=n.getNext();if(this.comparator(r.key,t[1])>=0)return;e(r.key)}},t.prototype.forEachWhile=function(t,e){var n;for(n=void 0!==e?this.data.getIteratorFrom(e):this.data.getIterator();n.hasNext();)if(!t(n.getNext().key))return},t.prototype.firstAfterOrEqual=function(t){var e=this.data.getIteratorFrom(t);return e.hasNext()?e.getNext().key:null},t.prototype.getIterator=function(){return new re(this.data.getIterator())},t.prototype.getIteratorFrom=function(t){return new re(this.data.getIteratorFrom(t))},t.prototype.add=function(t){return this.copy(this.data.remove(t).insert(t,!0))},t.prototype.delete=function(t){return this.has(t)?this.copy(this.data.remove(t)):this},t.prototype.isEmpty=function(){return this.data.isEmpty()},t.prototype.unionWith=function(t){var e=this;return t.forEach(function(t){e=e.add(t)}),e},t.prototype.isEqual=function(e){if(!(e instanceof t))return!1;if(this.size!==e.size)return!1;for(var n=this.data.getIterator(),r=e.data.getIterator();n.hasNext();){var i=n.getNext().key,o=r.getNext().key;if(0!==this.comparator(i,o))return!1}return!0},t.prototype.toArray=function(){var t=[];return this.forEach(function(e){t.push(e)}),t},t.prototype.toString=function(){var t=[];return this.forEach(function(e){return t.push(e)}),"SortedSet("+t.toString()+")"},t.prototype.copy=function(e){var n=new t(this.comparator);return n.data=e,n},t}(),re=function(){function t(t){this.iter=t}return t.prototype.getNext=function(){return this.iter.getNext().key},t.prototype.hasNext=function(){return this.iter.hasNext()},t}(),ie=function(){function t(t){this.fields=t}return t.fromSet=function(e){return new t(e)},t.fromArray=function(e){var n=new ne(ut.comparator);return e.forEach(function(t){return n=n.add(t)}),new t(n)},t.prototype.covers=function(t){var e=!1;return this.fields.forEach(function(n){n.isPrefixOf(t)&&(e=!0)}),e},t.prototype.applyTo=function(t){var e=Pt.EMPTY;return this.fields.forEach(function(n){if(n.isEmpty())return t;var r=t.field(n);void 0!==r&&(e=e.set(n,r))}),e},t.prototype.isEqual=function(t){return this.fields.isEqual(t.fields)},t}(),oe=function(){function t(t,e){this.field=t,this.transform=e}return Object.defineProperty(t.prototype,"isIdempotent",{get:function(){return this.transform.isIdempotent},enumerable:!0,configurable:!0}),t.prototype.isEqual=function(t){return this.field.isEqual(t.field)&&this.transform.isEqual(t.transform)},t}(),se=function(){return function(t,e){this.version=t,this.transformResults=e}}(),ae=function(t){return t[t.Set=0]="Set",t[t.Patch=1]="Patch",t[t.Transform=2]="Transform",t[t.Delete=3]="Delete",t}({}),ue=function(){function t(t,e){this.updateTime=t,this.exists=e,v(void 0===t||void 0===e,'Precondition can specify "exists" or "updateTime" but not both')}return t.exists=function(e){return new t(void 0,e)},t.updateTime=function(e){return new t(e)},Object.defineProperty(t.prototype,"isNone",{get:function(){return void 0===this.updateTime&&void 0===this.exists},enumerable:!0,configurable:!0}),t.prototype.isValidFor=function(t){return void 0!==this.updateTime?t instanceof ht&&t.version.isEqual(this.updateTime):void 0!==this.exists?this.exists===t instanceof ht:(v(this.isNone,"Precondition should be empty"),!0)},t.prototype.isEqual=function(t){return n=t.updateTime,(null!=(e=this.updateTime)?!(!n||!e.isEqual(n)):e===n)&&this.exists===t.exists;var e,n},t.NONE=new t,t}(),le=function(){function t(){}return t.prototype.verifyKeyMatches=function(t){null!=t&&v(t.key.isEqual(this.key),"Can only apply a mutation to a document with the same key")},t.getPostMutationVersion=function(t){return t instanceof ht?t.version:$t.MIN},t}(),ce=function(t){function e(e,n,r){var i=t.call(this)||this;return i.key=e,i.value=n,i.precondition=r,i.type=ae.Set,i}return s.__extends(e,t),e.prototype.applyToRemoteDocument=function(t,e){return this.verifyKeyMatches(t),v(null==e.transformResults,"Transform results received by SetMutation."),new ht(this.key,e.version,this.value,{hasCommittedMutations:!0})},e.prototype.applyToLocalView=function(t,e,n){if(this.verifyKeyMatches(t),!this.precondition.isValidFor(t))return t;var r=le.getPostMutationVersion(t);return new ht(this.key,r,this.value,{hasLocalMutations:!0})},Object.defineProperty(e.prototype,"isIdempotent",{get:function(){return!0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fieldMask",{get:function(){return null},enumerable:!0,configurable:!0}),e.prototype.isEqual=function(t){return t instanceof e&&this.key.isEqual(t.key)&&this.value.isEqual(t.value)&&this.precondition.isEqual(t.precondition)},e}(le),he=function(t){function e(e,n,r,i){var o=t.call(this)||this;return o.key=e,o.data=n,o.fieldMask=r,o.precondition=i,o.type=ae.Patch,o}return s.__extends(e,t),e.prototype.applyToRemoteDocument=function(t,e){if(this.verifyKeyMatches(t),v(null==e.transformResults,"Transform results received by PatchMutation."),!this.precondition.isValidFor(t))return new ft(this.key,e.version);var n=this.patchDocument(t);return new ht(this.key,e.version,n,{hasCommittedMutations:!0})},e.prototype.applyToLocalView=function(t,e,n){if(this.verifyKeyMatches(t),!this.precondition.isValidFor(t))return t;var r=le.getPostMutationVersion(t),i=this.patchDocument(t);return new ht(this.key,r,i,{hasLocalMutations:!0})},Object.defineProperty(e.prototype,"isIdempotent",{get:function(){return!0},enumerable:!0,configurable:!0}),e.prototype.isEqual=function(t){return t instanceof e&&this.key.isEqual(t.key)&&this.fieldMask.isEqual(t.fieldMask)&&this.precondition.isEqual(t.precondition)},e.prototype.patchDocument=function(t){return this.patchObject(t instanceof ht?t.data:Pt.EMPTY)},e.prototype.patchObject=function(t){var e=this;return this.fieldMask.fields.forEach(function(n){if(!n.isEmpty()){var r=e.data.field(n);t=void 0!==r?t.set(n,r):t.delete(n)}}),t},e}(le),pe=function(t){function e(e,n){var r=t.call(this)||this;return r.key=e,r.fieldTransforms=n,r.type=ae.Transform,r.precondition=ue.exists(!0),r}return s.__extends(e,t),e.prototype.applyToRemoteDocument=function(t,e){if(this.verifyKeyMatches(t),v(null!=e.transformResults,"Transform results missing for TransformMutation."),!this.precondition.isValidFor(t))return new ft(this.key,e.version);var n=this.requireDocument(t),r=this.serverTransformResults(t,e.transformResults),i=e.version,o=this.transformObject(n.data,r);return new ht(this.key,i,o,{hasCommittedMutations:!0})},e.prototype.applyToLocalView=function(t,e,n){if(this.verifyKeyMatches(t),!this.precondition.isValidFor(t))return t;var r=this.requireDocument(t),i=this.localTransformResults(n,e),o=this.transformObject(r.data,i);return new ht(this.key,r.version,o,{hasLocalMutations:!0})},Object.defineProperty(e.prototype,"isIdempotent",{get:function(){for(var t=0,e=this.fieldTransforms;t<e.length;t++)if(!e[t].isIdempotent)return!1;return!0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fieldMask",{get:function(){var t=new ne(ut.comparator);return this.fieldTransforms.forEach(function(e){return t=t.add(e.field)}),new ie(t)},enumerable:!0,configurable:!0}),e.prototype.isEqual=function(t){return t instanceof e&&this.key.isEqual(t.key)&&G(this.fieldTransforms,t.fieldTransforms)&&this.precondition.isEqual(t.precondition)},e.prototype.requireDocument=function(t){v(t instanceof ht,"Unknown MaybeDocument type "+t);var e=t;return v(e.key.isEqual(this.key),"Can only transform a document with the same key"),e},e.prototype.serverTransformResults=function(t,e){var n=[];v(this.fieldTransforms.length===e.length,"server transform result count ("+e.length+") should match field transform count ("+this.fieldTransforms.length+")");for(var r=0;r<e.length;r++){var i=this.fieldTransforms[r],o=i.transform,s=null;t instanceof ht&&(s=t.field(i.field)||null),n.push(o.applyToRemoteDocument(s,e[r]))}return n},e.prototype.localTransformResults=function(t,e){for(var n=[],r=0,i=this.fieldTransforms;r<i.length;r++){var o=i[r],s=o.transform,a=null;e instanceof ht&&(a=e.field(o.field)||null),n.push(s.applyToLocalView(a,t))}return n},e.prototype.transformObject=function(t,e){v(e.length===this.fieldTransforms.length,"TransformResults length mismatch.");for(var n=0;n<this.fieldTransforms.length;n++)t=t.set(this.fieldTransforms[n].field,e[n]);return t},e}(le),fe=function(t){function e(e,n){var r=t.call(this)||this;return r.key=e,r.precondition=n,r.type=ae.Delete,r}return s.__extends(e,t),e.prototype.applyToRemoteDocument=function(t,e){return this.verifyKeyMatches(t),v(null==e.transformResults,"Transform results received by DeleteMutation."),new pt(this.key,e.version,{hasCommittedMutations:!0})},e.prototype.applyToLocalView=function(t,e,n){return this.verifyKeyMatches(t),this.precondition.isValidFor(t)?(t&&v(t.key.isEqual(this.key),"Can only apply mutation to document with same key"),new pt(this.key,$t.forDeletedDoc())):t},e.prototype.isEqual=function(t){return t instanceof e&&this.key.isEqual(t.key)&&this.precondition.isEqual(t.precondition)},Object.defineProperty(e.prototype,"isIdempotent",{get:function(){return!0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fieldMask",{get:function(){return null},enumerable:!0,configurable:!0}),e}(le),de=function(){function t(){this.isIdempotent=!0}return t.prototype.applyToLocalView=function(t,e){return new Ot(e,t)},t.prototype.applyToRemoteDocument=function(t,e){return e},t.prototype.isEqual=function(e){return e instanceof t},t.instance=new t,t}(),me=function(){function t(t){this.elements=t,this.isIdempotent=!0}return t.prototype.applyToLocalView=function(t,e){return this.apply(t)},t.prototype.applyToRemoteDocument=function(t,e){return this.apply(t)},t.prototype.apply=function(t){for(var e=ve(t),n=function(t){e.find(function(e){return e.isEqual(t)})||e.push(t)},r=0,i=this.elements;r<i.length;r++)n(i[r]);return new Mt(e)},t.prototype.isEqual=function(e){return e instanceof t&&G(e.elements,this.elements)},t}(),ye=function(){function t(t){this.elements=t,this.isIdempotent=!0}return t.prototype.applyToLocalView=function(t,e){return this.apply(t)},t.prototype.applyToRemoteDocument=function(t,e){return this.apply(t)},t.prototype.apply=function(t){for(var e=ve(t),n=function(t){e=e.filter(function(e){return!e.isEqual(t)})},r=0,i=this.elements;r<i.length;r++)n(i[r]);return new Mt(e)},t.prototype.isEqual=function(e){return e instanceof t&&G(e.elements,this.elements)},t}(),ge=function(){function t(t){this.operand=t,this.isIdempotent=!1}return t.prototype.applyToLocalView=function(t,e){return t instanceof It&&this.operand instanceof It?new It(t.internalValue+this.operand.internalValue):t instanceof Ct?new xt(t.internalValue+this.operand.internalValue):this.operand},t.prototype.applyToRemoteDocument=function(t,e){return v(null!==e,"Didn't receive transformResult for NUMERIC_ADD transform"),e},t.prototype.isEqual=function(e){return e instanceof t&&this.operand.isEqual(e.operand)},t}();function ve(t){return t instanceof Mt?t.internalValue.slice():[]}var _e=function(){function t(t){this.count=t}return t.prototype.isEqual=function(t){return t&&t.count===this.count},t}(),be=function(t){return t[t.OK=0]="OK",t[t.CANCELLED=1]="CANCELLED",t[t.UNKNOWN=2]="UNKNOWN",t[t.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",t[t.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",t[t.NOT_FOUND=5]="NOT_FOUND",t[t.ALREADY_EXISTS=6]="ALREADY_EXISTS",t[t.PERMISSION_DENIED=7]="PERMISSION_DENIED",t[t.UNAUTHENTICATED=16]="UNAUTHENTICATED",t[t.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",t[t.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",t[t.ABORTED=10]="ABORTED",t[t.OUT_OF_RANGE=11]="OUT_OF_RANGE",t[t.UNIMPLEMENTED=12]="UNIMPLEMENTED",t[t.INTERNAL=13]="INTERNAL",t[t.UNAVAILABLE=14]="UNAVAILABLE",t[t.DATA_LOSS=15]="DATA_LOSS",t}({});function we(t){switch(t){case w.OK:return g("Treated status OK as error");case w.CANCELLED:case w.UNKNOWN:case w.DEADLINE_EXCEEDED:case w.RESOURCE_EXHAUSTED:case w.INTERNAL:case w.UNAVAILABLE:case w.UNAUTHENTICATED:return!1;case w.INVALID_ARGUMENT:case w.NOT_FOUND:case w.ALREADY_EXISTS:case w.PERMISSION_DENIED:case w.FAILED_PRECONDITION:case w.ABORTED:case w.OUT_OF_RANGE:case w.UNIMPLEMENTED:case w.DATA_LOSS:return!0;default:return g("Unknown status code: "+t)}}function Ee(t){if(void 0===t)return m("GRPC error has no .code"),w.UNKNOWN;switch(t){case be.OK:return w.OK;case be.CANCELLED:return w.CANCELLED;case be.UNKNOWN:return w.UNKNOWN;case be.DEADLINE_EXCEEDED:return w.DEADLINE_EXCEEDED;case be.RESOURCE_EXHAUSTED:return w.RESOURCE_EXHAUSTED;case be.INTERNAL:return w.INTERNAL;case be.UNAVAILABLE:return w.UNAVAILABLE;case be.UNAUTHENTICATED:return w.UNAUTHENTICATED;case be.INVALID_ARGUMENT:return w.INVALID_ARGUMENT;case be.NOT_FOUND:return w.NOT_FOUND;case be.ALREADY_EXISTS:return w.ALREADY_EXISTS;case be.PERMISSION_DENIED:return w.PERMISSION_DENIED;case be.FAILED_PRECONDITION:return w.FAILED_PRECONDITION;case be.ABORTED:return w.ABORTED;case be.OUT_OF_RANGE:return w.OUT_OF_RANGE;case be.UNIMPLEMENTED:return w.UNIMPLEMENTED;case be.DATA_LOSS:return w.DATA_LOSS;default:return g("Unknown status code: "+t)}}function Se(t){if(void 0===t)return be.OK;switch(t){case w.OK:return be.OK;case w.CANCELLED:return be.CANCELLED;case w.UNKNOWN:return be.UNKNOWN;case w.DEADLINE_EXCEEDED:return be.DEADLINE_EXCEEDED;case w.RESOURCE_EXHAUSTED:return be.RESOURCE_EXHAUSTED;case w.INTERNAL:return be.INTERNAL;case w.UNAVAILABLE:return be.UNAVAILABLE;case w.UNAUTHENTICATED:return be.UNAUTHENTICATED;case w.INVALID_ARGUMENT:return be.INVALID_ARGUMENT;case w.NOT_FOUND:return be.NOT_FOUND;case w.ALREADY_EXISTS:return be.ALREADY_EXISTS;case w.PERMISSION_DENIED:return be.PERMISSION_DENIED;case w.FAILED_PRECONDITION:return be.FAILED_PRECONDITION;case w.ABORTED:return be.ABORTED;case w.OUT_OF_RANGE:return be.OUT_OF_RANGE;case w.UNIMPLEMENTED:return be.UNIMPLEMENTED;case w.DATA_LOSS:return be.DATA_LOSS;default:return g("Unknown status code: "+t)}}var Ce=new dt(lt.comparator);function Te(){return Ce}function Ie(){return Te()}var xe=new dt(lt.comparator);function ke(){return xe}var Ae=new dt(lt.comparator);function Oe(){return Ae}var Ne=new ne(lt.comparator);function De(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=Ne,r=0,i=t;r<i.length;r++)n=n.add(i[r]);return n}var Re=new ne(K);function Pe(){return Re}var Me=function(){function t(t){this.comparator=t?function(e,n){return t(e,n)||lt.comparator(e.key,n.key)}:function(t,e){return lt.comparator(t.key,e.key)},this.keyedMap=ke(),this.sortedSet=new dt(this.comparator)}return t.emptySet=function(e){return new t(e.comparator)},t.prototype.has=function(t){return null!=this.keyedMap.get(t)},t.prototype.get=function(t){return this.keyedMap.get(t)},t.prototype.first=function(){return this.sortedSet.minKey()},t.prototype.last=function(){return this.sortedSet.maxKey()},t.prototype.isEmpty=function(){return this.sortedSet.isEmpty()},t.prototype.indexOf=function(t){var e=this.keyedMap.get(t);return e?this.sortedSet.indexOf(e):-1},Object.defineProperty(t.prototype,"size",{get:function(){return this.sortedSet.size},enumerable:!0,configurable:!0}),t.prototype.forEach=function(t){this.sortedSet.inorderTraversal(function(e,n){return t(e),!1})},t.prototype.add=function(t){var e=this.delete(t.key);return e.copy(e.keyedMap.insert(t.key,t),e.sortedSet.insert(t,null))},t.prototype.delete=function(t){var e=this.get(t);return e?this.copy(this.keyedMap.remove(t),this.sortedSet.remove(e)):this},t.prototype.isEqual=function(e){if(!(e instanceof t))return!1;if(this.size!==e.size)return!1;for(var n=this.sortedSet.getIterator(),r=e.sortedSet.getIterator();n.hasNext();){var i=n.getNext().key,o=r.getNext().key;if(!i.isEqual(o))return!1}return!0},t.prototype.toString=function(){var t=[];return this.forEach(function(e){t.push(e.toString())}),0===t.length?"DocumentSet ()":"DocumentSet (\n  "+t.join("  \n")+"\n)"},t.prototype.copy=function(e,n){var r=new t;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=n,r},t}(),Le=function(t){return t[t.Added=0]="Added",t[t.Removed=1]="Removed",t[t.Modified=2]="Modified",t[t.Metadata=3]="Metadata",t}({}),Fe=function(t){return t[t.Local=0]="Local",t[t.Synced=1]="Synced",t}({}),je=function(){function t(){this.changeMap=new dt(lt.comparator)}return t.prototype.track=function(t){var e=t.doc.key,n=this.changeMap.get(e);n?t.type!==Le.Added&&n.type===Le.Metadata?this.changeMap=this.changeMap.insert(e,t):t.type===Le.Metadata&&n.type!==Le.Removed?this.changeMap=this.changeMap.insert(e,{type:n.type,doc:t.doc}):t.type===Le.Modified&&n.type===Le.Modified?this.changeMap=this.changeMap.insert(e,{type:Le.Modified,doc:t.doc}):t.type===Le.Modified&&n.type===Le.Added?this.changeMap=this.changeMap.insert(e,{type:Le.Added,doc:t.doc}):t.type===Le.Removed&&n.type===Le.Added?this.changeMap=this.changeMap.remove(e):t.type===Le.Removed&&n.type===Le.Modified?this.changeMap=this.changeMap.insert(e,{type:Le.Removed,doc:n.doc}):t.type===Le.Added&&n.type===Le.Removed?this.changeMap=this.changeMap.insert(e,{type:Le.Modified,doc:t.doc}):g("unsupported combination of changes: "+JSON.stringify(t)+" after "+JSON.stringify(n)):this.changeMap=this.changeMap.insert(e,t)},t.prototype.getChanges=function(){var t=[];return this.changeMap.inorderTraversal(function(e,n){t.push(n)}),t},t}(),Ue=function(){function t(t,e,n,r,i,o,s,a){this.query=t,this.docs=e,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=i,this.fromCache=o,this.syncStateChanged=s,this.excludesMetadataChanges=a}return t.fromInitialDocuments=function(e,n,r,i){var o=[];return n.forEach(function(t){o.push({type:Le.Added,doc:t})}),new t(e,n,Me.emptySet(n),o,r,i,!0,!1)},Object.defineProperty(t.prototype,"hasPendingWrites",{get:function(){return!this.mutatedKeys.isEmpty()},enumerable:!0,configurable:!0}),t.prototype.isEqual=function(t){if(!(this.fromCache===t.fromCache&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&this.query.isEqual(t.query)&&this.docs.isEqual(t.docs)&&this.oldDocs.isEqual(t.oldDocs)))return!1;var e=this.docChanges,n=t.docChanges;if(e.length!==n.length)return!1;for(var r=0;r<e.length;r++)if(e[r].type!==n[r].type||!e[r].doc.isEqual(n[r].doc))return!1;return!0},t}(),Ve=function(){function t(t,e,n,r,i){this.snapshotVersion=t,this.targetChanges=e,this.targetMismatches=n,this.documentUpdates=r,this.resolvedLimboDocuments=i}return t.createSynthesizedRemoteEventForCurrentChange=function(e,n){var r,i=((r={})[e]=qe.createSynthesizedTargetChangeForCurrentChange(e,n),r);return new t($t.MIN,i,Pe(),Te(),De())},t}(),qe=function(){function t(t,e,n,r,i){this.resumeToken=t,this.current=e,this.addedDocuments=n,this.modifiedDocuments=r,this.removedDocuments=i}return t.createSynthesizedTargetChangeForCurrentChange=function(e,n){return new t(b(),n,De(),De(),De())},t}(),Be=function(){return function(t,e,n,r){this.updatedTargetIds=t,this.removedTargetIds=e,this.key=n,this.newDoc=r}}(),He=function(){return function(t,e){this.targetId=t,this.existenceFilter=e}}(),ze=function(t){return t[t.NoChange=0]="NoChange",t[t.Added=1]="Added",t[t.Removed=2]="Removed",t[t.Current=3]="Current",t[t.Reset=4]="Reset",t}({}),We=function(){return function(t,e,n,r){void 0===n&&(n=b()),void 0===r&&(r=null),this.state=t,this.targetIds=e,this.resumeToken=n,this.cause=r}}(),Qe=function(){function t(){this.pendingResponses=0,this.documentChanges=Ye(),this._resumeToken=b(),this._current=!1,this._hasPendingChanges=!0}return Object.defineProperty(t.prototype,"current",{get:function(){return this._current},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"resumeToken",{get:function(){return this._resumeToken},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isPending",{get:function(){return 0!==this.pendingResponses},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasPendingChanges",{get:function(){return this._hasPendingChanges},enumerable:!0,configurable:!0}),t.prototype.updateResumeToken=function(t){t.length>0&&(this._hasPendingChanges=!0,this._resumeToken=t)},t.prototype.toTargetChange=function(){var t=De(),e=De(),n=De();return this.documentChanges.forEach(function(r,i){switch(i){case Le.Added:t=t.add(r);break;case Le.Modified:e=e.add(r);break;case Le.Removed:n=n.add(r);break;default:g("Encountered invalid change type: "+i)}}),new qe(this._resumeToken,this._current,t,e,n)},t.prototype.clearPendingChanges=function(){this._hasPendingChanges=!1,this.documentChanges=Ye()},t.prototype.addDocumentChange=function(t,e){this._hasPendingChanges=!0,this.documentChanges=this.documentChanges.insert(t,e)},t.prototype.removeDocumentChange=function(t){this._hasPendingChanges=!0,this.documentChanges=this.documentChanges.remove(t)},t.prototype.recordPendingTargetRequest=function(){this.pendingResponses+=1},t.prototype.recordTargetResponse=function(){this.pendingResponses-=1},t.prototype.markCurrent=function(){this._hasPendingChanges=!0,this._current=!0},t}(),Ke=function(){function t(t){this.metadataProvider=t,this.targetStates={},this.pendingDocumentUpdates=Te(),this.pendingDocumentTargetMapping=Ge(),this.pendingTargetResets=new ne(K)}return t.prototype.handleDocumentChange=function(t){for(var e=0,n=t.updatedTargetIds;e<n.length;e++){var r=n[e];t.newDoc instanceof ht?this.addDocumentToTarget(r,t.newDoc):t.newDoc instanceof pt&&this.removeDocumentFromTarget(r,t.key,t.newDoc)}for(var i=0,o=t.removedTargetIds;i<o.length;i++)this.removeDocumentFromTarget(r=o[i],t.key,t.newDoc)},t.prototype.handleTargetChange=function(t){var e=this;this.forEachTarget(t,function(n){var r=e.ensureTargetState(n);switch(t.state){case ze.NoChange:e.isActiveTarget(n)&&r.updateResumeToken(t.resumeToken);break;case ze.Added:r.recordTargetResponse(),r.isPending||r.clearPendingChanges(),r.updateResumeToken(t.resumeToken);break;case ze.Removed:r.recordTargetResponse(),r.isPending||e.removeTarget(n),v(!t.cause,"WatchChangeAggregator does not handle errored targets");break;case ze.Current:e.isActiveTarget(n)&&(r.markCurrent(),r.updateResumeToken(t.resumeToken));break;case ze.Reset:e.isActiveTarget(n)&&(e.resetTarget(n),r.updateResumeToken(t.resumeToken));break;default:g("Unknown target watch change state: "+t.state)}})},t.prototype.forEachTarget=function(t,e){t.targetIds.length>0?t.targetIds.forEach(e):I(this.targetStates,e)},t.prototype.handleExistenceFilter=function(t){var e=t.targetId,n=t.existenceFilter.count,r=this.queryDataForActiveTarget(e);if(r){var i=r.query;if(i.isDocumentQuery())if(0===n){var o=new lt(i.path);this.removeDocumentFromTarget(e,o,new pt(o,$t.forDeletedDoc()))}else v(1===n,"Single document existence filter with count: "+n);else this.getCurrentDocumentCountForTarget(e)!==n&&(this.resetTarget(e),this.pendingTargetResets=this.pendingTargetResets.add(e))}},t.prototype.createRemoteEvent=function(t){var e=this,n={};I(this.targetStates,function(r,i){var o=e.queryDataForActiveTarget(r);if(o){if(i.current&&o.query.isDocumentQuery()){var s=new lt(o.query.path);null!==e.pendingDocumentUpdates.get(s)||e.targetContainsDocument(r,s)||e.removeDocumentFromTarget(r,s,new pt(s,t))}i.hasPendingChanges&&(n[r]=i.toTargetChange(),i.clearPendingChanges())}});var r=De();this.pendingDocumentTargetMapping.forEach(function(t,n){var i=!0;n.forEachWhile(function(t){var n=e.queryDataForActiveTarget(t);return!n||n.purpose===te.LimboResolution||(i=!1,!1)}),i&&(r=r.add(t))});var i=new Ve(t,n,this.pendingTargetResets,this.pendingDocumentUpdates,r);return this.pendingDocumentUpdates=Te(),this.pendingDocumentTargetMapping=Ge(),this.pendingTargetResets=new ne(K),i},t.prototype.addDocumentToTarget=function(t,e){if(this.isActiveTarget(t)){var n=this.targetContainsDocument(t,e.key)?Le.Modified:Le.Added;this.ensureTargetState(t).addDocumentChange(e.key,n),this.pendingDocumentUpdates=this.pendingDocumentUpdates.insert(e.key,e),this.pendingDocumentTargetMapping=this.pendingDocumentTargetMapping.insert(e.key,this.ensureDocumentTargetMapping(e.key).add(t))}},t.prototype.removeDocumentFromTarget=function(t,e,n){if(this.isActiveTarget(t)){var r=this.ensureTargetState(t);this.targetContainsDocument(t,e)?r.addDocumentChange(e,Le.Removed):r.removeDocumentChange(e),this.pendingDocumentTargetMapping=this.pendingDocumentTargetMapping.insert(e,this.ensureDocumentTargetMapping(e).delete(t)),n&&(this.pendingDocumentUpdates=this.pendingDocumentUpdates.insert(e,n))}},t.prototype.removeTarget=function(t){delete this.targetStates[t]},t.prototype.getCurrentDocumentCountForTarget=function(t){var e=this.ensureTargetState(t).toTargetChange();return this.metadataProvider.getRemoteKeysForTarget(t).size+e.addedDocuments.size-e.removedDocuments.size},t.prototype.recordPendingTargetRequest=function(t){this.ensureTargetState(t).recordPendingTargetRequest()},t.prototype.ensureTargetState=function(t){return this.targetStates[t]||(this.targetStates[t]=new Qe),this.targetStates[t]},t.prototype.ensureDocumentTargetMapping=function(t){var e=this.pendingDocumentTargetMapping.get(t);return e||(e=new ne(K),this.pendingDocumentTargetMapping=this.pendingDocumentTargetMapping.insert(t,e)),e},t.prototype.isActiveTarget=function(t){return null!==this.queryDataForActiveTarget(t)},t.prototype.queryDataForActiveTarget=function(t){var e=this.targetStates[t];return e&&e.isPending?null:this.metadataProvider.getQueryDataForTarget(t)},t.prototype.resetTarget=function(t){var e=this;v(!this.targetStates[t].isPending,"Should only reset active targets"),this.targetStates[t]=new Qe,this.metadataProvider.getRemoteKeysForTarget(t).forEach(function(n){e.removeDocumentFromTarget(t,n,null)})},t.prototype.targetContainsDocument=function(t,e){return this.metadataProvider.getRemoteKeysForTarget(t).has(e)},t}();function Ge(){return new dt(lt.comparator)}function Ye(){return new dt(lt.comparator)}var Xe,Je,Ze=((Xe={})[Gt.ASCENDING.name]="ASCENDING",Xe[Gt.DESCENDING.name]="DESCENDING",Xe),$e=((Je={})[zt.LESS_THAN.name]="LESS_THAN",Je[zt.LESS_THAN_OR_EQUAL.name]="LESS_THAN_OR_EQUAL",Je[zt.GREATER_THAN.name]="GREATER_THAN",Je[zt.GREATER_THAN_OR_EQUAL.name]="GREATER_THAN_OR_EQUAL",Je[zt.EQUAL.name]="EQUAL",Je[zt.ARRAY_CONTAINS.name]="ARRAY_CONTAINS",Je),tn=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function en(t,e){v(!Vt(t),e+" is missing")}function nn(t){return"number"==typeof t?t:"string"==typeof t?Number(t):g("can't parse "+t)}var rn=function(){function t(t,e){this.databaseId=t,this.options=e}return t.prototype.emptyByteString=function(){return this.options.useProto3Json?"":new Uint8Array(0)},t.prototype.unsafeCastProtoByteString=function(t){return t},t.prototype.fromRpcStatus=function(t){var e=void 0===t.code?w.UNKNOWN:Ee(t.code);return new E(e,t.message||"")},t.prototype.toInt32Value=function(t){return Vt(t)?void 0:{value:t}},t.prototype.fromInt32Value=function(t){var e;return Vt(e="object"==typeof t?t.value:t)?null:e},t.prototype.toTimestamp=function(t){return{seconds:t.seconds,nanos:t.nanoseconds}},t.prototype.fromTimestamp=function(t){if("string"==typeof t)return this.fromIso8601String(t);v(!!t,"Cannot deserialize null or undefined timestamp.");var e=nn(t.seconds||"0");return new et(e,t.nanos||0)},t.prototype.fromIso8601String=function(t){var e=0,n=tn.exec(t);if(v(!!n,"invalid timestamp: "+t),n[1]){var r=n[1];r=(r+"000000000").substr(0,9),e=Number(r)}var i=new Date(t),o=Math.floor(i.getTime()/1e3);return new et(o,e)},t.prototype.toBytes=function(t){return this.options.useProto3Json?t.toBase64():this.unsafeCastProtoByteString(t.toUint8Array())},t.prototype.fromBlob=function(t){return"string"==typeof t?(v(this.options.useProto3Json,"Expected bytes to be passed in as Uint8Array, but got a string instead."),Z.fromBase64String(t)):(v(!this.options.useProto3Json,"Expected bytes to be passed in as string, but got something else instead."),Z.fromUint8Array(t))},t.prototype.toVersion=function(t){return this.toTimestamp(t.toTimestamp())},t.prototype.fromVersion=function(t){return v(!!t,"Trying to deserialize version that isn't set"),$t.fromTimestamp(this.fromTimestamp(t))},t.prototype.toResourceName=function(t,e){return this.fullyQualifiedPrefixPath(t).child("documents").child(e).canonicalString()},t.prototype.fromResourceName=function(t){var e=st.fromString(t);return v(this.isValidResourceName(e),"Tried to deserialize invalid key "+e.toString()),e},t.prototype.toName=function(t){return this.toResourceName(this.databaseId,t.path)},t.prototype.fromName=function(t){var e=this.fromResourceName(t);return v(e.get(1)===this.databaseId.projectId,"Tried to deserialize key from different project: "+e.get(1)+" vs "+this.databaseId.projectId),v(!e.get(3)&&!this.databaseId.database||e.get(3)===this.databaseId.database,"Tried to deserialize key from different database: "+e.get(3)+" vs "+this.databaseId.database),new lt(this.extractLocalPathFromResourceName(e))},t.prototype.toQueryPath=function(t){return this.toResourceName(this.databaseId,t)},t.prototype.fromQueryPath=function(t){var e=this.fromResourceName(t);return 4===e.length?st.EMPTY_PATH:this.extractLocalPathFromResourceName(e)},Object.defineProperty(t.prototype,"encodedDatabaseId",{get:function(){return new st(["projects",this.databaseId.projectId,"databases",this.databaseId.database]).canonicalString()},enumerable:!0,configurable:!0}),t.prototype.fullyQualifiedPrefixPath=function(t){return new st(["projects",t.projectId,"databases",t.database])},t.prototype.extractLocalPathFromResourceName=function(t){return v(t.length>4&&"documents"===t.get(4),"tried to deserialize invalid key "+t.toString()),t.popFirst(5)},t.prototype.isValidResourceName=function(t){return t.length>=4&&"projects"===t.get(0)&&"databases"===t.get(2)},t.prototype.toValue=function(t){if(t instanceof Et)return{nullValue:"NULL_VALUE"};if(t instanceof St)return{booleanValue:t.value()};if(t instanceof It)return{integerValue:""+t.value()};if(t instanceof xt){var e=t.value();if(this.options.useProto3Json){if(isNaN(e))return{doubleValue:"NaN"};if(e===1/0)return{doubleValue:"Infinity"};if(e===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:t.value()}}return t instanceof kt?{stringValue:t.value()}:t instanceof Pt?{mapValue:this.toMapValue(t)}:t instanceof Mt?{arrayValue:this.toArrayValue(t)}:t instanceof At?{timestampValue:this.toTimestamp(t.internalValue)}:t instanceof Rt?{geoPointValue:{latitude:t.value().latitude,longitude:t.value().longitude}}:t instanceof Nt?{bytesValue:this.toBytes(t.value())}:t instanceof Dt?{referenceValue:this.toResourceName(t.databaseId,t.key.path)}:g("Unknown FieldValue "+JSON.stringify(t))},t.prototype.fromValue=function(t){var e=this,n=t.value_type;if(on(t,n,"nullValue"))return Et.INSTANCE;if(on(t,n,"booleanValue"))return St.of(t.booleanValue);if(on(t,n,"integerValue"))return new It(nn(t.integerValue));if(on(t,n,"doubleValue")){if(this.options.useProto3Json){if("NaN"===t.doubleValue)return xt.NAN;if("Infinity"===t.doubleValue)return xt.POSITIVE_INFINITY;if("-Infinity"===t.doubleValue)return xt.NEGATIVE_INFINITY}return new xt(t.doubleValue)}if(on(t,n,"stringValue"))return new kt(t.stringValue);if(on(t,n,"mapValue"))return this.fromFields(t.mapValue.fields||{});if(on(t,n,"arrayValue"))return en(t.arrayValue,"arrayValue"),new Mt((t.arrayValue.values||[]).map(function(t){return e.fromValue(t)}));if(on(t,n,"timestampValue"))return en(t.timestampValue,"timestampValue"),new At(this.fromTimestamp(t.timestampValue));if(on(t,n,"geoPointValue"))return en(t.geoPointValue,"geoPointValue"),new Rt(new tt(t.geoPointValue.latitude||0,t.geoPointValue.longitude||0));if(on(t,n,"bytesValue")){en(t.bytesValue,"bytesValue");var r=this.fromBlob(t.bytesValue);return new Nt(r)}if(on(t,n,"referenceValue")){en(t.referenceValue,"referenceValue");var i=this.fromResourceName(t.referenceValue),o=new it(i.get(1),i.get(3)),s=new lt(this.extractLocalPathFromResourceName(i));return new Dt(o,s)}return g("Unknown Value proto "+JSON.stringify(t))},t.prototype.toMutationDocument=function(t,e){return{name:this.toName(t),fields:this.toFields(e)}},t.prototype.toDocument=function(t){return v(!t.hasLocalMutations,"Can't serialize documents with mutations."),{name:this.toName(t.key),fields:this.toFields(t.data),updateTime:this.toTimestamp(t.version.toTimestamp())}},t.prototype.fromDocument=function(t,e){return new ht(this.fromName(t.name),this.fromVersion(t.updateTime),this.fromFields(t.fields||{}),{hasCommittedMutations:!!e})},t.prototype.toFields=function(t){var e=this,n={};return t.forEach(function(t,r){n[t]=e.toValue(r)}),n},t.prototype.fromFields=function(t){var e=this,n=Pt.EMPTY;return x(t,function(t,r){n=n.set(new ut([t]),e.fromValue(r))}),n},t.prototype.toMapValue=function(t){return{fields:this.toFields(t)}},t.prototype.toArrayValue=function(t){var e=this,n=[];return t.forEach(function(t){n.push(e.toValue(t))}),{values:n}},t.prototype.fromFound=function(t){v(!!t.found,"Tried to deserialize a found document from a missing document."),en(t.found.name,"doc.found.name"),en(t.found.updateTime,"doc.found.updateTime");var e=this.fromName(t.found.name),n=this.fromVersion(t.found.updateTime),r=this.fromFields(t.found.fields||{});return new ht(e,n,r,{},t.found)},t.prototype.fromMissing=function(t){v(!!t.missing,"Tried to deserialize a missing document from a found document."),v(!!t.readTime,"Tried to deserialize a missing document without a read time.");var e=this.fromName(t.missing),n=this.fromVersion(t.readTime);return new pt(e,n)},t.prototype.fromMaybeDocument=function(t){var e=t.result;return on(t,e,"found")?this.fromFound(t):on(t,e,"missing")?this.fromMissing(t):g("invalid batch get response: "+JSON.stringify(t))},t.prototype.toWatchTargetChangeState=function(t){switch(t){case ze.Added:return"ADD";case ze.Current:return"CURRENT";case ze.NoChange:return"NO_CHANGE";case ze.Removed:return"REMOVE";case ze.Reset:return"RESET";default:return g("Unknown WatchTargetChangeState: "+t)}},t.prototype.toTestWatchChange=function(t){if(t instanceof He)return{filter:{count:t.existenceFilter.count,targetId:t.targetId}};if(t instanceof Be){var e;if(t.newDoc instanceof ht)return{documentChange:{document:{name:this.toName((e=t.newDoc).key),fields:this.toFields(e.data),updateTime:this.toVersion(e.version)},targetIds:t.updatedTargetIds,removedTargetIds:t.removedTargetIds}};if(t.newDoc instanceof pt)return{documentDelete:{document:this.toName((e=t.newDoc).key),readTime:this.toVersion(e.version),removedTargetIds:t.removedTargetIds}};if(null===t.newDoc)return{documentRemove:{document:this.toName(t.key),removedTargetIds:t.removedTargetIds}}}if(t instanceof We){var n=void 0;return t.cause&&(n={code:Se(t.cause.code),message:t.cause.message}),{targetChange:{targetChangeType:this.toWatchTargetChangeState(t.state),targetIds:t.targetIds,resumeToken:this.unsafeCastProtoByteString(t.resumeToken),cause:n}}}return g("Unrecognized watch change: "+JSON.stringify(t))},t.prototype.fromWatchChange=function(t){var e,n=t.response_type;if(on(t,n,"targetChange")){en(t.targetChange,"targetChange");var r=this.fromWatchTargetChangeState(t.targetChange.targetChangeType||"NO_CHANGE"),i=t.targetChange.targetIds||[],o=t.targetChange.resumeToken||this.emptyByteString(),s=t.targetChange.cause,a=s&&this.fromRpcStatus(s);e=new We(r,i,o,a||null)}else if(on(t,n,"documentChange")){en(t.documentChange,"documentChange"),en(t.documentChange.document,"documentChange.name"),en(t.documentChange.document.name,"documentChange.document.name"),en(t.documentChange.document.updateTime,"documentChange.document.updateTime");var u=t.documentChange,l=this.fromName(u.document.name),c=this.fromVersion(u.document.updateTime),h=this.fromFields(u.document.fields||{}),p=new ht(l,c,h,{},u.document);e=new Be(u.targetIds||[],u.removedTargetIds||[],p.key,p)}else if(on(t,n,"documentDelete")){en(t.documentDelete,"documentDelete"),en(t.documentDelete.document,"documentDelete.document");var f=t.documentDelete;l=this.fromName(f.document),c=f.readTime?this.fromVersion(f.readTime):$t.forDeletedDoc(),p=new pt(l,c),e=new Be([],f.removedTargetIds||[],p.key,p)}else if(on(t,n,"documentRemove")){en(t.documentRemove,"documentRemove"),en(t.documentRemove.document,"documentRemove");var d=t.documentRemove;l=this.fromName(d.document),e=new Be([],d.removedTargetIds||[],l,null)}else{if(!on(t,n,"filter"))return g("Unknown change type "+JSON.stringify(t));en(t.filter,"filter"),en(t.filter.targetId,"filter.targetId");var m=t.filter,y=new _e(m.count||0);e=new He(m.targetId,y)}return e},t.prototype.fromWatchTargetChangeState=function(t){return"NO_CHANGE"===t?ze.NoChange:"ADD"===t?ze.Added:"REMOVE"===t?ze.Removed:"CURRENT"===t?ze.Current:"RESET"===t?ze.Reset:g("Got unexpected TargetChange.state: "+t)},t.prototype.versionFromListenResponse=function(t){if(!on(t,t.response_type,"targetChange"))return $t.MIN;var e=t.targetChange;return e.targetIds&&e.targetIds.length?$t.MIN:e.readTime?this.fromVersion(e.readTime):$t.MIN},t.prototype.toMutation=function(t){var e,n=this;if(t instanceof ce)e={update:this.toMutationDocument(t.key,t.value)};else if(t instanceof fe)e={delete:this.toName(t.key)};else if(t instanceof he)e={update:this.toMutationDocument(t.key,t.data),updateMask:this.toDocumentMask(t.fieldMask)};else{if(!(t instanceof pe))return g("Unknown mutation type "+t.type);e={transform:{document:this.toName(t.key),fieldTransforms:t.fieldTransforms.map(function(t){return n.toFieldTransform(t)})}}}return t.precondition.isNone||(e.currentDocument=this.toPrecondition(t.precondition)),e},t.prototype.fromMutation=function(t){var e=this,n=t.currentDocument?this.fromPrecondition(t.currentDocument):ue.NONE;if(t.update){en(t.update.name,"name");var r=this.fromName(t.update.name),i=this.fromFields(t.update.fields||{});if(t.updateMask){var o=this.fromDocumentMask(t.updateMask);return new he(r,i,o,n)}return new ce(r,i,n)}if(t.delete)return r=this.fromName(t.delete),new fe(r,n);if(t.transform){r=this.fromName(t.transform.document);var s=t.transform.fieldTransforms.map(function(t){return e.fromFieldTransform(t)});return v(!0===n.exists,'Transforms only support precondition "exists == true"'),new pe(r,s)}return g("unknown mutation proto: "+JSON.stringify(t))},t.prototype.toPrecondition=function(t){return v(!t.isNone,"Can't serialize an empty precondition"),void 0!==t.updateTime?{updateTime:this.toVersion(t.updateTime)}:void 0!==t.exists?{exists:t.exists}:g("Unknown precondition")},t.prototype.fromPrecondition=function(t){return void 0!==t.updateTime?ue.updateTime(this.fromVersion(t.updateTime)):void 0!==t.exists?ue.exists(t.exists):ue.NONE},t.prototype.fromWriteResult=function(t,e){var n=this,r=this.fromVersion(t.updateTime?t.updateTime:e),i=null;return t.transformResults&&t.transformResults.length>0&&(i=t.transformResults.map(function(t){return n.fromValue(t)})),new se(r,i)},t.prototype.fromWriteResults=function(t,e){var n=this;return t&&t.length>0?(v(void 0!==e,"Received a write result without a commit time"),t.map(function(t){return n.fromWriteResult(t,e)})):[]},t.prototype.toFieldTransform=function(t){var e=this,n=t.transform;if(n instanceof de)return{fieldPath:t.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(n instanceof me)return{fieldPath:t.field.canonicalString(),appendMissingElements:{values:n.elements.map(function(t){return e.toValue(t)})}};if(n instanceof ye)return{fieldPath:t.field.canonicalString(),removeAllFromArray:{values:n.elements.map(function(t){return e.toValue(t)})}};if(n instanceof ge)return{fieldPath:t.field.canonicalString(),increment:this.toValue(n.operand)};throw g("Unknown transform: "+t.transform)},t.prototype.fromFieldTransform=function(t){var e=this,n=t.transform_type,r=null;if(on(t,n,"setToServerValue"))v("REQUEST_TIME"===t.setToServerValue,"Unknown server value transform proto: "+JSON.stringify(t)),r=de.instance;else if(on(t,n,"appendMissingElements"))r=new me((t.appendMissingElements.values||[]).map(function(t){return e.fromValue(t)}));else if(on(t,n,"removeAllFromArray"))r=new ye((t.removeAllFromArray.values||[]).map(function(t){return e.fromValue(t)}));else if(on(t,n,"increment")){var i=this.fromValue(t.increment);v(i instanceof Ct,"NUMERIC_ADD transform requires a NumberValue"),r=new ge(i)}else g("Unknown transform proto: "+JSON.stringify(t));var o=ut.fromServerFormat(t.fieldPath);return new oe(o,r)},t.prototype.toDocumentsTarget=function(t){return{documents:[this.toQueryPath(t.path)]}},t.prototype.fromDocumentsTarget=function(t){var e=t.documents.length;return v(1===e,"DocumentsTarget contained other than 1 document: "+e),Bt.atPath(this.fromQueryPath(t.documents[0]))},t.prototype.toQueryTarget=function(t){var e={structuredQuery:{}},n=t.path;null!==t.collectionGroup?(v(n.length%2==0,"Collection Group queries should be within a document path or root."),e.parent=this.toQueryPath(n),e.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(v(n.length%2!=0,"Document queries with filters are not supported."),e.parent=this.toQueryPath(n.popLast()),e.structuredQuery.from=[{collectionId:n.lastSegment()}]);var r=this.toFilter(t.filters);r&&(e.structuredQuery.where=r);var i=this.toOrder(t.orderBy);i&&(e.structuredQuery.orderBy=i);var o=this.toInt32Value(t.limit);return void 0!==o&&(e.structuredQuery.limit=o),t.startAt&&(e.structuredQuery.startAt=this.toCursor(t.startAt)),t.endAt&&(e.structuredQuery.endAt=this.toCursor(t.endAt)),e},t.prototype.fromQueryTarget=function(t){var e=this.fromQueryPath(t.parent),n=t.structuredQuery,r=n.from?n.from.length:0,i=null;if(r>0){v(1===r,"StructuredQuery.from with more than one collection is not supported.");var o=n.from[0];o.allDescendants?i=o.collectionId:e=e.child(o.collectionId)}var s=[];n.where&&(s=this.fromFilter(n.where));var a=[];n.orderBy&&(a=this.fromOrder(n.orderBy));var u=null;n.limit&&(u=this.fromInt32Value(n.limit));var l=null;n.startAt&&(l=this.fromCursor(n.startAt));var c=null;return n.endAt&&(c=this.fromCursor(n.endAt)),new Bt(e,i,a,s,u,l,c)},t.prototype.toListenRequestLabels=function(t){var e=this.toLabel(t.purpose);return null==e?null:{"goog-listen-tags":e}},t.prototype.toLabel=function(t){switch(t){case te.Listen:return null;case te.ExistenceFilterMismatch:return"existence-filter-mismatch";case te.LimboResolution:return"limbo-document";default:return g("Unrecognized query purpose: "+t)}},t.prototype.toTarget=function(t){var e,n=t.query;return(e=n.isDocumentQuery()?{documents:this.toDocumentsTarget(n)}:{query:this.toQueryTarget(n)}).targetId=t.targetId,t.resumeToken.length>0&&(e.resumeToken=this.unsafeCastProtoByteString(t.resumeToken)),e},t.prototype.toFilter=function(t){var e=this;if(0!==t.length){var n=t.map(function(t){return t instanceof Wt?e.toRelationFilter(t):e.toUnaryFilter(t)});return 1===n.length?n[0]:{compositeFilter:{op:"AND",filters:n}}}},t.prototype.fromFilter=function(t){var e=this;return t?void 0!==t.unaryFilter?[this.fromUnaryFilter(t)]:void 0!==t.fieldFilter?[this.fromRelationFilter(t)]:void 0!==t.compositeFilter?t.compositeFilter.filters.map(function(t){return e.fromFilter(t)}).reduce(function(t,e){return t.concat(e)}):g("Unknown filter: "+JSON.stringify(t)):[]},t.prototype.toOrder=function(t){var e=this;if(0!==t.length)return t.map(function(t){return e.toPropertyOrder(t)})},t.prototype.fromOrder=function(t){var e=this;return t.map(function(t){return e.fromPropertyOrder(t)})},t.prototype.toCursor=function(t){var e=this;return{before:t.before,values:t.position.map(function(t){return e.toValue(t)})}},t.prototype.fromCursor=function(t){var e=this,n=!!t.before,r=t.values.map(function(t){return e.fromValue(t)});return new Yt(r,n)},t.prototype.toDirection=function(t){return Ze[t.name]},t.prototype.fromDirection=function(t){switch(t){case"ASCENDING":return Gt.ASCENDING;case"DESCENDING":return Gt.DESCENDING;default:return}},t.prototype.toOperatorName=function(t){return $e[t.name]},t.prototype.fromOperatorName=function(t){switch(t){case"EQUAL":return zt.EQUAL;case"GREATER_THAN":return zt.GREATER_THAN;case"GREATER_THAN_OR_EQUAL":return zt.GREATER_THAN_OR_EQUAL;case"LESS_THAN":return zt.LESS_THAN;case"LESS_THAN_OR_EQUAL":return zt.LESS_THAN_OR_EQUAL;case"ARRAY_CONTAINS":return zt.ARRAY_CONTAINS;case"OPERATOR_UNSPECIFIED":return g("Unspecified relation");default:return g("Unknown relation")}},t.prototype.toFieldPathReference=function(t){return{fieldPath:t.canonicalString()}},t.prototype.fromFieldPathReference=function(t){return ut.fromServerFormat(t.fieldPath)},t.prototype.toPropertyOrder=function(t){return{field:this.toFieldPathReference(t.field),direction:this.toDirection(t.dir)}},t.prototype.fromPropertyOrder=function(t){return new Xt(this.fromFieldPathReference(t.field),this.fromDirection(t.direction))},t.prototype.toRelationFilter=function(t){return t instanceof Wt?{fieldFilter:{field:this.toFieldPathReference(t.field),op:this.toOperatorName(t.op),value:this.toValue(t.value)}}:g("Unrecognized filter: "+JSON.stringify(t))},t.prototype.fromRelationFilter=function(t){return new Wt(this.fromFieldPathReference(t.fieldFilter.field),this.fromOperatorName(t.fieldFilter.op),this.fromValue(t.fieldFilter.value))},t.prototype.toUnaryFilter=function(t){return t instanceof Kt?{unaryFilter:{field:this.toFieldPathReference(t.field),op:"IS_NAN"}}:t instanceof Qt?{unaryFilter:{field:this.toFieldPathReference(t.field),op:"IS_NULL"}}:g("Unrecognized filter: "+JSON.stringify(t))},t.prototype.fromUnaryFilter=function(t){switch(t.unaryFilter.op){case"IS_NAN":var e=this.fromFieldPathReference(t.unaryFilter.field);return new Kt(e);case"IS_NULL":var n=this.fromFieldPathReference(t.unaryFilter.field);return new Qt(n);case"OPERATOR_UNSPECIFIED":return g("Unspecified filter");default:return g("Unknown filter")}},t.prototype.toDocumentMask=function(t){var e=[];return t.fields.forEach(function(t){return e.push(t.canonicalString())}),{fieldPaths:e}},t.prototype.fromDocumentMask=function(t){var e=(t.fieldPaths||[]).map(function(t){return ut.fromServerFormat(t)});return ie.fromArray(e)},t}();function on(t,e,n){return e===n||!e&&n in t}var sn=function(){function t(t){this.sendFn=t.sendFn,this.closeFn=t.closeFn}return t.prototype.onOpen=function(t){v(!this.wrappedOnOpen,"Called onOpen on stream twice!"),this.wrappedOnOpen=t},t.prototype.onClose=function(t){v(!this.wrappedOnClose,"Called onClose on stream twice!"),this.wrappedOnClose=t},t.prototype.onMessage=function(t){v(!this.wrappedOnMessage,"Called onMessage on stream twice!"),this.wrappedOnMessage=t},t.prototype.close=function(){this.closeFn()},t.prototype.send=function(t){this.sendFn(t)},t.prototype.callOnOpen=function(){v(void 0!==this.wrappedOnOpen,"Cannot call onOpen because no callback was set"),this.wrappedOnOpen()},t.prototype.callOnClose=function(t){v(void 0!==this.wrappedOnClose,"Cannot call onClose because no callback was set"),this.wrappedOnClose(t)},t.prototype.callOnMessage=function(t){v(void 0!==this.wrappedOnMessage,"Cannot call onMessage because no callback was set"),this.wrappedOnMessage(t)},t}(),an="Connection",un={BatchGetDocuments:"batchGet",Commit:"commit"},ln="gl-js/ fire/"+l,cn=function(){function t(t){this.databaseId=t.databaseId,this.baseUrl=(t.ssl?"https":"http")+"://"+t.host}return t.prototype.modifyHeadersForRequest=function(t,e){if(e)for(var n in e.authHeaders)e.authHeaders.hasOwnProperty(n)&&(t[n]=e.authHeaders[n]);t["X-Goog-Api-Client"]=ln},t.prototype.invokeRPC=function(t,e,n){var r=this,i=this.makeUrl(t);return new Promise(function(o,s){var u=new a.XhrIo;u.listenOnce(a.EventType.COMPLETE,function(){try{switch(u.getLastErrorCode()){case a.ErrorCode.NO_ERROR:var e=u.getResponseJson();d(an,"XHR received:",JSON.stringify(e)),o(e);break;case a.ErrorCode.TIMEOUT:d(an,'RPC "'+t+'" timed out'),s(new E(w.DEADLINE_EXCEEDED,"Request time out"));break;case a.ErrorCode.HTTP_ERROR:var n=u.getStatus();d(an,'RPC "'+t+'" failed with status:',n,"response text:",u.getResponseText()),n>0?s(new E(function(t){switch(t){case 200:return w.OK;case 400:return w.INVALID_ARGUMENT;case 401:return w.UNAUTHENTICATED;case 403:return w.PERMISSION_DENIED;case 404:return w.NOT_FOUND;case 409:return w.ABORTED;case 416:return w.OUT_OF_RANGE;case 429:return w.RESOURCE_EXHAUSTED;case 499:return w.CANCELLED;case 500:return w.UNKNOWN;case 501:return w.UNIMPLEMENTED;case 503:return w.UNAVAILABLE;case 504:return w.DEADLINE_EXCEEDED;default:return t>=200&&t<300?w.OK:t>=400&&t<500?w.FAILED_PRECONDITION:t>=500&&t<600?w.INTERNAL:w.UNKNOWN}}(n),"Server responded with status "+u.getStatusText())):(d(an,'RPC "'+t+'" failed'),s(new E(w.UNAVAILABLE,"Connection failed.")));break;default:g('RPC "'+t+'" failed with unanticipated webchannel error '+u.getLastErrorCode()+": "+u.getLastError()+", giving up.")}}finally{d(an,'RPC "'+t+'" completed.')}});var l=JSON.stringify(e);d(an,"XHR sending: ",i+" "+l);var c={"Content-Type":"text/plain"};r.modifyHeadersForRequest(c,n),u.send(i,"POST",l,c,15)})},t.prototype.invokeStreamingRPC=function(t,e,n){return this.invokeRPC(t,e,n)},t.prototype.openStream=function(t,e){var n=[this.baseUrl,"/","google.firestore.v1.Firestore","/",t,"/channel"],r=a.createWebChannelTransport(),i={backgroundChannelTest:!0,httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:"projects/"+this.databaseId.projectId+"/databases/"+this.databaseId.database},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5}};this.modifyHeadersForRequest(i.initMessageHeaders,e),u.isReactNative()||(i.httpHeadersOverwriteParam="$httpHeaders");var o=n.join("");d(an,"Creating WebChannel: "+o+" "+i);var s=r.createWebChannel(o,i),l=!1,c=!1,h=new sn({sendFn:function(t){c?d(an,"Not sending because WebChannel is closed:",t):(l||(d(an,"Opening WebChannel transport."),s.open(),l=!0),d(an,"WebChannel sending:",t),s.send(t))},closeFn:function(){return s.close()}}),p=function(t,e){s.listen(t,function(t){try{e(t)}catch(n){setTimeout(function(){throw n},0)}})};return p(a.WebChannel.EventType.OPEN,function(){c||d(an,"WebChannel transport opened.")}),p(a.WebChannel.EventType.CLOSE,function(){c||(c=!0,d(an,"WebChannel transport closed"),h.callOnClose())}),p(a.WebChannel.EventType.ERROR,function(t){c||(c=!0,d(an,"WebChannel transport errored:",t),h.callOnClose(new E(w.UNAVAILABLE,"The operation could not be completed")))}),p(a.WebChannel.EventType.MESSAGE,function(t){if(!c){var e=t.data[0];v(!!e,"Got a webchannel message without data.");var n=e.error||e[0]&&e[0].error;if(n){d(an,"WebChannel received error:",n);var r=n.status,i=function(t){var e=be[r];if(void 0!==e)return Ee(e)}(),o=n.message;void 0===i&&(i=w.INTERNAL,o="Unknown error status: "+r+" with message "+n.message),c=!0,h.callOnClose(new E(i,o)),s.close()}else d(an,"WebChannel received:",e),h.callOnMessage(e)}}),setTimeout(function(){h.callOnOpen()},0),h},t.prototype.makeUrl=function(t){var e=un[t];v(void 0!==e,"Unknown REST mapping for: "+t);var n=[this.baseUrl,"/","v1"];return n.push("/projects/"),n.push(this.databaseId.projectId),n.push("/databases/"),n.push(this.databaseId.database),n.push("/documents"),n.push(":"),n.push(e),n.join("")},t}();_.setPlatform(new(function(){function t(){this.emptyByteString="",this.base64Available="undefined"!=typeof atob}return Object.defineProperty(t.prototype,"document",{get:function(){return"undefined"!=typeof document?document:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"window",{get:function(){return"undefined"!=typeof window?window:null},enumerable:!0,configurable:!0}),t.prototype.loadConnection=function(t){return Promise.resolve(new cn(t))},t.prototype.newSerializer=function(t){return new rn(t,{useProto3Json:!0})},t.prototype.formatJSON=function(t){return JSON.stringify(t)},t.prototype.atob=function(t){return atob(t)},t.prototype.btoa=function(t){return btoa(t)},t}()));var hn,pn=function(){function t(t,e){var n=this;this.previousValue=t,e&&(e.sequenceNumberHandler=function(t){return n.setPreviousValue(t)},this.writeNewSequenceNumber=function(t){return e.writeSequenceNumber(t)})}return t.prototype.setPreviousValue=function(t){return this.previousValue=Math.max(t,this.previousValue),this.previousValue},t.prototype.next=function(){var t=++this.previousValue;return this.writeNewSequenceNumber&&this.writeNewSequenceNumber(t),t},t.INVALID=-1,t}(),fn=function(){return function(){var t=this;this.promise=new Promise(function(e,n){t.resolve=e,t.reject=n})}}();!function(t){t.All="all",t.ListenStreamIdle="listen_stream_idle",t.ListenStreamConnectionBackoff="listen_stream_connection_backoff",t.WriteStreamIdle="write_stream_idle",t.WriteStreamConnectionBackoff="write_stream_connection_backoff",t.OnlineStateTimeout="online_state_timeout",t.ClientMetadataRefresh="client_metadata_refresh",t.LruGarbageCollection="lru_garbage_collection"}(hn||(hn={}));var dn=function(){function t(t,e,n,r,i){this.asyncQueue=t,this.timerId=e,this.targetTimeMs=n,this.op=r,this.removalCallback=i,this.deferred=new fn,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.catch=this.deferred.promise.catch.bind(this.deferred.promise),this.deferred.promise.catch(function(t){})}return t.createAndSchedule=function(e,n,r,i,o){var s=new t(e,n,Date.now()+r,i,o);return s.start(r),s},t.prototype.start=function(t){var e=this;this.timerHandle=setTimeout(function(){return e.handleDelayElapsed()},t)},t.prototype.skipDelay=function(){return this.handleDelayElapsed()},t.prototype.cancel=function(t){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new E(w.CANCELLED,"Operation cancelled"+(t?": "+t:""))))},t.prototype.handleDelayElapsed=function(){var t=this;this.asyncQueue.enqueueAndForget(function(){return null!==t.timerHandle?(t.clearTimeout(),t.op().then(function(e){return t.deferred.resolve(e)})):Promise.resolve()})},t.prototype.clearTimeout=function(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)},t}(),mn=function(){function t(){this.tail=Promise.resolve(),this.delayedOperations=[],this.operationInProgress=!1}return t.prototype.enqueueAndForget=function(t){this.enqueue(t)},t.prototype.enqueue=function(t){var e=this;this.verifyNotFailed();var n=this.tail.then(function(){return e.operationInProgress=!0,t().catch(function(t){e.failure=t,e.operationInProgress=!1;var n=t.stack||t.message||"";throw m("INTERNAL UNHANDLED ERROR: ",n),n.indexOf("Firestore Test Simulated Error")<0&&setTimeout(function(){throw t},0),t}).then(function(t){return e.operationInProgress=!1,t})});return this.tail=n,n},t.prototype.enqueueAfterDelay=function(t,e,n){var r=this;this.verifyNotFailed(),v(e>=0,"Attempted to schedule an operation with a negative delay of "+e),v(!this.containsDelayedOperation(t),"Attempted to schedule multiple operations with timer id "+t+".");var i=dn.createAndSchedule(this,t,e,n,function(t){return r.removeDelayedOperation(t)});return this.delayedOperations.push(i),i},t.prototype.verifyNotFailed=function(){this.failure&&g("AsyncQueue is already failed: "+(this.failure.stack||this.failure.message))},t.prototype.verifyOperationInProgress=function(){v(this.operationInProgress,"verifyOpInProgress() called when no op in progress on this queue.")},t.prototype.drain=function(){return this.enqueue(function(){return Promise.resolve()})},t.prototype.containsDelayedOperation=function(t){for(var e=0,n=this.delayedOperations;e<n.length;e++)if(n[e].timerId===t)return!0;return!1},t.prototype.runDelayedOperationsEarly=function(t){var e=this;return this.drain().then(function(){v(t===hn.All||e.containsDelayedOperation(t),"Attempted to drain to missing operation "+t),e.delayedOperations.sort(function(t,e){return t.targetTimeMs-e.targetTimeMs});for(var n=0,r=e.delayedOperations;n<r.length;n++){var i=r[n];if(i.skipDelay(),t!==hn.All&&i.timerId===t)break}return e.drain()})},t.prototype.removeDelayedOperation=function(t){var e=this.delayedOperations.indexOf(t);v(e>=0,"Delayed operation not found."),this.delayedOperations.splice(e,1)},t}(),yn="\x01",gn="\x01",vn="\x10",_n="\x11";function bn(t){for(var e="",n=0;n<t.length;n++)e.length>0&&(e=En(e)),e=wn(t.get(n),e);return En(e)}function wn(t,e){for(var n=e,r=t.length,i=0;i<r;i++){var o=t.charAt(i);switch(o){case"\0":n+=yn+vn;break;case yn:n+=yn+_n;break;default:n+=o}}return n}function En(t){return t+yn+gn}function Sn(t){var e=t.length;if(v(e>=2,"Invalid path "+t),2===e)return v(t.charAt(0)===yn&&t.charAt(1)===gn,"Non-empty path "+t+" had length 2"),st.EMPTY_PATH;for(var n=e-2,r=[],i="",o=0;o<e;){var s=t.indexOf(yn,o);switch((s<0||s>n)&&g('Invalid encoded resource path: "'+t+'"'),t.charAt(s+1)){case gn:var a=t.substring(o,s),u=void 0;0===i.length?u=a:(u=i+=a,i=""),r.push(u);break;case vn:i+=t.substring(o,s),i+="\0";break;case _n:i+=t.substring(o,s+1);break;default:g('Invalid encoded resource path: "'+t+'"')}o=s+2}return new st(r)}var Cn=function(){function t(t,e,n,r){this.batchId=t,this.localWriteTime=e,this.baseMutations=n,this.mutations=r,v(r.length>0,"Cannot create an empty mutation batch")}return t.prototype.applyToRemoteDocument=function(t,e,n){e&&v(e.key.isEqual(t),"applyToRemoteDocument: key "+t+" should match maybeDoc key\n        "+e.key);var r=n.mutationResults;v(r.length===this.mutations.length,"Mismatch between mutations length\n      ("+this.mutations.length+") and mutation results length\n      ("+r.length+").");for(var i=0;i<this.mutations.length;i++){var o=this.mutations[i];o.key.isEqual(t)&&(e=o.applyToRemoteDocument(e,r[i]))}return e},t.prototype.applyToLocalView=function(t,e){e&&v(e.key.isEqual(t),"applyToLocalDocument: key "+t+" should match maybeDoc key\n        "+e.key);for(var n=0,r=this.baseMutations;n<r.length;n++)(a=r[n]).key.isEqual(t)&&(e=a.applyToLocalView(e,e,this.localWriteTime));for(var i=e,o=0,s=this.mutations;o<s.length;o++){var a;(a=s[o]).key.isEqual(t)&&(e=a.applyToLocalView(e,i,this.localWriteTime))}return e},t.prototype.applyToLocalDocumentSet=function(t){var e=this,n=t;return this.mutations.forEach(function(r){var i=e.applyToLocalView(r.key,t.get(r.key));i&&(n=n.insert(r.key,i))}),n},t.prototype.keys=function(){return this.mutations.reduce(function(t,e){return t.add(e.key)},De())},t.prototype.isEqual=function(t){return this.batchId===t.batchId&&G(this.mutations,t.mutations)&&G(this.baseMutations,t.baseMutations)},t}(),Tn=function(){function t(t,e,n,r,i){this.batch=t,this.commitVersion=e,this.mutationResults=n,this.streamToken=r,this.docVersions=i}return t.from=function(e,n,r,i){v(e.mutations.length===r.length,"Mutations sent "+e.mutations.length+" must equal results received "+r.length);for(var o=Oe(),s=e.mutations,a=0;a<s.length;a++)o=o.insert(s[a].key,r[a].version);return new t(e,n,r,i,o)},t}(),In=function(){function t(t){var e=this;this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,t(function(t){e.isDone=!0,e.result=t,e.nextCallback&&e.nextCallback(t)},function(t){e.isDone=!0,e.error=t,e.catchCallback&&e.catchCallback(t)})}return t.prototype.catch=function(t){return this.next(void 0,t)},t.prototype.next=function(e,n){var r=this;return this.callbackAttached&&g("Called next() or catch() twice for PersistencePromise"),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(n,this.error):this.wrapSuccess(e,this.result):new t(function(t,i){r.nextCallback=function(n){r.wrapSuccess(e,n).next(t,i)},r.catchCallback=function(e){r.wrapFailure(n,e).next(t,i)}})},t.prototype.toPromise=function(){var t=this;return new Promise(function(e,n){t.next(e,n)})},t.prototype.wrapUserFunction=function(e){try{var n=e();return n instanceof t?n:t.resolve(n)}catch(r){return t.reject(r)}},t.prototype.wrapSuccess=function(e,n){return e?this.wrapUserFunction(function(){return e(n)}):t.resolve(n)},t.prototype.wrapFailure=function(e,n){return e?this.wrapUserFunction(function(){return e(n)}):t.reject(n)},t.resolve=function(e){return new t(function(t,n){t(e)})},t.reject=function(e){return new t(function(t,n){n(e)})},t.waitFor=function(e){return new t(function(t,n){var r=0,i=0,o=!1;e.forEach(function(e){++r,e.next(function(){++i,o&&i===r&&t()},function(t){return n(t)})}),o=!0,i===r&&t()})},t.or=function(e){for(var n=t.resolve(!1),r=function(e){n=n.next(function(n){return n?t.resolve(n):e()})},i=0,o=e;i<o.length;i++)r(o[i]);return n},t.forEach=function(t,e){var n=this,r=[];return t.forEach(function(t,i){r.push(e.call(n,t,i))}),this.waitFor(r)},t}(),xn=function(){function t(t,e,n,r){this.userId=t,this.serializer=e,this.indexManager=n,this.referenceDelegate=r,this.documentKeysByBatchId={}}return t.forUser=function(e,n,r,i){return v(""!==e.uid,"UserID must not be an empty string."),new t(e.isAuthenticated()?e.uid:"",n,r,i)},t.prototype.checkEmpty=function(t){var e=!0,n=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return Nn(t).iterate({index:cr.userMutationsIndex,range:n},function(t,n,r){e=!1,r.done()}).next(function(){return e})},t.prototype.acknowledgeBatch=function(t,e,n){return this.getMutationQueueMetadata(t).next(function(e){return e.lastStreamToken=On(n),Rn(t).put(e)})},t.prototype.getLastStreamToken=function(t){return this.getMutationQueueMetadata(t).next(function(t){return t.lastStreamToken})},t.prototype.setLastStreamToken=function(t,e){return this.getMutationQueueMetadata(t).next(function(n){return n.lastStreamToken=On(e),Rn(t).put(n)})},t.prototype.addMutationBatch=function(t,e,n,r){var i=this,o=Dn(t),s=Nn(t);return s.add({}).next(function(a){v("number"==typeof a,"Auto-generated key is not a number");var u=new Cn(a,e,n,r),l=i.serializer.toDbMutationBatch(i.userId,u);i.documentKeysByBatchId[a]=u.keys();for(var c=[],h=0,p=r;h<p.length;h++){var f=p[h],d=hr.key(i.userId,f.key.path,a);c.push(s.put(l)),c.push(o.put(d,hr.PLACEHOLDER)),c.push(i.indexManager.addToCollectionParentIndex(t,f.key.path.popLast()))}return In.waitFor(c).next(function(){return u})})},t.prototype.lookupMutationBatch=function(t,e){var n=this;return Nn(t).get(e).next(function(t){return t?(v(t.userId===n.userId,"Unexpected user '"+t.userId+"' for mutation batch "+e),n.serializer.fromDbMutationBatch(t)):null})},t.prototype.lookupMutationKeys=function(t,e){var n=this;return this.documentKeysByBatchId[e]?In.resolve(this.documentKeysByBatchId[e]):this.lookupMutationBatch(t,e).next(function(t){if(t){var r=t.keys();return n.documentKeysByBatchId[e]=r,r}return null})},t.prototype.getNextMutationBatchAfterBatchId=function(t,e){var n=this;return this.getMutationQueueMetadata(t).next(function(r){var i=e+1,o=IDBKeyRange.lowerBound([n.userId,i]),s=null;return Nn(t).iterate({index:cr.userMutationsIndex,range:o},function(t,e,r){e.userId===n.userId&&(v(e.batchId>=i,"Should have found mutation after "+i),s=n.serializer.fromDbMutationBatch(e)),r.done()}).next(function(){return s})})},t.prototype.getAllMutationBatches=function(t){var e=this,n=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return Nn(t).loadAll(cr.userMutationsIndex,n).next(function(t){return t.map(function(t){return e.serializer.fromDbMutationBatch(t)})})},t.prototype.getAllMutationBatchesAffectingDocumentKey=function(t,e){var n=this,r=hr.prefixForPath(this.userId,e.path),i=IDBKeyRange.lowerBound(r),o=[];return Dn(t).iterate({range:i},function(r,i,s){var a=r[0],u=r[2],l=Sn(r[1]);if(a===n.userId&&e.path.isEqual(l))return Nn(t).get(u).next(function(t){if(!t)throw g("Dangling document-mutation reference found: "+r+" which points to "+u);v(t.userId===n.userId,"Unexpected user '"+t.userId+"' for mutation batch "+u),o.push(n.serializer.fromDbMutationBatch(t))});s.done()}).next(function(){return o})},t.prototype.getAllMutationBatchesAffectingDocumentKeys=function(t,e){var n=this,r=new ne(K),i=[];return e.forEach(function(e){var o=hr.prefixForPath(n.userId,e.path),s=IDBKeyRange.lowerBound(o),a=Dn(t).iterate({range:s},function(t,i,o){var s=t[0],a=t[2],u=Sn(t[1]);s===n.userId&&e.path.isEqual(u)?r=r.add(a):o.done()});i.push(a)}),In.waitFor(i).next(function(){return n.lookupMutationBatches(t,r)})},t.prototype.getAllMutationBatchesAffectingQuery=function(t,e){var n=this;v(!e.isDocumentQuery(),"Document queries shouldn't go down this path"),v(!e.isCollectionGroupQuery(),"CollectionGroup queries should be handled in LocalDocumentsView");var r=e.path,i=r.length+1,o=hr.prefixForPath(this.userId,r),s=IDBKeyRange.lowerBound(o),a=new ne(K);return Dn(t).iterate({range:s},function(t,e,o){var s=t[0],u=t[2],l=Sn(t[1]);s===n.userId&&r.isPrefixOf(l)?l.length===i&&(a=a.add(u)):o.done()}).next(function(){return n.lookupMutationBatches(t,a)})},t.prototype.lookupMutationBatches=function(t,e){var n=this,r=[],i=[];return e.forEach(function(e){i.push(Nn(t).get(e).next(function(t){if(null===t)throw g("Dangling document-mutation reference found, which points to "+e);v(t.userId===n.userId,"Unexpected user '"+t.userId+"' for mutation batch "+e),r.push(n.serializer.fromDbMutationBatch(t))}))}),In.waitFor(i).next(function(){return r})},t.prototype.removeMutationBatch=function(t,e){var n=this;return An(t.simpleDbTransaction,this.userId,e).next(function(r){return n.removeCachedMutationKeys(e.batchId),In.forEach(r,function(e){return n.referenceDelegate.removeMutationReference(t,e)})})},t.prototype.removeCachedMutationKeys=function(t){delete this.documentKeysByBatchId[t]},t.prototype.performConsistencyCheck=function(t){var e=this;return this.checkEmpty(t).next(function(n){if(!n)return In.resolve();var r=IDBKeyRange.lowerBound(hr.prefixForUser(e.userId)),i=[];return Dn(t).iterate({range:r},function(t,n,r){if(t[0]===e.userId){var o=Sn(t[1]);i.push(o)}else r.done()}).next(function(){v(0===i.length,"Document leak -- detected dangling mutation references when queue is empty. Dangling keys: "+i.map(function(t){return t.canonicalString()}))})})},t.prototype.containsKey=function(t,e){return kn(t,this.userId,e)},t.prototype.getMutationQueueMetadata=function(t){var e=this;return Rn(t).get(this.userId).next(function(t){return t||new lr(e.userId,-1,"")})},t}();function kn(t,e,n){var r=hr.prefixForPath(e,n.path),i=r[1],o=IDBKeyRange.lowerBound(r),s=!1;return Dn(t).iterate({range:o,keysOnly:!0},function(t,n,r){t[0]===e&&t[1]===i&&(s=!0),r.done()}).next(function(){return s})}function An(t,e,n){var r=t.store(cr.store),i=t.store(hr.store),o=[],s=IDBKeyRange.only(n.batchId),a=0,u=r.iterate({range:s},function(t,e,n){return a++,n.delete()});o.push(u.next(function(){v(1===a,"Dangling document-mutation reference found: Missing batch "+n.batchId)}));for(var l=[],c=0,h=n.mutations;c<h.length;c++){var p=h[c],f=hr.key(e,p.key.path,n.batchId);o.push(i.delete(f)),l.push(p.key)}return In.waitFor(o).next(function(){return l})}function On(t){return t instanceof Uint8Array?(v("YES"===process.env.USE_MOCK_PERSISTENCE,"Persisting non-string stream tokens is only supported with mock persistence."),t.toString()):t}function Nn(t){return jr.getStore(t,cr.store)}function Dn(t){return jr.getStore(t,hr.store)}function Rn(t){return jr.getStore(t,lr.store)}var Pn=1,Mn=function(t){return t[t.QueryCache=0]="QueryCache",t[t.SyncEngine=1]="SyncEngine",t}({}),Ln=function(){function t(t,e){this.generatorId=t,v((t&Pn)===t,"Generator ID "+t+" contains more than "+Pn+" reserved bits"),this.seek(void 0!==e?e:this.generatorId)}return t.prototype.next=function(){var t=this.nextId;return this.nextId+=1<<Pn,t},t.prototype.after=function(t){return this.seek(t+(1<<Pn)),this.next()},t.prototype.seek=function(t){v((t&Pn)===this.generatorId,"Cannot supply target ID from different generator ID"),this.nextId=t},t.forQueryCache=function(){return new t(Mn.QueryCache,2)},t.forSyncEngine=function(){return new t(Mn.SyncEngine)},t}(),Fn=function(){function t(t){this.db=t}return t.openOrCreate=function(e,n,r){return v(t.isAvailable(),"IndexedDB not supported in current environment."),d("SimpleDb","Opening database:",e),new In(function(i,o){var s=window.indexedDB.open(e,n);s.onsuccess=function(e){i(new t(e.target.result))},s.onblocked=function(){o(new E(w.FAILED_PRECONDITION,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},s.onerror=function(t){var e=t.target.error;o("VersionError"===e.name?new E(w.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh."):e)},s.onupgradeneeded=function(t){d("SimpleDb",'Database "'+e+'" requires upgrade from version:',t.oldVersion);var n=t.target.result,i=new Un(s.transaction);r.createOrUpgrade(n,i,t.oldVersion,or).next(function(){d("SimpleDb","Database upgrade to version "+or+" complete")})}}).toPromise()},t.delete=function(t){return d("SimpleDb","Removing database:",t),qn(window.indexedDB.deleteDatabase(t)).toPromise()},t.isAvailable=function(){if("undefined"==typeof window||null==window.indexedDB)return!1;if(void 0===window.navigator)return"YES"===process.env.USE_MOCK_PERSISTENCE;var t=window.navigator.userAgent;return!(t.indexOf("MSIE ")>0||t.indexOf("Trident/")>0||t.indexOf("Edge/")>0)},t.getStore=function(t,e){return t.store(e)},t.prototype.runTransaction=function(t,e,n){var r=Un.open(this.db,t,e),i=n(r).catch(function(t){return r.abort(t),In.reject(t)}).toPromise();return i.catch(function(){}),r.completionPromise.then(function(){return i})},t.prototype.close=function(){this.db.close()},t}(),jn=function(){function t(t){this.dbCursor=t,this.shouldStop=!1,this.nextKey=null}return Object.defineProperty(t.prototype,"isDone",{get:function(){return this.shouldStop},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"skipToKey",{get:function(){return this.nextKey},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cursor",{set:function(t){this.dbCursor=t},enumerable:!0,configurable:!0}),t.prototype.done=function(){this.shouldStop=!0},t.prototype.skip=function(t){this.nextKey=t},t.prototype.delete=function(){return qn(this.dbCursor.delete())},t}(),Un=function(){function t(t){var e=this;this.transaction=t,this.aborted=!1,this.completionDeferred=new fn,this.transaction.oncomplete=function(){e.completionDeferred.resolve()},this.transaction.onabort=function(){t.error?e.completionDeferred.reject(t.error):e.completionDeferred.resolve()},this.transaction.onerror=function(t){e.completionDeferred.reject(t.target.error)}}return t.open=function(e,n,r){return new t(e.transaction(r,n))},Object.defineProperty(t.prototype,"completionPromise",{get:function(){return this.completionDeferred.promise},enumerable:!0,configurable:!0}),t.prototype.abort=function(t){t&&this.completionDeferred.reject(t),this.aborted||(d("SimpleDb","Aborting transaction:",t?t.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())},t.prototype.store=function(t){var e=this.transaction.objectStore(t);return v(!!e,"Object store not part of transaction: "+t),new Vn(e)},t}(),Vn=function(){function t(t){this.store=t}return t.prototype.put=function(t,e){var n;return void 0!==e?(d("SimpleDb","PUT",this.store.name,t,e),n=this.store.put(e,t)):(d("SimpleDb","PUT",this.store.name,"<auto-key>",t),n=this.store.put(t)),qn(n)},t.prototype.add=function(t){return d("SimpleDb","ADD",this.store.name,t,t),qn(this.store.add(t))},t.prototype.get=function(t){var e=this;return qn(this.store.get(t)).next(function(n){return void 0===n&&(n=null),d("SimpleDb","GET",e.store.name,t,n),n})},t.prototype.delete=function(t){return d("SimpleDb","DELETE",this.store.name,t),qn(this.store.delete(t))},t.prototype.count=function(){return d("SimpleDb","COUNT",this.store.name),qn(this.store.count())},t.prototype.loadAll=function(t,e){var n=this.cursor(this.options(t,e)),r=[];return this.iterateCursor(n,function(t,e){r.push(e)}).next(function(){return r})},t.prototype.deleteAll=function(t,e){d("SimpleDb","DELETE ALL",this.store.name);var n=this.options(t,e);n.keysOnly=!1;var r=this.cursor(n);return this.iterateCursor(r,function(t,e,n){return n.delete()})},t.prototype.iterate=function(t,e){var n;e?n=t:(n={},e=t);var r=this.cursor(n);return this.iterateCursor(r,e)},t.prototype.iterateSerial=function(t){var e=this.cursor({});return new In(function(n,r){e.onerror=function(t){r(t.target.error)},e.onsuccess=function(e){var r=e.target.result;r?t(r.primaryKey,r.value).next(function(t){t?r.continue():n()}):n()}})},t.prototype.iterateCursor=function(t,e){var n=[];return new In(function(r,i){t.onerror=function(t){i(t.target.error)},t.onsuccess=function(t){var i=t.target.result;if(i){var o=new jn(i),s=e(i.primaryKey,i.value,o);if(s instanceof In){var a=s.catch(function(t){return o.done(),In.reject(t)});n.push(a)}o.isDone?r():null===o.skipToKey?i.continue():i.continue(o.skipToKey)}else r()}}).next(function(){return In.waitFor(n)})},t.prototype.options=function(t,e){var n=void 0;return void 0!==t&&("string"==typeof t?n=t:(v(void 0===e,"3rd argument must not be defined if 2nd is a range."),e=t)),{index:n,range:e}},t.prototype.cursor=function(t){var e="next";if(t.reverse&&(e="prev"),t.index){var n=this.store.index(t.index);return t.keysOnly?n.openKeyCursor(t.range,e):n.openCursor(t.range,e)}return this.store.openCursor(t.range,e)},t}();function qn(t){return new In(function(e,n){t.onsuccess=function(t){e(t.target.result)},t.onerror=function(t){n(t.target.error)}})}var Bn=function(){function t(t,e){this.referenceDelegate=t,this.serializer=e,this.targetIdGenerator=Ln.forQueryCache()}return t.prototype.allocateTargetId=function(t){var e=this;return this.retrieveMetadata(t).next(function(n){return n.highestTargetId=e.targetIdGenerator.after(n.highestTargetId),e.saveMetadata(t,n).next(function(){return n.highestTargetId})})},t.prototype.getLastRemoteSnapshotVersion=function(t){return this.retrieveMetadata(t).next(function(t){return $t.fromTimestamp(new et(t.lastRemoteSnapshotVersion.seconds,t.lastRemoteSnapshotVersion.nanoseconds))})},t.prototype.getHighestSequenceNumber=function(t){return Wn(t.simpleDbTransaction)},t.prototype.setTargetsMetadata=function(t,e,n){var r=this;return this.retrieveMetadata(t).next(function(i){return i.highestListenSequenceNumber=e,n&&(i.lastRemoteSnapshotVersion=n.toTimestamp()),e>i.highestListenSequenceNumber&&(i.highestListenSequenceNumber=e),r.saveMetadata(t,i)})},t.prototype.addQueryData=function(t,e){var n=this;return this.saveQueryData(t,e).next(function(){return n.retrieveMetadata(t).next(function(r){return r.targetCount+=1,n.updateMetadataFromQueryData(e,r),n.saveMetadata(t,r)})})},t.prototype.updateQueryData=function(t,e){return this.saveQueryData(t,e)},t.prototype.removeQueryData=function(t,e){var n=this;return this.removeMatchingKeysForTargetId(t,e.targetId).next(function(){return Hn(t).delete(e.targetId)}).next(function(){return n.retrieveMetadata(t)}).next(function(e){return v(e.targetCount>0,"Removing from an empty query cache"),e.targetCount-=1,n.saveMetadata(t,e)})},t.prototype.removeTargets=function(t,e,n){var r=this,i=0,o=[];return Hn(t).iterate(function(s,a){var u=r.serializer.fromDbTarget(a);u.sequenceNumber<=e&&void 0===n[u.targetId]&&(i++,o.push(r.removeQueryData(t,u)))}).next(function(){return In.waitFor(o)}).next(function(){return i})},t.prototype.forEachTarget=function(t,e){var n=this;return Hn(t).iterate(function(t,r){var i=n.serializer.fromDbTarget(r);e(i)})},t.prototype.retrieveMetadata=function(t){return zn(t.simpleDbTransaction)},t.prototype.saveMetadata=function(t,e){return(n=t,jr.getStore(n,vr.store)).put(vr.key,e);var n},t.prototype.saveQueryData=function(t,e){return Hn(t).put(this.serializer.toDbTarget(e))},t.prototype.updateMetadataFromQueryData=function(t,e){var n=!1;return t.targetId>e.highestTargetId&&(e.highestTargetId=t.targetId,n=!0),t.sequenceNumber>e.highestListenSequenceNumber&&(e.highestListenSequenceNumber=t.sequenceNumber,n=!0),n},t.prototype.getQueryCount=function(t){return this.retrieveMetadata(t).next(function(t){return t.targetCount})},t.prototype.getQueryData=function(t,e){var n=this,r=e.canonicalId(),i=IDBKeyRange.bound([r,Number.NEGATIVE_INFINITY],[r,Number.POSITIVE_INFINITY]),o=null;return Hn(t).iterate({range:i,index:yr.queryTargetsIndexName},function(t,r,i){var s=n.serializer.fromDbTarget(r);e.isEqual(s.query)&&(o=s,i.done())}).next(function(){return o})},t.prototype.addMatchingKeys=function(t,e,n){var r=this,i=[],o=Qn(t);return e.forEach(function(e){var s=bn(e.path);i.push(o.put(new gr(n,s))),i.push(r.referenceDelegate.addReference(t,e))}),In.waitFor(i)},t.prototype.removeMatchingKeys=function(t,e,n){var r=this,i=Qn(t);return In.forEach(e,function(e){var o=bn(e.path);return In.waitFor([i.delete([n,o]),r.referenceDelegate.removeReference(t,e)])})},t.prototype.removeMatchingKeysForTargetId=function(t,e){var n=Qn(t),r=IDBKeyRange.bound([e],[e+1],!1,!0);return n.delete(r)},t.prototype.getMatchingKeysForTargetId=function(t,e){var n=IDBKeyRange.bound([e],[e+1],!1,!0),r=Qn(t),i=De();return r.iterate({range:n,keysOnly:!0},function(t,e,n){var r=Sn(t[1]),o=new lt(r);i=i.add(o)}).next(function(){return i})},t.prototype.containsKey=function(t,e){var n=bn(e.path),r=IDBKeyRange.bound([n],[Y(n)],!1,!0),i=0;return Qn(t).iterate({index:gr.documentTargetsIndex,keysOnly:!0,range:r},function(t,e,n){0!==t[0]&&(i++,n.done())}).next(function(){return i>0})},t.prototype.getQueryDataForTarget=function(t,e){var n=this;return Hn(t).get(e).next(function(t){return t?n.serializer.fromDbTarget(t):null})},t}();function Hn(t){return jr.getStore(t,yr.store)}function zn(t){return Fn.getStore(t,vr.store).get(vr.key).next(function(t){return v(null!==t,"Missing metadata row."),t})}function Wn(t){return zn(t).next(function(t){return t.highestListenSequenceNumber})}function Qn(t){return jr.getStore(t,gr.store)}var Kn=function(){function t(t){this.mapKeyFn=t,this.inner={}}return t.prototype.get=function(t){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0!==n)for(var r=0,i=n;r<i.length;r++){var o=i[r],s=o[1];if(o[0].isEqual(t))return s}},t.prototype.has=function(t){return void 0!==this.get(t)},t.prototype.set=function(t,e){var n=this.mapKeyFn(t),r=this.inner[n];if(void 0!==r){for(var i=0;i<r.length;i++)if(r[i][0].isEqual(t))return void(r[i]=[t,e]);r.push([t,e])}else this.inner[n]=[[t,e]]},t.prototype.delete=function(t){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)return!1;for(var r=0;r<n.length;r++)if(n[r][0].isEqual(t))return 1===n.length?delete this.inner[e]:n.splice(r,1),!0;return!1},t.prototype.forEach=function(t){x(this.inner,function(e,n){for(var r=0,i=n;r<i.length;r++){var o=i[r];t(o[0],o[1])}})},t.prototype.isEmpty=function(){return k(this.inner)},t}(),Gn=function(){function t(){this.changes=Te(),this.documentSizes=new Kn(function(t){return t.toString()})}return t.prototype.addEntry=function(t){var e=this.assertChanges();this.changes=e.insert(t.key,t)},t.prototype.getEntry=function(t,e){var n=this,r=this.assertChanges().get(e);return r?In.resolve(r):this.getFromCache(t,e).next(function(t){return null===t?(n.documentSizes.set(e,0),null):(n.documentSizes.set(e,t.size),t.maybeDocument)})},t.prototype.getEntries=function(t,e){var n=this;return this.getAllFromCache(t,e).next(function(t){var e=t.maybeDocuments;return t.sizeMap.forEach(function(t,e){n.documentSizes.set(t,e)}),e})},t.prototype.apply=function(t){var e=this.applyChanges(t);return this.changes=null,e},t.prototype.assertChanges=function(){return v(null!==this.changes,"Changes have already been applied."),this.changes},t}(),Yn="The remote document changelog no longer contains all changes for all local query views. It may be necessary to rebuild these views.",Xn=function(){function t(t,e,n){this.serializer=t,this.indexManager=e,this.keepDocumentChangeLog=n,this._lastProcessedDocumentChangeId=0}return Object.defineProperty(t.prototype,"lastProcessedDocumentChangeId",{get:function(){return this._lastProcessedDocumentChangeId},enumerable:!0,configurable:!0}),t.prototype.start=function(t){var e=Fn.getStore(t,wr.store);return this.synchronizeLastDocumentChangeId(e)},t.prototype.addEntries=function(t,e,n){var r=[];if(e.length>0){for(var i=$n(t),o=De(),s=0,a=e;s<a.length;s++){var u=a[s],l=u.key,c=u.doc;r.push(i.put(er(l),c)),o=o.add(l),r.push(this.indexManager.addToCollectionParentIndex(t,l.path.popLast()))}this.keepDocumentChangeLog&&r.push(tr(t).put({changes:this.serializer.toDbResourcePaths(o)})),r.push(this.updateSize(t,n))}return In.waitFor(r)},t.prototype.removeEntry=function(t,e){var n=$n(t),r=er(e);return n.get(r).next(function(t){return t?n.delete(r).next(function(){return nr(t)}):In.resolve(0)})},t.prototype.getEntry=function(t,e){var n=this;return $n(t).get(er(e)).next(function(t){return t?n.serializer.fromDbRemoteDocument(t):null})},t.prototype.getSizedEntry=function(t,e){var n=this;return $n(t).get(er(e)).next(function(t){return t?{maybeDocument:n.serializer.fromDbRemoteDocument(t),size:nr(t)}:null})},t.prototype.getEntries=function(t,e){var n=this,r=Ie();return this.forEachDbEntry(t,e,function(t,e){r=r.insert(t,e?n.serializer.fromDbRemoteDocument(e):null)}).next(function(){return r})},t.prototype.getSizedEntries=function(t,e){var n=this,r=Ie(),i=new dt(lt.comparator);return this.forEachDbEntry(t,e,function(t,e){e?(r=r.insert(t,n.serializer.fromDbRemoteDocument(e)),i=i.insert(t,nr(e))):(r=r.insert(t,null),i=i.insert(t,0))}).next(function(){return{maybeDocuments:r,sizeMap:i}})},t.prototype.forEachDbEntry=function(t,e,n){if(e.isEmpty())return In.resolve();var r=IDBKeyRange.bound(e.first().path.toArray(),e.last().path.toArray()),i=e.getIterator(),o=i.getNext();return $n(t).iterate({range:r},function(t,e,r){for(var s=lt.fromSegments(t);o&&lt.comparator(o,s)<0;)n(o,null),o=i.getNext();o&&o.isEqual(s)&&(n(o,e),o=i.hasNext()?i.getNext():null),o?r.skip(o.path.toArray()):r.done()}).next(function(){for(;o;)n(o,null),o=i.hasNext()?i.getNext():null})},t.prototype.getDocumentsMatchingQuery=function(t,e){var n=this;v(!e.isCollectionGroupQuery(),"CollectionGroup queries should be handled in LocalDocumentsView");var r=ke(),i=e.path.length+1,o=e.path.toArray(),s=IDBKeyRange.lowerBound(o);return $n(t).iterate({range:s},function(t,o,s){if(t.length===i){var a=n.serializer.fromDbRemoteDocument(o);e.path.isPrefixOf(a.key.path)?a instanceof ht&&e.matches(a)&&(r=r.insert(a.key,a)):s.done()}}).next(function(){return r})},t.prototype.getNewDocumentChanges=function(t){var e=this;v(this.keepDocumentChangeLog,"Can only call getNewDocumentChanges() when document change log is enabled");var n=De(),r=Te(),i=IDBKeyRange.lowerBound(this._lastProcessedDocumentChangeId+1),o=!0,s=tr(t);return s.iterate({range:i},function(t,r){if(o&&(o=!1,e._lastProcessedDocumentChangeId+1!==r.id))return e.synchronizeLastDocumentChangeId(s).next(function(){return In.reject(new E(w.DATA_LOSS,Yn))});n=n.unionWith(e.serializer.fromDbResourcePaths(r.changes)),e._lastProcessedDocumentChangeId=r.id}).next(function(){var i=[];return n.forEach(function(n){i.push(e.getEntry(t,n).next(function(t){var e=t||new pt(n,$t.forDeletedDoc());r=r.insert(n,e)}))}),In.waitFor(i)}).next(function(){return r})},t.prototype.removeDocumentChangesThroughChangeId=function(t,e){var n=IDBKeyRange.upperBound(e);return tr(t).delete(n)},t.prototype.synchronizeLastDocumentChangeId=function(t){var e=this;return this._lastProcessedDocumentChangeId=0,t.iterate({keysOnly:!0,reverse:!0},function(t,n,r){e._lastProcessedDocumentChangeId=t,r.done()})},t.prototype.newChangeBuffer=function(){return new Zn(this)},t.prototype.getSize=function(t){return this.getMetadata(t).next(function(t){return t.byteSize})},t.prototype.getMetadata=function(t){return Jn(t).get(mr.key).next(function(t){return v(!!t,"Missing document cache metadata"),t})},t.prototype.setMetadata=function(t,e){return Jn(t).put(mr.key,e)},t.prototype.updateSize=function(t,e){var n=this;return this.getMetadata(t).next(function(r){return r.byteSize+=e,n.setMetadata(t,r)})},t}();function Jn(t){return jr.getStore(t,mr.store)}var Zn=function(t){function e(e){var n=t.call(this)||this;return n.documentCache=e,n}return s.__extends(e,t),e.prototype.applyChanges=function(t){var e=this,n=this.assertChanges(),r=0,i=[];return n.forEach(function(t,n){var o=e.documentCache.serializer.toDbRemoteDocument(n),s=e.documentSizes.get(t);v(void 0!==s,"Attempting to change document "+t.toString()+" without having read it first");var a=nr(o);r+=a-s,i.push({key:t,doc:o})}),this.documentCache.addEntries(t,i,r)},e.prototype.getFromCache=function(t,e){return this.documentCache.getSizedEntry(t,e)},e.prototype.getAllFromCache=function(t,e){return this.documentCache.getSizedEntries(t,e)},e}(Gn);function $n(t){return jr.getStore(t,dr.store)}function tr(t){return jr.getStore(t,wr.store)}function er(t){return t.path.toArray()}function nr(t){var e;if(t.document)e=t.document;else if(t.unknownDocument)e=t.unknownDocument;else{if(!t.noDocument)throw g("Unknown remote document type");e=t.noDocument}return JSON.stringify(e).length}var rr=function(){function t(){this.collectionParentIndex=new ir}return t.prototype.addToCollectionParentIndex=function(t,e){return this.collectionParentIndex.add(e),In.resolve()},t.prototype.getCollectionParents=function(t,e){return In.resolve(this.collectionParentIndex.getEntries(e))},t}(),ir=function(){function t(){this.index={}}return t.prototype.add=function(t){v(t.length%2==1,"Expected a collection path.");var e=t.lastSegment(),n=t.popLast(),r=this.index[e]||new ne(st.comparator),i=!r.has(n);return this.index[e]=r.add(n),i},t.prototype.getEntries=function(t){return(this.index[t]||new ne(st.comparator)).toArray()},t}(),or=8,sr=function(){function t(t){this.serializer=t}return t.prototype.createOrUpgrade=function(t,e,n,r){var i=this;v(n<r&&n>=0&&r<=or,"Unexpected schema upgrade from v"+n+" to v{toVersion}."),n<1&&r>=1&&(function(t){t.createObjectStore(ur.store)}(t),function(t){t.createObjectStore(lr.store,{keyPath:lr.keyPath}),t.createObjectStore(cr.store,{keyPath:cr.keyPath,autoIncrement:!0}).createIndex(cr.userMutationsIndex,cr.userMutationsKeyPath,{unique:!0}),t.createObjectStore(hr.store)}(t),br(t),function(t){t.createObjectStore(dr.store)}(t));var o=In.resolve();return n<3&&r>=3&&(0!==n&&(function(t){t.deleteObjectStore(gr.store),t.deleteObjectStore(yr.store),t.deleteObjectStore(vr.store)}(t),br(t)),o=o.next(function(){return function(t){var e=t.store(vr.store),n=new vr(0,0,$t.MIN.toTimestamp(),0);return e.put(vr.key,n)}(e)})),n<4&&r>=4&&(0!==n&&(o=o.next(function(){return function(t,e){return e.store(cr.store).loadAll().next(function(n){t.deleteObjectStore(cr.store),t.createObjectStore(cr.store,{keyPath:cr.keyPath,autoIncrement:!0}).createIndex(cr.userMutationsIndex,cr.userMutationsKeyPath,{unique:!0});var r=e.store(cr.store),i=n.map(function(t){return r.put(t)});return In.waitFor(i)})}(t,e)})),o=o.next(function(){!function(t){t.createObjectStore(Er.store,{keyPath:Er.keyPath})}(t),function(t){t.createObjectStore(wr.store,{keyPath:"id",autoIncrement:!0})}(t)})),n<5&&r>=5&&(o=o.next(function(){return i.removeAcknowledgedMutations(e)})),n<6&&r>=6&&(o=o.next(function(){return function(t){t.createObjectStore(mr.store)}(t),i.addDocumentGlobal(e)})),n<7&&r>=7&&(o=o.next(function(){return i.ensureSequenceNumbers(e)})),n<8&&r>=8&&(o=o.next(function(){return i.createCollectionParentIndex(t,e)})),o},t.prototype.addDocumentGlobal=function(t){var e=0;return t.store(dr.store).iterate(function(t,n){e+=nr(n)}).next(function(){var n=new mr(e);return t.store(mr.store).put(mr.key,n)})},t.prototype.removeAcknowledgedMutations=function(t){var e=this,n=t.store(lr.store),r=t.store(cr.store);return n.loadAll().next(function(n){return In.forEach(n,function(n){var i=IDBKeyRange.bound([n.userId,-1],[n.userId,n.lastAcknowledgedBatchId]);return r.loadAll(cr.userMutationsIndex,i).next(function(r){return In.forEach(r,function(r){v(r.userId===n.userId,"Cannot process batch "+r.batchId+" from unexpected user");var i=e.serializer.fromDbMutationBatch(r);return An(t,n.userId,i).next(function(){})})})})})},t.prototype.ensureSequenceNumbers=function(t){var e=t.store(gr.store),n=t.store(dr.store);return Wn(t).next(function(t){var r=[];return n.iterate(function(n,i){var o=new st(n),s=function(t){return[0,bn(t)]}(o);r.push(e.get(s).next(function(n){return n?In.resolve():function(n){return e.put(new gr(0,bn(n),t))}(o)}))}).next(function(){return In.waitFor(r)})})},t.prototype.createCollectionParentIndex=function(t,e){t.createObjectStore(_r.store,{keyPath:_r.keyPath});var n=e.store(_r.store),r=new ir,i=function(t){if(r.add(t)){var e=t.lastSegment(),i=t.popLast();return n.put({collectionId:e,parent:bn(i)})}};return e.store(dr.store).iterate({keysOnly:!0},function(t,e){var n=new st(t);return i(n.popLast())}).next(function(){return e.store(hr.store).iterate({keysOnly:!0},function(t,e){var n=Sn(t[1]);return i(n.popLast())})})},t}(),ar=function(){return function(t,e){this.seconds=t,this.nanoseconds=e}}(),ur=function(){function t(t,e,n){this.ownerId=t,this.allowTabSynchronization=e,this.leaseTimestampMs=n}return t.store="owner",t.key="owner",t}(),lr=function(){function t(t,e,n){this.userId=t,this.lastAcknowledgedBatchId=e,this.lastStreamToken=n}return t.store="mutationQueues",t.keyPath="userId",t}(),cr=function(){function t(t,e,n,r,i){this.userId=t,this.batchId=e,this.localWriteTimeMs=n,this.baseMutations=r,this.mutations=i}return t.store="mutations",t.keyPath="batchId",t.userMutationsIndex="userMutationsIndex",t.userMutationsKeyPath=["userId","batchId"],t}(),hr=function(){function t(){}return t.prefixForUser=function(t){return[t]},t.prefixForPath=function(t,e){return[t,bn(e)]},t.key=function(t,e,n){return[t,bn(e),n]},t.store="documentMutations",t.PLACEHOLDER=new t,t}(),pr=function(){return function(t,e){this.path=t,this.readTime=e}}(),fr=function(){return function(t,e){this.path=t,this.version=e}}(),dr=function(){function t(t,e,n,r){this.unknownDocument=t,this.noDocument=e,this.document=n,this.hasCommittedMutations=r}return t.store="remoteDocuments",t}(),mr=function(){function t(t){this.byteSize=t}return t.store="remoteDocumentGlobal",t.key="remoteDocumentGlobalKey",t}(),yr=function(){function t(t,e,n,r,i,o){this.targetId=t,this.canonicalId=e,this.readTime=n,this.resumeToken=r,this.lastListenSequenceNumber=i,this.query=o}return t.store="targets",t.keyPath="targetId",t.queryTargetsIndexName="queryTargetsIndex",t.queryTargetsKeyPath=["canonicalId","targetId"],t}(),gr=function(){function t(t,e,n){this.targetId=t,this.path=e,this.sequenceNumber=n,v(0===t==(void 0!==n),"A target-document row must either have targetId == 0 and a defined sequence number, or a non-zero targetId and no sequence number")}return t.store="targetDocuments",t.keyPath=["targetId","path"],t.documentTargetsIndex="documentTargetsIndex",t.documentTargetsKeyPath=["path","targetId"],t}(),vr=function(){function t(t,e,n,r){this.highestTargetId=t,this.highestListenSequenceNumber=e,this.lastRemoteSnapshotVersion=n,this.targetCount=r}return t.key="targetGlobalKey",t.store="targetGlobal",t}(),_r=function(){function t(t,e){this.collectionId=t,this.parent=e}return t.store="collectionParents",t.keyPath=["collectionId","parent"],t}();function br(t){t.createObjectStore(gr.store,{keyPath:gr.keyPath}).createIndex(gr.documentTargetsIndex,gr.documentTargetsKeyPath,{unique:!0}),t.createObjectStore(yr.store,{keyPath:yr.keyPath}).createIndex(yr.queryTargetsIndexName,yr.queryTargetsKeyPath,{unique:!0}),t.createObjectStore(vr.store)}var wr=function(){function t(t){this.changes=t}return t.store="remoteDocumentChanges",t.keyPath="id",t}(),Er=function(){function t(t,e,n,r,i){this.clientId=t,this.updateTimeMs=e,this.networkEnabled=n,this.inForeground=r,this.lastProcessedDocumentChangeId=i}return t.store="clientMetadata",t.keyPath="clientId",t}(),Sr=[lr.store,cr.store,hr.store,dr.store,yr.store,ur.store,vr.store,gr.store].concat([Er.store,wr.store]).concat([mr.store]).concat([_r.store]),Cr=function(){function t(){this.collectionParentsCache=new ir}return t.prototype.addToCollectionParentIndex=function(t,e){if(v(e.length%2==1,"Expected a collection path."),this.collectionParentsCache.add(e)){v(e.length>=1,"Invalid collection path.");var n=e.lastSegment(),r=e.popLast();return Tr(t).put({collectionId:n,parent:bn(r)})}return In.resolve()},t.prototype.getCollectionParents=function(t,e){var n=[],r=IDBKeyRange.bound([e,""],[Y(e),""],!1,!0);return Tr(t).loadAll(r).next(function(t){for(var r=0,i=t;r<i.length;r++){var o=i[r];if(o.collectionId!==e)break;n.push(Sn(o.parent))}return n})},t}();function Tr(t){return jr.getStore(t,_r.store)}var Ir=function(){function t(t){this.remoteSerializer=t}return t.prototype.fromDbRemoteDocument=function(t){if(t.document)return this.remoteSerializer.fromDocument(t.document,!!t.hasCommittedMutations);if(t.noDocument){var e=lt.fromSegments(t.noDocument.path),n=this.fromDbTimestamp(t.noDocument.readTime);return new pt(e,n,{hasCommittedMutations:!!t.hasCommittedMutations})}return t.unknownDocument?(e=lt.fromSegments(t.unknownDocument.path),n=this.fromDbTimestamp(t.unknownDocument.version),new ft(e,n)):g("Unexpected DbRemoteDocument")},t.prototype.toDbRemoteDocument=function(t){if(t instanceof ht){var e=t.proto?t.proto:this.remoteSerializer.toDocument(t);return new dr(null,null,e,i=t.hasCommittedMutations)}if(t instanceof pt){var n=t.key.path.toArray(),r=this.toDbTimestamp(t.version),i=t.hasCommittedMutations;return new dr(null,new pr(n,r),null,i)}return t instanceof ft?(n=t.key.path.toArray(),r=this.toDbTimestamp(t.version),new dr(new fr(n,r),null,null,!0)):g("Unexpected MaybeDocumment")},t.prototype.toDbTimestamp=function(t){var e=t.toTimestamp();return new ar(e.seconds,e.nanoseconds)},t.prototype.fromDbTimestamp=function(t){var e=new et(t.seconds,t.nanoseconds);return $t.fromTimestamp(e)},t.prototype.toDbMutationBatch=function(t,e){var n=this,r=e.baseMutations.map(function(t){return n.remoteSerializer.toMutation(t)}),i=e.mutations.map(function(t){return n.remoteSerializer.toMutation(t)});return new cr(t,e.batchId,e.localWriteTime.toMillis(),r,i)},t.prototype.fromDbMutationBatch=function(t){var e=this,n=(t.baseMutations||[]).map(function(t){return e.remoteSerializer.fromMutation(t)}),r=t.mutations.map(function(t){return e.remoteSerializer.fromMutation(t)}),i=et.fromMillis(t.localWriteTimeMs);return new Cn(t.batchId,i,n,r)},t.prototype.toDbResourcePaths=function(t){var e=[];return t.forEach(function(t){e.push(bn(t.path))}),e},t.prototype.fromDbResourcePaths=function(t){for(var e=De(),n=0,r=t;n<r.length;n++)e=e.add(new lt(Sn(r[n])));return e},t.prototype.fromDbTarget=function(t){var e,n=this.fromDbTimestamp(t.readTime);return e=void 0!==t.query.documents?this.remoteSerializer.fromDocumentsTarget(t.query):this.remoteSerializer.fromQueryTarget(t.query),new ee(e,t.targetId,te.Listen,t.lastListenSequenceNumber,n,t.resumeToken)},t.prototype.toDbTarget=function(t){v(te.Listen===t.purpose,"Only queries with purpose "+te.Listen+" may be stored, got "+t.purpose);var e,n,r=this.toDbTimestamp(t.snapshotVersion);return e=t.query.isDocumentQuery()?this.remoteSerializer.toDocumentsTarget(t.query):this.remoteSerializer.toQueryTarget(t.query),t.resumeToken instanceof Uint8Array?(v("YES"===process.env.USE_MOCK_PERSISTENCE,"Persisting non-string stream tokens is only supported with mock persistence ."),n=t.resumeToken.toString()):n=t.resumeToken,new yr(t.targetId,t.query.canonicalId(),r,n,t.sequenceNumber,e)},t}();function xr(t,e){var n=t[1],r=e[1],i=K(t[0],e[0]);return 0===i?K(n,r):i}var kr=function(){function t(t){this.maxElements=t,this.buffer=new ne(xr),this.previousIndex=0}return t.prototype.nextIndex=function(){return++this.previousIndex},t.prototype.addElement=function(t){var e=[t,this.nextIndex()];if(this.buffer.size<this.maxElements)this.buffer=this.buffer.add(e);else{var n=this.buffer.last();xr(e,n)<0&&(this.buffer=this.buffer.delete(n).add(e))}},Object.defineProperty(t.prototype,"maxValue",{get:function(){return this.buffer.last()[0]},enumerable:!0,configurable:!0}),t}(),Ar={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0},Or=function(){function t(t,e,n){this.cacheSizeCollectionThreshold=t,this.percentileToCollect=e,this.maximumSequenceNumbersToCollect=n}return t.withCacheSize=function(e){return new t(e,t.DEFAULT_COLLECTION_PERCENTILE,t.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)},t.COLLECTION_DISABLED=-1,t.MINIMUM_CACHE_SIZE_BYTES=1048576,t.DEFAULT=new t(t.DEFAULT_CACHE_SIZE_BYTES=41943040,t.DEFAULT_COLLECTION_PERCENTILE=10,t.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3),t.DISABLED=new t(t.COLLECTION_DISABLED,0,0),t}(),Nr=function(){function t(t,e,n){this.garbageCollector=t,this.asyncQueue=e,this.localStore=n,this.gcTask=null}return t.prototype.start=function(){v(null===this.gcTask,"Cannot start an already started LruScheduler"),this.garbageCollector.params.cacheSizeCollectionThreshold!==Or.COLLECTION_DISABLED&&this.scheduleGC()},t.prototype.stop=function(){this.gcTask&&(this.gcTask.cancel(),this.gcTask=null)},Object.defineProperty(t.prototype,"started",{get:function(){return null!==this.gcTask},enumerable:!0,configurable:!0}),t.prototype.scheduleGC=function(){var t=this;v(null===this.gcTask,"Cannot schedule GC while a task is pending");var e=this.hasRun?3e5:6e4;d("LruGarbageCollector","Garbage collection scheduled in "+e+"ms"),this.gcTask=this.asyncQueue.enqueueAfterDelay(hn.LruGarbageCollection,e,function(){return t.gcTask=null,t.hasRun=!0,t.localStore.collectGarbage(t.garbageCollector).then(function(){return t.scheduleGC()}).catch(Ur)})},t}(),Dr=function(){function t(t,e){this.delegate=t,this.params=e}return t.prototype.calculateTargetCount=function(t,e){return this.delegate.getSequenceNumberCount(t).next(function(t){return Math.floor(e/100*t)})},t.prototype.nthSequenceNumber=function(t,e){var n=this;if(0===e)return In.resolve(pn.INVALID);var r=new kr(e);return this.delegate.forEachTarget(t,function(t){return r.addElement(t.sequenceNumber)}).next(function(){return n.delegate.forEachOrphanedDocumentSequenceNumber(t,function(t){return r.addElement(t)})}).next(function(){return r.maxValue})},t.prototype.removeTargets=function(t,e,n){return this.delegate.removeTargets(t,e,n)},t.prototype.removeOrphanedDocuments=function(t,e){return this.delegate.removeOrphanedDocuments(t,e)},t.prototype.collect=function(t,e){var n=this;return this.params.cacheSizeCollectionThreshold===Or.COLLECTION_DISABLED?(d("LruGarbageCollector","Garbage collection skipped; disabled"),In.resolve(Ar)):this.getCacheSize(t).next(function(r){return r<n.params.cacheSizeCollectionThreshold?(d("LruGarbageCollector","Garbage collection skipped; Cache size "+r+" is lower than threshold "+n.params.cacheSizeCollectionThreshold),Ar):n.runGarbageCollection(t,e)})},t.prototype.getCacheSize=function(t){return this.delegate.getCacheSize(t)},t.prototype.runGarbageCollection=function(t,e){var n,r,i,o,s,a,u,l,c=this;return o=Date.now(),this.calculateTargetCount(t,this.params.percentileToCollect).next(function(e){return e>c.params.maximumSequenceNumbersToCollect?(d("LruGarbageCollector","Capping sequence numbers to collect down to the maximum of "+c.params.maximumSequenceNumbersToCollect+" from "+e),r=c.params.maximumSequenceNumbersToCollect):r=e,s=Date.now(),c.nthSequenceNumber(t,r)}).next(function(r){return n=r,a=Date.now(),c.removeTargets(t,n,e)}).next(function(e){return i=e,u=Date.now(),c.removeOrphanedDocuments(t,n)}).next(function(t){return l=Date.now(),p()<=h.DEBUG&&d("LruGarbageCollector","LRU Garbage Collection\n\tCounted targets in "+(s-o)+"ms\n\tDetermined least recently used "+r+" in "+(a-s)+"ms\n\tRemoved "+i+" targets in "+(u-a)+"ms\n\tRemoved "+t+" documents in "+(l-u)+"ms\nTotal Duration: "+(l-o)+"ms"),In.resolve({didRun:!0,sequenceNumbersCollected:r,targetsRemoved:i,documentsRemoved:t})})},t}(),Rr="IndexedDbPersistence",Pr="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.",Mr="Another tab has exclusive access to the persistence layer. To allow shared access, make sure to invoke `enablePersistence()` with `experimentalTabSynchronization:true` in all tabs.",Lr="This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.",Fr=function(t){function e(e,n){var r=t.call(this)||this;return r.simpleDbTransaction=e,r.currentSequenceNumber=n,r}return s.__extends(e,t),e}(function(){return function(){}}()),jr=function(){function t(e,n,r,i,o,s,a){if(this.persistenceKey=e,this.clientId=n,this.queue=i,this.multiClientParams=a,this._started=!1,this.isPrimary=!1,this.networkEnabled=!0,this.inForeground=!1,this.lastGarbageCollectionTime=Number.NEGATIVE_INFINITY,this.primaryStateListener=function(t){return Promise.resolve()},!t.isAvailable())throw new E(w.UNIMPLEMENTED,Lr);if(this.referenceDelegate=new Br(this,s),this.dbName=e+t.MAIN_DATABASE,this.serializer=new Ir(o),this.document=r.document,this.allowTabSynchronization=void 0!==a,this.queryCache=new Bn(this.referenceDelegate,this.serializer),this.indexManager=new Cr,this.remoteDocumentCache=new Xn(this.serializer,this.indexManager,this.allowTabSynchronization),!r.window||!r.window.localStorage)throw new E(w.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");this.window=r.window,this.webStorage=this.window.localStorage}return t.getStore=function(t,e){if(t instanceof Fr)return Fn.getStore(t.simpleDbTransaction,e);throw g("IndexedDbPersistence must use instances of IndexedDbTransaction")},t.createIndexedDbPersistence=function(e,n,r,i,o,a){return s.__awaiter(this,void 0,void 0,function(){var u;return s.__generator(this,function(s){switch(s.label){case 0:return[4,(u=new t(e,n,r,i,o,a)).start()];case 1:return s.sent(),[2,u]}})})},t.createMultiClientIndexedDbPersistence=function(e,n,r,i,o,a,u){return s.__awaiter(this,void 0,void 0,function(){var l;return s.__generator(this,function(s){switch(s.label){case 0:return[4,(l=new t(e,n,r,i,o,a,u)).start()];case 1:return s.sent(),[2,l]}})})},t.prototype.start=function(){var t=this;return v(!this.started,"IndexedDbPersistence double-started!"),v(null!==this.window,"Expected 'window' to be defined"),Fn.openOrCreate(this.dbName,or,new sr(this.serializer)).then(function(e){return t.simpleDb=e,t.updateClientMetadataAndTryBecomePrimary()}).then(function(){return t.attachVisibilityHandler(),t.attachWindowUnloadHook(),t.scheduleClientMetadataAndPrimaryLeaseRefreshes(),t.startRemoteDocumentCache()}).then(function(){return t.simpleDb.runTransaction("readonly",[vr.store],function(e){return Wn(e).next(function(e){t.listenSequence=new pn(e,t.multiClientParams?t.multiClientParams.sequenceNumberSyncer:void 0)})})}).then(function(){t._started=!0}).catch(function(e){return t.simpleDb&&t.simpleDb.close(),Promise.reject(e)})},t.prototype.startRemoteDocumentCache=function(){var t=this;return this.simpleDb.runTransaction("readonly",Sr,function(e){return t.remoteDocumentCache.start(e)})},t.prototype.setPrimaryStateListener=function(t){var e=this;return this.primaryStateListener=function(n){return s.__awaiter(e,void 0,void 0,function(){return s.__generator(this,function(e){return this.started?[2,t(n)]:[2]})})},t(this.isPrimary)},t.prototype.setNetworkEnabled=function(t){var e=this;this.networkEnabled!==t&&(this.networkEnabled=t,this.queue.enqueueAndForget(function(){return s.__awaiter(e,void 0,void 0,function(){return s.__generator(this,function(t){switch(t.label){case 0:return this.started?[4,this.updateClientMetadataAndTryBecomePrimary()]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}})})}))},t.prototype.updateClientMetadataAndTryBecomePrimary=function(){var t=this;return this.simpleDb.runTransaction("readwrite",Sr,function(e){return qr(e).put(new Er(t.clientId,Date.now(),t.networkEnabled,t.inForeground,t.remoteDocumentCache.lastProcessedDocumentChangeId)).next(function(){if(t.isPrimary)return t.verifyPrimaryLease(e).next(function(e){e||(t.isPrimary=!1,t.queue.enqueueAndForget(function(){return t.primaryStateListener(!1)}))})}).next(function(){return t.canActAsPrimary(e)}).next(function(n){var r=t.isPrimary;return t.isPrimary=n,r!==t.isPrimary&&t.queue.enqueueAndForget(function(){return t.primaryStateListener(t.isPrimary)}),r&&!t.isPrimary?t.releasePrimaryLeaseIfHeld(e):t.isPrimary?t.acquireOrExtendPrimaryLease(e):void 0})})},t.prototype.verifyPrimaryLease=function(t){var e=this;return Vr(t).get(ur.key).next(function(t){return In.resolve(e.isLocalClient(t))})},t.prototype.removeClientMetadata=function(t){return qr(t).delete(this.clientId)},t.prototype.maybeGarbageCollectMultiClientState=function(){return s.__awaiter(this,void 0,void 0,function(){var e,n,r=this;return s.__generator(this,function(i){switch(i.label){case 0:return!this.isPrimary||this.isWithinAge(this.lastGarbageCollectionTime,18e5)?[3,2]:(this.lastGarbageCollectionTime=Date.now(),n=[],[4,this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",function(i){var o=t.getStore(i,Er.store);return o.loadAll().next(function(t){e=r.filterActiveClients(t,18e5),n=t.filter(function(t){return-1===e.indexOf(t)})}).next(function(){return In.forEach(n,function(t){return o.delete(t.clientId)})}).next(function(){if((e=e.filter(function(t){return t.clientId!==r.clientId})).length>0){var t=e.map(function(t){return t.lastProcessedDocumentChangeId||0}),n=Math.min.apply(Math,t);return r.remoteDocumentCache.removeDocumentChangesThroughChangeId(i,n)}})})]);case 1:i.sent(),n.forEach(function(t){r.window.localStorage.removeItem(r.zombiedClientLocalStorageKey(t.clientId))}),i.label=2;case 2:return[2]}})})},t.prototype.scheduleClientMetadataAndPrimaryLeaseRefreshes=function(){var t=this;this.clientMetadataRefresher=this.queue.enqueueAfterDelay(hn.ClientMetadataRefresh,4e3,function(){return t.updateClientMetadataAndTryBecomePrimary().then(function(){return t.maybeGarbageCollectMultiClientState()}).then(function(){return t.scheduleClientMetadataAndPrimaryLeaseRefreshes()})})},t.prototype.isLocalClient=function(t){return!!t&&t.ownerId===this.clientId},t.prototype.canActAsPrimary=function(t){var e=this;return Vr(t).get(ur.key).next(function(n){if(null!==n&&e.isWithinAge(n.leaseTimestampMs,5e3)&&!e.isClientZombied(n.ownerId)){if(e.isLocalClient(n)&&e.networkEnabled)return!0;if(!e.isLocalClient(n)){if(!n.allowTabSynchronization)throw new E(w.FAILED_PRECONDITION,Mr);return!1}}return!(!e.networkEnabled||!e.inForeground)||qr(t).loadAll().next(function(t){return void 0===e.filterActiveClients(t,5e3).find(function(t){return!(e.clientId===t.clientId||!(!e.networkEnabled&&t.networkEnabled||!e.inForeground&&t.inForeground&&e.networkEnabled===t.networkEnabled))})})}).next(function(t){return e.isPrimary!==t&&d(Rr,"Client "+(t?"is":"is not")+" eligible for a primary lease."),t})},t.prototype.shutdown=function(t){return s.__awaiter(this,void 0,void 0,function(){var e=this;return s.__generator(this,function(n){switch(n.label){case 0:return this._started=!1,this.markClientZombied(),this.clientMetadataRefresher&&this.clientMetadataRefresher.cancel(),this.detachVisibilityHandler(),this.detachWindowUnloadHook(),[4,this.simpleDb.runTransaction("readwrite",[ur.store,Er.store],function(t){return e.releasePrimaryLeaseIfHeld(t).next(function(){return e.removeClientMetadata(t)})})];case 1:return n.sent(),this.simpleDb.close(),this.removeClientZombiedEntry(),t?[4,Fn.delete(this.dbName)]:[3,3];case 2:n.sent(),n.label=3;case 3:return[2]}})})},t.prototype.filterActiveClients=function(t,e){var n=this;return t.filter(function(t){return n.isWithinAge(t.updateTimeMs,e)&&!n.isClientZombied(t.clientId)})},t.prototype.getActiveClients=function(){var t=this;return this.simpleDb.runTransaction("readonly",[Er.store],function(e){return qr(e).loadAll().next(function(e){return t.filterActiveClients(e,18e5).map(function(t){return t.clientId})})})},Object.defineProperty(t.prototype,"started",{get:function(){return this._started},enumerable:!0,configurable:!0}),t.prototype.getMutationQueue=function(t){return v(this.started,"Cannot initialize MutationQueue before persistence is started."),xn.forUser(t,this.serializer,this.indexManager,this.referenceDelegate)},t.prototype.getQueryCache=function(){return v(this.started,"Cannot initialize QueryCache before persistence is started."),this.queryCache},t.prototype.getRemoteDocumentCache=function(){return v(this.started,"Cannot initialize RemoteDocumentCache before persistence is started."),this.remoteDocumentCache},t.prototype.getIndexManager=function(){return v(this.started,"Cannot initialize IndexManager before persistence is started."),this.indexManager},t.prototype.runTransaction=function(t,e,n){var r=this;return d(Rr,"Starting transaction:",t),this.simpleDb.runTransaction("readonly"===e?"readonly":"readwrite",Sr,function(i){return"readwrite-primary"===e?r.verifyPrimaryLease(i).next(function(e){if(!e)throw m("Failed to obtain primary lease for action '"+t+"'."),r.isPrimary=!1,r.queue.enqueueAndForget(function(){return r.primaryStateListener(!1)}),new E(w.FAILED_PRECONDITION,Pr);return n(new Fr(i,r.listenSequence.next()))}).next(function(t){return r.acquireOrExtendPrimaryLease(i).next(function(){return t})}):r.verifyAllowTabSynchronization(i).next(function(){return n(new Fr(i,r.listenSequence.next()))})})},t.prototype.verifyAllowTabSynchronization=function(t){var e=this;return Vr(t).get(ur.key).next(function(t){if(null!==t&&e.isWithinAge(t.leaseTimestampMs,5e3)&&!e.isClientZombied(t.ownerId)&&!e.isLocalClient(t)&&!t.allowTabSynchronization)throw new E(w.FAILED_PRECONDITION,Mr)})},t.prototype.acquireOrExtendPrimaryLease=function(t){var e=new ur(this.clientId,this.allowTabSynchronization,Date.now());return Vr(t).put(ur.key,e)},t.isAvailable=function(){return Fn.isAvailable()},t.buildStoragePrefix=function(t){var e=t.databaseId.projectId;return t.databaseId.isDefaultDatabase||(e+="."+t.databaseId.database),"firestore/"+t.persistenceKey+"/"+e+"/"},t.prototype.releasePrimaryLeaseIfHeld=function(t){var e=this,n=Vr(t);return n.get(ur.key).next(function(t){return e.isLocalClient(t)?(d(Rr,"Releasing primary lease."),n.delete(ur.key)):In.resolve()})},t.prototype.isWithinAge=function(t,e){var n=Date.now();return!(t<n-e||t>n&&(m("Detected an update time that is in the future: "+t+" > "+n),1))},t.prototype.attachVisibilityHandler=function(){var t=this;null!==this.document&&"function"==typeof this.document.addEventListener&&(this.documentVisibilityHandler=function(){t.queue.enqueueAndForget(function(){return t.inForeground="visible"===t.document.visibilityState,t.updateClientMetadataAndTryBecomePrimary()})},this.document.addEventListener("visibilitychange",this.documentVisibilityHandler),this.inForeground="visible"===this.document.visibilityState)},t.prototype.detachVisibilityHandler=function(){this.documentVisibilityHandler&&(v(null!==this.document&&"function"==typeof this.document.addEventListener,"Expected 'document.addEventListener' to be a function"),this.document.removeEventListener("visibilitychange",this.documentVisibilityHandler),this.documentVisibilityHandler=null)},t.prototype.attachWindowUnloadHook=function(){var t=this;"function"==typeof this.window.addEventListener&&(this.windowUnloadHandler=function(){t.markClientZombied(),t.queue.enqueueAndForget(function(){return t.shutdown()})},this.window.addEventListener("unload",this.windowUnloadHandler))},t.prototype.detachWindowUnloadHook=function(){this.windowUnloadHandler&&(v("function"==typeof this.window.removeEventListener,"Expected 'window.removeEventListener' to be a function"),this.window.removeEventListener("unload",this.windowUnloadHandler),this.windowUnloadHandler=null)},t.prototype.isClientZombied=function(t){try{var e=null!==this.webStorage.getItem(this.zombiedClientLocalStorageKey(t));return d(Rr,"Client '"+t+"' "+(e?"is":"is not")+" zombied in LocalStorage"),e}catch(n){return m(Rr,"Failed to get zombied client id.",n),!1}},t.prototype.markClientZombied=function(){try{this.webStorage.setItem(this.zombiedClientLocalStorageKey(this.clientId),String(Date.now()))}catch(t){m("Failed to set zombie client id.",t)}},t.prototype.removeClientZombiedEntry=function(){try{this.webStorage.removeItem(this.zombiedClientLocalStorageKey(this.clientId))}catch(t){}},t.prototype.zombiedClientLocalStorageKey=function(t){return"firestore_zombie_"+this.persistenceKey+"_"+t},t.MAIN_DATABASE="main",t}();function Ur(t){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(e){if(!function(t){return t.code===w.FAILED_PRECONDITION&&t.message===Pr}(t))throw t;return d(Rr,"Unexpectedly lost primary lease"),[2]})})}function Vr(t){return t.store(ur.store)}function qr(t){return t.store(Er.store)}var Br=function(){function t(t,e){this.db=t,this.garbageCollector=new Dr(this,e)}return t.prototype.getSequenceNumberCount=function(t){var e=this.orphanedDocmentCount(t);return this.db.getQueryCache().getQueryCount(t).next(function(t){return e.next(function(e){return t+e})})},t.prototype.orphanedDocmentCount=function(t){var e=0;return this.forEachOrphanedDocumentSequenceNumber(t,function(t){e++}).next(function(){return e})},t.prototype.forEachTarget=function(t,e){return this.db.getQueryCache().forEachTarget(t,e)},t.prototype.forEachOrphanedDocumentSequenceNumber=function(t,e){return this.forEachOrphanedDocument(t,function(t,n){return e(n)})},t.prototype.setInMemoryPins=function(t){this.inMemoryPins=t},t.prototype.addReference=function(t,e){return Hr(t,e)},t.prototype.removeReference=function(t,e){return Hr(t,e)},t.prototype.removeTargets=function(t,e,n){return this.db.getQueryCache().removeTargets(t,e,n)},t.prototype.removeMutationReference=function(t,e){return Hr(t,e)},t.prototype.isPinned=function(t,e){return this.inMemoryPins.containsKey(e)?In.resolve(!0):function(t,e){var n=!1;return Rn(t).iterateSerial(function(r){return kn(t,r,e).next(function(t){return t&&(n=!0),In.resolve(!t)})}).next(function(){return n})}(t,e)},t.prototype.removeOrphanedDocuments=function(t,e){var n=this,r=0,i=0,o=[];return this.forEachOrphanedDocument(t,function(s,a){if(a<=e){var u=n.isPinned(t,s).next(function(e){if(!e)return r++,n.removeOrphanedDocument(t,s).next(function(t){i+=t})});o.push(u)}}).next(function(){return In.waitFor(o)}).next(function(){return n.db.getRemoteDocumentCache().updateSize(t,-i)}).next(function(){return r})},t.prototype.removeOrphanedDocument=function(t,e){var n,r=0,i=this.db.getRemoteDocumentCache();return In.waitFor([Qn(t).delete((n=e,[0,bn(n.path)])),i.removeEntry(t,e).next(function(t){r+=t})]).next(function(){return r})},t.prototype.removeTarget=function(t,e){var n=e.copy({sequenceNumber:t.currentSequenceNumber});return this.db.getQueryCache().updateQueryData(t,n)},t.prototype.updateLimboDocument=function(t,e){return Hr(t,e)},t.prototype.forEachOrphanedDocument=function(t,e){var n,r=Qn(t),i=pn.INVALID;return r.iterate({index:gr.documentTargetsIndex},function(t,r){var o=r.path,s=r.sequenceNumber;0===t[0]?(i!==pn.INVALID&&e(new lt(Sn(n)),i),i=s,n=o):i=pn.INVALID}).next(function(){i!==pn.INVALID&&e(new lt(Sn(n)),i)})},t.prototype.getCacheSize=function(t){return this.db.getRemoteDocumentCache().getSize(t)},t}();function Hr(t,e){return Qn(t).put(function(t,e){return new gr(0,bn(t.path),e)}(e,t.currentSequenceNumber))}var zr=function(){function t(t,e,n){this.remoteDocumentCache=t,this.mutationQueue=e,this.indexManager=n}return t.prototype.getDocument=function(t,e){var n=this;return this.mutationQueue.getAllMutationBatchesAffectingDocumentKey(t,e).next(function(r){return n.getDocumentInternal(t,e,r)})},t.prototype.getDocumentInternal=function(t,e,n){return this.remoteDocumentCache.getEntry(t,e).next(function(t){for(var r=0,i=n;r<i.length;r++)t=i[r].applyToLocalView(e,t);return t})},t.prototype.applyLocalMutationsToDocuments=function(t,e,n){var r=Ie();return e.forEach(function(t,e){for(var i=0,o=n;i<o.length;i++)e=o[i].applyToLocalView(t,e);r=r.insert(t,e)}),r},t.prototype.getDocuments=function(t,e){var n=this;return this.remoteDocumentCache.getEntries(t,e).next(function(e){return n.getLocalViewOfDocuments(t,e)})},t.prototype.getLocalViewOfDocuments=function(t,e){var n=this;return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t,e).next(function(r){var i=n.applyLocalMutationsToDocuments(t,e,r),o=Te();return i.forEach(function(t,e){e||(e=new pt(t,$t.forDeletedDoc())),o=o.insert(t,e)}),o})},t.prototype.getDocumentsMatchingQuery=function(t,e){return e.isDocumentQuery()?this.getDocumentsMatchingDocumentQuery(t,e.path):e.isCollectionGroupQuery()?this.getDocumentsMatchingCollectionGroupQuery(t,e):this.getDocumentsMatchingCollectionQuery(t,e)},t.prototype.getDocumentsMatchingDocumentQuery=function(t,e){return this.getDocument(t,new lt(e)).next(function(t){var e=ke();return t instanceof ht&&(e=e.insert(t.key,t)),e})},t.prototype.getDocumentsMatchingCollectionGroupQuery=function(t,e){var n=this;v(e.path.isEmpty(),"Currently we only support collection group queries at the root.");var r=e.collectionGroup,i=ke();return this.indexManager.getCollectionParents(t,r).next(function(o){return In.forEach(o,function(o){var s=e.asCollectionQueryAtPath(o.child(r));return n.getDocumentsMatchingCollectionQuery(t,s).next(function(t){t.forEach(function(t,e){i=i.insert(t,e)})})}).next(function(){return i})})},t.prototype.getDocumentsMatchingCollectionQuery=function(t,e){var n,r=this;return this.remoteDocumentCache.getDocumentsMatchingQuery(t,e).next(function(i){return n=i,r.mutationQueue.getAllMutationBatchesAffectingQuery(t,e)}).next(function(t){for(var r=0,i=t;r<i.length;r++)for(var o=i[r],s=0,a=o.mutations;s<a.length;s++){var u=a[s],l=u.key;if(e.path.isImmediateParentOf(l.path)){var c=n.get(l),h=u.applyToLocalView(c,c,o.localWriteTime);n=h instanceof ht?n.insert(l,h):n.remove(l)}}}).next(function(){return n.forEach(function(t,r){e.matches(r)||(n=n.remove(t))}),n})},t}(),Wr=function(){function t(){this.refsByKey=new ne(Qr.compareByKey),this.refsByTarget=new ne(Qr.compareByTargetId)}return t.prototype.isEmpty=function(){return this.refsByKey.isEmpty()},t.prototype.addReference=function(t,e){var n=new Qr(t,e);this.refsByKey=this.refsByKey.add(n),this.refsByTarget=this.refsByTarget.add(n)},t.prototype.addReferences=function(t,e){var n=this;t.forEach(function(t){return n.addReference(t,e)})},t.prototype.removeReference=function(t,e){this.removeRef(new Qr(t,e))},t.prototype.removeReferences=function(t,e){var n=this;t.forEach(function(t){return n.removeReference(t,e)})},t.prototype.removeReferencesForId=function(t){var e=this,n=lt.EMPTY,r=new Qr(n,t),i=new Qr(n,t+1),o=[];return this.refsByTarget.forEachInRange([r,i],function(t){e.removeRef(t),o.push(t.key)}),o},t.prototype.removeAllReferences=function(){var t=this;this.refsByKey.forEach(function(e){return t.removeRef(e)})},t.prototype.removeRef=function(t){this.refsByKey=this.refsByKey.delete(t),this.refsByTarget=this.refsByTarget.delete(t)},t.prototype.referencesForId=function(t){var e=lt.EMPTY,n=new Qr(e,t),r=new Qr(e,t+1),i=De();return this.refsByTarget.forEachInRange([n,r],function(t){i=i.add(t.key)}),i},t.prototype.containsKey=function(t){var e=new Qr(t,0),n=this.refsByKey.firstAfterOrEqual(e);return null!==n&&t.isEqual(n.key)},t}(),Qr=function(){function t(t,e){this.key=t,this.targetOrBatchId=e}return t.compareByKey=function(t,e){return lt.comparator(t.key,e.key)||K(t.targetOrBatchId,e.targetOrBatchId)},t.compareByTargetId=function(t,e){return K(t.targetOrBatchId,e.targetOrBatchId)||lt.comparator(t.key,e.key)},t}(),Kr=function(){function t(t,e){this.persistence=t,this.localViewReferences=new Wr,this.queryDataByTarget={},v(t.started,"LocalStore was passed an unstarted persistence implementation"),this.persistence.referenceDelegate.setInMemoryPins(this.localViewReferences),this.mutationQueue=t.getMutationQueue(e),this.remoteDocuments=t.getRemoteDocumentCache(),this.queryCache=t.getQueryCache(),this.localDocuments=new zr(this.remoteDocuments,this.mutationQueue,this.persistence.getIndexManager())}return t.prototype.handleUserChange=function(t){var e=this;return this.persistence.runTransaction("Handle user change","readonly",function(n){var r;return e.mutationQueue.getAllMutationBatches(n).next(function(i){return r=i,e.mutationQueue=e.persistence.getMutationQueue(t),e.localDocuments=new zr(e.remoteDocuments,e.mutationQueue,e.persistence.getIndexManager()),e.mutationQueue.getAllMutationBatches(n)}).next(function(t){for(var i=[],o=[],s=De(),a=0,u=r;a<u.length;a++){i.push((f=u[a]).batchId);for(var l=0,c=f.mutations;l<c.length;l++)s=s.add(c[l].key)}for(var h=0,p=t;h<p.length;h++){var f;o.push((f=p[h]).batchId);for(var d=0,m=f.mutations;d<m.length;d++)s=s.add(m[d].key)}return e.localDocuments.getDocuments(n,s).next(function(t){return{affectedDocuments:t,removedBatchIds:i,addedBatchIds:o}})})})},t.prototype.localWrite=function(t){var e=this,n=et.now(),r=t.reduce(function(t,e){return t.add(e.key)},De());return this.persistence.runTransaction("Locally write mutations","readwrite",function(i){return e.localDocuments.getDocuments(i,r).next(function(r){for(var o=[],s=0,a=t;s<a.length;s++){var u=a[s],l=r.get(u.key);if(!u.isIdempotent){var c=u.fieldMask;if(c){var h=l instanceof ht?c.applyTo(l.data):Pt.EMPTY;o.push(new he(u.key,h,c,ue.exists(!0)))}}}return e.mutationQueue.addMutationBatch(i,n,o,t).next(function(t){var e=t.applyToLocalDocumentSet(r);return{batchId:t.batchId,changes:e}})})})},t.prototype.lookupMutationDocuments=function(t){var e=this;return this.persistence.runTransaction("Lookup mutation documents","readonly",function(n){return e.mutationQueue.lookupMutationKeys(n,t).next(function(t){return t?e.localDocuments.getDocuments(n,t):In.resolve(null)})})},t.prototype.acknowledgeBatch=function(t){var e=this;return this.persistence.runTransaction("Acknowledge batch","readwrite-primary",function(n){var r=t.batch.keys(),i=e.remoteDocuments.newChangeBuffer();return e.mutationQueue.acknowledgeBatch(n,t.batch,t.streamToken).next(function(){return e.applyWriteToRemoteDocuments(n,t,i)}).next(function(){return i.apply(n)}).next(function(){return e.mutationQueue.performConsistencyCheck(n)}).next(function(){return e.localDocuments.getDocuments(n,r)})})},t.prototype.rejectBatch=function(t){var e=this;return this.persistence.runTransaction("Reject batch","readwrite-primary",function(n){var r;return e.mutationQueue.lookupMutationBatch(n,t).next(function(t){return v(null!==t,"Attempt to reject nonexistent batch!"),r=t.keys(),e.mutationQueue.removeMutationBatch(n,t)}).next(function(){return e.mutationQueue.performConsistencyCheck(n)}).next(function(){return e.localDocuments.getDocuments(n,r)})})},t.prototype.getLastStreamToken=function(){var t=this;return this.persistence.runTransaction("Get last stream token","readonly",function(e){return t.mutationQueue.getLastStreamToken(e)})},t.prototype.setLastStreamToken=function(t){var e=this;return this.persistence.runTransaction("Set last stream token","readwrite-primary",function(n){return e.mutationQueue.setLastStreamToken(n,t)})},t.prototype.getLastRemoteSnapshotVersion=function(){var t=this;return this.persistence.runTransaction("Get last remote snapshot version","readonly",function(e){return t.queryCache.getLastRemoteSnapshotVersion(e)})},t.prototype.applyRemoteEvent=function(e){var n=this,r=this.remoteDocuments.newChangeBuffer();return this.persistence.runTransaction("Apply remote event","readwrite-primary",function(i){var o=[],s=De();I(e.targetChanges,function(r,a){var u=n.queryDataByTarget[r];if(u){a.addedDocuments.forEach(function(t){s=s.add(t)}),a.modifiedDocuments.forEach(function(t){s=s.add(t)}),o.push(n.queryCache.removeMatchingKeys(i,a.removedDocuments,r).next(function(){return n.queryCache.addMatchingKeys(i,a.addedDocuments,r)}));var l=a.resumeToken;if(l.length>0){var c=u;u=u.copy({resumeToken:l,snapshotVersion:e.snapshotVersion}),n.queryDataByTarget[r]=u,t.shouldPersistQueryData(c,u,a)&&o.push(n.queryCache.updateQueryData(i,u))}}});var a=Te(),u=De();e.documentUpdates.forEach(function(t,e){u=u.add(t)}),o.push(r.getEntries(i,u).next(function(t){e.documentUpdates.forEach(function(u,l){var c=t.get(u);null==c||l.version.isEqual($t.MIN)||s.has(l.key)&&!c.hasPendingWrites||l.version.compareTo(c.version)>=0?(r.addEntry(l),a=a.insert(u,l)):d("LocalStore","Ignoring outdated watch update for ",u,". Current version:",c.version," Watch version:",l.version),e.resolvedLimboDocuments.has(u)&&o.push(n.persistence.referenceDelegate.updateLimboDocument(i,u))})}));var l=e.snapshotVersion;if(!l.isEqual($t.MIN)){var c=n.queryCache.getLastRemoteSnapshotVersion(i).next(function(t){return v(l.compareTo(t)>=0,"Watch stream reverted to previous snapshot?? "+l+" < "+t),n.queryCache.setTargetsMetadata(i,i.currentSequenceNumber,l)});o.push(c)}return In.waitFor(o).next(function(){return r.apply(i)}).next(function(){return n.localDocuments.getLocalViewOfDocuments(i,a)})})},t.shouldPersistQueryData=function(t,e,n){return 0!==e.resumeToken.length&&(0===t.resumeToken.length||e.snapshotVersion.toMicroseconds()-t.snapshotVersion.toMicroseconds()>=this.RESUME_TOKEN_MAX_AGE_MICROS||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0)},t.prototype.notifyLocalViewChanges=function(t){var e=this;return this.persistence.runTransaction("notifyLocalViewChanges","readwrite",function(n){return In.forEach(t,function(t){return e.localViewReferences.addReferences(t.addedKeys,t.targetId),e.localViewReferences.removeReferences(t.removedKeys,t.targetId),In.forEach(t.removedKeys,function(t){return e.persistence.referenceDelegate.removeReference(n,t)})})})},t.prototype.nextMutationBatch=function(t){var e=this;return this.persistence.runTransaction("Get next mutation batch","readonly",function(n){return void 0===t&&(t=-1),e.mutationQueue.getNextMutationBatchAfterBatchId(n,t)})},t.prototype.readDocument=function(t){var e=this;return this.persistence.runTransaction("read document","readonly",function(n){return e.localDocuments.getDocument(n,t)})},t.prototype.allocateQuery=function(t){var e=this;return this.persistence.runTransaction("Allocate query","readwrite",function(n){var r;return e.queryCache.getQueryData(n,t).next(function(i){return i?(r=i,In.resolve()):e.queryCache.allocateTargetId(n).next(function(i){return r=new ee(t,i,te.Listen,n.currentSequenceNumber),e.queryCache.addQueryData(n,r)})}).next(function(){return v(!e.queryDataByTarget[r.targetId],"Tried to allocate an already allocated query: "+t),e.queryDataByTarget[r.targetId]=r,r})})},t.prototype.releaseQuery=function(t,e){var n=this;return this.persistence.runTransaction("Release query",e?"readwrite":"readwrite-primary",function(r){return n.queryCache.getQueryData(r,t).next(function(i){v(null!=i,"Tried to release nonexistent query: "+t);var o=i.targetId,s=n.queryDataByTarget[o],a=n.localViewReferences.removeReferencesForId(o);return delete n.queryDataByTarget[o],e?In.resolve():In.forEach(a,function(t){return n.persistence.referenceDelegate.removeReference(r,t)}).next(function(){return n.persistence.referenceDelegate.removeTarget(r,s)})})})},t.prototype.executeQuery=function(t){var e=this;return this.persistence.runTransaction("Execute query","readonly",function(n){return e.localDocuments.getDocumentsMatchingQuery(n,t)})},t.prototype.remoteDocumentKeys=function(t){var e=this;return this.persistence.runTransaction("Remote document keys","readonly",function(n){return e.queryCache.getMatchingKeysForTargetId(n,t)})},t.prototype.getActiveClients=function(){return this.persistence.getActiveClients()},t.prototype.removeCachedMutationBatchMetadata=function(t){this.mutationQueue.removeCachedMutationKeys(t)},t.prototype.setNetworkEnabled=function(t){this.persistence.setNetworkEnabled(t)},t.prototype.applyWriteToRemoteDocuments=function(t,e,n){var r=this,i=e.batch,o=i.keys(),s=In.resolve();return o.forEach(function(r){s=s.next(function(){return n.getEntry(t,r)}).next(function(t){var o=t,s=e.docVersions.get(r);v(null!==s,"ackVersions should contain every doc in the write."),(!o||o.version.compareTo(s)<0)&&((o=i.applyToRemoteDocument(r,o,e))?n.addEntry(o):v(!t,"Mutation batch "+i+" applied to document "+t+" resulted in null"))})}),s.next(function(){return r.mutationQueue.removeMutationBatch(t,i)})},t.prototype.collectGarbage=function(t){var e=this;return this.persistence.runTransaction("Collect garbage","readwrite-primary",function(n){return t.collect(n,e.queryDataByTarget)})},t.prototype.getQueryForTarget=function(t){var e=this;return this.queryDataByTarget[t]?Promise.resolve(this.queryDataByTarget[t].query):this.persistence.runTransaction("Get query data","readonly",function(n){return e.queryCache.getQueryDataForTarget(n,t).next(function(t){return t?t.query:null})})},t.prototype.getNewDocumentChanges=function(){var t=this;return this.persistence.runTransaction("Get new document changes","readonly",function(e){return t.remoteDocuments.getNewDocumentChanges(e)})},t.RESUME_TOKEN_MAX_AGE_MICROS=3e8,t}(),Gr=function(){function t(t,e){this.indexManager=t,this.referenceDelegate=e,this.mutationQueue=[],this.nextBatchId=1,this.lastStreamToken=b(),this.batchesByDocumentKey=new ne(Qr.compareByKey)}return t.prototype.checkEmpty=function(t){return In.resolve(0===this.mutationQueue.length)},t.prototype.acknowledgeBatch=function(t,e,n){var r=e.batchId,i=this.indexOfExistingBatchId(r,"acknowledged");v(0===i,"Can only acknowledge the first batch in the mutation queue");var o=this.mutationQueue[i];return v(r===o.batchId,"Queue ordering failure: expected batch "+r+", got batch "+o.batchId),this.lastStreamToken=n,In.resolve()},t.prototype.getLastStreamToken=function(t){return In.resolve(this.lastStreamToken)},t.prototype.setLastStreamToken=function(t,e){return this.lastStreamToken=e,In.resolve()},t.prototype.addMutationBatch=function(t,e,n,r){v(0!==r.length,"Mutation batches should not be empty");var i=this.nextBatchId;this.nextBatchId++,this.mutationQueue.length>0&&v(this.mutationQueue[this.mutationQueue.length-1].batchId<i,"Mutation batchIDs must be monotonically increasing order");var o=new Cn(i,e,n,r);this.mutationQueue.push(o);for(var s=0,a=r;s<a.length;s++){var u=a[s];this.batchesByDocumentKey=this.batchesByDocumentKey.add(new Qr(u.key,i)),this.indexManager.addToCollectionParentIndex(t,u.key.path.popLast())}return In.resolve(o)},t.prototype.lookupMutationBatch=function(t,e){return In.resolve(this.findMutationBatch(e))},t.prototype.lookupMutationKeys=function(t,e){var n=this.findMutationBatch(e);return v(null!=n,"Failed to find local mutation batch."),In.resolve(n.keys())},t.prototype.getNextMutationBatchAfterBatchId=function(t,e){var n=this.indexOfBatchId(e+1),r=n<0?0:n;return In.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)},t.prototype.getAllMutationBatches=function(t){return In.resolve(this.mutationQueue.slice())},t.prototype.getAllMutationBatchesAffectingDocumentKey=function(t,e){var n=this,r=new Qr(e,0),i=new Qr(e,Number.POSITIVE_INFINITY),o=[];return this.batchesByDocumentKey.forEachInRange([r,i],function(t){v(e.isEqual(t.key),"Should only iterate over a single key's batches");var r=n.findMutationBatch(t.targetOrBatchId);v(null!==r,"Batches in the index must exist in the main table"),o.push(r)}),In.resolve(o)},t.prototype.getAllMutationBatchesAffectingDocumentKeys=function(t,e){var n=this,r=new ne(K);return e.forEach(function(t){var e=new Qr(t,0),i=new Qr(t,Number.POSITIVE_INFINITY);n.batchesByDocumentKey.forEachInRange([e,i],function(e){v(t.isEqual(e.key),"For each key, should only iterate over a single key's batches"),r=r.add(e.targetOrBatchId)})}),In.resolve(this.findMutationBatches(r))},t.prototype.getAllMutationBatchesAffectingQuery=function(t,e){v(!e.isCollectionGroupQuery(),"CollectionGroup queries should be handled in LocalDocumentsView");var n=e.path,r=n.length+1,i=n;lt.isDocumentKey(i)||(i=i.child(""));var o=new Qr(new lt(i),0),s=new ne(K);return this.batchesByDocumentKey.forEachWhile(function(t){var e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===r&&(s=s.add(t.targetOrBatchId)),!0)},o),In.resolve(this.findMutationBatches(s))},t.prototype.findMutationBatches=function(t){var e=this,n=[];return t.forEach(function(t){var r=e.findMutationBatch(t);null!==r&&n.push(r)}),n},t.prototype.removeMutationBatch=function(t,e){var n=this;v(0===this.indexOfExistingBatchId(e.batchId,"removed"),"Can only remove the first entry of the mutation queue"),this.mutationQueue.shift();var r=this.batchesByDocumentKey;return In.forEach(e.mutations,function(i){var o=new Qr(i.key,e.batchId);return r=r.delete(o),n.referenceDelegate.removeMutationReference(t,i.key)}).next(function(){n.batchesByDocumentKey=r})},t.prototype.removeCachedMutationKeys=function(t){},t.prototype.containsKey=function(t,e){var n=new Qr(e,0),r=this.batchesByDocumentKey.firstAfterOrEqual(n);return In.resolve(e.isEqual(r&&r.key))},t.prototype.performConsistencyCheck=function(t){return 0===this.mutationQueue.length&&v(this.batchesByDocumentKey.isEmpty(),"Document leak -- detected dangling mutation references when queue is empty."),In.resolve()},t.prototype.indexOfExistingBatchId=function(t,e){var n=this.indexOfBatchId(t);return v(n>=0&&n<this.mutationQueue.length,"Batches must exist to be "+e),n},t.prototype.indexOfBatchId=function(t){return 0===this.mutationQueue.length?0:t-this.mutationQueue[0].batchId},t.prototype.findMutationBatch=function(t){var e=this.indexOfBatchId(t);if(e<0||e>=this.mutationQueue.length)return null;var n=this.mutationQueue[e];return v(n.batchId===t,"If found batch must match"),n},t}(),Yr=function(){function t(t){this.persistence=t,this.queries=new Kn(function(t){return t.canonicalId()}),this.lastRemoteSnapshotVersion=$t.MIN,this.highestTargetId=0,this.highestSequenceNumber=0,this.references=new Wr,this.targetCount=0,this.targetIdGenerator=Ln.forQueryCache()}return t.prototype.getTargetCount=function(t){return In.resolve(this.targetCount)},t.prototype.forEachTarget=function(t,e){return this.queries.forEach(function(t,n){return e(n)}),In.resolve()},t.prototype.getLastRemoteSnapshotVersion=function(t){return In.resolve(this.lastRemoteSnapshotVersion)},t.prototype.getHighestSequenceNumber=function(t){return In.resolve(this.highestSequenceNumber)},t.prototype.allocateTargetId=function(t){var e=this.targetIdGenerator.after(this.highestTargetId);return this.highestTargetId=e,In.resolve(e)},t.prototype.setTargetsMetadata=function(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.highestSequenceNumber&&(this.highestSequenceNumber=e),In.resolve()},t.prototype.saveQueryData=function(t){this.queries.set(t.query,t);var e=t.targetId;e>this.highestTargetId&&(this.highestTargetId=e),t.sequenceNumber>this.highestSequenceNumber&&(this.highestSequenceNumber=t.sequenceNumber)},t.prototype.addQueryData=function(t,e){return v(!this.queries.has(e.query),"Adding a query that already exists"),this.saveQueryData(e),this.targetCount+=1,In.resolve()},t.prototype.updateQueryData=function(t,e){return v(this.queries.has(e.query),"Updating a non-existent query"),this.saveQueryData(e),In.resolve()},t.prototype.removeQueryData=function(t,e){return v(this.targetCount>0,"Removing a target from an empty cache"),v(this.queries.has(e.query),"Removing a non-existent target from the cache"),this.queries.delete(e.query),this.references.removeReferencesForId(e.targetId),this.targetCount-=1,In.resolve()},t.prototype.removeTargets=function(t,e,n){var r=this,i=0,o=[];return this.queries.forEach(function(s,a){a.sequenceNumber<=e&&!n[a.targetId]&&(r.queries.delete(s),o.push(r.removeMatchingKeysForTargetId(t,a.targetId)),i++)}),In.waitFor(o).next(function(){return i})},t.prototype.getQueryCount=function(t){return In.resolve(this.targetCount)},t.prototype.getQueryData=function(t,e){var n=this.queries.get(e)||null;return In.resolve(n)},t.prototype.getQueryDataForTarget=function(t,e){return g("Not yet implemented.")},t.prototype.addMatchingKeys=function(t,e,n){this.references.addReferences(e,n);var r=this.persistence.referenceDelegate,i=[];return r&&e.forEach(function(e){i.push(r.addReference(t,e))}),In.waitFor(i)},t.prototype.removeMatchingKeys=function(t,e,n){this.references.removeReferences(e,n);var r=this.persistence.referenceDelegate,i=[];return r&&e.forEach(function(e){i.push(r.removeReference(t,e))}),In.waitFor(i)},t.prototype.removeMatchingKeysForTargetId=function(t,e){return this.references.removeReferencesForId(e),In.resolve()},t.prototype.getMatchingKeysForTargetId=function(t,e){var n=this.references.referencesForId(e);return In.resolve(n)},t.prototype.containsKey=function(t,e){return In.resolve(this.references.containsKey(e))},t}(),Xr=function(){function t(t,e){this.indexManager=t,this.sizer=e,this.docs=new dt(lt.comparator),this.newDocumentChanges=De(),this.size=0}return t.prototype.addEntries=function(t,e,n){for(var r=[],i=0,o=e;i<o.length;i++){var s=o[i],a=s.maybeDocument.key;this.docs=this.docs.insert(a,s),this.newDocumentChanges=this.newDocumentChanges.add(a),r.push(this.indexManager.addToCollectionParentIndex(t,a.path.popLast()))}return this.size+=n,In.waitFor(r)},t.prototype.removeEntry=function(t,e){var n=this.docs.get(e);return n?(this.docs=this.docs.remove(e),this.size-=n.size,In.resolve(n.size)):In.resolve(0)},t.prototype.getEntry=function(t,e){var n=this.docs.get(e);return In.resolve(n?n.maybeDocument:null)},t.prototype.getSizedEntry=function(t,e){return In.resolve(this.docs.get(e))},t.prototype.getEntries=function(t,e){var n=this,r=Ie();return e.forEach(function(t){var e=n.docs.get(t);r=r.insert(t,e?e.maybeDocument:null)}),In.resolve(r)},t.prototype.getSizedEntries=function(t,e){var n=this,r=Ie(),i=new dt(lt.comparator);return e.forEach(function(t){var e=n.docs.get(t);r=r.insert(t,e?e.maybeDocument:null),i=i.insert(t,e?e.size:0)}),In.resolve({maybeDocuments:r,sizeMap:i})},t.prototype.getDocumentsMatchingQuery=function(t,e){v(!e.isCollectionGroupQuery(),"CollectionGroup queries should be handled in LocalDocumentsView");for(var n=ke(),r=new lt(e.path.child("")),i=this.docs.getIteratorFrom(r);i.hasNext();){var o=i.getNext(),s=o.value.maybeDocument;if(!e.path.isPrefixOf(o.key.path))break;s instanceof ht&&e.matches(s)&&(n=n.insert(s.key,s))}return In.resolve(n)},t.prototype.forEachDocumentKey=function(t,e){return In.forEach(this.docs,function(t){return e(t)})},t.prototype.getNewDocumentChanges=function(t){var e=this,n=Te();return this.newDocumentChanges.forEach(function(t){var r=e.docs.get(t),i=r?r.maybeDocument:new pt(t,$t.forDeletedDoc());n=n.insert(t,i)}),this.newDocumentChanges=De(),In.resolve(n)},t.prototype.newChangeBuffer=function(){return new Jr(this.sizer,this)},t.prototype.getSize=function(t){return In.resolve(this.size)},t}(),Jr=function(t){function e(e,n){var r=t.call(this)||this;return r.sizer=e,r.documentCache=n,r}return s.__extends(e,t),e.prototype.applyChanges=function(t){var e=this,n=this.assertChanges(),r=0,i=[];return n.forEach(function(t,n){var o=e.documentSizes.get(t);v(void 0!==o,"Attempting to change document "+t.toString()+" without having read it first");var s=e.sizer(n);r+=s-o,i.push({maybeDocument:n,size:s})}),this.documentCache.addEntries(t,i,r)},e.prototype.getFromCache=function(t,e){return this.documentCache.getSizedEntry(t,e)},e.prototype.getAllFromCache=function(t,e){return this.documentCache.getSizedEntries(t,e)},e}(Gn),Zr=function(){function t(t,e){var n=this;this.clientId=t,this.mutationQueues={},this.listenSequence=new pn(0),this._started=!1,this._started=!0,this.referenceDelegate=e(this),this.queryCache=new Yr(this),this.indexManager=new rr,this.remoteDocumentCache=new Xr(this.indexManager,function(t){return n.referenceDelegate.documentSize(t)})}return t.createLruPersistence=function(e,n,r){return new t(e,function(t){return new ei(t,new Ir(n),r)})},t.createEagerPersistence=function(e){return new t(e,function(t){return new ti(t)})},t.prototype.shutdown=function(t){return this._started=!1,Promise.resolve()},Object.defineProperty(t.prototype,"started",{get:function(){return this._started},enumerable:!0,configurable:!0}),t.prototype.getActiveClients=function(){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(t){return[2,[this.clientId]]})})},t.prototype.setPrimaryStateListener=function(t){return t(!0)},t.prototype.setNetworkEnabled=function(t){},t.prototype.getIndexManager=function(){return this.indexManager},t.prototype.getMutationQueue=function(t){var e=this.mutationQueues[t.toKey()];return e||(e=new Gr(this.indexManager,this.referenceDelegate),this.mutationQueues[t.toKey()]=e),e},t.prototype.getQueryCache=function(){return this.queryCache},t.prototype.getRemoteDocumentCache=function(){return this.remoteDocumentCache},t.prototype.runTransaction=function(t,e,n){var r=this;d("MemoryPersistence","Starting transaction:",t);var i=new $r(this.listenSequence.next());return this.referenceDelegate.onTransactionStarted(),n(i).next(function(t){return r.referenceDelegate.onTransactionCommitted(i).next(function(){return t})}).toPromise()},t.prototype.mutationQueuesContainKey=function(t,e){return In.or((n=this.mutationQueues,r=[],x(n,function(t,e){return r.push(e)}),r).map(function(n){return function(){return n.containsKey(t,e)}}));var n,r},t}(),$r=function(){return function(t){this.currentSequenceNumber=t}}(),ti=function(){function t(t){this.persistence=t}return t.prototype.setInMemoryPins=function(t){this.inMemoryPins=t},t.prototype.addReference=function(t,e){return this.orphanedDocuments.delete(e),In.resolve()},t.prototype.removeReference=function(t,e){return this.orphanedDocuments.add(e),In.resolve()},t.prototype.removeMutationReference=function(t,e){return this.orphanedDocuments.add(e),In.resolve()},t.prototype.removeTarget=function(t,e){var n=this,r=this.persistence.getQueryCache();return r.getMatchingKeysForTargetId(t,e.targetId).next(function(t){t.forEach(function(t){return n.orphanedDocuments.add(t)})}).next(function(){return r.removeQueryData(t,e)})},t.prototype.onTransactionStarted=function(){this.orphanedDocuments=new Set},t.prototype.onTransactionCommitted=function(t){var e=this,n=this.persistence.getRemoteDocumentCache();return In.forEach(this.orphanedDocuments,function(r){return e.isReferenced(t,r).next(function(e){return e?In.resolve():n.removeEntry(t,r).next(function(){})})})},t.prototype.updateLimboDocument=function(t,e){var n=this;return this.isReferenced(t,e).next(function(t){t?n.orphanedDocuments.delete(e):n.orphanedDocuments.add(e)})},t.prototype.documentSize=function(t){return 0},t.prototype.isReferenced=function(t,e){var n=this;return In.or([function(){return n.persistence.getQueryCache().containsKey(t,e)},function(){return n.persistence.mutationQueuesContainKey(t,e)},function(){return In.resolve(n.inMemoryPins.containsKey(e))}])},t}(),ei=function(){function t(t,e,n){this.persistence=t,this.serializer=e,this.orphanedSequenceNumbers=new Kn(function(t){return bn(t.path)}),this.garbageCollector=new Dr(this,n)}return t.prototype.onTransactionStarted=function(){},t.prototype.onTransactionCommitted=function(t){return In.resolve()},t.prototype.forEachTarget=function(t,e){return this.persistence.getQueryCache().forEachTarget(t,e)},t.prototype.getSequenceNumberCount=function(t){var e=this.orphanedDocumentCount(t);return this.persistence.getQueryCache().getTargetCount(t).next(function(t){return e.next(function(e){return t+e})})},t.prototype.orphanedDocumentCount=function(t){var e=0;return this.forEachOrphanedDocumentSequenceNumber(t,function(t){e++}).next(function(){return e})},t.prototype.forEachOrphanedDocumentSequenceNumber=function(t,e){var n=this;return In.forEach(this.orphanedSequenceNumbers,function(r,i){return n.isPinned(t,r,i).next(function(t){return t?In.resolve():e(i)})})},t.prototype.setInMemoryPins=function(t){this.inMemoryPins=t},t.prototype.removeTargets=function(t,e,n){return this.persistence.getQueryCache().removeTargets(t,e,n)},t.prototype.removeOrphanedDocuments=function(t,e){var n=this,r=0,i=this.persistence.getRemoteDocumentCache();return i.forEachDocumentKey(t,function(o){return n.isPinned(t,o,e).next(function(e){return e?In.resolve():(r++,i.removeEntry(t,o).next())})}).next(function(){return r})},t.prototype.removeMutationReference=function(t,e){return this.orphanedSequenceNumbers.set(e,t.currentSequenceNumber),In.resolve()},t.prototype.removeTarget=function(t,e){var n=e.copy({sequenceNumber:t.currentSequenceNumber});return this.persistence.getQueryCache().updateQueryData(t,n)},t.prototype.addReference=function(t,e){return this.orphanedSequenceNumbers.set(e,t.currentSequenceNumber),In.resolve()},t.prototype.removeReference=function(t,e){return this.orphanedSequenceNumbers.set(e,t.currentSequenceNumber),In.resolve()},t.prototype.updateLimboDocument=function(t,e){return this.orphanedSequenceNumbers.set(e,t.currentSequenceNumber),In.resolve()},t.prototype.documentSize=function(t){var e,n=this.serializer.toDbRemoteDocument(t);if(n.document)e=n.document;else if(n.unknownDocument)e=n.unknownDocument;else{if(!n.noDocument)throw g("Unknown remote document type");e=n.noDocument}return JSON.stringify(e).length},t.prototype.isPinned=function(t,e,n){var r=this;return In.or([function(){return r.persistence.mutationQueuesContainKey(t,e)},function(){return In.resolve(r.inMemoryPins.containsKey(e))},function(){return r.persistence.getQueryCache().containsKey(t,e)},function(){var t=r.orphanedSequenceNumbers.get(e);return In.resolve(void 0!==t&&t>n)}])},t.prototype.getCacheSize=function(t){return this.persistence.getRemoteDocumentCache().getSize(t)},t}(),ni=function(){function t(t,e,n,r,i){this.queue=t,this.timerId=e,this.initialDelayMs=n,this.backoffFactor=r,this.maxDelayMs=i,this.timerPromise=null,this.lastAttemptTime=Date.now(),this.reset()}return t.prototype.reset=function(){this.currentBaseMs=0},t.prototype.resetToMax=function(){this.currentBaseMs=this.maxDelayMs},t.prototype.backoffAndRun=function(t){var e=this;this.cancel();var n=Math.floor(this.currentBaseMs+this.jitterDelayMs()),r=Math.max(0,Date.now()-this.lastAttemptTime),i=Math.max(0,n-r);this.currentBaseMs>0&&d("ExponentialBackoff","Backing off for "+i+" ms (base delay: "+this.currentBaseMs+" ms, delay with jitter: "+n+" ms, last attempt: "+r+" ms ago)"),this.timerPromise=this.queue.enqueueAfterDelay(this.timerId,i,function(){return e.lastAttemptTime=Date.now(),t()}),this.currentBaseMs*=this.backoffFactor,this.currentBaseMs<this.initialDelayMs&&(this.currentBaseMs=this.initialDelayMs),this.currentBaseMs>this.maxDelayMs&&(this.currentBaseMs=this.maxDelayMs)},t.prototype.cancel=function(){null!==this.timerPromise&&(this.timerPromise.cancel(),this.timerPromise=null)},t.prototype.jitterDelayMs=function(){return(Math.random()-.5)*this.currentBaseMs},t}(),ri=function(t){return t[t.Initial=0]="Initial",t[t.Starting=1]="Starting",t[t.Open=2]="Open",t[t.Error=3]="Error",t[t.Backoff=4]="Backoff",t}({}),ii=1e3,oi=6e4,si=1.5,ai=function(){function t(t,e,n,r,i,o){this.queue=t,this.idleTimerId=n,this.connection=r,this.credentialsProvider=i,this.listener=o,this.state=ri.Initial,this.closeCount=0,this.idleTimer=null,this.stream=null,this.backoff=new ni(t,e,ii,si,oi)}return t.prototype.isStarted=function(){return this.state===ri.Starting||this.state===ri.Open||this.state===ri.Backoff},t.prototype.isOpen=function(){return this.state===ri.Open},t.prototype.start=function(){this.state!==ri.Error?(v(this.state===ri.Initial,"Already started"),this.auth()):this.performBackoff()},t.prototype.stop=function(){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(t){switch(t.label){case 0:return this.isStarted()?[4,this.close(ri.Initial)]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}})})},t.prototype.inhibitBackoff=function(){v(!this.isStarted(),"Can only inhibit backoff in a stopped state"),this.state=ri.Initial,this.backoff.reset()},t.prototype.markIdle=function(){var t=this;this.isOpen()&&null===this.idleTimer&&(this.idleTimer=this.queue.enqueueAfterDelay(this.idleTimerId,6e4,function(){return t.handleIdleCloseTimer()}))},t.prototype.sendRequest=function(t){this.cancelIdleCheck(),this.stream.send(t)},t.prototype.handleIdleCloseTimer=function(){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(t){return this.isOpen()?[2,this.close(ri.Initial)]:[2]})})},t.prototype.cancelIdleCheck=function(){this.idleTimer&&(this.idleTimer.cancel(),this.idleTimer=null)},t.prototype.close=function(t,e){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(n){switch(n.label){case 0:return v(this.isStarted(),"Only started streams should be closed."),v(t===ri.Error||Vt(e),"Can't provide an error when not in an error state."),this.cancelIdleCheck(),this.backoff.cancel(),this.closeCount++,t!==ri.Error?this.backoff.reset():e&&e.code===w.RESOURCE_EXHAUSTED?(m(e.toString()),m("Using maximum backoff delay to prevent overloading the backend."),this.backoff.resetToMax()):e&&e.code===w.UNAUTHENTICATED&&this.credentialsProvider.invalidateToken(),null!==this.stream&&(this.tearDown(),this.stream.close(),this.stream=null),this.state=t,[4,this.listener.onClose(e)];case 1:return n.sent(),[2]}})})},t.prototype.tearDown=function(){},t.prototype.auth=function(){var t=this;v(this.state===ri.Initial,"Must be in initial state to auth"),this.state=ri.Starting;var e=this.getCloseGuardedDispatcher(this.closeCount),n=this.closeCount;this.credentialsProvider.getToken().then(function(e){t.closeCount===n&&t.startStream(e)},function(n){e(function(){var e=new E(w.UNKNOWN,"Fetching auth token failed: "+n.message);return t.handleStreamClose(e)})})},t.prototype.startStream=function(t){var e=this;v(this.state===ri.Starting,"Trying to start stream in a non-starting state");var n=this.getCloseGuardedDispatcher(this.closeCount);this.stream=this.startRpc(t),this.stream.onOpen(function(){n(function(){return v(e.state===ri.Starting,"Expected stream to be in state Starting, but was "+e.state),e.state=ri.Open,e.listener.onOpen()})}),this.stream.onClose(function(t){n(function(){return e.handleStreamClose(t)})}),this.stream.onMessage(function(t){n(function(){return e.onMessage(t)})})},t.prototype.performBackoff=function(){var t=this;v(this.state===ri.Error,"Should only perform backoff when in Error state"),this.state=ri.Backoff,this.backoff.backoffAndRun(function(){return s.__awaiter(t,void 0,void 0,function(){return s.__generator(this,function(t){return v(this.state===ri.Backoff,"Backoff elapsed but state is now: "+this.state),this.state=ri.Initial,this.start(),v(this.isStarted(),"PersistentStream should have started"),[2]})})})},t.prototype.handleStreamClose=function(t){return v(this.isStarted(),"Can't handle server close on non-started stream"),d("PersistentStream","close with error: "+t),this.stream=null,this.close(ri.Error,t)},t.prototype.getCloseGuardedDispatcher=function(t){var e=this;return function(n){e.queue.enqueueAndForget(function(){return e.closeCount===t?n():(d("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())})}},t}(),ui=function(t){function e(e,n,r,i,o){var s=t.call(this,e,hn.ListenStreamConnectionBackoff,hn.ListenStreamIdle,n,r,o)||this;return s.serializer=i,s}return s.__extends(e,t),e.prototype.startRpc=function(t){return this.connection.openStream("Listen",t)},e.prototype.onMessage=function(t){this.backoff.reset();var e=this.serializer.fromWatchChange(t),n=this.serializer.versionFromListenResponse(t);return this.listener.onWatchChange(e,n)},e.prototype.watch=function(t){var e={};e.database=this.serializer.encodedDatabaseId,e.addTarget=this.serializer.toTarget(t);var n=this.serializer.toListenRequestLabels(t);n&&(e.labels=n),this.sendRequest(e)},e.prototype.unwatch=function(t){var e={};e.database=this.serializer.encodedDatabaseId,e.removeTarget=t,this.sendRequest(e)},e}(ai),li=function(t){function e(e,n,r,i,o){var s=t.call(this,e,hn.WriteStreamConnectionBackoff,hn.WriteStreamIdle,n,r,o)||this;return s.serializer=i,s.handshakeComplete_=!1,s}return s.__extends(e,t),Object.defineProperty(e.prototype,"handshakeComplete",{get:function(){return this.handshakeComplete_},enumerable:!0,configurable:!0}),e.prototype.start=function(){this.handshakeComplete_=!1,t.prototype.start.call(this)},e.prototype.tearDown=function(){this.handshakeComplete_&&this.writeMutations([])},e.prototype.startRpc=function(t){return this.connection.openStream("Write",t)},e.prototype.onMessage=function(t){if(v(!!t.streamToken,"Got a write response without a stream token"),this.lastStreamToken=t.streamToken,this.handshakeComplete_){this.backoff.reset();var e=this.serializer.fromWriteResults(t.writeResults,t.commitTime),n=this.serializer.fromVersion(t.commitTime);return this.listener.onMutationResult(n,e)}return v(!t.writeResults||0===t.writeResults.length,"Got mutation results for handshake"),this.handshakeComplete_=!0,this.listener.onHandshakeComplete()},e.prototype.writeHandshake=function(){v(this.isOpen(),"Writing handshake requires an opened stream"),v(!this.handshakeComplete_,"Handshake already completed");var t={};t.database=this.serializer.encodedDatabaseId,this.sendRequest(t)},e.prototype.writeMutations=function(t){var e=this;v(this.isOpen(),"Writing mutations requires an opened stream"),v(this.handshakeComplete_,"Handshake must be complete before writing mutations"),v(this.lastStreamToken.length>0,"Trying to write mutation without a token");var n={streamToken:this.lastStreamToken,writes:t.map(function(t){return e.serializer.toMutation(t)})};this.sendRequest(n)},e}(ai),ci=function(){function t(t,e,n,r){this.queue=t,this.connection=e,this.credentials=n,this.serializer=r}return t.prototype.newPersistentWriteStream=function(t){return new li(this.queue,this.connection,this.credentials,this.serializer,t)},t.prototype.newPersistentWatchStream=function(t){return new ui(this.queue,this.connection,this.credentials,this.serializer,t)},t.prototype.commit=function(t){var e=this,n={database:this.serializer.encodedDatabaseId,writes:t.map(function(t){return e.serializer.toMutation(t)})};return this.invokeRPC("Commit",n).then(function(t){return e.serializer.fromWriteResults(t.writeResults,t.commitTime)})},t.prototype.lookup=function(t){var e=this,n={database:this.serializer.encodedDatabaseId,documents:t.map(function(t){return e.serializer.toName(t)})};return this.invokeStreamingRPC("BatchGetDocuments",n).then(function(n){var r=Te();n.forEach(function(t){var n=e.serializer.fromMaybeDocument(t);r=r.insert(n.key,n)});var i=[];return t.forEach(function(t){var e=r.get(t);v(!!e,"Missing entity in write response for "+t),i.push(e)}),i})},t.prototype.invokeRPC=function(t,e){var n=this;return this.credentials.getToken().then(function(r){return n.connection.invokeRPC(t,e,r)}).catch(function(t){throw t.code===w.UNAUTHENTICATED&&n.credentials.invalidateToken(),t})},t.prototype.invokeStreamingRPC=function(t,e){var n=this;return this.credentials.getToken().then(function(r){return n.connection.invokeStreamingRPC(t,e,r)}).catch(function(t){throw t.code===w.UNAUTHENTICATED&&n.credentials.invalidateToken(),t})},t}(),hi=function(){function t(t){this.datastore=t,this.readVersions=Oe(),this.mutations=[],this.committed=!1}return t.prototype.recordVersion=function(t){var e;if(t instanceof ht)e=t.version;else{if(!(t instanceof pt))throw g("Document in a transaction was a "+t.constructor.name);e=$t.forDeletedDoc()}var n=this.readVersions.get(t.key);if(null!==n){if(!e.isEqual(n))throw new E(w.ABORTED,"Document version changed between two reads.")}else this.readVersions=this.readVersions.insert(t.key,e)},t.prototype.lookup=function(t){var e=this;return this.committed?Promise.reject("Transaction has already completed."):this.mutations.length>0?Promise.reject("Transactions lookups are invalid after writes."):this.datastore.lookup(t).then(function(t){return t.forEach(function(t){t instanceof pt||t instanceof ht?e.recordVersion(t):g("Document in a transaction was a "+t.constructor.name)}),t})},t.prototype.write=function(t){if(this.committed)throw new E(w.FAILED_PRECONDITION,"Transaction has already completed.");this.mutations=this.mutations.concat(t)},t.prototype.precondition=function(t){var e=this.readVersions.get(t);return e?ue.updateTime(e):ue.NONE},t.prototype.preconditionForUpdate=function(t){var e=this.readVersions.get(t);if(e&&e.isEqual($t.forDeletedDoc()))throw new E(w.FAILED_PRECONDITION,"Can't update a document that doesn't exist.");return e?ue.updateTime(e):ue.exists(!0)},t.prototype.set=function(t,e){this.write(e.toMutations(t,this.precondition(t)))},t.prototype.update=function(t,e){this.write(e.toMutations(t,this.preconditionForUpdate(t)))},t.prototype.delete=function(t){this.write([new fe(t,this.precondition(t))]),this.readVersions=this.readVersions.insert(t,$t.forDeletedDoc())},t.prototype.commit=function(){var t=this,e=this.readVersions;return this.mutations.forEach(function(t){e=e.remove(t.key)}),e.isEmpty()?this.datastore.commit(this.mutations).then(function(){t.committed=!0}):Promise.reject(Error("Every document read in a transaction must also be written."))},t}(),pi=function(t){return t[t.Unknown=0]="Unknown",t[t.Online=1]="Online",t[t.Offline=2]="Offline",t}({}),fi=function(t){return t[t.RemoteStore=0]="RemoteStore",t[t.SharedClientState=1]="SharedClientState",t}({}),di=function(){function t(t,e){this.asyncQueue=t,this.onlineStateHandler=e,this.state=pi.Unknown,this.watchStreamFailures=0,this.onlineStateTimer=null,this.shouldWarnClientIsOffline=!0}return t.prototype.handleWatchStreamStart=function(){var t=this;0===this.watchStreamFailures&&(this.setAndBroadcast(pi.Unknown),v(null===this.onlineStateTimer,"onlineStateTimer shouldn't be started yet"),this.onlineStateTimer=this.asyncQueue.enqueueAfterDelay(hn.OnlineStateTimeout,1e4,function(){return t.onlineStateTimer=null,v(t.state===pi.Unknown,"Timer should be canceled if we transitioned to a different state."),t.logClientOfflineWarningIfNecessary("Backend didn't respond within 10 seconds."),t.setAndBroadcast(pi.Offline),Promise.resolve()}))},t.prototype.handleWatchStreamFailure=function(t){this.state===pi.Online?(this.setAndBroadcast(pi.Unknown),v(0===this.watchStreamFailures,"watchStreamFailures must be 0"),v(null===this.onlineStateTimer,"onlineStateTimer must be null")):(this.watchStreamFailures++,this.watchStreamFailures>=1&&(this.clearOnlineStateTimer(),this.logClientOfflineWarningIfNecessary("Connection failed 1 times. Most recent error: "+t.toString()),this.setAndBroadcast(pi.Offline)))},t.prototype.set=function(t){this.clearOnlineStateTimer(),this.watchStreamFailures=0,t===pi.Online&&(this.shouldWarnClientIsOffline=!1),this.setAndBroadcast(t)},t.prototype.setAndBroadcast=function(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))},t.prototype.logClientOfflineWarningIfNecessary=function(t){var e="Could not reach Cloud Firestore backend. "+t+"\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.";this.shouldWarnClientIsOffline?(m(e),this.shouldWarnClientIsOffline=!1):d("OnlineStateTracker",e)},t.prototype.clearOnlineStateTimer=function(){null!==this.onlineStateTimer&&(this.onlineStateTimer.cancel(),this.onlineStateTimer=null)},t}(),mi=function(){function t(t,e,n,r){this.localStore=t,this.datastore=e,this.writePipeline=[],this.listenTargets={},this.watchChangeAggregator=null,this.networkEnabled=!1,this.isPrimary=!1,this.onlineStateTracker=new di(n,r),this.watchStream=this.datastore.newPersistentWatchStream({onOpen:this.onWatchStreamOpen.bind(this),onClose:this.onWatchStreamClose.bind(this),onWatchChange:this.onWatchStreamChange.bind(this)}),this.writeStream=this.datastore.newPersistentWriteStream({onOpen:this.onWriteStreamOpen.bind(this),onClose:this.onWriteStreamClose.bind(this),onHandshakeComplete:this.onWriteHandshakeComplete.bind(this),onMutationResult:this.onMutationResult.bind(this)})}return t.prototype.start=function(){return this.enableNetwork()},t.prototype.enableNetwork=function(){return s.__awaiter(this,void 0,void 0,function(){var t;return s.__generator(this,function(e){switch(e.label){case 0:return this.networkEnabled=!0,this.canUseNetwork()?(t=this.writeStream,[4,this.localStore.getLastStreamToken()]):[3,3];case 1:return t.lastStreamToken=e.sent(),this.shouldStartWatchStream()?this.startWatchStream():this.onlineStateTracker.set(pi.Unknown),[4,this.fillWritePipeline()];case 2:e.sent(),e.label=3;case 3:return[2]}})})},t.prototype.disableNetwork=function(){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(t){switch(t.label){case 0:return this.networkEnabled=!1,[4,this.disableNetworkInternal()];case 1:return t.sent(),this.onlineStateTracker.set(pi.Offline),[2]}})})},t.prototype.disableNetworkInternal=function(){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(t){switch(t.label){case 0:return[4,this.writeStream.stop()];case 1:return t.sent(),[4,this.watchStream.stop()];case 2:return t.sent(),this.writePipeline.length>0&&(d("RemoteStore","Stopping write stream with "+this.writePipeline.length+" pending writes"),this.writePipeline=[]),this.cleanUpWatchStreamState(),[2]}})})},t.prototype.shutdown=function(){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(t){switch(t.label){case 0:return d("RemoteStore","RemoteStore shutting down."),this.networkEnabled=!1,[4,this.disableNetworkInternal()];case 1:return t.sent(),this.onlineStateTracker.set(pi.Unknown),[2]}})})},t.prototype.listen=function(t){v(!C(this.listenTargets,t.targetId),"listen called with duplicate targetId!"),this.listenTargets[t.targetId]=t,this.shouldStartWatchStream()?this.startWatchStream():this.watchStream.isOpen()&&this.sendWatchRequest(t)},t.prototype.unlisten=function(t){v(C(this.listenTargets,t),"unlisten called without assigned target ID!"),delete this.listenTargets[t],this.watchStream.isOpen()&&this.sendUnwatchRequest(t),k(this.listenTargets)&&(this.watchStream.isOpen()?this.watchStream.markIdle():this.canUseNetwork()&&this.onlineStateTracker.set(pi.Unknown))},t.prototype.getQueryDataForTarget=function(t){return this.listenTargets[t]||null},t.prototype.getRemoteKeysForTarget=function(t){return this.syncEngine.getRemoteKeysForTarget(t)},t.prototype.sendWatchRequest=function(t){this.watchChangeAggregator.recordPendingTargetRequest(t.targetId),this.watchStream.watch(t)},t.prototype.sendUnwatchRequest=function(t){this.watchChangeAggregator.recordPendingTargetRequest(t),this.watchStream.unwatch(t)},t.prototype.startWatchStream=function(){v(this.shouldStartWatchStream(),"startWatchStream() called when shouldStartWatchStream() is false."),this.watchChangeAggregator=new Ke(this),this.watchStream.start(),this.onlineStateTracker.handleWatchStreamStart()},t.prototype.shouldStartWatchStream=function(){return this.canUseNetwork()&&!this.watchStream.isStarted()&&!k(this.listenTargets)},t.prototype.canUseNetwork=function(){return this.isPrimary&&this.networkEnabled},t.prototype.cleanUpWatchStreamState=function(){this.watchChangeAggregator=null},t.prototype.onWatchStreamOpen=function(){return s.__awaiter(this,void 0,void 0,function(){var t=this;return s.__generator(this,function(e){return I(this.listenTargets,function(e,n){t.sendWatchRequest(n)}),[2]})})},t.prototype.onWatchStreamClose=function(t){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(e){return void 0===t&&v(!this.shouldStartWatchStream(),"Watch stream was stopped gracefully while still needed."),this.cleanUpWatchStreamState(),this.shouldStartWatchStream()?(this.onlineStateTracker.handleWatchStreamFailure(t),this.startWatchStream()):this.onlineStateTracker.set(pi.Unknown),[2]})})},t.prototype.onWatchStreamChange=function(t,e){return s.__awaiter(this,void 0,void 0,function(){var n;return s.__generator(this,function(r){switch(r.label){case 0:return this.onlineStateTracker.set(pi.Online),t instanceof We&&t.state===ze.Removed&&t.cause?[2,this.handleTargetError(t)]:(t instanceof Be?this.watchChangeAggregator.handleDocumentChange(t):t instanceof He?this.watchChangeAggregator.handleExistenceFilter(t):(v(t instanceof We,"Expected watchChange to be an instance of WatchTargetChange"),this.watchChangeAggregator.handleTargetChange(t)),e.isEqual($t.MIN)?[3,3]:[4,this.localStore.getLastRemoteSnapshotVersion()]);case 1:return n=r.sent(),e.compareTo(n)>=0?[4,this.raiseWatchSnapshot(e)]:[3,3];case 2:r.sent(),r.label=3;case 3:return[2]}})})},t.prototype.raiseWatchSnapshot=function(t){var e=this;v(!t.isEqual($t.MIN),"Can't raise event for unknown SnapshotVersion");var n=this.watchChangeAggregator.createRemoteEvent(t);return I(n.targetChanges,function(n,r){if(r.resumeToken.length>0){var i=e.listenTargets[n];i&&(e.listenTargets[n]=i.copy({resumeToken:r.resumeToken,snapshotVersion:t}))}}),n.targetMismatches.forEach(function(t){var n=e.listenTargets[t];if(n){e.listenTargets[t]=n.copy({resumeToken:b()}),e.sendUnwatchRequest(t);var r=new ee(n.query,t,te.ExistenceFilterMismatch,n.sequenceNumber);e.sendWatchRequest(r)}}),this.syncEngine.applyRemoteEvent(n)},t.prototype.handleTargetError=function(t){var e=this;v(!!t.cause,"Handling target error without a cause");var n=t.cause,r=Promise.resolve();return t.targetIds.forEach(function(t){r=r.then(function(){return s.__awaiter(e,void 0,void 0,function(){return s.__generator(this,function(e){return C(this.listenTargets,t)?(delete this.listenTargets[t],this.watchChangeAggregator.removeTarget(t),[2,this.syncEngine.rejectListen(t,n)]):[2]})})})}),r},t.prototype.fillWritePipeline=function(){return s.__awaiter(this,void 0,void 0,function(){var t;return s.__generator(this,function(e){switch(e.label){case 0:return this.canAddToWritePipeline()?[4,this.localStore.nextMutationBatch(this.writePipeline.length>0?this.writePipeline[this.writePipeline.length-1].batchId:-1)]:[3,4];case 1:return null!==(t=e.sent())?[3,2]:(0===this.writePipeline.length&&this.writeStream.markIdle(),[3,4]);case 2:return this.addToWritePipeline(t),[4,this.fillWritePipeline()];case 3:e.sent(),e.label=4;case 4:return this.shouldStartWriteStream()&&this.startWriteStream(),[2]}})})},t.prototype.canAddToWritePipeline=function(){return this.canUseNetwork()&&this.writePipeline.length<10},t.prototype.outstandingWrites=function(){return this.writePipeline.length},t.prototype.addToWritePipeline=function(t){v(this.canAddToWritePipeline(),"addToWritePipeline called when pipeline is full"),this.writePipeline.push(t),this.writeStream.isOpen()&&this.writeStream.handshakeComplete&&this.writeStream.writeMutations(t.mutations)},t.prototype.shouldStartWriteStream=function(){return this.canUseNetwork()&&!this.writeStream.isStarted()&&this.writePipeline.length>0},t.prototype.startWriteStream=function(){v(this.shouldStartWriteStream(),"startWriteStream() called when shouldStartWriteStream() is false."),this.writeStream.start()},t.prototype.onWriteStreamOpen=function(){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(t){return this.writeStream.writeHandshake(),[2]})})},t.prototype.onWriteHandshakeComplete=function(){var t=this;return this.localStore.setLastStreamToken(this.writeStream.lastStreamToken).then(function(){for(var e=0,n=t.writePipeline;e<n.length;e++)t.writeStream.writeMutations(n[e].mutations)}).catch(Ur)},t.prototype.onMutationResult=function(t,e){var n=this;v(this.writePipeline.length>0,"Got result for empty write pipeline");var r=this.writePipeline.shift(),i=Tn.from(r,t,e,this.writeStream.lastStreamToken);return this.syncEngine.applySuccessfulWrite(i).then(function(){return n.fillWritePipeline()})},t.prototype.onWriteStreamClose=function(t){return s.__awaiter(this,void 0,void 0,function(){var e=this;return s.__generator(this,function(n){return void 0===t&&v(!this.shouldStartWriteStream(),"Write stream was stopped gracefully while still needed."),t&&this.writePipeline.length>0?[2,(this.writeStream.handshakeComplete?this.handleWriteError(t):this.handleHandshakeError(t)).then(function(){e.shouldStartWriteStream()&&e.startWriteStream()})]:[2]})})},t.prototype.handleHandshakeError=function(t){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(e){return we(t.code)?(d("RemoteStore","RemoteStore error before completed handshake; resetting stream token: ",this.writeStream.lastStreamToken),this.writeStream.lastStreamToken=b(),[2,this.localStore.setLastStreamToken(b()).catch(Ur)]):[2]})})},t.prototype.handleWriteError=function(t){return s.__awaiter(this,void 0,void 0,function(){var e,n=this;return s.__generator(this,function(r){return we(i=t.code)&&i!==w.ABORTED?(e=this.writePipeline.shift(),this.writeStream.inhibitBackoff(),[2,this.syncEngine.rejectFailedWrite(e.batchId,t).then(function(){return n.fillWritePipeline()})]):[2];var i})})},t.prototype.createTransaction=function(){return new hi(this.datastore)},t.prototype.handleCredentialChange=function(){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(t){switch(t.label){case 0:return this.canUseNetwork()?(d("RemoteStore","RemoteStore restarting streams for new credential"),this.networkEnabled=!1,[4,this.disableNetworkInternal()]):[3,3];case 1:return t.sent(),this.onlineStateTracker.set(pi.Unknown),[4,this.enableNetwork()];case 2:t.sent(),t.label=3;case 3:return[2]}})})},t.prototype.applyPrimaryState=function(t){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(e){switch(e.label){case 0:return this.isPrimary=t,t&&this.networkEnabled?[4,this.enableNetwork()]:[3,2];case 1:return e.sent(),[3,4];case 2:return t?[3,4]:[4,this.disableNetworkInternal()];case 3:e.sent(),this.onlineStateTracker.set(pi.Unknown),e.label=4;case 4:return[2]}})})},t}(),yi=function(){return function(){this.listeners=[]}}(),gi=function(){function t(t){this.syncEngine=t,this.queries=new Kn(function(t){return t.canonicalId()}),this.onlineState=pi.Unknown,this.syncEngine.subscribe(this)}return t.prototype.listen=function(t){var e=t.query,n=!1,r=this.queries.get(e);return r||(n=!0,r=new yi,this.queries.set(e,r)),r.listeners.push(t),t.applyOnlineStateChange(this.onlineState),r.viewSnap&&t.onViewSnapshot(r.viewSnap),n?this.syncEngine.listen(e).then(function(t){return r.targetId=t,t}):Promise.resolve(r.targetId)},t.prototype.unlisten=function(t){return s.__awaiter(this,void 0,void 0,function(){var e,n,r,i;return s.__generator(this,function(o){return n=!1,(r=this.queries.get(e=t.query))&&(i=r.listeners.indexOf(t))>=0&&(r.listeners.splice(i,1),n=0===r.listeners.length),n?(this.queries.delete(e),[2,this.syncEngine.unlisten(e)]):[2]})})},t.prototype.onWatchChange=function(t){for(var e=0,n=t;e<n.length;e++){var r=n[e],i=this.queries.get(r.query);if(i){for(var o=0,s=i.listeners;o<s.length;o++)s[o].onViewSnapshot(r);i.viewSnap=r}}},t.prototype.onWatchError=function(t,e){var n=this.queries.get(t);if(n)for(var r=0,i=n.listeners;r<i.length;r++)i[r].onError(e);this.queries.delete(t)},t.prototype.onOnlineStateChange=function(t){this.onlineState=t,this.queries.forEach(function(e,n){for(var r=0,i=n.listeners;r<i.length;r++)i[r].applyOnlineStateChange(t)})},t}(),vi=function(){function t(t,e,n){this.query=t,this.queryObserver=e,this.raisedInitialEvent=!1,this.onlineState=pi.Unknown,this.options=n||{}}return t.prototype.onViewSnapshot=function(t){if(v(t.docChanges.length>0||t.syncStateChanged,"We got a new snapshot with no changes?"),!this.options.includeMetadataChanges){for(var e=[],n=0,r=t.docChanges;n<r.length;n++){var i=r[n];i.type!==Le.Metadata&&e.push(i)}t=new Ue(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0)}this.raisedInitialEvent?this.shouldRaiseEvent(t)&&this.queryObserver.next(t):this.shouldRaiseInitialEvent(t,this.onlineState)&&this.raiseInitialEvent(t),this.snap=t},t.prototype.onError=function(t){this.queryObserver.error(t)},t.prototype.applyOnlineStateChange=function(t){this.onlineState=t,this.snap&&!this.raisedInitialEvent&&this.shouldRaiseInitialEvent(this.snap,t)&&this.raiseInitialEvent(this.snap)},t.prototype.shouldRaiseInitialEvent=function(t,e){return v(!this.raisedInitialEvent,"Determining whether to raise first event but already had first event"),!t.fromCache||(this.options.waitForSyncWhenOnline&&e!==pi.Offline?(v(t.fromCache,"Waiting for sync, but snapshot is not from cache"),!1):!t.docs.isEmpty()||e===pi.Offline)},t.prototype.shouldRaiseEvent=function(t){return t.docChanges.length>0||!!(t.syncStateChanged||this.snap&&this.snap.hasPendingWrites!==t.hasPendingWrites)&&!0===this.options.includeMetadataChanges},t.prototype.raiseInitialEvent=function(t){v(!this.raisedInitialEvent,"Trying to raise initial events for second time"),t=Ue.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache),this.raisedInitialEvent=!0,this.queryObserver.next(t)},t}(),_i=function(){function t(t,e,n){this.targetId=t,this.addedKeys=e,this.removedKeys=n}return t.fromSnapshot=function(e,n){for(var r=De(),i=De(),o=0,s=n.docChanges;o<s.length;o++){var a=s[o];switch(a.type){case Le.Added:r=r.add(a.doc.key);break;case Le.Removed:i=i.add(a.doc.key)}}return new t(e,r,i)},t}(),bi=function(){return function(t){this.key=t}}(),wi=function(){return function(t){this.key=t}}(),Ei=function(){function t(t,e){this.query=t,this._syncedDocuments=e,this.syncState=null,this.current=!1,this.limboDocuments=De(),this.mutatedKeys=De(),this.documentSet=new Me(t.docComparator.bind(t))}return Object.defineProperty(t.prototype,"syncedDocuments",{get:function(){return this._syncedDocuments},enumerable:!0,configurable:!0}),t.prototype.computeDocChanges=function(t,e){var n=this,r=e?e.changeSet:new je,i=e?e.documentSet:this.documentSet,o=e?e.mutatedKeys:this.mutatedKeys,s=i,a=!1,u=this.query.hasLimit()&&i.size===this.query.limit?i.last():null;if(t.inorderTraversal(function(t,e){var l=i.get(t),c=e instanceof ht?e:null;c&&(v(t.isEqual(c.key),"Mismatching keys found in document changes: "+t+" != "+c.key),c=n.query.matches(c)?c:null);var h=!!l&&n.mutatedKeys.has(l.key),p=!!c&&(c.hasLocalMutations||n.mutatedKeys.has(c.key)&&c.hasCommittedMutations),f=!1;l&&c?l.data.isEqual(c.data)?h!==p&&(r.track({type:Le.Metadata,doc:c}),f=!0):n.shouldWaitForSyncedDocument(l,c)||(r.track({type:Le.Modified,doc:c}),f=!0,u&&n.query.docComparator(c,u)>0&&(a=!0)):!l&&c?(r.track({type:Le.Added,doc:c}),f=!0):l&&!c&&(r.track({type:Le.Removed,doc:l}),f=!0,u&&(a=!0)),f&&(c?(s=s.add(c),o=p?o.add(t):o.delete(t)):(s=s.delete(t),o=o.delete(t)))}),this.query.hasLimit())for(;s.size>this.query.limit;){var l=s.last();s=s.delete(l.key),o=o.delete(l.key),r.track({type:Le.Removed,doc:l})}return v(!a||!e,"View was refilled using docs that themselves needed refilling."),{documentSet:s,changeSet:r,needsRefill:a,mutatedKeys:o}},t.prototype.shouldWaitForSyncedDocument=function(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations},t.prototype.applyChanges=function(t,e,n){var r=this;v(!t.needsRefill,"Cannot apply changes that need a refill");var i=this.documentSet;this.documentSet=t.documentSet,this.mutatedKeys=t.mutatedKeys;var o=t.changeSet.getChanges();o.sort(function(t,e){return function(t,e){var n=function(t){switch(t){case Le.Added:return 1;case Le.Modified:case Le.Metadata:return 2;case Le.Removed:return 0;default:return g("Unknown ChangeType: "+t)}};return n(t)-n(e)}(t.type,e.type)||r.query.docComparator(t.doc,e.doc)}),this.applyTargetChange(n);var s=e?this.updateLimboDocuments():[],a=0===this.limboDocuments.size&&this.current?Fe.Synced:Fe.Local,u=a!==this.syncState;return this.syncState=a,0!==o.length||u?{snapshot:new Ue(this.query,t.documentSet,i,o,t.mutatedKeys,a===Fe.Local,u,!1),limboChanges:s}:{limboChanges:s}},t.prototype.applyOnlineStateChange=function(t){return this.current&&t===pi.Offline?(this.current=!1,this.applyChanges({documentSet:this.documentSet,changeSet:new je,mutatedKeys:this.mutatedKeys,needsRefill:!1},!1)):{limboChanges:[]}},t.prototype.shouldBeInLimbo=function(t){return!this._syncedDocuments.has(t)&&!!this.documentSet.has(t)&&!this.documentSet.get(t).hasLocalMutations},t.prototype.applyTargetChange=function(t){var e=this;t&&(t.addedDocuments.forEach(function(t){return e._syncedDocuments=e._syncedDocuments.add(t)}),t.modifiedDocuments.forEach(function(t){return v(e._syncedDocuments.has(t),"Modified document "+t+" not found in view.")}),t.removedDocuments.forEach(function(t){return e._syncedDocuments=e._syncedDocuments.delete(t)}),this.current=t.current)},t.prototype.updateLimboDocuments=function(){var t=this;if(!this.current)return[];var e=this.limboDocuments;this.limboDocuments=De(),this.documentSet.forEach(function(e){t.shouldBeInLimbo(e.key)&&(t.limboDocuments=t.limboDocuments.add(e.key))});var n=[];return e.forEach(function(e){t.limboDocuments.has(e)||n.push(new wi(e))}),this.limboDocuments.forEach(function(t){e.has(t)||n.push(new bi(t))}),n},t.prototype.synchronizeWithPersistedState=function(t,e){this._syncedDocuments=e,this.limboDocuments=De();var n=this.computeDocChanges(t);return this.applyChanges(n,!0)},t.prototype.computeInitialSnapshot=function(){return Ue.fromInitialDocuments(this.query,this.documentSet,this.mutatedKeys,this.syncState===Fe.Local)},t}(),Si=function(){return function(t,e,n){this.query=t,this.targetId=e,this.view=n}}(),Ci=function(){return function(t){this.key=t}}(),Ti=function(){function t(t,e,n,r){this.localStore=t,this.remoteStore=e,this.sharedClientState=n,this.currentUser=r,this.syncEngineListener=null,this.queryViewsByQuery=new Kn(function(t){return t.canonicalId()}),this.queryViewsByTarget={},this.limboTargetsByKey=new dt(lt.comparator),this.limboResolutionsByTarget={},this.limboDocumentRefs=new Wr,this.mutationUserCallbacks={},this.limboTargetIdGenerator=Ln.forSyncEngine(),this.isPrimary=void 0,this.onlineState=pi.Unknown}return Object.defineProperty(t.prototype,"isPrimaryClient",{get:function(){return!0===this.isPrimary},enumerable:!0,configurable:!0}),t.prototype.subscribe=function(t){v(null!==t,"SyncEngine listener cannot be null"),v(null===this.syncEngineListener,"SyncEngine already has a subscriber."),this.syncEngineListener=t},t.prototype.listen=function(t){return s.__awaiter(this,void 0,void 0,function(){var e,n,r,i,o;return s.__generator(this,function(s){switch(s.label){case 0:return this.assertSubscribed("listen()"),(r=this.queryViewsByQuery.get(t))?(this.sharedClientState.addLocalQueryTarget(e=r.targetId),n=r.view.computeInitialSnapshot(),[3,4]):[3,1];case 1:return[4,this.localStore.allocateQuery(t)];case 2:return i=s.sent(),o=this.sharedClientState.addLocalQueryTarget(i.targetId),e=i.targetId,[4,this.initializeViewAndComputeSnapshot(i,"current"===o)];case 3:n=s.sent(),this.isPrimary&&this.remoteStore.listen(i),s.label=4;case 4:return this.syncEngineListener.onWatchChange([n]),[2,e]}})})},t.prototype.initializeViewAndComputeSnapshot=function(t,e){var n=this,r=t.query;return this.localStore.executeQuery(r).then(function(i){return n.localStore.remoteDocumentKeys(t.targetId).then(function(o){var s=new Ei(r,o),a=s.computeDocChanges(i),u=qe.createSynthesizedTargetChangeForCurrentChange(t.targetId,e&&n.onlineState!==pi.Offline),l=s.applyChanges(a,!0===n.isPrimary,u);v(0===l.limboChanges.length,"View returned limbo docs before target ack from the server."),v(!!l.snapshot,"applyChanges for new view should always return a snapshot");var c=new Si(r,t.targetId,s);return n.queryViewsByQuery.set(r,c),n.queryViewsByTarget[t.targetId]=c,l.snapshot})})},t.prototype.synchronizeViewAndComputeSnapshot=function(t){var e=this;return this.localStore.executeQuery(t.query).then(function(n){return e.localStore.remoteDocumentKeys(t.targetId).then(function(r){return s.__awaiter(e,void 0,void 0,function(){var e;return s.__generator(this,function(i){return e=t.view.synchronizeWithPersistedState(n,r),this.isPrimary&&this.updateTrackedLimbos(t.targetId,e.limboChanges),[2,e]})})})})},t.prototype.unlisten=function(t){return s.__awaiter(this,void 0,void 0,function(){var e,n=this;return s.__generator(this,function(r){switch(r.label){case 0:return this.assertSubscribed("unlisten()"),v(!!(e=this.queryViewsByQuery.get(t)),"Trying to unlisten on query not found:"+t),this.isPrimary?(this.sharedClientState.removeLocalQueryTarget(e.targetId),this.sharedClientState.isActiveQueryTarget(e.targetId)?[3,2]:[4,this.localStore.releaseQuery(t,!1).then(function(){n.sharedClientState.clearQueryState(e.targetId),n.remoteStore.unlisten(e.targetId),n.removeAndCleanupQuery(e)}).catch(Ur)]):[3,3];case 1:r.sent(),r.label=2;case 2:return[3,5];case 3:return this.removeAndCleanupQuery(e),[4,this.localStore.releaseQuery(t,!0)];case 4:r.sent(),r.label=5;case 5:return[2]}})})},t.prototype.write=function(t,e){var n=this;return this.assertSubscribed("write()"),this.localStore.localWrite(t).then(function(t){return n.sharedClientState.addPendingMutation(t.batchId),n.addMutationCallback(t.batchId,e),n.emitNewSnapsAndNotifyLocalStore(t.changes)}).then(function(){return n.remoteStore.fillWritePipeline()})},t.prototype.wrapUpdateFunctionError=function(t){return t},t.prototype.runTransaction=function(t,e){var n=this;void 0===e&&(e=5),v(e>=0,"Got negative number of retries for transaction.");var r=this.remoteStore.createTransaction();return function(){try{var e=t(r);return!Vt(e)&&e.catch&&e.then?e.catch(function(t){return Promise.reject(n.wrapUpdateFunctionError(t))}):Promise.reject(Error("Transaction callback must return a Promise"))}catch(i){return Promise.reject(n.wrapUpdateFunctionError(i))}}().then(function(i){return r.commit().then(function(){return i}).catch(function(r){return 0===e?Promise.reject(r):n.runTransaction(t,e-1)})})},t.prototype.applyRemoteEvent=function(t){var e=this;return this.assertSubscribed("applyRemoteEvent()"),this.localStore.applyRemoteEvent(t).then(function(n){return x(t.targetChanges,function(t,n){var r=e.limboResolutionsByTarget[t];r&&(v(n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size<=1,"Limbo resolution for single document contains multiple changes."),n.addedDocuments.size>0?r.receivedDocument=!0:n.modifiedDocuments.size>0?v(r.receivedDocument,"Received change for limbo target document without add."):n.removedDocuments.size>0&&(v(r.receivedDocument,"Received remove for limbo target document without add."),r.receivedDocument=!1))}),e.emitNewSnapsAndNotifyLocalStore(n,t)}).catch(Ur)},t.prototype.applyOnlineStateChange=function(t,e){if(this.isPrimary&&e===fi.RemoteStore||!this.isPrimary&&e===fi.SharedClientState){var n=[];this.queryViewsByQuery.forEach(function(e,r){var i=r.view.applyOnlineStateChange(t);v(0===i.limboChanges.length,"OnlineState should not affect limbo documents."),i.snapshot&&n.push(i.snapshot)}),this.syncEngineListener.onOnlineStateChange(t),this.syncEngineListener.onWatchChange(n),this.onlineState=t,this.isPrimary&&this.sharedClientState.setOnlineState(t)}},t.prototype.rejectListen=function(t,e){return s.__awaiter(this,void 0,void 0,function(){var n,r,i,o,a,u,l=this;return s.__generator(this,function(s){switch(s.label){case 0:return this.assertSubscribed("rejectListens()"),this.sharedClientState.updateQueryState(t,"rejected",e),(r=(n=this.limboResolutionsByTarget[t])&&n.key)?(this.limboTargetsByKey=this.limboTargetsByKey.remove(r),delete this.limboResolutionsByTarget[t],i=(i=new dt(lt.comparator)).insert(r,new pt(r,$t.forDeletedDoc())),o=De().add(r),a=new Ve($t.MIN,{},new ne(K),i,o),[2,this.applyRemoteEvent(a)]):[3,1];case 1:return v(!!(u=this.queryViewsByTarget[t]),"Unknown targetId: "+t),[4,this.localStore.releaseQuery(u.query,!1).then(function(){return l.removeAndCleanupQuery(u)}).catch(Ur)];case 2:s.sent(),this.syncEngineListener.onWatchError(u.query,e),s.label=3;case 3:return[2]}})})},t.prototype.applyBatchState=function(t,e,n){return s.__awaiter(this,void 0,void 0,function(){var r;return s.__generator(this,function(i){switch(i.label){case 0:return this.assertSubscribed("applyBatchState()"),[4,this.localStore.lookupMutationDocuments(t)];case 1:return null===(r=i.sent())?(d("SyncEngine","Cannot apply mutation batch with id: "+t),[2]):"pending"!==e?[3,3]:[4,this.remoteStore.fillWritePipeline()];case 2:return i.sent(),[3,4];case 3:"acknowledged"===e||"rejected"===e?(this.processUserCallback(t,n||null),this.localStore.removeCachedMutationBatchMetadata(t)):g("Unknown batchState: "+e),i.label=4;case 4:return[4,this.emitNewSnapsAndNotifyLocalStore(r)];case 5:return i.sent(),[2]}})})},t.prototype.applySuccessfulWrite=function(t){var e=this;this.assertSubscribed("applySuccessfulWrite()");var n=t.batch.batchId;return this.processUserCallback(n,null),this.localStore.acknowledgeBatch(t).then(function(t){return e.sharedClientState.updateMutationState(n,"acknowledged"),e.emitNewSnapsAndNotifyLocalStore(t)}).catch(Ur)},t.prototype.rejectFailedWrite=function(t,e){var n=this;return this.assertSubscribed("rejectFailedWrite()"),this.processUserCallback(t,e),this.localStore.rejectBatch(t).then(function(r){return n.sharedClientState.updateMutationState(t,"rejected",e),n.emitNewSnapsAndNotifyLocalStore(r)}).catch(Ur)},t.prototype.addMutationCallback=function(t,e){var n=this.mutationUserCallbacks[this.currentUser.toKey()];n||(n=new dt(K)),n=n.insert(t,e),this.mutationUserCallbacks[this.currentUser.toKey()]=n},t.prototype.processUserCallback=function(t,e){var n=this.mutationUserCallbacks[this.currentUser.toKey()];if(n){var r=n.get(t);r&&(v(t===n.minKey(),"Mutation callbacks processed out-of-order?"),e?r.reject(e):r.resolve(),n=n.remove(t)),this.mutationUserCallbacks[this.currentUser.toKey()]=n}},t.prototype.removeAndCleanupQuery=function(t){var e=this;if(this.sharedClientState.removeLocalQueryTarget(t.targetId),this.queryViewsByQuery.delete(t.query),delete this.queryViewsByTarget[t.targetId],this.isPrimary){var n=this.limboDocumentRefs.referencesForId(t.targetId);this.limboDocumentRefs.removeReferencesForId(t.targetId),n.forEach(function(t){e.limboDocumentRefs.containsKey(t)||e.removeLimboTarget(t)})}},t.prototype.removeLimboTarget=function(t){var e=this.limboTargetsByKey.get(t);null!==e&&(this.remoteStore.unlisten(e),this.limboTargetsByKey=this.limboTargetsByKey.remove(t),delete this.limboResolutionsByTarget[e])},t.prototype.updateTrackedLimbos=function(t,e){for(var n=0,r=e;n<r.length;n++){var i=r[n];i instanceof bi?(this.limboDocumentRefs.addReference(i.key,t),this.trackLimboChange(i)):i instanceof wi?(d("SyncEngine","Document no longer in limbo: "+i.key),this.limboDocumentRefs.removeReference(i.key,t),this.limboDocumentRefs.containsKey(i.key)||this.removeLimboTarget(i.key)):g("Unknown limbo change: "+JSON.stringify(i))}},t.prototype.trackLimboChange=function(t){var e=t.key;if(!this.limboTargetsByKey.get(e)){d("SyncEngine","New document in limbo: "+e);var n=this.limboTargetIdGenerator.next(),r=Bt.atPath(e.path);this.limboResolutionsByTarget[n]=new Ci(e),this.remoteStore.listen(new ee(r,n,te.LimboResolution,pn.INVALID)),this.limboTargetsByKey=this.limboTargetsByKey.insert(e,n)}},t.prototype.currentLimboDocs=function(){return this.limboTargetsByKey},t.prototype.emitNewSnapsAndNotifyLocalStore=function(t,e){return s.__awaiter(this,void 0,void 0,function(){var n,r,i,o=this;return s.__generator(this,function(s){switch(s.label){case 0:return n=[],r=[],i=[],this.queryViewsByQuery.forEach(function(s,a){i.push(Promise.resolve().then(function(){var e=a.view.computeDocChanges(t);return e.needsRefill?o.localStore.executeQuery(a.query).then(function(t){return a.view.computeDocChanges(t,e)}):e}).then(function(t){var i=a.view.applyChanges(t,!0===o.isPrimary,e&&e.targetChanges[a.targetId]);if(o.updateTrackedLimbos(a.targetId,i.limboChanges),i.snapshot){o.isPrimary&&o.sharedClientState.updateQueryState(a.targetId,i.snapshot.fromCache?"not-current":"current"),n.push(i.snapshot);var s=_i.fromSnapshot(a.targetId,i.snapshot);r.push(s)}}))}),[4,Promise.all(i)];case 1:return s.sent(),this.syncEngineListener.onWatchChange(n),[4,this.localStore.notifyLocalViewChanges(r)];case 2:return s.sent(),[2]}})})},t.prototype.assertSubscribed=function(t){v(null!==this.syncEngineListener,"Trying to call "+t+" before calling subscribe().")},t.prototype.handleCredentialChange=function(t){return s.__awaiter(this,void 0,void 0,function(){var e,n;return s.__generator(this,function(r){switch(r.label){case 0:return e=!this.currentUser.isEqual(t),this.currentUser=t,e?[4,this.localStore.handleUserChange(t)]:[3,3];case 1:return n=r.sent(),this.sharedClientState.handleUserChange(t,n.removedBatchIds,n.addedBatchIds),[4,this.emitNewSnapsAndNotifyLocalStore(n.affectedDocuments)];case 2:r.sent(),r.label=3;case 3:return[4,this.remoteStore.handleCredentialChange()];case 4:return r.sent(),[2]}})})},t.prototype.applyPrimaryState=function(t){return s.__awaiter(this,void 0,void 0,function(){var e,n,r,i,o,a,u=this;return s.__generator(this,function(s){switch(s.label){case 0:return!0!==t||!0===this.isPrimary?[3,3]:(this.isPrimary=!0,[4,this.remoteStore.applyPrimaryState(!0)]);case 1:return s.sent(),e=this.sharedClientState.getAllActiveQueryTargets(),[4,this.synchronizeQueryViewsAndRaiseSnapshots(e.toArray())];case 2:for(n=s.sent(),r=0,i=n;r<i.length;r++)this.remoteStore.listen(i[r]);return[3,7];case 3:return!1!==t||!1===this.isPrimary?[3,7]:(this.isPrimary=!1,o=[],a=Promise.resolve(),I(this.queryViewsByTarget,function(t,e){u.sharedClientState.isLocalQueryTarget(t)?o.push(t):a=a.then(function(){return u.unlisten(e.query)}),u.remoteStore.unlisten(e.targetId)}),[4,a]);case 4:return s.sent(),[4,this.synchronizeQueryViewsAndRaiseSnapshots(o)];case 5:return s.sent(),this.resetLimboDocuments(),[4,this.remoteStore.applyPrimaryState(!1)];case 6:s.sent(),s.label=7;case 7:return[2]}})})},t.prototype.resetLimboDocuments=function(){var t=this;I(this.limboResolutionsByTarget,function(e){t.remoteStore.unlisten(e)}),this.limboDocumentRefs.removeAllReferences(),this.limboResolutionsByTarget=[],this.limboTargetsByKey=new dt(lt.comparator)},t.prototype.synchronizeQueryViewsAndRaiseSnapshots=function(t){for(var e=this,n=Promise.resolve(),r=[],i=[],o=function(t){n=n.then(function(){return s.__awaiter(e,void 0,void 0,function(){var e,n,o,a;return s.__generator(this,function(s){switch(s.label){case 0:return(n=this.queryViewsByTarget[t])?[4,this.localStore.releaseQuery(n.query,!0)]:[3,4];case 1:return s.sent(),[4,this.localStore.allocateQuery(n.query)];case 2:return e=s.sent(),[4,this.synchronizeViewAndComputeSnapshot(n)];case 3:return(o=s.sent()).snapshot&&i.push(o.snapshot),[3,8];case 4:return v(!0===this.isPrimary,"A secondary tab should never have an active query without an active view."),[4,this.localStore.getQueryForTarget(t)];case 5:return v(!!(a=s.sent()),"Query data for target "+t+" not found"),[4,this.localStore.allocateQuery(a)];case 6:return e=s.sent(),[4,this.initializeViewAndComputeSnapshot(e,!1)];case 7:s.sent(),s.label=8;case 8:return r.push(e),[2]}})})})},a=0,u=t;a<u.length;a++)o(u[a]);return n.then(function(){return e.syncEngineListener.onWatchChange(i),r})},t.prototype.getActiveClients=function(){return this.localStore.getActiveClients()},t.prototype.applyTargetState=function(t,e,n){return s.__awaiter(this,void 0,void 0,function(){var r,i=this;return s.__generator(this,function(o){switch(o.label){case 0:if(this.isPrimary)return d("SyncEngine","Ignoring unexpected query state notification."),[2];if(!this.queryViewsByTarget[t])return[3,5];switch(e){case"current":case"not-current":return[3,1];case"rejected":return[3,2]}return[3,4];case 1:return[2,this.localStore.getNewDocumentChanges().then(function(n){return s.__awaiter(i,void 0,void 0,function(){var r;return s.__generator(this,function(i){switch(i.label){case 0:return r=Ve.createSynthesizedRemoteEventForCurrentChange(t,"current"===e),[4,this.emitNewSnapsAndNotifyLocalStore(n,r)];case 1:return i.sent(),[2]}})})},function(t){return s.__awaiter(i,void 0,void 0,function(){var e;return s.__generator(this,function(n){switch(n.label){case 0:return function(t){return t.code===w.DATA_LOSS&&t.message===Yn}(t)?(e=[],I(this.queryViewsByTarget,function(t){return e.push(t)}),[4,this.synchronizeQueryViewsAndRaiseSnapshots(e)]):[3,2];case 1:return n.sent(),[3,3];case 2:throw t;case 3:return[2]}})})})];case 2:return this.removeAndCleanupQuery(r=this.queryViewsByTarget[t]),[4,this.localStore.releaseQuery(r.query,!0)];case 3:return o.sent(),this.syncEngineListener.onWatchError(r.query,n),[3,5];case 4:g("Unexpected target state: "+e),o.label=5;case 5:return[2]}})})},t.prototype.applyActiveTargetsChange=function(t,e){return s.__awaiter(this,void 0,void 0,function(){var n,r,i,o,a,u,l,c,h,p=this;return s.__generator(this,function(f){switch(f.label){case 0:if(!this.isPrimary)return[2];n=0,r=t,f.label=1;case 1:return n<r.length?(v(!this.queryViewsByTarget[h=r[n]],"Trying to add an already active target"),[4,this.localStore.getQueryForTarget(h)]):[3,6];case 2:return v(!!(i=f.sent()),"Query data for active target "+h+" not found"),[4,this.localStore.allocateQuery(i)];case 3:return o=f.sent(),[4,this.initializeViewAndComputeSnapshot(o,!1)];case 4:f.sent(),this.remoteStore.listen(o),f.label=5;case 5:return n++,[3,1];case 6:a=function(t){var e;return s.__generator(this,function(n){switch(n.label){case 0:return(e=u.queryViewsByTarget[t])?[4,u.localStore.releaseQuery(e.query,!1).then(function(){p.remoteStore.unlisten(t),p.removeAndCleanupQuery(e)}).catch(Ur)]:[3,2];case 1:n.sent(),n.label=2;case 2:return[2]}})},u=this,l=0,c=e,f.label=7;case 7:return l<c.length?[5,a(h=c[l])]:[3,10];case 8:f.sent(),f.label=9;case 9:return l++,[3,7];case 10:return[2]}})})},t.prototype.enableNetwork=function(){return this.localStore.setNetworkEnabled(!0),this.remoteStore.enableNetwork()},t.prototype.disableNetwork=function(){return this.localStore.setNetworkEnabled(!1),this.remoteStore.disableNetwork()},t.prototype.getRemoteKeysForTarget=function(t){var e=this.limboResolutionsByTarget[t];return e&&e.receivedDocument?De().add(e.key):this.queryViewsByTarget[t]?this.queryViewsByTarget[t].view.syncedDocuments:De()},t}(),Ii=function(){function t(t){this.uid=t}return t.prototype.isAuthenticated=function(){return null!=this.uid},t.prototype.toKey=function(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"},t.prototype.isEqual=function(t){return t.uid===this.uid},t.UNAUTHENTICATED=new t(null),t.GOOGLE_CREDENTIALS=new t("google-credentials-uid"),t.FIRST_PARTY=new t("first-party-uid"),t}(),xi="SharedClientState",ki="firestore_clients",Ai="firestore_mutations",Oi="firestore_targets",Ni="firestore_online_state",Di="firestore_sequence_number",Ri=function(){function t(t,e,n,r){this.user=t,this.batchId=e,this.state=n,this.error=r,v(void 0!==r==("rejected"===n),"MutationMetadata must contain an error iff state is 'rejected'")}return t.fromWebStorageEntry=function(e,n,r){var i=JSON.parse(r),o="object"==typeof i&&-1!==["pending","acknowledged","rejected"].indexOf(i.state)&&(void 0===i.error||"object"==typeof i.error),s=void 0;return o&&i.error&&(o="string"==typeof i.error.message&&"string"==typeof i.error.code)&&(s=new E(i.error.code,i.error.message)),o?new t(e,n,i.state,s):(m(xi,"Failed to parse mutation state for ID '"+n+"': "+r),null)},t.prototype.toWebStorageJSON=function(){var t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)},t}(),Pi=function(){function t(t,e,n){this.targetId=t,this.state=e,this.error=n,v(void 0!==n==("rejected"===e),"QueryTargetMetadata must contain an error iff state is 'rejected'")}return t.fromWebStorageEntry=function(e,n){var r=JSON.parse(n),i="object"==typeof r&&-1!==["not-current","current","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error),o=void 0;return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code)&&(o=new E(r.error.code,r.error.message)),i?new t(e,r.state,o):(m(xi,"Failed to parse target state for ID '"+e+"': "+n),null)},t.prototype.toWebStorageJSON=function(){var t={state:this.state,updateTimeMs:Date.now()};return this.error&&(t.error={code:this.error.code,message:this.error.message}),JSON.stringify(t)},t}(),Mi=function(){function t(t,e){this.clientId=t,this.activeTargetIds=e}return t.fromWebStorageEntry=function(e,n){for(var r=JSON.parse(n),i="object"==typeof r&&r.activeTargetIds instanceof Array,o=Pe(),s=0;i&&s<r.activeTargetIds.length;++s)i=qt(r.activeTargetIds[s]),o=o.add(r.activeTargetIds[s]);return i?new t(e,o):(m(xi,"Failed to parse client data for instance '"+e+"': "+n),null)},t}(),Li=function(){function t(t,e){this.clientId=t,this.onlineState=e}return t.fromWebStorageEntry=function(e){var n=JSON.parse(e);return"object"==typeof n&&void 0!==pi[n.onlineState]&&"string"==typeof n.clientId?new t(n.clientId,pi[n.onlineState]):(m(xi,"Failed to parse online state: "+e),null)},t}(),Fi=function(){function t(){this.activeTargetIds=Pe()}return t.prototype.addQueryTarget=function(t){v(!this.activeTargetIds.has(t),"Target with ID '"+t+"' already active."),this.activeTargetIds=this.activeTargetIds.add(t)},t.prototype.removeQueryTarget=function(t){this.activeTargetIds=this.activeTargetIds.delete(t)},t.prototype.toWebStorageJSON=function(){var t={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(t)},t}(),ji=function(){function t(e,n,r,i,o){if(this.queue=e,this.platform=n,this.persistenceKey=r,this.localClientId=i,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.activeClients={},this.storageListener=this.handleWebStorageEvent.bind(this),this.started=!1,this.earlyEvents=[],!t.isAvailable(this.platform))throw new E(w.UNIMPLEMENTED,"LocalStorage is not available on this platform.");var s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.platform.window.localStorage,this.currentUser=o,this.localClientStorageKey=this.toWebStorageClientStateKey(this.localClientId),this.sequenceNumberKey=Di+"_"+r,this.activeClients[this.localClientId]=new Fi,this.clientStateKeyRe=new RegExp("^"+ki+"_"+s+"_([^_]*)$"),this.mutationBatchKeyRe=new RegExp("^"+Ai+"_"+s+"_(\\d+)(?:_(.*))?$"),this.queryTargetKeyRe=new RegExp("^"+Oi+"_"+s+"_(\\d+)$"),this.onlineStateKey=Ni+"_"+r,this.platform.window.addEventListener("storage",this.storageListener)}return t.isAvailable=function(t){return!(!t.window||null==t.window.localStorage)},t.prototype.start=function(){return s.__awaiter(this,void 0,void 0,function(){var t,e,n,r,i,o,a,u,l,c,h=this;return s.__generator(this,function(s){switch(s.label){case 0:return v(!this.started,"WebStorageSharedClientState already started"),v(null!==this.syncEngine,"syncEngine property must be set before calling start()"),v(null!==this.onlineStateHandler,"onlineStateHandler property must be set before calling start()"),[4,this.syncEngine.getActiveClients()];case 1:for(t=s.sent(),e=0,n=t;e<n.length;e++)(r=n[e])!==this.localClientId&&(i=this.getItem(this.toWebStorageClientStateKey(r)))&&(o=Mi.fromWebStorageEntry(r,i))&&(this.activeClients[o.clientId]=o);for(this.persistClientState(),(a=this.storage.getItem(this.onlineStateKey))&&(u=this.fromWebStorageOnlineState(a))&&this.handleOnlineStateEvent(u),l=0,c=this.earlyEvents;l<c.length;l++)this.handleWebStorageEvent(c[l]);return this.earlyEvents=[],this.platform.window.addEventListener("unload",function(){return h.shutdown()}),this.started=!0,[2]}})})},t.prototype.writeSequenceNumber=function(t){this.setItem(this.sequenceNumberKey,JSON.stringify(t))},t.prototype.getAllActiveQueryTargets=function(){var t=Pe();return x(this.activeClients,function(e,n){t=t.unionWith(n.activeTargetIds)}),t},t.prototype.isActiveQueryTarget=function(t){for(var e in this.activeClients)if(this.activeClients.hasOwnProperty(e)&&this.activeClients[e].activeTargetIds.has(t))return!0;return!1},t.prototype.addPendingMutation=function(t){this.persistMutationState(t,"pending")},t.prototype.updateMutationState=function(t,e,n){this.persistMutationState(t,e,n),this.removeMutationState(t)},t.prototype.addLocalQueryTarget=function(t){var e="not-current";if(this.isActiveQueryTarget(t)){var n=this.storage.getItem(this.toWebStorageQueryTargetMetadataKey(t));if(n){var r=Pi.fromWebStorageEntry(t,n);r&&(e=r.state)}}return this.localClientState.addQueryTarget(t),this.persistClientState(),e},t.prototype.removeLocalQueryTarget=function(t){this.localClientState.removeQueryTarget(t),this.persistClientState()},t.prototype.isLocalQueryTarget=function(t){return this.localClientState.activeTargetIds.has(t)},t.prototype.clearQueryState=function(t){this.removeItem(this.toWebStorageQueryTargetMetadataKey(t))},t.prototype.updateQueryState=function(t,e,n){this.persistQueryTargetState(t,e,n)},t.prototype.handleUserChange=function(t,e,n){var r=this;e.forEach(function(t){r.removeMutationState(t)}),this.currentUser=t,n.forEach(function(t){r.addPendingMutation(t)})},t.prototype.setOnlineState=function(t){this.persistOnlineState(t)},t.prototype.shutdown=function(){this.started&&(this.platform.window.removeEventListener("storage",this.storageListener),this.removeItem(this.localClientStorageKey),this.started=!1)},t.prototype.getItem=function(t){var e=this.storage.getItem(t);return d(xi,"READ",t,e),e},t.prototype.setItem=function(t,e){d(xi,"SET",t,e),this.storage.setItem(t,e)},t.prototype.removeItem=function(t){d(xi,"REMOVE",t),this.storage.removeItem(t)},t.prototype.handleWebStorageEvent=function(t){var e=this;if(t.storageArea===this.storage){if(d(xi,"EVENT",t.key,t.newValue),t.key===this.localClientStorageKey)return void m("Received WebStorage notification for local change. Another client might have garbage-collected our state");this.queue.enqueueAndForget(function(){return s.__awaiter(e,void 0,void 0,function(){var e,n,r,i,o,a;return s.__generator(this,function(s){if(!this.started)return this.earlyEvents.push(t),[2];if(null===t.key)return[2];if(this.clientStateKeyRe.test(t.key)){if(null==t.newValue)return n=this.fromWebStorageClientStateKey(t.key),[2,this.handleClientStateEvent(n,null)];if(e=this.fromWebStorageClientState(t.key,t.newValue))return[2,this.handleClientStateEvent(e.clientId,e)]}else if(this.mutationBatchKeyRe.test(t.key)){if(null!==t.newValue&&(r=this.fromWebStorageMutationMetadata(t.key,t.newValue)))return[2,this.handleMutationBatchEvent(r)]}else if(this.queryTargetKeyRe.test(t.key)){if(null!==t.newValue&&(i=this.fromWebStorageQueryTargetMetadata(t.key,t.newValue)))return[2,this.handleQueryTargetEvent(i)]}else if(t.key===this.onlineStateKey){if(null!==t.newValue&&(o=this.fromWebStorageOnlineState(t.newValue)))return[2,this.handleOnlineStateEvent(o)]}else t.key===this.sequenceNumberKey&&(v(!!this.sequenceNumberHandler,"Missing sequenceNumberHandler"),(a=function(t){var e=pn.INVALID;if(null!=t)try{var n=JSON.parse(t);v("number"==typeof n,"Found non-numeric sequence number"),e=n}catch(r){m(xi,"Failed to read sequence number from WebStorage",r)}return e}(t.newValue))!==pn.INVALID&&this.sequenceNumberHandler(a));return[2]})})})}},Object.defineProperty(t.prototype,"localClientState",{get:function(){return this.activeClients[this.localClientId]},enumerable:!0,configurable:!0}),t.prototype.persistClientState=function(){this.setItem(this.localClientStorageKey,this.localClientState.toWebStorageJSON())},t.prototype.persistMutationState=function(t,e,n){var r=new Ri(this.currentUser,t,e,n),i=this.toWebStorageMutationBatchKey(t);this.setItem(i,r.toWebStorageJSON())},t.prototype.removeMutationState=function(t){var e=this.toWebStorageMutationBatchKey(t);this.removeItem(e)},t.prototype.persistOnlineState=function(t){this.storage.setItem(this.onlineStateKey,JSON.stringify({clientId:this.localClientId,onlineState:pi[t]}))},t.prototype.persistQueryTargetState=function(t,e,n){var r=this.toWebStorageQueryTargetMetadataKey(t),i=new Pi(t,e,n);this.setItem(r,i.toWebStorageJSON())},t.prototype.toWebStorageClientStateKey=function(t){return v(-1===t.indexOf("_"),"Client key cannot contain '_', but was '"+t+"'"),ki+"_"+this.persistenceKey+"_"+t},t.prototype.toWebStorageQueryTargetMetadataKey=function(t){return Oi+"_"+this.persistenceKey+"_"+t},t.prototype.toWebStorageMutationBatchKey=function(t){var e=Ai+"_"+this.persistenceKey+"_"+t;return this.currentUser.isAuthenticated()&&(e+="_"+this.currentUser.uid),e},t.prototype.fromWebStorageClientStateKey=function(t){var e=this.clientStateKeyRe.exec(t);return e?e[1]:null},t.prototype.fromWebStorageClientState=function(t,e){var n=this.fromWebStorageClientStateKey(t);return v(null!==n,"Cannot parse client state key '"+t+"'"),Mi.fromWebStorageEntry(n,e)},t.prototype.fromWebStorageMutationMetadata=function(t,e){var n=this.mutationBatchKeyRe.exec(t);v(null!==n,"Cannot parse mutation batch key '"+t+"'");var r=Number(n[1]);return Ri.fromWebStorageEntry(new Ii(void 0!==n[2]?n[2]:null),r,e)},t.prototype.fromWebStorageQueryTargetMetadata=function(t,e){var n=this.queryTargetKeyRe.exec(t);v(null!==n,"Cannot parse query target key '"+t+"'");var r=Number(n[1]);return Pi.fromWebStorageEntry(r,e)},t.prototype.fromWebStorageOnlineState=function(t){return Li.fromWebStorageEntry(t)},t.prototype.handleMutationBatchEvent=function(t){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(e){return t.user.uid!==this.currentUser.uid?(d(xi,"Ignoring mutation for non-active user "+t.user.uid),[2]):[2,this.syncEngine.applyBatchState(t.batchId,t.state,t.error)]})})},t.prototype.handleQueryTargetEvent=function(t){return this.syncEngine.applyTargetState(t.targetId,t.state,t.error)},t.prototype.handleClientStateEvent=function(t,e){var n=this,r=this.getAllActiveQueryTargets();e?this.activeClients[t]=e:delete this.activeClients[t];var i=this.getAllActiveQueryTargets(),o=[],a=[];return i.forEach(function(t){return s.__awaiter(n,void 0,void 0,function(){return s.__generator(this,function(e){return r.has(t)||o.push(t),[2]})})}),r.forEach(function(t){return s.__awaiter(n,void 0,void 0,function(){return s.__generator(this,function(e){return i.has(t)||a.push(t),[2]})})}),this.syncEngine.applyActiveTargetsChange(o,a)},t.prototype.handleOnlineStateEvent=function(t){this.activeClients[t.clientId]&&this.onlineStateHandler(t.onlineState)},t}(),Ui=function(){function t(){this.localState=new Fi,this.queryState={},this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null}return t.prototype.addPendingMutation=function(t){},t.prototype.updateMutationState=function(t,e,n){},t.prototype.addLocalQueryTarget=function(t){return this.localState.addQueryTarget(t),this.queryState[t]||"not-current"},t.prototype.updateQueryState=function(t,e,n){this.queryState[t]=e},t.prototype.removeLocalQueryTarget=function(t){this.localState.removeQueryTarget(t)},t.prototype.isLocalQueryTarget=function(t){return this.localState.activeTargetIds.has(t)},t.prototype.clearQueryState=function(t){delete this.queryState[t]},t.prototype.getAllActiveQueryTargets=function(){return this.localState.activeTargetIds},t.prototype.isActiveQueryTarget=function(t){return this.localState.activeTargetIds.has(t)},t.prototype.start=function(){return this.localState=new Fi,Promise.resolve()},t.prototype.handleUserChange=function(t,e,n){},t.prototype.setOnlineState=function(t){},t.prototype.shutdown=function(){},t.prototype.writeSequenceNumber=function(t){},t}(),Vi=function(){function t(t,e){this.cacheSizeBytes=t,this.experimentalTabSynchronization=e}return t.prototype.lruParams=function(){return Or.withCacheSize(this.cacheSizeBytes)},t}(),qi=function(){return function(){}}(),Bi=function(){function t(t,e,n,r){this.platform=t,this.databaseInfo=e,this.credentials=n,this.asyncQueue=r,this.clientId=Q.newId()}return t.prototype.start=function(t){var e=this,n=new fn,r=new fn,i=!1;return this.credentials.setChangeListener(function(o){i?e.asyncQueue.enqueueAndForget(function(){return e.handleCredentialChange(o)}):(i=!0,e.initializePersistence(t,r,o).then(function(t){return e.initializeRest(o,t)}).then(n.resolve,n.reject))}),this.asyncQueue.enqueueAndForget(function(){return n.promise}),r.promise},t.prototype.enableNetwork=function(){var t=this;return this.asyncQueue.enqueue(function(){return t.syncEngine.enableNetwork()})},t.prototype.initializePersistence=function(t,e,n){var r=this;return t instanceof Vi?this.startIndexedDbPersistence(n,t).then(function(t){return e.resolve(),t}).catch(function(t){if(e.reject(t),!r.canFallback(t))throw t;return console.warn("Error enabling offline storage. Falling back to storage disabled: "+t),r.startMemoryPersistence()}):(e.resolve(),this.startMemoryPersistence())},t.prototype.canFallback=function(t){return t instanceof E?t.code===w.FAILED_PRECONDITION||t.code===w.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code},t.prototype.startIndexedDbPersistence=function(t,e){var n=this,r=jr.buildStoragePrefix(this.databaseInfo),i=new rn(this.databaseInfo.databaseId,{useProto3Json:!0});return Promise.resolve().then(function(){return s.__awaiter(n,void 0,void 0,function(){var n,o;return s.__generator(this,function(s){switch(s.label){case 0:if(e.experimentalTabSynchronization&&!ji.isAvailable(this.platform))throw new E(w.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");return o=e.lruParams(),e.experimentalTabSynchronization?(this.sharedClientState=new ji(this.asyncQueue,this.platform,r,this.clientId,t),[4,jr.createMultiClientIndexedDbPersistence(r,this.clientId,this.platform,this.asyncQueue,i,o,{sequenceNumberSyncer:this.sharedClientState})]):[3,2];case 1:return n=s.sent(),[3,4];case 2:return this.sharedClientState=new Ui,[4,jr.createIndexedDbPersistence(r,this.clientId,this.platform,this.asyncQueue,i,o)];case 3:n=s.sent(),s.label=4;case 4:return this.persistence=n,[2,n.referenceDelegate.garbageCollector]}})})})},t.prototype.startMemoryPersistence=function(){return this.persistence=Zr.createEagerPersistence(this.clientId),this.sharedClientState=new Ui,Promise.resolve(null)},t.prototype.initializeRest=function(t,e){var n=this;return d("FirestoreClient","Initializing. user=",t.uid),this.platform.loadConnection(this.databaseInfo).then(function(r){return s.__awaiter(n,void 0,void 0,function(){var n,i,o,a=this;return s.__generator(this,function(u){switch(u.label){case 0:return this.localStore=new Kr(this.persistence,t),e&&(this.lruScheduler=new Nr(e,this.asyncQueue,this.localStore)),n=this.platform.newSerializer(this.databaseInfo.databaseId),i=new ci(this.asyncQueue,r,this.credentials,n),o=function(t){return a.syncEngine.applyOnlineStateChange(t,fi.SharedClientState)},this.remoteStore=new mi(this.localStore,i,this.asyncQueue,function(t){return a.syncEngine.applyOnlineStateChange(t,fi.RemoteStore)}),this.syncEngine=new Ti(this.localStore,this.remoteStore,this.sharedClientState,t),this.sharedClientState.onlineStateHandler=o,this.remoteStore.syncEngine=this.syncEngine,this.sharedClientState.syncEngine=this.syncEngine,this.eventMgr=new gi(this.syncEngine),[4,this.sharedClientState.start()];case 1:return u.sent(),[4,this.remoteStore.start()];case 2:return u.sent(),[4,this.persistence.setPrimaryStateListener(function(t){return s.__awaiter(a,void 0,void 0,function(){return s.__generator(this,function(e){switch(e.label){case 0:return[4,this.syncEngine.applyPrimaryState(t)];case 1:return e.sent(),this.lruScheduler&&(t&&!this.lruScheduler.started?this.lruScheduler.start():t||this.lruScheduler.stop()),[2]}})})})];case 3:return u.sent(),[2]}})})})},t.prototype.handleCredentialChange=function(t){return this.asyncQueue.verifyOperationInProgress(),d("FirestoreClient","Credential Changed. Current user: "+t.uid),this.syncEngine.handleCredentialChange(t)},t.prototype.disableNetwork=function(){var t=this;return this.asyncQueue.enqueue(function(){return t.syncEngine.disableNetwork()})},t.prototype.shutdown=function(t){var e=this;return this.asyncQueue.enqueue(function(){return s.__awaiter(e,void 0,void 0,function(){return s.__generator(this,function(e){switch(e.label){case 0:return this.lruScheduler&&this.lruScheduler.stop(),[4,this.remoteStore.shutdown()];case 1:return e.sent(),[4,this.sharedClientState.shutdown()];case 2:return e.sent(),[4,this.persistence.shutdown(t&&t.purgePersistenceWithDataLoss)];case 3:return e.sent(),this.credentials.removeChangeListener(),[2]}})})})},t.prototype.listen=function(t,e,n){var r=this,i=new vi(t,e,n);return this.asyncQueue.enqueueAndForget(function(){return r.eventMgr.listen(i)}),i},t.prototype.unlisten=function(t){var e=this;this.asyncQueue.enqueueAndForget(function(){return e.eventMgr.unlisten(t)})},t.prototype.getDocumentFromLocalCache=function(t){var e=this;return this.asyncQueue.enqueue(function(){return e.localStore.readDocument(t)}).then(function(t){if(t instanceof ht)return t;if(t instanceof pt)return null;throw new E(w.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)")})},t.prototype.getDocumentsFromLocalCache=function(t){var e=this;return this.asyncQueue.enqueue(function(){return e.localStore.executeQuery(t)}).then(function(e){var n=De(),r=new Ei(t,n),i=r.computeDocChanges(e);return r.applyChanges(i,!1).snapshot})},t.prototype.write=function(t){var e=this,n=new fn;return this.asyncQueue.enqueueAndForget(function(){return e.syncEngine.write(t,n)}),n.promise},t.prototype.databaseId=function(){return this.databaseInfo.databaseId},t.prototype.transaction=function(t){var e=this;return this.asyncQueue.enqueue(function(){return s.__awaiter(e,void 0,void 0,function(){return s.__generator(this,function(t){return[2]})})}).then(function(){return e.syncEngine.runTransaction(t)})},t}(),Hi=function(){function t(t){this.observer=t,this.muted=!1}return t.prototype.next=function(t){this.scheduleEvent(this.observer.next,t)},t.prototype.error=function(t){this.scheduleEvent(this.observer.error,t)},t.prototype.mute=function(){this.muted=!0},t.prototype.scheduleEvent=function(t,e){var n=this;this.muted||setTimeout(function(){n.muted||t(e)},0)},t}(),zi=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];!function(e,n,r,i){if(!(t instanceof Array)||t.length<1)throw new E(w.INVALID_ARGUMENT,"Function FieldPath() requires its fieldNames argument to be an array with at least "+W(1,"element")+".")}();for(var n=0;n<t.length;++n)if(R("FieldPath","string",n,t[n]),0===t[n].length)throw new E(w.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new ut(t)}return t.documentId=function(){return t._DOCUMENT_ID},t.prototype.isEqual=function(e){if(!(e instanceof t))throw H("isEqual","FieldPath",1,e);return this._internalPath.isEqual(e._internalPath)},t._DOCUMENT_ID=new t(ut.keyField().canonicalString()),t}(),Wi=new RegExp("[~\\*/\\[\\]]"),Qi=function(){return function(t,e){this.user=e,this.type="OAuth",this.authHeaders={Authorization:"Bearer "+t}}}(),Ki=function(){function t(){this.changeListener=null}return t.prototype.getToken=function(){return Promise.resolve(null)},t.prototype.invalidateToken=function(){},t.prototype.setChangeListener=function(t){v(!this.changeListener,"Can only call setChangeListener() once."),this.changeListener=t,t(Ii.UNAUTHENTICATED)},t.prototype.removeChangeListener=function(){v(null!==this.changeListener,"removeChangeListener() when no listener registered"),this.changeListener=null},t}(),Gi=function(){function t(t){var e=this;this.app=t,this.tokenListener=null,this.tokenCounter=0,this.changeListener=null,this.forceRefresh=!1,this.tokenListener=function(){e.tokenCounter++,e.currentUser=e.getUser(),e.changeListener&&e.changeListener(e.currentUser)},this.tokenCounter=0,this.app.INTERNAL.addAuthTokenListener(this.tokenListener)}return t.prototype.getToken=function(){var t=this;v(null!=this.tokenListener,"getToken cannot be called after listener removed.");var e=this.tokenCounter,n=this.forceRefresh;return this.forceRefresh=!1,this.app.INTERNAL.getToken(n).then(function(n){if(t.tokenCounter!==e)throw new E(w.ABORTED,"getToken aborted due to token change.");return n?(v("string"==typeof n.accessToken,"Invalid tokenData returned from getToken():"+n),new Qi(n.accessToken,t.currentUser)):null})},t.prototype.invalidateToken=function(){this.forceRefresh=!0},t.prototype.setChangeListener=function(t){v(!this.changeListener,"Can only call setChangeListener() once."),this.changeListener=t,this.currentUser&&t(this.currentUser)},t.prototype.removeChangeListener=function(){v(null!=this.tokenListener,"removeChangeListener() called twice"),v(null!==this.changeListener,"removeChangeListener() called when no listener registered"),this.app.INTERNAL.removeAuthTokenListener(this.tokenListener),this.tokenListener=null,this.changeListener=null},t.prototype.getUser=function(){var t=this.app.INTERNAL.getUid();return v(null===t||"string"==typeof t,"Received invalid UID: "+t),new Ii(t)},t}(),Yi=function(){function t(t,e){this.gapi=t,this.sessionIndex=e,this.type="FirstParty",this.user=Ii.FIRST_PARTY}return Object.defineProperty(t.prototype,"authHeaders",{get:function(){var t={"X-Goog-AuthUser":this.sessionIndex},e=this.gapi.auth.getAuthHeaderValueForFirstParty([]);return e&&(t.Authorization=e),t},enumerable:!0,configurable:!0}),t}(),Xi=function(){function t(t,e){this.gapi=t,this.sessionIndex=e}return t.prototype.getToken=function(){return Promise.resolve(new Yi(this.gapi,this.sessionIndex))},t.prototype.setChangeListener=function(t){t(Ii.FIRST_PARTY)},t.prototype.removeChangeListener=function(){},t.prototype.invalidateToken=function(){},t}();function Ji(t){return function(t,e){if("object"!=typeof t||null===t)return!1;for(var n=t,r=0,i=["next","error","complete"];r<i.length;r++){var o=i[r];if(o in n&&"function"==typeof n[o])return!0}return!1}(t)}var Zi=function(){function t(t){this._methodName=t}return t.delete=function(){return A("FieldValue.delete",arguments),$i.instance},t.serverTimestamp=function(){return A("FieldValue.serverTimestamp",arguments),to.instance},t.arrayUnion=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return N("FieldValue.arrayUnion",arguments,1),new eo(t)},t.arrayRemove=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return N("FieldValue.arrayRemove",arguments,1),new no(t)},t.increment=function(t){return R("FieldValue.increment","number",1,t),O("FieldValue.increment",arguments,1),new ro(t)},t.prototype.isEqual=function(t){return this===t},t}(),$i=function(t){function e(){return t.call(this,"FieldValue.delete")||this}return s.__extends(e,t),e.instance=new e,e}(Zi),to=function(t){function e(){return t.call(this,"FieldValue.serverTimestamp")||this}return s.__extends(e,t),e.instance=new e,e}(Zi),eo=function(t){function e(e){var n=t.call(this,"FieldValue.arrayUnion")||this;return n._elements=e,n}return s.__extends(e,t),e}(Zi),no=function(t){function e(e){var n=t.call(this,"FieldValue.arrayRemove")||this;return n._elements=e,n}return s.__extends(e,t),e}(Zi),ro=function(t){function e(e){var n=t.call(this,"FieldValue.increment")||this;return n._operand=e,n}return s.__extends(e,t),e}(Zi),io=S(Zi,"Use FieldValue.<field>() instead."),oo=/^__.*__$/,so=function(){function t(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}return t.prototype.toMutations=function(t,e){var n=[];return n.push(null!==this.fieldMask?new he(t,this.data,this.fieldMask,e):new ce(t,this.data,e)),this.fieldTransforms.length>0&&n.push(new pe(t,this.fieldTransforms)),n},t}(),ao=function(){function t(t,e,n){this.data=t,this.fieldMask=e,this.fieldTransforms=n}return t.prototype.toMutations=function(t,e){var n=[new he(t,this.data,this.fieldMask,e)];return this.fieldTransforms.length>0&&n.push(new pe(t,this.fieldTransforms)),n},t}(),uo=function(t){return t[t.Set=0]="Set",t[t.Update=1]="Update",t[t.MergeSet=2]="MergeSet",t[t.Argument=3]="Argument",t}({});function lo(t){switch(t){case uo.Set:case uo.MergeSet:case uo.Update:return!0;case uo.Argument:return!1;default:throw g("Unexpected case for UserDataSource: "+t)}}var co=function(){function t(t,e,n,r,i,o){this.dataSource=t,this.methodName=e,this.path=n,this.arrayElement=r,void 0===i&&this.validatePath(),this.arrayElement=void 0!==r&&r,this.fieldTransforms=i||[],this.fieldMask=o||[]}return t.prototype.childContextForField=function(e){var n=null==this.path?null:this.path.child(e),r=new t(this.dataSource,this.methodName,n,!1,this.fieldTransforms,this.fieldMask);return r.validatePathSegment(e),r},t.prototype.childContextForFieldPath=function(e){var n=null==this.path?null:this.path.child(e),r=new t(this.dataSource,this.methodName,n,!1,this.fieldTransforms,this.fieldMask);return r.validatePath(),r},t.prototype.childContextForArray=function(e){return new t(this.dataSource,this.methodName,null,!0,this.fieldTransforms,this.fieldMask)},t.prototype.createError=function(t){var e=null===this.path||this.path.isEmpty()?"":" (found in field "+this.path.toString()+")";return new E(w.INVALID_ARGUMENT,"Function "+this.methodName+"() called with invalid data. "+t+e)},t.prototype.contains=function(t){return void 0!==this.fieldMask.find(function(e){return t.isPrefixOf(e)})||void 0!==this.fieldTransforms.find(function(e){return t.isPrefixOf(e.field)})},t.prototype.validatePath=function(){if(null!==this.path)for(var t=0;t<this.path.length;t++)this.validatePathSegment(this.path.get(t))},t.prototype.validatePathSegment=function(t){if(lo(this.dataSource)&&oo.test(t))throw this.createError("Document fields cannot begin and end with __")},t}(),ho=function(){return function(t,e){this.databaseId=t,this.key=e}}(),po=function(){function t(t){this.preConverter=t}return t.prototype.parseSetData=function(t,e){var n=new co(uo.Set,t,ut.EMPTY_PATH);mo("Data must be an object, but it was:",n,e);var r=this.parseData(e,n);return new so(r,null,n.fieldTransforms)},t.prototype.parseMergeData=function(t,e,n){var r=new co(uo.MergeSet,t,ut.EMPTY_PATH);mo("Data must be an object, but it was:",r,e);var i,o,s=this.parseData(e,r);if(n){for(var a=new ne(ut.comparator),u=0,l=n;u<l.length;u++){var c=l[u],h=void 0;if(c instanceof zi)h=c._internalPath;else{if("string"!=typeof c)throw g("Expected stringOrFieldPath to be a string or a FieldPath");h=go(t,c)}if(!r.contains(h))throw new E(w.INVALID_ARGUMENT,"Field '"+h+"' is specified in your field mask but missing from your input data.");a=a.add(h)}i=ie.fromSet(a),o=r.fieldTransforms.filter(function(t){return i.covers(t.field)})}else i=ie.fromArray(r.fieldMask),o=r.fieldTransforms;return new so(s,i,o)},t.prototype.parseUpdateData=function(t,e){var n=this,r=new co(uo.Update,t,ut.EMPTY_PATH);mo("Data must be an object, but it was:",r,e);var i=new ne(ut.comparator),o=Pt.EMPTY;x(e,function(e,s){var a=go(t,e),u=r.childContextForFieldPath(a);if((s=n.runPreConverter(s,u))instanceof $i)i=i.add(a);else{var l=n.parseData(s,u);null!=l&&(i=i.add(a),o=o.set(a,l))}});var s=ie.fromSet(i);return new ao(o,s,r.fieldTransforms)},t.prototype.parseUpdateVarargs=function(t,e,n,r){var i=new co(uo.Update,t,ut.EMPTY_PATH),o=[yo(t,e)],s=[n];if(r.length%2!=0)throw new E(w.INVALID_ARGUMENT,"Function "+t+"() needs to be called with an even number of arguments that alternate between field names and values.");for(var a=0;a<r.length;a+=2)o.push(yo(t,r[a])),s.push(r[a+1]);var u=new ne(ut.comparator),l=Pt.EMPTY;for(a=0;a<o.length;++a){var c=o[a],h=i.childContextForFieldPath(c),p=this.runPreConverter(s[a],h);if(p instanceof $i)u=u.add(c);else{var f=this.parseData(p,h);null!=f&&(u=u.add(c),l=l.set(c,f))}}var d=ie.fromSet(u);return new ao(l,d,i.fieldTransforms)},t.prototype.parseQueryValue=function(t,e){var n=new co(uo.Argument,t,ut.EMPTY_PATH),r=this.parseData(e,n);return v(null!=r,"Parsed data should not be null."),v(0===n.fieldTransforms.length,"Field transforms should have been disallowed."),r},t.prototype.runPreConverter=function(t,e){try{return this.preConverter(t)}catch(r){var n=vo(r);throw e.createError(n)}},t.prototype.parseData=function(t,e){if(fo(t=this.runPreConverter(t,e)))return mo("Unsupported field value:",e,t),this.parseObject(t,e);if(t instanceof Zi)return this.parseSentinelFieldValue(t,e),null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.arrayElement)throw e.createError("Nested arrays are not supported");return this.parseArray(t,e)}return this.parseScalarValue(t,e)},t.prototype.parseObject=function(t,e){var n=this,r=new dt(K);return k(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):x(t,function(t,i){var o=n.parseData(i,e.childContextForField(t));null!=o&&(r=r.insert(t,o))}),new Pt(r)},t.prototype.parseArray=function(t,e){for(var n=[],r=0,i=0,o=t;i<o.length;i++){var s=this.parseData(o[i],e.childContextForArray(r));null==s&&(s=Et.INSTANCE),n.push(s),r++}return new Mt(n)},t.prototype.parseSentinelFieldValue=function(t,e){if(!lo(e.dataSource))throw e.createError(t._methodName+"() can only be used with update() and set()");if(null===e.path)throw e.createError(t._methodName+"() is not currently supported inside arrays");if(t instanceof $i){if(e.dataSource!==uo.MergeSet)throw e.dataSource===uo.Update?(v(e.path.length>0,"FieldValue.delete() at the top level should have already been handled."),e.createError("FieldValue.delete() can only appear at the top level of your update data")):e.createError("FieldValue.delete() cannot be used with set() unless you pass {merge:true}");e.fieldMask.push(e.path)}else if(t instanceof to)e.fieldTransforms.push(new oe(e.path,de.instance));else if(t instanceof eo){var n=this.parseArrayTransformElements(t._methodName,t._elements),r=new me(n);e.fieldTransforms.push(new oe(e.path,r))}else if(t instanceof no){n=this.parseArrayTransformElements(t._methodName,t._elements);var i=new ye(n);e.fieldTransforms.push(new oe(e.path,i))}else if(t instanceof ro){var o=this.parseQueryValue("FieldValue.increment",t._operand),s=new ge(o);e.fieldTransforms.push(new oe(e.path,s))}else g("Unknown FieldValue type: "+t)},t.prototype.parseScalarValue=function(t,e){if(null===t)return Et.INSTANCE;if("number"==typeof t)return qt(t)?new It(t):new xt(t);if("boolean"==typeof t)return St.of(t);if("string"==typeof t)return new kt(t);if(t instanceof Date)return new At(et.fromDate(t));if(t instanceof et)return new At(new et(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)));if(t instanceof tt)return new Rt(t);if(t instanceof Z)return new Nt(t);if(t instanceof ho)return new Dt(t.databaseId,t.key);throw e.createError("Unsupported field value: "+V(t))},t.prototype.parseArrayTransformElements=function(t,e){var n=this;return e.map(function(e,r){var i=new co(uo.Argument,t,ut.EMPTY_PATH);return n.parseData(e,i.childContextForArray(r))})},t}();function fo(t){return!("object"!=typeof t||null===t||t instanceof Array||t instanceof Date||t instanceof et||t instanceof tt||t instanceof Z||t instanceof ho||t instanceof Zi)}function mo(t,e,n){if(!fo(n)||!U(n)){var r=V(n);throw e.createError("an object"===r?t+" a custom object":t+" "+r)}}function yo(t,e){if(e instanceof zi)return e._internalPath;if("string"==typeof e)return go(t,e);throw new E(w.INVALID_ARGUMENT,"Function "+t+"() called with invalid data. Field path arguments must be of type string or FieldPath.")}function go(t,e){try{return function(t){if(t.search(Wi)>=0)throw new E(w.INVALID_ARGUMENT,"Invalid field path ("+t+"). Paths must not contain '~', '*', '/', '[', or ']'");try{return new(zi.bind.apply(zi,[void 0].concat(t.split("."))))}catch(e){throw new E(w.INVALID_ARGUMENT,"Invalid field path ("+t+"). Paths must not be empty, begin with '.', end with '.', or contain '..'")}}(e)._internalPath}catch(r){var n=vo(r);throw new E(w.INVALID_ARGUMENT,"Function "+t+"() called with invalid data. "+n)}}function vo(t){return t instanceof Error?t.message:t.toString()}var _o="firestore.googleapis.com",bo=!0,wo=!0,Eo=Or.COLLECTION_DISABLED,So=function(){function t(t){if(void 0===t.host){if(void 0!==t.ssl)throw new E(w.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=_o,this.ssl=bo}else M("settings","non-empty string","host",t.host),this.host=t.host,L("settings","boolean","ssl",t.ssl),this.ssl=T(t.ssl,bo);if(B("settings",t,["host","ssl","credentials","timestampsInSnapshots","cacheSizeBytes"]),L("settings","object","credentials",t.credentials),this.credentials=t.credentials,L("settings","boolean","timestampsInSnapshots",t.timestampsInSnapshots),!0===t.timestampsInSnapshots?m("\n  The timestampsInSnapshots setting now defaults to true and you no\n  longer need to explicitly set it. In a future release, the setting\n  will be removed entirely and so it is recommended that you remove it\n  from your firestore.settings() call now."):!1===t.timestampsInSnapshots&&m("\n  The timestampsInSnapshots setting will soon be removed. YOU MUST UPDATE\n  YOUR CODE.\n\n  To hide this warning, stop using the timestampsInSnapshots setting in your\n  firestore.settings({ ... }) call.\n\n  Once you remove the setting, Timestamps stored in Cloud Firestore will be\n  read back as Firebase Timestamp objects instead of as system Date objects.\n  So you will also need to update code expecting a Date to instead expect a\n  Timestamp. For example:\n\n  // Old:\n  const date = snapshot.get('created_at');\n  // New:\n  const timestamp = snapshot.get('created_at'); const date =\n  timestamp.toDate();\n\n  Please audit all existing usages of Date when you enable the new\n  behavior."),this.timestampsInSnapshots=T(t.timestampsInSnapshots,wo),L("settings","number","cacheSizeBytes",t.cacheSizeBytes),void 0===t.cacheSizeBytes)this.cacheSizeBytes=Or.DEFAULT_CACHE_SIZE_BYTES;else{if(t.cacheSizeBytes!==Eo&&t.cacheSizeBytes<Or.MINIMUM_CACHE_SIZE_BYTES)throw new E(w.INVALID_ARGUMENT,"cacheSizeBytes must be at least "+Or.MINIMUM_CACHE_SIZE_BYTES);this.cacheSizeBytes=t.cacheSizeBytes}}return t.prototype.isEqual=function(t){return this.host===t.host&&this.ssl===t.ssl&&this.timestampsInSnapshots===t.timestampsInSnapshots&&this.credentials===t.credentials&&this.cacheSizeBytes===t.cacheSizeBytes},t}(),Co=function(){return function(){}}(),To=function(){function t(e){var n=this;this._queue=new mn,this.INTERNAL={delete:function(t){return s.__awaiter(n,void 0,void 0,function(){return s.__generator(this,function(e){return this._firestoreClient?[2,this._firestoreClient.shutdown(t)]:[2]})})}};var r=new Co;if("object"==typeof e.options){var i=e;r.firebaseApp=i,r.databaseId=t.databaseIdFromApp(i),r.persistenceKey=r.firebaseApp.name,r.credentials=new Gi(i)}else{var o=e;if(!o.projectId)throw new E(w.INVALID_ARGUMENT,"Must provide projectId");r.databaseId=new it(o.projectId,o.database),r.persistenceKey="[DEFAULT]",r.credentials=new Ki}r.settings=new So({}),this._config=r,this._databaseId=r.databaseId}return t.prototype.settings=function(t){if(O("Firestore.settings",arguments,1),R("Firestore.settings","object",1,t),C(t,"persistence"))throw new E(w.INVALID_ARGUMENT,'"persistence" is now specified with a separate call to firestore.enablePersistence().');var e=new So(t);if(this._firestoreClient&&!this._config.settings.isEqual(e))throw new E(w.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only call settings() before calling any other methods on a Firestore object.");this._config.settings=e,void 0!==e.credentials&&(this._config.credentials=function(t){if(!t)return new Ki;switch(t.type){case"gapi":var e=t.client;return v(!("object"!=typeof e||null===e||!e.auth||!e.auth.getAuthHeaderValueForFirstParty),"unexpected gapi interface"),new Xi(e,t.sessionIndex||"0");case"provider":return t.client;default:throw new E(w.INVALID_ARGUMENT,"makeCredentialsProvider failed due to invalid credential type")}}(e.credentials))},t.prototype.enableNetwork=function(){return this.ensureClientConfigured(),this._firestoreClient.enableNetwork()},t.prototype.disableNetwork=function(){return this.ensureClientConfigured(),this._firestoreClient.disableNetwork()},t.prototype.enablePersistence=function(t){if(this._firestoreClient)throw new E(w.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only call enablePersistence() before calling any other methods on a Firestore object.");return this.configureClient(new Vi(this._config.settings.cacheSizeBytes,void 0!==t&&T(t.experimentalTabSynchronization,!1)))},t.prototype.ensureClientConfigured=function(){return this._firestoreClient||this.configureClient(new qi),this._firestoreClient},t.prototype.configureClient=function(t){var e=this;v(!!this._config.settings.host,"FirestoreSettings.host cannot be falsey"),v(!this._firestoreClient,"configureClient() called multiple times");var n=new nt(this._config.databaseId,this._config.persistenceKey,this._config.settings.host,this._config.settings.ssl);return this._dataConverter=new po(function(t){if(t instanceof ko){var n=e._config.databaseId,r=t.firestore._config.databaseId;if(!r.isEqual(n))throw new E(w.INVALID_ARGUMENT,"Document reference is for database "+r.projectId+"/"+r.database+" but should be for database "+n.projectId+"/"+n.database);return new ho(e._config.databaseId,t._key)}return t}),this._firestoreClient=new Bi(_.getPlatform(),n,this._config.credentials,this._queue),this._firestoreClient.start(t)},t.databaseIdFromApp=function(t){var e=t.options;if(!C(e,"projectId"))throw new E(w.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');var n=e.projectId;if(!n||"string"!=typeof n)throw new E(w.INVALID_ARGUMENT,"projectId must be a string in FirebaseApp.options");return new it(n)},Object.defineProperty(t.prototype,"app",{get:function(){if(!this._config.firebaseApp)throw new E(w.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._config.firebaseApp},enumerable:!0,configurable:!0}),t.prototype.collection=function(t){return O("Firestore.collection",arguments,1),R("Firestore.collection","non-empty string",1,t),this.ensureClientConfigured(),new Po(st.fromString(t),this)},t.prototype.doc=function(t){return O("Firestore.doc",arguments,1),R("Firestore.doc","non-empty string",1,t),this.ensureClientConfigured(),ko.forPath(st.fromString(t),this)},t.prototype._collectionGroup=function(t){if(O("Firestore.collectionGroup",arguments,1),R("Firestore.collectionGroup","non-empty string",1,t),t.indexOf("/")>=0)throw new E(w.INVALID_ARGUMENT,"Invalid collection ID '"+t+"' passed to function Firestore.collectionGroup(). Collection IDs must not contain '/'.");return this.ensureClientConfigured(),new Do(new Bt(st.EMPTY_PATH,t),this)},t.prototype.runTransaction=function(t){var e=this;return O("Firestore.runTransaction",arguments,1),R("Firestore.runTransaction","function",1,t),this.ensureClientConfigured().transaction(function(n){return t(new Io(e,n))})},t.prototype.batch=function(){return this.ensureClientConfigured(),new xo(this)},Object.defineProperty(t,"logLevel",{get:function(){switch(p()){case h.DEBUG:return"debug";case h.ERROR:return"error";case h.SILENT:return"silent";default:return g("Unknown log level: "+p())}},enumerable:!0,configurable:!0}),t.setLogLevel=function(t){switch(O("Firestore.setLogLevel",arguments,1),R("Firestore.setLogLevel","non-empty string",1,t),t){case"debug":f(h.DEBUG);break;case"error":f(h.ERROR);break;case"silent":f(h.SILENT);break;default:throw new E(w.INVALID_ARGUMENT,"Invalid log level: "+t)}},t.prototype._areTimestampsInSnapshotsEnabled=function(){return this._config.settings.timestampsInSnapshots},t}(),Io=function(){function t(t,e){this._firestore=t,this._transaction=e}return t.prototype.get=function(t){var e=this;O("Transaction.get",arguments,1);var n=jo("Transaction.get",t,this._firestore);return this._transaction.lookup([n._key]).then(function(t){if(!t||1!==t.length)return g("Mismatch in docs returned from document lookup.");var r=t[0];if(r instanceof pt)return new Oo(e._firestore,n._key,null,!1,!1);if(r instanceof ht)return new Oo(e._firestore,n._key,r,!1,!1);throw g("BatchGetDocumentsRequest returned unexpected document type: "+r.constructor.name)})},t.prototype.set=function(t,e,n){D("Transaction.set",arguments,2,3);var r=jo("Transaction.set",t,this._firestore),i=(n=Mo("Transaction.set",n)).merge||n.mergeFields?this._firestore._dataConverter.parseMergeData("Transaction.set",e,n.mergeFields):this._firestore._dataConverter.parseSetData("Transaction.set",e);return this._transaction.set(r._key,i),this},t.prototype.update=function(t,e,n){for(var r,i,o=[],s=3;s<arguments.length;s++)o[s-3]=arguments[s];return"string"==typeof e||e instanceof zi?(N("Transaction.update",arguments,3),r=jo("Transaction.update",t,this._firestore),i=this._firestore._dataConverter.parseUpdateVarargs("Transaction.update",e,n,o)):(O("Transaction.update",arguments,2),r=jo("Transaction.update",t,this._firestore),i=this._firestore._dataConverter.parseUpdateData("Transaction.update",e)),this._transaction.update(r._key,i),this},t.prototype.delete=function(t){O("Transaction.delete",arguments,1);var e=jo("Transaction.delete",t,this._firestore);return this._transaction.delete(e._key),this},t}(),xo=function(){function t(t){this._firestore=t,this._mutations=[],this._committed=!1}return t.prototype.set=function(t,e,n){D("WriteBatch.set",arguments,2,3),this.verifyNotCommitted();var r=jo("WriteBatch.set",t,this._firestore),i=(n=Mo("WriteBatch.set",n)).merge||n.mergeFields?this._firestore._dataConverter.parseMergeData("WriteBatch.set",e,n.mergeFields):this._firestore._dataConverter.parseSetData("WriteBatch.set",e);return this._mutations=this._mutations.concat(i.toMutations(r._key,ue.NONE)),this},t.prototype.update=function(t,e,n){for(var r,i,o=[],s=3;s<arguments.length;s++)o[s-3]=arguments[s];return this.verifyNotCommitted(),"string"==typeof e||e instanceof zi?(N("WriteBatch.update",arguments,3),r=jo("WriteBatch.update",t,this._firestore),i=this._firestore._dataConverter.parseUpdateVarargs("WriteBatch.update",e,n,o)):(O("WriteBatch.update",arguments,2),r=jo("WriteBatch.update",t,this._firestore),i=this._firestore._dataConverter.parseUpdateData("WriteBatch.update",e)),this._mutations=this._mutations.concat(i.toMutations(r._key,ue.exists(!0))),this},t.prototype.delete=function(t){O("WriteBatch.delete",arguments,1),this.verifyNotCommitted();var e=jo("WriteBatch.delete",t,this._firestore);return this._mutations=this._mutations.concat(new fe(e._key,ue.NONE)),this},t.prototype.commit=function(){return s.__awaiter(this,void 0,void 0,function(){return s.__generator(this,function(t){return this.verifyNotCommitted(),this._committed=!0,this._mutations.length>0?[2,this._firestore.ensureClientConfigured().write(this._mutations)]:[2]})})},t.prototype.verifyNotCommitted=function(){if(this._committed)throw new E(w.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")},t}(),ko=function(){function t(t,e){this._key=t,this.firestore=e,this._firestoreClient=this.firestore.ensureClientConfigured()}return t.forPath=function(e,n){if(e.length%2!=0)throw new E(w.INVALID_ARGUMENT,"Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new t(new lt(e),n)},Object.defineProperty(t.prototype,"id",{get:function(){return this._key.path.lastSegment()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return new Po(this._key.path.popLast(),this.firestore)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return this._key.path.canonicalString()},enumerable:!0,configurable:!0}),t.prototype.collection=function(t){if(O("DocumentReference.collection",arguments,1),R("DocumentReference.collection","non-empty string",1,t),!t)throw new E(w.INVALID_ARGUMENT,"Must provide a non-empty collection name to collection()");var e=st.fromString(t);return new Po(this._key.path.child(e),this.firestore)},t.prototype.isEqual=function(e){if(!(e instanceof t))throw H("isEqual","DocumentReference",1,e);return this.firestore===e.firestore&&this._key.isEqual(e._key)},t.prototype.set=function(t,e){D("DocumentReference.set",arguments,1,2);var n=(e=Mo("DocumentReference.set",e)).merge||e.mergeFields?this.firestore._dataConverter.parseMergeData("DocumentReference.set",t,e.mergeFields):this.firestore._dataConverter.parseSetData("DocumentReference.set",t);return this._firestoreClient.write(n.toMutations(this._key,ue.NONE))},t.prototype.update=function(t,e){for(var n,r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];return"string"==typeof t||t instanceof zi?(N("DocumentReference.update",arguments,2),n=this.firestore._dataConverter.parseUpdateVarargs("DocumentReference.update",t,e,r)):(O("DocumentReference.update",arguments,1),n=this.firestore._dataConverter.parseUpdateData("DocumentReference.update",t)),this._firestoreClient.write(n.toMutations(this._key,ue.exists(!0)))},t.prototype.delete=function(){return O("DocumentReference.delete",arguments,0),this._firestoreClient.write([new fe(this._key,ue.NONE)])},t.prototype.onSnapshot=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];D("DocumentReference.onSnapshot",arguments,1,4);var n,r={includeMetadataChanges:!1},i=0;"object"!=typeof t[i]||Ji(t[i])||(B("DocumentReference.onSnapshot",r=t[i],["includeMetadataChanges"]),L("DocumentReference.onSnapshot","boolean","includeMetadataChanges",r.includeMetadataChanges),i++);var o={includeMetadataChanges:r.includeMetadataChanges};return Ji(t[i])?n=t[i]:(R("DocumentReference.onSnapshot","function",i,t[i]),P("DocumentReference.onSnapshot","function",i+1,t[i+1]),P("DocumentReference.onSnapshot","function",i+2,t[i+2]),n={next:t[i],error:t[i+1],complete:t[i+2]}),this.onSnapshotInternal(o,n)},t.prototype.onSnapshotInternal=function(t,e){var n=this,r=function(t){console.error("Uncaught Error in onSnapshot:",t)};e.error&&(r=e.error.bind(e));var i=new Hi({next:function(t){if(e.next){v(t.docs.size<=1,"Too many documents returned on a document query");var r=t.docs.get(n._key);e.next(new Oo(n.firestore,n._key,r,t.fromCache,t.hasPendingWrites))}},error:r}),o=this._firestoreClient.listen(Bt.atPath(this._key.path),i,t);return function(){i.mute(),n._firestoreClient.unlisten(o)}},t.prototype.get=function(t){var e=this;return D("DocumentReference.get",arguments,0,1),Fo("DocumentReference.get",t),new Promise(function(n,r){t&&"cache"===t.source?e.firestore.ensureClientConfigured().getDocumentFromLocalCache(e._key).then(function(t){n(new Oo(e.firestore,e._key,t,!0,t instanceof ht&&t.hasLocalMutations))},r):e.getViaSnapshotListener(n,r,t)})},t.prototype.getViaSnapshotListener=function(t,e,n){var r=this.onSnapshotInternal({includeMetadataChanges:!0,waitForSyncWhenOnline:!0},{next:function(i){r(),!i.exists&&i.metadata.fromCache?e(new E(w.UNAVAILABLE,"Failed to get document because the client is offline.")):i.exists&&i.metadata.fromCache&&n&&"server"===n.source?e(new E(w.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):t(i)},error:e})},t}(),Ao=function(){function t(t,e){this.hasPendingWrites=t,this.fromCache=e}return t.prototype.isEqual=function(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache},t}(),Oo=function(){function t(t,e,n,r,i){this._firestore=t,this._key=e,this._document=n,this._fromCache=r,this._hasPendingWrites=i}return t.prototype.data=function(t){return D("DocumentSnapshot.data",arguments,0,1),t=Lo("DocumentSnapshot.data",t),this._document?this.convertObject(this._document.data,bt.fromSnapshotOptions(t,this._firestore._areTimestampsInSnapshotsEnabled())):void 0},t.prototype.get=function(t,e){if(D("DocumentSnapshot.get",arguments,1,2),e=Lo("DocumentSnapshot.get",e),this._document){var n=this._document.data.field(yo("DocumentSnapshot.get",t));if(void 0!==n)return this.convertValue(n,bt.fromSnapshotOptions(e,this._firestore._areTimestampsInSnapshotsEnabled()))}},Object.defineProperty(t.prototype,"id",{get:function(){return this._key.path.lastSegment()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ref",{get:function(){return new ko(this._key,this._firestore)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"exists",{get:function(){return null!==this._document},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"metadata",{get:function(){return new Ao(this._hasPendingWrites,this._fromCache)},enumerable:!0,configurable:!0}),t.prototype.isEqual=function(e){if(!(e instanceof t))throw H("isEqual","DocumentSnapshot",1,e);return this._firestore===e._firestore&&this._fromCache===e._fromCache&&this._key.isEqual(e._key)&&(null===this._document?null===e._document:this._document.isEqual(e._document))},t.prototype.convertObject=function(t,e){var n=this,r={};return t.forEach(function(t,i){r[t]=n.convertValue(i,e)}),r},t.prototype.convertValue=function(t,e){if(t instanceof Pt)return this.convertObject(t,e);if(t instanceof Mt)return this.convertArray(t,e);if(t instanceof Dt){var n=t.value(e),r=this._firestore.ensureClientConfigured().databaseId();return t.databaseId.isEqual(r)||m("Document "+this._key.path+" contains a document reference within a different database ("+t.databaseId.projectId+"/"+t.databaseId.database+") which is not supported. It will be treated as a reference in the current database ("+r.projectId+"/"+r.database+") instead."),new ko(n,this._firestore)}return t.value(e)},t.prototype.convertArray=function(t,e){var n=this;return t.internalValue.map(function(t){return n.convertValue(t,e)})},t}(),No=function(t){function e(e,n,r,i,o){return t.call(this,e,n,r,i,o)||this}return s.__extends(e,t),e.prototype.data=function(e){var n=t.prototype.data.call(this,e);return v("object"==typeof n,"Document in a QueryDocumentSnapshot should exist"),n},e}(Oo),Do=function(){function t(t,e){this._query=t,this.firestore=e}return t.prototype.where=function(e,n,r){var i;O("Query.where",arguments,3),R("Query.where","non-empty string",2,n),q("Query.where",3,r);var o=yo("Query.where",e),s=zt.fromString(n);if(o.isKeyField()){if(s===zt.ARRAY_CONTAINS)throw new E(w.INVALID_ARGUMENT,"Invalid Query. You can't perform array-contains queries on FieldPath.documentId() since document IDs are not arrays.");if("string"==typeof r){if(""===r)throw new E(w.INVALID_ARGUMENT,"Function Query.where() requires its third parameter to be a valid document ID if the first parameter is FieldPath.documentId(), but it was an empty string.");if(!this._query.isCollectionGroupQuery()&&-1!==r.indexOf("/"))throw new E(w.INVALID_ARGUMENT,"Invalid third parameter to Query.where(). When querying a collection by FieldPath.documentId(), the value provided must be a plain document ID, but '"+r+"' contains a slash.");var a=this._query.path.child(st.fromString(r));if(!lt.isDocumentKey(a))throw new E(w.INVALID_ARGUMENT,"Invalid third parameter to Query.where(). When querying a collection group by FieldPath.documentId(), the value provided must result in a valid document path, but '"+a+"' is not because it has an odd number of segments ("+a.length+").");i=new Dt(this.firestore._databaseId,new lt(a))}else{if(!(r instanceof ko))throw new E(w.INVALID_ARGUMENT,"Function Query.where() requires its third parameter to be a string or a DocumentReference if the first parameter is FieldPath.documentId(), but it was: "+V(r)+".");i=new Dt(this.firestore._databaseId,r._key)}}else i=this.firestore._dataConverter.parseQueryValue("Query.where",r);var u=Ht.create(o,s,i);return this.validateNewFilter(u),new t(this._query.addFilter(u),this.firestore)},t.prototype.orderBy=function(e,n){var r;if(D("Query.orderBy",arguments,1,2),P("Query.orderBy","non-empty string",2,n),void 0===n||"asc"===n)r=Gt.ASCENDING;else{if("desc"!==n)throw new E(w.INVALID_ARGUMENT,"Function Query.orderBy() has unknown direction '"+n+"', expected 'asc' or 'desc'.");r=Gt.DESCENDING}if(null!==this._query.startAt)throw new E(w.INVALID_ARGUMENT,"Invalid query. You must not call Query.startAt() or Query.startAfter() before calling Query.orderBy().");if(null!==this._query.endAt)throw new E(w.INVALID_ARGUMENT,"Invalid query. You must not call Query.endAt() or Query.endBefore() before calling Query.orderBy().");var i=yo("Query.orderBy",e),o=new Xt(i,r);return this.validateNewOrderBy(o),new t(this._query.addOrderBy(o),this.firestore)},t.prototype.limit=function(e){if(O("Query.limit",arguments,1),R("Query.limit","number",1,e),e<=0)throw new E(w.INVALID_ARGUMENT,"Invalid Query. Query limit ("+e+") is invalid. Limit must be positive.");return new t(this._query.withLimit(e),this.firestore)},t.prototype.startAt=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];N("Query.startAt",arguments,1);var i=this.boundFromDocOrFields("Query.startAt",e,n,!0);return new t(this._query.withStartAt(i),this.firestore)},t.prototype.startAfter=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];N("Query.startAfter",arguments,1);var i=this.boundFromDocOrFields("Query.startAfter",e,n,!1);return new t(this._query.withStartAt(i),this.firestore)},t.prototype.endBefore=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];N("Query.endBefore",arguments,1);var i=this.boundFromDocOrFields("Query.endBefore",e,n,!0);return new t(this._query.withEndAt(i),this.firestore)},t.prototype.endAt=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];N("Query.endAt",arguments,1);var i=this.boundFromDocOrFields("Query.endAt",e,n,!1);return new t(this._query.withEndAt(i),this.firestore)},t.prototype.isEqual=function(e){if(!(e instanceof t))throw H("isEqual","Query",1,e);return this.firestore===e.firestore&&this._query.isEqual(e._query)},t.prototype.boundFromDocOrFields=function(t,e,n,r){if(q(t,1,e),e instanceof Oo){if(n.length>0)throw new E(w.INVALID_ARGUMENT,"Too many arguments provided to "+t+"().");var i=e;if(!i.exists)throw new E(w.NOT_FOUND,"Can't use a DocumentSnapshot that doesn't exist for "+t+"().");return this.boundFromDocument(t,i._document,r)}var o=[e].concat(n);return this.boundFromFields(t,o,r)},t.prototype.boundFromDocument=function(t,e,n){for(var r=[],i=0,o=this._query.orderBy;i<o.length;i++){var s=o[i];if(s.field.isKeyField())r.push(new Dt(this.firestore._databaseId,e.key));else{var a=e.field(s.field);if(a instanceof Ot)throw new E(w.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+s.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(void 0===a){var u=s.field.canonicalString();throw new E(w.INVALID_ARGUMENT,"Invalid query. You are trying to start or end a query using a document for which the field '"+u+"' (used as the orderBy) does not exist.")}r.push(a)}}return new Yt(r,n)},t.prototype.boundFromFields=function(t,e,n){var r=this._query.explicitOrderBy;if(e.length>r.length)throw new E(w.INVALID_ARGUMENT,"Too many arguments provided to "+t+"(). The number of arguments must be less than or equal to the number of Query.orderBy() clauses");for(var i=[],o=0;o<e.length;o++){var s=e[o];if(r[o].field.isKeyField()){if("string"!=typeof s)throw new E(w.INVALID_ARGUMENT,"Invalid query. Expected a string for document ID in "+t+"(), but got a "+typeof s);if(!this._query.isCollectionGroupQuery()&&-1!==s.indexOf("/"))throw new E(w.INVALID_ARGUMENT,"Invalid query. When querying a collection and ordering by FieldPath.documentId(), the value passed to "+t+"() must be a plain document ID, but '"+s+"' contains a slash.");var a=this._query.path.child(st.fromString(s));if(!lt.isDocumentKey(a))throw new E(w.INVALID_ARGUMENT,"Invalid query. When querying a collection group and ordering by FieldPath.documentId(), the value passed to "+t+"() must result in a valid document path, but '"+a+"' is not because it contains an odd number of segments.");var u=new lt(a);i.push(new Dt(this.firestore._databaseId,u))}else{var l=this.firestore._dataConverter.parseQueryValue(t,s);i.push(l)}}return new Yt(i,n)},t.prototype.onSnapshot=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];D("Query.onSnapshot",arguments,1,4);var n,r={},i=0;return"object"!=typeof t[i]||Ji(t[i])||(B("Query.onSnapshot",r=t[i],["includeMetadataChanges"]),L("Query.onSnapshot","boolean","includeMetadataChanges",r.includeMetadataChanges),i++),Ji(t[i])?n=t[i]:(R("Query.onSnapshot","function",i,t[i]),P("Query.onSnapshot","function",i+1,t[i+1]),P("Query.onSnapshot","function",i+2,t[i+2]),n={next:t[i],error:t[i+1],complete:t[i+2]}),this.onSnapshotInternal(r,n)},t.prototype.onSnapshotInternal=function(t,e){var n=this,r=function(t){console.error("Uncaught Error in onSnapshot:",t)};e.error&&(r=e.error.bind(e));var i=new Hi({next:function(t){e.next&&e.next(new Ro(n.firestore,n._query,t))},error:r}),o=this.firestore.ensureClientConfigured(),s=o.listen(this._query,i,t);return function(){i.mute(),o.unlisten(s)}},t.prototype.get=function(t){var e=this;return D("Query.get",arguments,0,1),Fo("Query.get",t),new Promise(function(n,r){t&&"cache"===t.source?e.firestore.ensureClientConfigured().getDocumentsFromLocalCache(e._query).then(function(t){n(new Ro(e.firestore,e._query,t))},r):e.getViaSnapshotListener(n,r,t)})},t.prototype.getViaSnapshotListener=function(t,e,n){var r=this.onSnapshotInternal({includeMetadataChanges:!0,waitForSyncWhenOnline:!0},{next:function(i){r(),i.metadata.fromCache&&n&&"server"===n.source?e(new E(w.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):t(i)},error:e})},t.prototype.validateNewFilter=function(t){if(t instanceof Wt)if(t.isInequality()){var e=this._query.getInequalityFilterField();if(null!==e&&!e.isEqual(t.field))throw new E(w.INVALID_ARGUMENT,"Invalid query. All where filters with an inequality (<, <=, >, or >=) must be on the same field. But you have inequality filters on '"+e.toString()+"' and '"+t.field.toString()+"'");var n=this._query.getFirstOrderByField();null!==n&&this.validateOrderByAndInequalityMatch(t.field,n)}else if(t.op===zt.ARRAY_CONTAINS&&this._query.hasArrayContainsFilter())throw new E(w.INVALID_ARGUMENT,"Invalid query. Queries only support a single array-contains filter.")},t.prototype.validateNewOrderBy=function(t){if(null===this._query.getFirstOrderByField()){var e=this._query.getInequalityFilterField();null!==e&&this.validateOrderByAndInequalityMatch(e,t.field)}},t.prototype.validateOrderByAndInequalityMatch=function(t,e){if(!e.isEqual(t))throw new E(w.INVALID_ARGUMENT,"Invalid query. You have a where filter with an inequality (<, <=, >, or >=) on field '"+t.toString()+"' and so you must also use '"+t.toString()+"' as your first Query.orderBy(), but your first Query.orderBy() is on field '"+e.toString()+"' instead.")},t}(),Ro=function(){function t(t,e,n){this._firestore=t,this._originalQuery=e,this._snapshot=n,this._cachedChanges=null,this._cachedChangesIncludeMetadataChanges=null,this.metadata=new Ao(n.hasPendingWrites,n.fromCache)}return Object.defineProperty(t.prototype,"docs",{get:function(){var t=[];return this.forEach(function(e){return t.push(e)}),t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"empty",{get:function(){return this._snapshot.docs.isEmpty()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"size",{get:function(){return this._snapshot.docs.size},enumerable:!0,configurable:!0}),t.prototype.forEach=function(t,e){var n=this;D("QuerySnapshot.forEach",arguments,1,2),R("QuerySnapshot.forEach","function",1,t),this._snapshot.docs.forEach(function(r){t.call(e,n.convertToDocumentImpl(r))})},Object.defineProperty(t.prototype,"query",{get:function(){return new Do(this._originalQuery,this._firestore)},enumerable:!0,configurable:!0}),t.prototype.docChanges=function(t){t&&(B("QuerySnapshot.docChanges",t,["includeMetadataChanges"]),L("QuerySnapshot.docChanges","boolean","includeMetadataChanges",t.includeMetadataChanges));var e=!(!t||!t.includeMetadataChanges);if(e&&this._snapshot.excludesMetadataChanges)throw new E(w.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===e||(this._cachedChanges=function(t,e,n){if(n.oldDocs.isEmpty()){var r,i=0;return n.docChanges.map(function(e){var o=new No(t,e.doc.key,e.doc,n.fromCache,n.mutatedKeys.has(e.doc.key));return v(e.type===Le.Added,"Invalid event type for first snapshot"),v(!r||n.query.docComparator(r,e.doc)<0,"Got added events in wrong order"),r=e.doc,{type:"added",doc:o,oldIndex:-1,newIndex:i++}})}var o=n.oldDocs;return n.docChanges.filter(function(t){return e||t.type!==Le.Metadata}).map(function(e){var r=new No(t,e.doc.key,e.doc,n.fromCache,n.mutatedKeys.has(e.doc.key)),i=-1,s=-1;return e.type!==Le.Added&&(v((i=o.indexOf(e.doc.key))>=0,"Index for document not found"),o=o.delete(e.doc.key)),e.type!==Le.Removed&&(s=(o=o.add(e.doc)).indexOf(e.doc.key)),{type:Uo(e.type),doc:r,oldIndex:i,newIndex:s}})}(this._firestore,e,this._snapshot),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges},t.prototype.isEqual=function(e){if(!(e instanceof t))throw H("isEqual","QuerySnapshot",1,e);return this._firestore===e._firestore&&this._originalQuery.isEqual(e._originalQuery)&&this._snapshot.isEqual(e._snapshot)},t.prototype.convertToDocumentImpl=function(t){return new No(this._firestore,t.key,t,this.metadata.fromCache,this._snapshot.mutatedKeys.has(t.key))},t}();["length","forEach","map"].concat("undefined"!=typeof Symbol?[Symbol.iterator]:[]).forEach(function(t){try{Object.defineProperty(Ro.prototype.docChanges,t,{get:function(){return function(){throw new E(w.INVALID_ARGUMENT,'QuerySnapshot.docChanges has been changed from a property into a method, so usages like "querySnapshot.docChanges" should become "querySnapshot.docChanges()"')}()}})}catch(e){}});var Po=function(t){function e(e,n){var r=t.call(this,Bt.atPath(e),n)||this;if(e.length%2!=1)throw new E(w.INVALID_ARGUMENT,"Invalid collection reference. Collection references must have an odd number of segments, but "+e.canonicalString()+" has "+e.length);return r}return s.__extends(e,t),Object.defineProperty(e.prototype,"id",{get:function(){return this._query.path.lastSegment()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){var t=this._query.path.popLast();return t.isEmpty()?null:new ko(new lt(t),this.firestore)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return this._query.path.canonicalString()},enumerable:!0,configurable:!0}),e.prototype.doc=function(t){if(D("CollectionReference.doc",arguments,0,1),0===arguments.length&&(t=Q.newId()),R("CollectionReference.doc","non-empty string",1,t),""===t)throw new E(w.INVALID_ARGUMENT,"Document path must be a non-empty string");var e=st.fromString(t);return ko.forPath(this._query.path.child(e),this.firestore)},e.prototype.add=function(t){O("CollectionReference.add",arguments,1),R("CollectionReference.add","object",1,t);var e=this.doc();return e.set(t).then(function(){return e})},e}(Do);function Mo(t,e){if(void 0===e)return{merge:!1};if(B(t,e,["merge","mergeFields"]),L(t,"boolean","merge",e.merge),"mergeFields","a string or a FieldPath",void 0!==(n=e.mergeFields)&&function(t,e,n,r,i){if(!(r instanceof Array))throw new E(w.INVALID_ARGUMENT,"Function "+t+"() requires its mergeFields option to be an array, but it was: "+V(r));for(var o=0;o<r.length;++o)if(!i(r[o]))throw new E(w.INVALID_ARGUMENT,"Function "+t+"() requires all mergeFields elements to be a string or a FieldPath, but the value at index "+o+" was: "+V(r[o]))}(t,0,0,n,function(t){return"string"==typeof t||t instanceof zi}),void 0!==e.mergeFields&&void 0!==e.merge)throw new E(w.INVALID_ARGUMENT,"Invalid options passed to function "+t+'(): You cannot specify both "merge" and "mergeFields".');var n;return e}function Lo(t,e){return void 0===e?{}:(B(t,e,["serverTimestamps"]),F(t,0,"serverTimestamps",e.serverTimestamps,["estimate","previous","none"]),e)}function Fo(t,e){P(t,"object",1,e),e&&(B(t,e,["source"]),F(t,0,"source",e.source,["default","server","cache"]))}function jo(t,e,n){if(e instanceof ko){if(e.firestore!==n)throw new E(w.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}throw H(t,"DocumentReference",1,e)}function Uo(t){switch(t){case Le.Added:return"added";case Le.Modified:case Le.Metadata:return"modified";case Le.Removed:return"removed";default:return g("Unknown change type: "+t)}}var Vo=S(To,"Use firebase.firestore() instead."),qo=S(Io,"Use firebase.firestore().runTransaction() instead."),Bo=S(xo,"Use firebase.firestore().batch() instead."),Ho=S(ko,"Use firebase.firestore().doc() instead."),zo=S(Oo),Wo=S(No),Qo=S(Do),Ko=S(Ro),Go=S(Po,"Use firebase.firestore().collection() instead."),Yo={Firestore:Vo,GeoPoint:tt,Timestamp:et,Blob:$,Transaction:qo,WriteBatch:Bo,DocumentReference:Ho,DocumentSnapshot:zo,Query:Qo,QueryDocumentSnapshot:Wo,QuerySnapshot:Ko,CollectionReference:Go,FieldPath:zi,FieldValue:io,setLogLevel:To.setLogLevel,CACHE_SIZE_UNLIMITED:Eo};function Xo(t){t.INTERNAL.registerService("firestore",function(t){return new To(t)},function(t){v(t&&"object"==typeof t,"shallowCopy() expects object parameter.");var e={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}(Yo))}Xo(i),e.registerFirestore=Xo},"73IE":function(t,e,n){"use strict";var r=n("H6ty"),i=n("hEy5"),o=n("z5ME")("startsWith"),s="".startsWith;n("pSMy")({target:"String",proto:!0,forced:!o},{startsWith:function(t){var e=i(this,t,"startsWith"),n=r(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),o=String(t);return s?s.call(e,o,n):e.slice(n,n+o.length)===o}})},"7xuS":function(t,e,n){t.exports=n("T3Qk")},"9Nts":function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},"9UdO":function(t,e,n){n("q94Q")("dispose")},"9r11":function(t,e,n){t.exports=n("ArVK")},A9d8:function(t,e,n){"use strict";var r=n("YxH6").IteratorPrototype,i=n("tzov"),o=n("2Hee"),s=n("S4gH"),a=n("0i0S"),u=function(){return this};t.exports=function(t,e,n){var l=e+" Iterator";return t.prototype=i(r,{next:o(1,n)}),s(t,l,!1,!0),a[l]=u,t}},ABqa:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=(r=n("wj3C"))&&"object"==typeof r&&"default"in r?r.default:r,o=n("mrSG"),s={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"},a=function(t){function e(n,r,i){var o=t.call(this,r)||this;return Object.setPrototypeOf(o,e.prototype),o.code=n,o.details=i,o}return o.__extends(e,t),e}(Error),u=function(){function t(t){this.app=t}return t.prototype.getAuthToken=function(){return o.__awaiter(this,void 0,void 0,function(){var t;return o.__generator(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,this.app.INTERNAL.getToken()];case 1:return(t=e.sent())?[2,t.accessToken]:[2,void 0];case 2:return e.sent(),[2,void 0];case 3:return[2]}})})},t.prototype.getInstanceIdToken=function(){return o.__awaiter(this,void 0,void 0,function(){var t;return o.__generator(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),this.app.messaging?[4,this.app.messaging().getToken()]:[2,void 0];case 1:return(t=e.sent())?[2,t]:[2,void 0];case 2:return e.sent(),[2,void 0];case 3:return[2]}})})},t.prototype.getContext=function(){return o.__awaiter(this,void 0,void 0,function(){var t,e;return o.__generator(this,function(n){switch(n.label){case 0:return[4,this.getAuthToken()];case 1:return t=n.sent(),[4,this.getInstanceIdToken()];case 2:return e=n.sent(),[2,{authToken:t,instanceIdToken:e}]}})})},t}();function l(t,e){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=e(t[r]));return n}var c=function(){function t(){}return t.prototype.encode=function(t){var e=this;if(null==t)return null;if(t instanceof Number&&(t=t.valueOf()),"number"==typeof t&&isFinite(t))return t;if(!0===t||!1===t)return t;if("[object String]"===Object.prototype.toString.call(t))return t;if(Array.isArray(t))return t.map(function(t){return e.encode(t)});if("function"==typeof t||"object"==typeof t)return l(t,function(t){return e.encode(t)});throw new Error("Data cannot be encoded in JSON: "+t)},t.prototype.decode=function(t){var e=this;if(null===t)return t;if(t["@type"])switch(t["@type"]){case"type.googleapis.com/google.protobuf.Int64Value":case"type.googleapis.com/google.protobuf.UInt64Value":var n=parseFloat(t.value);if(isNaN(n))throw new Error("Data cannot be decoded from JSON: "+t);return n;default:throw new Error("Data cannot be decoded from JSON: "+t)}return Array.isArray(t)?t.map(function(t){return e.decode(t)}):"function"==typeof t||"object"==typeof t?l(t,function(t){return e.decode(t)}):t},t}(),h=function(){function t(t,e){void 0===e&&(e="us-central1"),this.app_=t,this.region_=e,this.serializer=new c,this.emulatorOrigin=null,this.contextProvider=new u(t)}return Object.defineProperty(t.prototype,"app",{get:function(){return this.app_},enumerable:!0,configurable:!0}),t.prototype._url=function(t){var e=this.app_.options.projectId,n=this.region_;return null!==this.emulatorOrigin?this.emulatorOrigin+"/"+e+"/"+n+"/"+t:"https://"+n+"-"+e+".cloudfunctions.net/"+t},t.prototype.useFunctionsEmulator=function(t){this.emulatorOrigin=t},t.prototype.httpsCallable=function(t,e){var n=this;return function(r){return n.call(t,r,e||{})}},t.prototype.postJSON=function(t,e,n){return o.__awaiter(this,void 0,void 0,function(){var r,i;return o.__generator(this,function(o){switch(o.label){case 0:n.append("Content-Type","application/json"),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,fetch(t,{method:"POST",body:JSON.stringify(e),headers:n})];case 2:return r=o.sent(),[3,4];case 3:return o.sent(),[2,{status:0,json:null}];case 4:i=null,o.label=5;case 5:return o.trys.push([5,7,,8]),[4,r.json()];case 6:return i=o.sent(),[3,8];case 7:return o.sent(),[3,8];case 8:return[2,{status:r.status,json:i}]}})})},t.prototype.call=function(t,e,n){return o.__awaiter(this,void 0,void 0,function(){var r,i,u,l,c,h,p,f;return o.__generator(this,function(o){switch(o.label){case 0:return r=this._url(t),e=this.serializer.encode(e),i={data:e},u=new Headers,[4,this.contextProvider.getContext()];case 1:return(l=o.sent()).authToken&&u.append("Authorization","Bearer "+l.authToken),l.instanceIdToken&&u.append("Firebase-Instance-ID-Token",l.instanceIdToken),c=n.timeout||7e4,[4,Promise.race([this.postJSON(r,i,u),(d=c,new Promise(function(t,e){setTimeout(function(){e(new a("deadline-exceeded","deadline-exceeded"))},d)}))])];case 2:if(h=o.sent(),p=function(t,e,n){var r=function(t){if(t>=200&&t<300)return"ok";switch(t){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"}(h.status),i=r,o=void 0;try{var u=e.error;if(u){var l=u.status;if("string"==typeof l){if(!s[l])return new a("internal","internal");r=s[l]}i=l;var c=u.message;"string"==typeof c&&(i=c),void 0!==(o=u.details)&&(o=n.decode(o))}}catch(p){}return"ok"===r?null:new a(r,i,o)}(0,h.json,this.serializer))throw p;if(!h.json)throw new a("internal","Response is not valid JSON object.");if(void 0===(f=h.json.data)&&(f=h.json.result),void 0===f)throw new a("internal","Response is missing data field.");return[2,{data:this.serializer.decode(f)}]}var d})})},t}(),p="functions";function f(t,e,n){return new h(t,n)}function d(t){t.INTERNAL.registerService(p,f,{Functions:h},void 0,!0)}d(i),e.registerFunctions=d},ArVK:function(t,e,n){n("d8cw"),t.exports=n("vLVD")("Array","find")},AzFY:function(t,e,n){t.exports=n("tuBy")},BloW:function(t,e,n){var r=n("5eG6"),i=n("ysHE").WeakMap;t.exports="function"==typeof i&&/native code/.test(r.call(i))},"Dd/+":function(t,e,n){n("q94Q")("unscopables")},FnXw:function(t,e,n){var r=n("kpns"),i=n("hdqJ"),o=n("aXXJ")("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},FoKB:function(t,e,n){n("q94Q")("observable")},GJzV:function(t,e,n){var r=n("JKJi"),i=Math.max,o=Math.min;t.exports=function(t,e){var n=r(t);return n<0?i(n+e,0):o(n,e)}},Gp07:function(t,e,n){var r=n("JKJi"),i=n("9Nts");t.exports=function(t,e,n){var o,s,a=String(i(t)),u=r(e),l=a.length;return u<0||u>=l?n?"":void 0:(o=a.charCodeAt(u))<55296||o>56319||u+1===l||(s=a.charCodeAt(u+1))<56320||s>57343?n?a.charAt(u):o:n?a.slice(u,u+2):s-56320+(o-55296<<10)+65536}},GrVo:function(t,e,n){"use strict";var r=n("Q2Kg"),i=n("fw2a"),o=n("iCuu"),s=n("SAp2"),a=n("t5mC"),u=Object.assign;t.exports=!u||n("0HDe")(function(){var t={},e={},n=Symbol();return t[n]=7,"abcdefghijklmnopqrst".split("").forEach(function(t){e[t]=t}),7!=u({},t)[n]||"abcdefghijklmnopqrst"!=r(u({},e)).join("")})?function(t,e){for(var n=s(t),u=arguments.length,l=1,c=i.f,h=o.f;u>l;)for(var p,f=a(arguments[l++]),d=c?r(f).concat(c(f)):r(f),m=d.length,y=0;m>y;)h.call(f,p=d[y++])&&(n[p]=f[p]);return n}:u},H6ty:function(t,e,n){var r=n("JKJi"),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},HefZ:function(t,e,n){n("rZEa"),n("QvOV"),n("44fV"),n("2F3y"),n("qjh4"),n("b2LF"),n("uiB+"),n("q0E7"),n("+v3u"),n("dstF"),n("dYkh"),n("gIEr"),n("luCB"),n("MuAL"),n("uLJa"),n("Dd/+"),n("vb+c"),n("ZPxF"),t.exports=n("4Ea8").Symbol},IutQ:function(t,e,n){var r=n("t5mC"),i=n("9Nts");t.exports=function(t){return r(i(t))}},JIMt:function(t,e,n){var r=n("kpns"),i=n("ysHE").document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},JKJi:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},JpPu:function(t,e,n){var r=n("nJQW");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},JzIs:function(t,e,n){var r=n("lb/b"),i=n("TIpl"),o=n("bcPd"),s=n("Q2Kg");t.exports=r?Object.defineProperties:function(t,e){o(t);for(var n,r=s(e),a=r.length,u=0;a>u;)i.f(t,n=r[u++],e[n]);return t}},K8G7:function(t,e,n){"use strict";var r=n("IutQ"),i=n("gJLK"),o=n("0i0S"),s=n("LX9C"),a=n("stQs"),u=s.set,l=s.getterFor("Array Iterator");t.exports=a(Array,"Array",function(t,e){u(this,{type:"Array Iterator",target:r(t),index:0,kind:e})},function(){var t=l(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},KaSA:function(t,e,n){t.exports=n("uzDk")},Ksdp:function(t,e,n){var r=n("GrVo");n("pSMy")({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},LX9C:function(t,e,n){var r,i,o,s=n("BloW"),a=n("kpns"),u=n("wBs/"),l=n("57wU"),c=n("qBi7"),h=n("vcTx"),p=n("ysHE").WeakMap;if(s){var f=new p,d=f.get,m=f.has,y=f.set;r=function(t,e){return y.call(f,t,e),e},i=function(t){return d.call(f,t)||{}},o=function(t){return m.call(f,t)}}else{var g=c("state");h[g]=!0,r=function(t,e){return u(t,g,e),e},i=function(t){return l(t,g)?t[g]:{}},o=function(t){return l(t,g)}}t.exports={set:r,get:i,has:o,enforce:function(t){return o(t)?i(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!a(e)||(n=i(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}}},LmZi:function(t,e,n){"use strict";n.r(e),n.d(e,"registerStorage",function(){return Ft});var r=n("wj3C"),i=n.n(r),o="firebasestorage.googleapis.com",s=12e4,a=6e4,u=-9007199254740991,l=function(){function t(t,e){this.code_=h(t),this.message_="Firebase Storage: "+e,this.serverResponse_=null,this.name_="FirebaseError"}return t.prototype.codeProp=function(){return this.code},t.prototype.codeEquals=function(t){return h(t)===this.codeProp()},t.prototype.serverResponseProp=function(){return this.serverResponse_},t.prototype.setServerResponseProp=function(t){this.serverResponse_=t},Object.defineProperty(t.prototype,"name",{get:function(){return this.name_},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"code",{get:function(){return this.code_},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"message",{get:function(){return this.message_},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"serverResponse",{get:function(){return this.serverResponse_},enumerable:!0,configurable:!0}),t}(),c={UNKNOWN:"unknown",OBJECT_NOT_FOUND:"object-not-found",BUCKET_NOT_FOUND:"bucket-not-found",PROJECT_NOT_FOUND:"project-not-found",QUOTA_EXCEEDED:"quota-exceeded",UNAUTHENTICATED:"unauthenticated",UNAUTHORIZED:"unauthorized",RETRY_LIMIT_EXCEEDED:"retry-limit-exceeded",INVALID_CHECKSUM:"invalid-checksum",CANCELED:"canceled",INVALID_EVENT_NAME:"invalid-event-name",INVALID_URL:"invalid-url",INVALID_DEFAULT_BUCKET:"invalid-default-bucket",NO_DEFAULT_BUCKET:"no-default-bucket",CANNOT_SLICE_BLOB:"cannot-slice-blob",SERVER_FILE_WRONG_SIZE:"server-file-wrong-size",NO_DOWNLOAD_URL:"no-download-url",INVALID_ARGUMENT:"invalid-argument",INVALID_ARGUMENT_COUNT:"invalid-argument-count",APP_DELETED:"app-deleted",INVALID_ROOT_OPERATION:"invalid-root-operation",INVALID_FORMAT:"invalid-format",INTERNAL_ERROR:"internal-error"};function h(t){return"storage/"+t}function p(){return new l(c.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function f(){return new l(c.CANCELED,"User canceled the upload/download.")}function d(){return new l(c.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function m(t,e,n){return new l(c.INVALID_ARGUMENT,"Invalid argument in `"+e+"` at index "+t+": "+n)}function y(){return new l(c.APP_DELETED,"The Firebase app was deleted.")}function g(t,e){return new l(c.INVALID_FORMAT,"String does not match format '"+t+"': "+e)}function v(t){throw new l(c.INTERNAL_ERROR,"Internal error: "+t)}var _={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};function b(t){switch(t){case _.RAW:case _.BASE64:case _.BASE64URL:case _.DATA_URL:return;default:throw"Expected one of the event types: ["+_.RAW+", "+_.BASE64+", "+_.BASE64URL+", "+_.DATA_URL+"]."}}var w=function(){return function(t,e){this.data=t,this.contentType=e||null}}();function E(t,e){switch(t){case _.RAW:return new w(S(e));case _.BASE64:case _.BASE64URL:return new w(C(t,e));case _.DATA_URL:return new w(function(t){var e=new T(t);return e.base64?C(_.BASE64,e.rest):function(t){var e;try{e=decodeURIComponent(t)}catch(n){throw g(_.DATA_URL,"Malformed data URL.")}return S(e)}(e.rest)}(e),function(t){return new T(t).contentType}(e))}throw p()}function S(t){for(var e=[],n=0;n<t.length;n++){var r=t.charCodeAt(n);if(r<=127)e.push(r);else if(r<=2047)e.push(192|r>>6,128|63&r);else if(55296==(64512&r))if(n<t.length-1&&56320==(64512&t.charCodeAt(n+1))){var i=r,o=t.charCodeAt(++n);e.push(240|(r=65536|(1023&i)<<10|1023&o)>>18,128|r>>12&63,128|r>>6&63,128|63&r)}else e.push(239,191,189);else 56320==(64512&r)?e.push(239,191,189):e.push(224|r>>12,128|r>>6&63,128|63&r)}return new Uint8Array(e)}function C(t,e){switch(t){case _.BASE64:var n=-1!==e.indexOf("-"),r=-1!==e.indexOf("_");if(n||r)throw g(t,"Invalid character '"+(n?"-":"_")+"' found: is it base64url encoded?");break;case _.BASE64URL:var i=-1!==e.indexOf("+"),o=-1!==e.indexOf("/");if(i||o)throw g(t,"Invalid character '"+(i?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}var s;try{s=atob(e)}catch(l){throw g(t,"Invalid character found")}for(var a=new Uint8Array(s.length),u=0;u<s.length;u++)a[u]=s.charCodeAt(u);return a}var T=function(){return function(t){this.base64=!1,this.contentType=null;var e=t.match(/^data:([^,]+)?,/);if(null===e)throw g(_.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");var n,r=e[1]||null;null!=r&&(this.base64=(n=r).length>=";base64".length&&";base64"===n.substring(n.length-";base64".length),this.contentType=this.base64?r.substring(0,r.length-";base64".length):r),this.rest=t.substring(t.indexOf(",")+1)}}(),I={STATE_CHANGED:"state_changed"},x={RUNNING:"running",PAUSING:"pausing",PAUSED:"paused",SUCCESS:"success",CANCELING:"canceling",CANCELED:"canceled",ERROR:"error"},k={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function A(t){switch(t){case x.RUNNING:case x.PAUSING:case x.CANCELING:return k.RUNNING;case x.PAUSED:return k.PAUSED;case x.SUCCESS:return k.SUCCESS;case x.CANCELED:return k.CANCELED;case x.ERROR:default:return k.ERROR}}function O(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function N(t,e){for(var n in t)O(t,n)&&e(n,t[n])}function D(t){if(null==t)return{};var e={};return N(t,function(t,n){e[t]=n}),e}function R(t){return new Promise(t)}function P(t){return Promise.resolve(t)}function M(t){return null!=t}function L(t){return void 0!==t}function F(t){return"function"==typeof t}function j(t){return"object"==typeof t}function U(t){return j(t)&&null!==t}function V(t){return"string"==typeof t||t instanceof String}function q(t){return B()&&t instanceof Blob}function B(){return"undefined"!=typeof Blob}var H=function(t){return t[t.NO_ERROR=0]="NO_ERROR",t[t.NETWORK_ERROR=1]="NETWORK_ERROR",t[t.ABORT=2]="ABORT",t}({}),z=function(){function t(){var t=this;this.sent_=!1,this.xhr_=new XMLHttpRequest,this.errorCode_=H.NO_ERROR,this.sendPromise_=R(function(e,n){t.xhr_.addEventListener("abort",function(n){t.errorCode_=H.ABORT,e(t)}),t.xhr_.addEventListener("error",function(n){t.errorCode_=H.NETWORK_ERROR,e(t)}),t.xhr_.addEventListener("load",function(n){e(t)})})}return t.prototype.send=function(t,e,n,r){var i=this;if(this.sent_)throw v("cannot .send() more than once");return this.sent_=!0,this.xhr_.open(e,t,!0),M(r)&&N(r,function(t,e){i.xhr_.setRequestHeader(t,e.toString())}),M(n)?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_},t.prototype.getErrorCode=function(){if(!this.sent_)throw v("cannot .getErrorCode() before sending");return this.errorCode_},t.prototype.getStatus=function(){if(!this.sent_)throw v("cannot .getStatus() before sending");try{return this.xhr_.status}catch(t){return-1}},t.prototype.getResponseText=function(){if(!this.sent_)throw v("cannot .getResponseText() before sending");return this.xhr_.responseText},t.prototype.abort=function(){this.xhr_.abort()},t.prototype.getResponseHeader=function(t){return this.xhr_.getResponseHeader(t)},t.prototype.addUploadProgressListener=function(t){M(this.xhr_.upload)&&this.xhr_.upload.addEventListener("progress",t)},t.prototype.removeUploadProgressListener=function(t){M(this.xhr_.upload)&&this.xhr_.upload.removeEventListener("progress",t)},t}(),W=function(){function t(){}return t.prototype.createXhrIo=function(){return new z},t}();function Q(t){var e,n;try{e=JSON.parse(t)}catch(r){return null}return j(n=e)&&!Array.isArray(n)?e:null}var K=function(){function t(t,e){this.bucket=t,this.path_=e}return Object.defineProperty(t.prototype,"path",{get:function(){return this.path_},enumerable:!0,configurable:!0}),t.prototype.fullServerUrl=function(){var t=encodeURIComponent;return"/b/"+t(this.bucket)+"/o/"+t(this.path)},t.prototype.bucketOnlyServerUrl=function(){return"/b/"+encodeURIComponent(this.bucket)+"/o"},t.makeFromBucketSpec=function(e){var n;try{n=t.makeFromUrl(e)}catch(r){return new t(e,"")}if(""===n.path)return n;throw new l(c.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")},t.makeFromUrl=function(e){for(var n=null,r=new RegExp("^gs://([A-Za-z0-9.\\-_]+)(/(.*))?$","i"),i=o.replace(/[.]/g,"\\."),s=[{regex:r,indices:{bucket:1,path:3},postModify:function(t){"/"===t.path.charAt(t.path.length-1)&&(t.path_=t.path_.slice(0,-1))}},{regex:new RegExp("^https?://"+i+"/v[A-Za-z0-9_]+/b/([A-Za-z0-9.\\-_]+)/o(/([^?#]*).*)?$","i"),indices:{bucket:1,path:3},postModify:function(t){t.path_=decodeURIComponent(t.path)}}],a=0;a<s.length;a++){var u=s[a],h=u.regex.exec(e);if(h){var p=h[u.indices.path];p||(p=""),n=new t(h[u.indices.bucket],p),u.postModify(n);break}}if(null==n)throw function(t){return new l(c.INVALID_URL,"Invalid URL '"+t+"'.")}(e);return n},t}();function G(t){var e=t.lastIndexOf("/",t.length-2);return-1===e?t:t.slice(e+1)}function Y(t){return"https://"+o+"/v0"+t}function X(t){var e=encodeURIComponent,n="?";return N(t,function(t,r){var i=e(t)+"="+e(r);n=n+i+"&"}),n=n.slice(0,-1)}function J(t,e){return e}var Z=function(){return function(t,e,n,r){this.server=t,this.local=e||t,this.writable=!!n,this.xform=r||J}}(),$=null;function tt(t,e,n){var r=Q(e);return null===r?null:function(t,e,n){for(var r={type:"file"},i=n.length,o=0;o<i;o++){var s=n[o];r[s.local]=s.xform(r,e[s.server])}return function(t,e){Object.defineProperty(t,"ref",{get:function(){var n=new K(t.bucket,t.fullPath);return e.makeStorageReference(n)}})}(r,t),r}(t,r,n)}function et(t,e){for(var n={},r=e.length,i=0;i<r;i++){var o=e[i];o.writable&&(n[o.server]=t[o.local])}return JSON.stringify(n)}function nt(t){if(!t||!j(t))throw"Expected Metadata object.";for(var e in t){var n=t[e];if("customMetadata"===e){if(!j(n))throw"Expected object for 'customMetadata' mapping."}else if(U(n))throw"Mapping for '"+e+"' cannot be an object."}}function rt(t,e,n){for(var r=e.length,i=e.length,o=0;o<e.length;o++)if(e[o].optional){r=o;break}var s,a,u,h;if(!(r<=n.length&&n.length<=i))throw(s=r)===(a=i)?(u=s,h=1===s?"argument":"arguments"):(u="between "+s+" and "+a,h="arguments"),new l(c.INVALID_ARGUMENT_COUNT,"Invalid argument count in `"+t+"`: Expected "+u+" "+h+", received "+n.length+".");for(o=0;o<n.length;o++)try{e[o].validator(n[o])}catch(p){throw p instanceof Error?m(o,t,p.message):m(o,t,p)}}var it=function(){return function(t,e){var n=this;this.validator=function(e){n.optional&&!L(e)||t(e)},this.optional=!!e}}();function ot(t,e){function n(t){if(!V(t))throw"Expected string."}var r,i,o;return t?(i=n,o=t,r=function(t){i(t),o(t)}):r=n,new it(r,e)}function st(t){return new it(nt,t)}function at(){return new it(function(t){if(!(function(t){return"number"==typeof t||t instanceof Number}(t)&&t>=0))throw"Expected a number 0 or greater."})}function ut(t,e){return new it(function(e){if(!(null===e||M(e)&&e instanceof Object))throw"Expected an Object.";null!=t&&t(e)},e)}function lt(t){return new it(function(t){if(null!==t&&!F(t))throw"Expected a Function."},t)}function ct(){return"undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0}var ht=function(){function t(t,e){var n=0,r="";q(t)?(this.data_=t,n=t.size,r=t.type):t instanceof ArrayBuffer?(e?this.data_=new Uint8Array(t):(this.data_=new Uint8Array(t.byteLength),this.data_.set(new Uint8Array(t))),n=this.data_.length):t instanceof Uint8Array&&(e?this.data_=t:(this.data_=new Uint8Array(t.length),this.data_.set(t)),n=t.length),this.size_=n,this.type_=r}return t.prototype.size=function(){return this.size_},t.prototype.type=function(){return this.type_},t.prototype.slice=function(e,n){if(q(this.data_)){var r=(o=e,s=n,(i=this.data_).webkitSlice?i.webkitSlice(o,s):i.mozSlice?i.mozSlice(o,s):i.slice?i.slice(o,s):null);return null===r?null:new t(r)}var i,o,s;return new t(new Uint8Array(this.data_.buffer,e,n-e),!0)},t.getBlob=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(B()){var r=e.map(function(e){return e instanceof t?e.data_:e});return new t((function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=ct();if(void 0!==n){for(var r=new n,i=0;i<t.length;i++)r.append(t[i]);return r.getBlob()}if(B())return new Blob(t);throw Error("This browser doesn't seem to support creating Blobs")}).apply(null,r))}var i=e.map(function(t){return V(t)?E(_.RAW,t).data:t.data_}),o=0;i.forEach(function(t){o+=t.byteLength});var s=new Uint8Array(o),a=0;return i.forEach(function(t){for(var e=0;e<t.length;e++)s[a++]=t[e]}),new t(s,!0)},t.prototype.uploadData=function(){return this.data_},t}();function pt(t,e){return-1!==t.indexOf(e)}var ft=function(){return function(t,e,n,r){this.url=t,this.method=e,this.handler=n,this.timeout=r,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}();function dt(t){if(!t)throw p()}function mt(t,e){return function(n,r){var i=tt(t,r,e);return dt(null!==i),i}}function yt(t){return function(e,n){var r;return(r=401===e.getStatus()?new l(c.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?new l(c.QUOTA_EXCEEDED,"Quota for bucket '"+t.bucket+"' exceeded, please view quota on https://firebase.google.com/pricing/."):403===e.getStatus()?new l(c.UNAUTHORIZED,"User does not have permission to access '"+t.path+"'."):n).setServerResponseProp(n.serverResponseProp()),r}}function gt(t){var e=yt(t);return function(n,r){var i=e(n,r);return 404===n.getStatus()&&(i=new l(c.OBJECT_NOT_FOUND,"Object '"+t.path+"' does not exist.")),i.setServerResponseProp(r.serverResponseProp()),i}}function vt(t,e,n){var r=Y(e.fullServerUrl()),i=t.maxOperationRetryTime(),o=new ft(r,"GET",mt(t,n),i);return o.errorHandler=gt(e),o}function _t(t,e,n){var r=D(n);return r.fullPath=t.path,r.size=e.size(),r.contentType||(r.contentType=function(t,e){return e&&e.type()||"application/octet-stream"}(0,e)),r}var bt=function(){return function(t,e,n,r){this.current=t,this.total=e,this.finalized=!!n,this.metadata=r||null}}();function wt(t,e){var n;try{n=t.getResponseHeader("X-Goog-Upload-Status")}catch(r){dt(!1)}return dt(pt(e||["active"],n)),n}var Et=function(){return function(t,e,n){if(F(t)||M(e)||M(n))this.next=t,this.error=e||null,this.complete=n||null;else{var r=t;this.next=r.next||null,this.error=r.error||null,this.complete=r.complete||null}}}(),St=function(){return function(t,e,n,r,i,o){this.bytesTransferred=t,this.totalBytes=e,this.state=n,this.metadata=r,this.task=i,this.ref=o}}();function Ct(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];P(!0).then(function(){t.apply(null,e)})}}var Tt=function(){function t(t,e,n,r,i,o){void 0===o&&(o=null);var s=this;this.transferred_=0,this.needToFetchStatus_=!1,this.needToFetchMetadata_=!1,this.observers_=[],this.error_=null,this.uploadUrl_=null,this.request_=null,this.chunkMultiplier_=1,this.resolve_=null,this.reject_=null,this.ref_=t,this.authWrapper_=e,this.location_=n,this.blob_=i,this.metadata_=o,this.mappings_=r,this.resumable_=this.shouldDoResumable_(this.blob_),this.state_=x.RUNNING,this.errorHandler_=function(t){s.request_=null,s.chunkMultiplier_=1,t.codeEquals(c.CANCELED)?(s.needToFetchStatus_=!0,s.completeTransitions_()):(s.error_=t,s.transition_(x.ERROR))},this.metadataErrorHandler_=function(t){s.request_=null,t.codeEquals(c.CANCELED)?s.completeTransitions_():(s.error_=t,s.transition_(x.ERROR))},this.promise_=R(function(t,e){s.resolve_=t,s.reject_=e,s.start_()}),this.promise_.then(null,function(){})}return t.prototype.makeProgressCallback_=function(){var t=this,e=this.transferred_;return function(n,r){t.updateProgress_(e+n)}},t.prototype.shouldDoResumable_=function(t){return t.size()>262144},t.prototype.start_=function(){this.state_===x.RUNNING&&null===this.request_&&(this.resumable_?null===this.uploadUrl_?this.createResumable_():this.needToFetchStatus_?this.fetchStatus_():this.needToFetchMetadata_?this.fetchMetadata_():this.continueUpload_():this.oneShotUpload_())},t.prototype.resolveToken_=function(t){var e=this;this.authWrapper_.getAuthToken().then(function(n){switch(e.state_){case x.RUNNING:t(n);break;case x.CANCELING:e.transition_(x.CANCELED);break;case x.PAUSING:e.transition_(x.PAUSED)}})},t.prototype.createResumable_=function(){var t=this;this.resolveToken_(function(e){var n=function(t,e,n,r,i){var o=e.bucketOnlyServerUrl(),s=_t(e,r,i),a={name:s.fullPath},u=Y(o),l={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":r.size(),"X-Goog-Upload-Header-Content-Type":s.contentType,"Content-Type":"application/json; charset=utf-8"},c=et(s,n),h=t.maxUploadRetryTime(),p=new ft(u,"POST",function(t,e){var n;wt(t);try{n=t.getResponseHeader("X-Goog-Upload-URL")}catch(r){dt(!1)}return dt(V(n)),n},h);return p.urlParams=a,p.headers=l,p.body=c,p.errorHandler=yt(e),p}(t.authWrapper_,t.location_,t.mappings_,t.blob_,t.metadata_),r=t.authWrapper_.makeRequest(n,e);t.request_=r,r.getPromise().then(function(e){t.request_=null,t.uploadUrl_=e,t.needToFetchStatus_=!1,t.completeTransitions_()},t.errorHandler_)})},t.prototype.fetchStatus_=function(){var t=this,e=this.uploadUrl_;this.resolveToken_(function(n){var r=function(e,n,r,i){var o=t.authWrapper_.maxUploadRetryTime(),s=new ft(r,"POST",function(t,e){var n,r=wt(t,["active","final"]);try{n=t.getResponseHeader("X-Goog-Upload-Size-Received")}catch(s){dt(!1)}var o=parseInt(n,10);return dt(!isNaN(o)),new bt(o,i.size(),"final"===r)},o);return s.headers={"X-Goog-Upload-Command":"query"},s.errorHandler=yt(n),s}(0,t.location_,e,t.blob_),i=t.authWrapper_.makeRequest(r,n);t.request_=i,i.getPromise().then(function(e){e=e,t.request_=null,t.updateProgress_(e.current),t.needToFetchStatus_=!1,e.finalized&&(t.needToFetchMetadata_=!0),t.completeTransitions_()},t.errorHandler_)})},t.prototype.continueUpload_=function(){var t=this,e=262144*this.chunkMultiplier_,n=new bt(this.transferred_,this.blob_.size()),r=this.uploadUrl_;this.resolveToken_(function(i){var o;try{o=function(t,e,n,r,i,o,s,a){var u=new bt(0,0);if(s?(u.current=s.current,u.total=s.total):(u.current=0,u.total=r.size()),r.size()!==u.total)throw new l(c.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.");var h=u.total-u.current,p=h;i>0&&(p=Math.min(p,i));var f=u.current,m={"X-Goog-Upload-Command":p===h?"upload, finalize":"upload","X-Goog-Upload-Offset":u.current},y=r.slice(f,f+p);if(null===y)throw d();var g=e.maxUploadRetryTime(),v=new ft(n,"POST",function(t,n){var i,s=wt(t,["active","final"]),a=u.current+p,l=r.size();return i="final"===s?mt(e,o)(t,n):null,new bt(a,l,"final"===s,i)},g);return v.headers=m,v.body=y.uploadData(),v.progressCallback=a||null,v.errorHandler=yt(t),v}(t.location_,t.authWrapper_,r,t.blob_,e,t.mappings_,n,t.makeProgressCallback_())}catch(a){return t.error_=a,void t.transition_(x.ERROR)}var s=t.authWrapper_.makeRequest(o,i);t.request_=s,s.getPromise().then(function(e){t.increaseMultiplier_(),t.request_=null,t.updateProgress_(e.current),e.finalized?(t.metadata_=e.metadata,t.transition_(x.SUCCESS)):t.completeTransitions_()},t.errorHandler_)})},t.prototype.increaseMultiplier_=function(){262144*this.chunkMultiplier_<33554432&&(this.chunkMultiplier_*=2)},t.prototype.fetchMetadata_=function(){var t=this;this.resolveToken_(function(e){var n=vt(t.authWrapper_,t.location_,t.mappings_),r=t.authWrapper_.makeRequest(n,e);t.request_=r,r.getPromise().then(function(e){t.request_=null,t.metadata_=e,t.transition_(x.SUCCESS)},t.metadataErrorHandler_)})},t.prototype.oneShotUpload_=function(){var t=this;this.resolveToken_(function(e){var n=function(t,e,n,r,i){var o=e.bucketOnlyServerUrl(),s={"X-Goog-Upload-Protocol":"multipart"},a=function(){for(var t="",e=0;e<2;e++)t+=Math.random().toString().slice(2);return t}();s["Content-Type"]="multipart/related; boundary="+a;var u=_t(e,r,i),l=et(u,n),c=ht.getBlob("--"+a+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+l+"\r\n--"+a+"\r\nContent-Type: "+u.contentType+"\r\n\r\n",r,"\r\n--"+a+"--");if(null===c)throw d();var h={name:u.fullPath},p=Y(o),f=t.maxUploadRetryTime(),m=new ft(p,"POST",mt(t,n),f);return m.urlParams=h,m.headers=s,m.body=c.uploadData(),m.errorHandler=yt(e),m}(t.authWrapper_,t.location_,t.mappings_,t.blob_,t.metadata_),r=t.authWrapper_.makeRequest(n,e);t.request_=r,r.getPromise().then(function(e){t.request_=null,t.metadata_=e,t.updateProgress_(t.blob_.size()),t.transition_(x.SUCCESS)},t.errorHandler_)})},t.prototype.updateProgress_=function(t){var e=this.transferred_;this.transferred_=t,this.transferred_!==e&&this.notifyObservers_()},t.prototype.transition_=function(t){if(this.state_!==t)switch(t){case x.CANCELING:case x.PAUSING:this.state_=t,null!==this.request_&&this.request_.cancel();break;case x.RUNNING:var e=this.state_===x.PAUSED;this.state_=t,e&&(this.notifyObservers_(),this.start_());break;case x.PAUSED:this.state_=t,this.notifyObservers_();break;case x.CANCELED:this.error_=f(),this.state_=t,this.notifyObservers_();break;case x.ERROR:case x.SUCCESS:this.state_=t,this.notifyObservers_()}},t.prototype.completeTransitions_=function(){switch(this.state_){case x.PAUSING:this.transition_(x.PAUSED);break;case x.CANCELING:this.transition_(x.CANCELED);break;case x.RUNNING:this.start_()}},Object.defineProperty(t.prototype,"snapshot",{get:function(){var t=A(this.state_);return new St(this.transferred_,this.blob_.size(),t,this.metadata_,this,this.ref_)},enumerable:!0,configurable:!0}),t.prototype.on=function(t,e,n,r){void 0===e&&(e=void 0),void 0===n&&(n=void 0),void 0===r&&(r=void 0);var i="Expected a function or an Object with one of `next`, `error`, `complete` properties.",o=lt(!0).validator,s=ut(null,!0).validator;function a(t){try{return void o(t)}catch(e){}try{if(s(t),!(L(t.next)||L(t.error)||L(t.complete)))throw"";return}catch(e){throw i}}rt("on",[ot(function(e){if(t!==I.STATE_CHANGED)throw"Expected one of the event types: ["+I.STATE_CHANGED+"]."}),ut(a,!0),lt(!0),lt(!0)],arguments);var u=this;function l(t){return function(e,n,i){null!==t&&rt("on",t,arguments);var o=new Et(e,n,r);return u.addObserver_(o),function(){u.removeObserver_(o)}}}var c=[ut(function(t){if(null===t)throw i;a(t)}),lt(!0),lt(!0)];return L(e)||L(n)||L(r)?l(null)(e,n,r):l(c)},t.prototype.then=function(t,e){return this.promise_.then(t,e)},t.prototype.catch=function(t){return this.then(null,t)},t.prototype.addObserver_=function(t){this.observers_.push(t),this.notifyObserver_(t)},t.prototype.removeObserver_=function(t){var e,n;-1!==(n=(e=this.observers_).indexOf(t))&&e.splice(n,1)},t.prototype.notifyObservers_=function(){var t=this;this.finishPromise_(),Array.prototype.slice.call(this.observers_).forEach(function(e){t.notifyObserver_(e)})},t.prototype.finishPromise_=function(){if(null!==this.resolve_){var t=!0;switch(A(this.state_)){case k.SUCCESS:Ct(this.resolve_.bind(null,this.snapshot))();break;case k.CANCELED:case k.ERROR:Ct(this.reject_.bind(null,this.error_))();break;default:t=!1}t&&(this.resolve_=null,this.reject_=null)}},t.prototype.notifyObserver_=function(t){switch(A(this.state_)){case k.RUNNING:case k.PAUSED:null!==t.next&&Ct(t.next.bind(t,this.snapshot))();break;case k.SUCCESS:null!==t.complete&&Ct(t.complete.bind(t))();break;case k.CANCELED:case k.ERROR:null!==t.error&&Ct(t.error.bind(t,this.error_))();break;default:null!==t.error&&Ct(t.error.bind(t,this.error_))()}},t.prototype.resume=function(){rt("resume",[],arguments);var t=this.state_===x.PAUSED||this.state_===x.PAUSING;return t&&this.transition_(x.RUNNING),t},t.prototype.pause=function(){rt("pause",[],arguments);var t=this.state_===x.RUNNING;return t&&this.transition_(x.PAUSING),t},t.prototype.cancel=function(){rt("cancel",[],arguments);var t=this.state_===x.RUNNING||this.state_===x.PAUSING;return t&&this.transition_(x.CANCELING),t},t}(),It=function(){function t(t,e){this.authWrapper=t,this.location=e instanceof K?e:K.makeFromUrl(e)}return t.prototype.toString=function(){return rt("toString",[],arguments),"gs://"+this.location.bucket+"/"+this.location.path},t.prototype.newRef=function(e,n){return new t(e,n)},t.prototype.mappings=function(){return function(){if($)return $;var t=[];t.push(new Z("bucket")),t.push(new Z("generation")),t.push(new Z("metageneration")),t.push(new Z("name","fullPath",!0));var e=new Z("name");e.xform=function(t,e){return function(t){return!V(t)||t.length<2?t:G(t=t)}(e)},t.push(e);var n=new Z("size");return n.xform=function(t,e){return M(e)?+e:e},t.push(n),t.push(new Z("timeCreated")),t.push(new Z("updated")),t.push(new Z("md5Hash",null,!0)),t.push(new Z("cacheControl",null,!0)),t.push(new Z("contentDisposition",null,!0)),t.push(new Z("contentEncoding",null,!0)),t.push(new Z("contentLanguage",null,!0)),t.push(new Z("contentType",null,!0)),t.push(new Z("metadata","customMetadata",!0)),$=t}()},t.prototype.child=function(t){rt("child",[ot()],arguments);var e=function(t,e){var n=e.split("/").filter(function(t){return t.length>0}).join("/");return 0===t.length?n:t+"/"+n}(this.location.path,t),n=new K(this.location.bucket,e);return this.newRef(this.authWrapper,n)},Object.defineProperty(t.prototype,"parent",{get:function(){var t=function(t){if(0==t.length)return null;var e=t.lastIndexOf("/");return-1===e?"":t.slice(0,e)}(this.location.path);if(null===t)return null;var e=new K(this.location.bucket,t);return this.newRef(this.authWrapper,e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){var t=new K(this.location.bucket,"");return this.newRef(this.authWrapper,t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bucket",{get:function(){return this.location.bucket},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"fullPath",{get:function(){return this.location.path},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return G(this.location.path)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"storage",{get:function(){return this.authWrapper.service()},enumerable:!0,configurable:!0}),t.prototype.put=function(t,e){return void 0===e&&(e=null),rt("put",[new it(function(t){if(!(t instanceof Uint8Array||t instanceof ArrayBuffer||B()&&t instanceof Blob))throw"Expected Blob or File."}),st(!0)],arguments),this.throwIfRoot_("put"),new Tt(this,this.authWrapper,this.location,this.mappings(),new ht(t),e)},t.prototype.putString=function(t,e,n){void 0===e&&(e=_.RAW),rt("putString",[ot(),ot(b,!0),st(!0)],arguments),this.throwIfRoot_("putString");var r=E(e,t),i=D(n);return!M(i.contentType)&&M(r.contentType)&&(i.contentType=r.contentType),new Tt(this,this.authWrapper,this.location,this.mappings(),new ht(r.data,!0),i)},t.prototype.delete=function(){rt("delete",[],arguments),this.throwIfRoot_("delete");var t=this;return this.authWrapper.getAuthToken().then(function(e){var n=function(t,e){var n=Y(e.fullServerUrl()),r=t.maxOperationRetryTime(),i=new ft(n,"DELETE",function(t,e){},r);return i.successCodes=[200,204],i.errorHandler=gt(e),i}(t.authWrapper,t.location);return t.authWrapper.makeRequest(n,e).getPromise()})},t.prototype.getMetadata=function(){rt("getMetadata",[],arguments),this.throwIfRoot_("getMetadata");var t=this;return this.authWrapper.getAuthToken().then(function(e){var n=vt(t.authWrapper,t.location,t.mappings());return t.authWrapper.makeRequest(n,e).getPromise()})},t.prototype.updateMetadata=function(t){rt("updateMetadata",[st()],arguments),this.throwIfRoot_("updateMetadata");var e=this;return this.authWrapper.getAuthToken().then(function(n){var r=function(t,e,n,r){var i=Y(e.fullServerUrl()),o=et(n,r),s=t.maxOperationRetryTime(),a=new ft(i,"PATCH",mt(t,r),s);return a.headers={"Content-Type":"application/json; charset=utf-8"},a.body=o,a.errorHandler=gt(e),a}(e.authWrapper,e.location,t,e.mappings());return e.authWrapper.makeRequest(r,n).getPromise()})},t.prototype.getDownloadURL=function(){rt("getDownloadURL",[],arguments),this.throwIfRoot_("getDownloadURL");var t=this;return this.authWrapper.getAuthToken().then(function(e){var n=function(t,e,n){var r=Y(e.fullServerUrl()),i=t.maxOperationRetryTime(),o=new ft(r,"GET",function(t,e){return function(n,r){var i=tt(t,r,e);return dt(null!==i),function(t,e){var n=Q(r);if(null===n)return null;if(!V(n.downloadTokens))return null;var i=n.downloadTokens;if(0===i.length)return null;var o=encodeURIComponent;return i.split(",").map(function(e){var n=t.fullPath;return Y("/b/"+o(t.bucket)+"/o/"+o(n))+X({alt:"media",token:e})})[0]}(i)}}(t,n),i);return o.errorHandler=gt(e),o}(t.authWrapper,t.location,t.mappings());return t.authWrapper.makeRequest(n,e).getPromise().then(function(t){if(null===t)throw new l(c.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return t})})},t.prototype.throwIfRoot_=function(t){if(""===this.location.path)throw function(t){return new l(c.INVALID_ROOT_OPERATION,"The operation '"+t+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}(t)},t}(),xt=function(){function t(t){this.promise_=function(t){return Promise.reject(t)}(t)}return t.prototype.getPromise=function(){return this.promise_},t.prototype.cancel=function(t){void 0===t&&(t=!1)},t}(),kt=function(){function t(){this.map_={},this.id_=u}return t.prototype.addRequest=function(t){var e=this.id_;this.id_++,this.map_[e]=t;var n=this;function r(){delete n.map_[e]}t.getPromise().then(r,r)},t.prototype.clear=function(){N(this.map_,function(t,e){e&&e.cancel(!0)}),this.map_={}},t}(),At=function(){function t(e,n,r,i,o){if(this.bucket_=null,this.deleted_=!1,this.app_=e,null!==this.app_){var u=this.app_.options;M(u)&&(this.bucket_=t.extractBucket_(u))}this.storageRefMaker_=n,this.requestMaker_=r,this.pool_=o,this.service_=i,this.maxOperationRetryTime_=s,this.maxUploadRetryTime_=a,this.requestMap_=new kt}return t.extractBucket_=function(t){var e=t.storageBucket||null;return null==e?null:K.makeFromBucketSpec(e).bucket},t.prototype.getAuthToken=function(){return null!==this.app_&&M(this.app_.INTERNAL)&&M(this.app_.INTERNAL.getToken)?this.app_.INTERNAL.getToken().then(function(t){return null!==t?t.accessToken:null},function(t){return null}):P(null)},t.prototype.bucket=function(){if(this.deleted_)throw y();return this.bucket_},t.prototype.service=function(){return this.service_},t.prototype.makeStorageReference=function(t){return this.storageRefMaker_(this,t)},t.prototype.makeRequest=function(t,e){if(this.deleted_)return new xt(y());var n=this.requestMaker_(t,e,this.pool_);return this.requestMap_.addRequest(n),n},t.prototype.deleteApp=function(){this.deleted_=!0,this.app_=null,this.requestMap_.clear()},t.prototype.maxUploadRetryTime=function(){return this.maxUploadRetryTime_},t.prototype.setMaxUploadRetryTime=function(t){this.maxUploadRetryTime_=t},t.prototype.maxOperationRetryTime=function(){return this.maxOperationRetryTime_},t.prototype.setMaxOperationRetryTime=function(t){this.maxOperationRetryTime_=t},t}(),Ot=function(){function t(t,e,n,r,i,o,s,a,u,l,c){this.pendingXhr_=null,this.backoffId_=null,this.resolve_=null,this.reject_=null,this.canceled_=!1,this.appDelete_=!1,this.url_=t,this.method_=e,this.headers_=n,this.body_=r,this.successCodes_=i.slice(),this.additionalRetryCodes_=o.slice(),this.callback_=s,this.errorCallback_=a,this.progressCallback_=l,this.timeout_=u,this.pool_=c;var h=this;this.promise_=R(function(t,e){h.resolve_=t,h.reject_=e,h.start_()})}return t.prototype.start_=function(){var t=this;function e(e,n){var r,i=t.resolve_,o=t.reject_,s=n.xhr;if(n.wasSuccessCode)try{var a=t.callback_(s,s.getResponseText());L(a)?i(a):i()}catch(u){o(u)}else null!==s?((r=p()).setServerResponseProp(s.getResponseText()),o(t.errorCallback_?t.errorCallback_(s,r):r)):o(r=n.canceled?t.appDelete_?y():f():new l(c.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again."))}this.canceled_?e(0,new Nt(!1,null,!0)):this.backoffId_=function(t,e,n){var r=1,i=null,o=!1,s=0;function a(){return 2===s}var u=!1;function l(){u||(u=!0,e.apply(null,arguments))}function c(e){i=setTimeout(function(){i=null,t(h,a())},e)}function h(t){for(var e,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];u||(t?l.apply(null,arguments):a()||o?l.apply(null,arguments):(r<64&&(r*=2),1===s?(s=2,e=0):e=1e3*(r+Math.random()),c(e)))}var p=!1;function f(t){p||(p=!0,u||(null!==i?(t||(s=2),clearTimeout(i),c(0)):t||(s=1)))}return c(0),setTimeout(function(){o=!0,f(!0)},n),f}(function(e,n){if(n)e(!1,new Nt(!1,null,!0));else{var r=t.pool_.createXhrIo();t.pendingXhr_=r,null!==t.progressCallback_&&r.addUploadProgressListener(i),r.send(t.url_,t.method_,t.body_,t.headers_).then(function(n){null!==t.progressCallback_&&n.removeUploadProgressListener(i),t.pendingXhr_=null;var r=(n=n).getErrorCode()===H.NO_ERROR,o=n.getStatus();if(r&&!t.isRetryStatusCode_(o)){var s=pt(t.successCodes_,o);e(!0,new Nt(s,n))}else{var a=n.getErrorCode()===H.ABORT;e(!1,new Nt(!1,null,a))}})}function i(e){null!==t.progressCallback_&&t.progressCallback_(e.loaded,e.lengthComputable?e.total:-1)}},e,this.timeout_)},t.prototype.getPromise=function(){return this.promise_},t.prototype.cancel=function(t){this.canceled_=!0,this.appDelete_=t||!1,null!==this.backoffId_&&(0,this.backoffId_)(!1),null!==this.pendingXhr_&&this.pendingXhr_.abort()},t.prototype.isRetryStatusCode_=function(t){var e=t>=500&&t<600,n=pt([408,429],t),r=pt(this.additionalRetryCodes_,t);return e||n||r},t}(),Nt=function(){return function(t,e,n){this.wasSuccessCode=t,this.xhr=e,this.canceled=!!n}}();function Dt(t,e,n){var r=X(t.urlParams),o=t.url+r,s=D(t.headers);return function(t,e){null!==e&&e.length>0&&(t.Authorization="Firebase "+e)}(s,e),function(t){t["X-Firebase-Storage-Version"]="webjs/"+(void 0!==i.a?i.a.SDK_VERSION:"AppManager")}(s),new Ot(o,t.method,s,t.body,t.successCodes,t.additionalRetryCodes,t.handler,t.errorHandler,t.timeout,t.progressCallback,n)}var Rt=function(){function t(t,e,n){if(this.bucket_=null,this.authWrapper_=new At(t,function(t,e){return new It(t,e)},Dt,this,e),this.app_=t,null!=n)this.bucket_=K.makeFromBucketSpec(n);else{var r=this.authWrapper_.bucket();null!=r&&(this.bucket_=new K(r,""))}this.internals_=new Pt(this)}return t.prototype.ref=function(t){if(rt("ref",[ot(function(t){if(/^[A-Za-z]+:\/\//.test(t))throw"Expected child path but got a URL, use refFromURL instead."},!0)],arguments),null==this.bucket_)throw new Error("No Storage Bucket defined in Firebase Options.");var e=new It(this.authWrapper_,this.bucket_);return null!=t?e.child(t):e},t.prototype.refFromURL=function(t){return rt("refFromURL",[ot(function(t){if(!/^[A-Za-z]+:\/\//.test(t))throw"Expected full URL but got a child path, use ref instead.";try{K.makeFromUrl(t)}catch(e){throw"Expected valid full URL but got an invalid one."}},!1)],arguments),new It(this.authWrapper_,t)},Object.defineProperty(t.prototype,"maxUploadRetryTime",{get:function(){return this.authWrapper_.maxUploadRetryTime()},enumerable:!0,configurable:!0}),t.prototype.setMaxUploadRetryTime=function(t){rt("setMaxUploadRetryTime",[at()],arguments),this.authWrapper_.setMaxUploadRetryTime(t)},t.prototype.setMaxOperationRetryTime=function(t){rt("setMaxOperationRetryTime",[at()],arguments),this.authWrapper_.setMaxOperationRetryTime(t)},Object.defineProperty(t.prototype,"app",{get:function(){return this.app_},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"INTERNAL",{get:function(){return this.internals_},enumerable:!0,configurable:!0}),t}(),Pt=function(){function t(t){this.service_=t}return t.prototype.delete=function(){return this.service_.authWrapper_.deleteApp(),P(void 0)},t}(),Mt="storage";function Lt(t,e,n){return new Rt(t,new W,n)}function Ft(t){t.INTERNAL.registerService(Mt,Lt,{TaskState:k,TaskEvent:I,StringFormat:_,Storage:Rt,Reference:It},void 0,!0)}Ft(i.a)},MfhB:function(t,e,n){var r=n("ysHE"),i=n("nX7E"),o=r["__core-js_shared__"]||i("__core-js_shared__",{});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.0.0",mode:n("U5J1")?"pure":"global",copyright:"\xa9 2019 Denis Pushkarev (zloirock.ru)"})},MuAL:function(t,e,n){n("q94Q")("toPrimitive")},NSPt:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i,o,s,a,u,l,c,h,p,f,d,m=(r=n("wj3C"))&&"object"==typeof r&&"default"in r?r.default:r,y=n("mrSG"),g=n("zVF4"),v=n("q/0M"),_=function(){function t(t){this.domStorage_=t,this.prefix_="firebase:"}return t.prototype.set=function(t,e){null==e?this.domStorage_.removeItem(this.prefixedName_(t)):this.domStorage_.setItem(this.prefixedName_(t),g.stringify(e))},t.prototype.get=function(t){var e=this.domStorage_.getItem(this.prefixedName_(t));return null==e?null:g.jsonEval(e)},t.prototype.remove=function(t){this.domStorage_.removeItem(this.prefixedName_(t))},t.prototype.prefixedName_=function(t){return this.prefix_+t},t.prototype.toString=function(){return this.domStorage_.toString()},t}(),b=function(){function t(){this.cache_={},this.isInMemoryStorage=!0}return t.prototype.set=function(t,e){null==e?delete this.cache_[t]:this.cache_[t]=e},t.prototype.get=function(t){return g.contains(this.cache_,t)?this.cache_[t]:null},t.prototype.remove=function(t){delete this.cache_[t]},t}(),w=function(t){try{if("undefined"!=typeof window&&void 0!==window[t]){var e=window[t];return e.setItem("firebase:sentinel","cache"),e.removeItem("firebase:sentinel"),new _(e)}}catch(n){}return new b},E=w("localStorage"),S=w("sessionStorage"),C=new v.Logger("@firebase/database"),T=(i=1,function(){return i++}),I=function(t){var e=g.stringToByteArray(t),n=new g.Sha1;n.update(e);var r=n.digest();return g.base64.encodeByteArray(r)},x=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n="",r=0;r<t.length;r++)Array.isArray(t[r])||t[r]&&"object"==typeof t[r]&&"number"==typeof t[r].length?n+=x.apply(null,t[r]):n+="object"==typeof t[r]?g.stringify(t[r]):t[r],n+=" ";return n},k=null,A=!0,O=function(t,e){g.assert(!e||!0===t||!1===t,"Can't turn on custom loggers persistently."),!0===t?(C.logLevel=v.LogLevel.VERBOSE,k=C.log.bind(C),e&&S.set("logging_enabled",!0)):"function"==typeof t?k=t:(k=null,S.remove("logging_enabled"))},N=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if(!0===A&&(A=!1,null===k&&!0===S.get("logging_enabled")&&O(!0)),k){var n=x.apply(null,t);k(n)}},D=function(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];N.apply(void 0,[t].concat(e))}},R=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n="FIREBASE INTERNAL ERROR: "+x.apply(void 0,t);C.error(n)},P=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n="FIREBASE FATAL ERROR: "+x.apply(void 0,t);throw C.error(n),new Error(n)},M=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n="FIREBASE WARNING: "+x.apply(void 0,t);C.warn(n)},L=function(t){return"number"==typeof t&&(t!=t||t==Number.POSITIVE_INFINITY||t==Number.NEGATIVE_INFINITY)},F="[MIN_NAME]",j="[MAX_NAME]",U=function(t,e){if(t===e)return 0;if(t===F||e===j)return-1;if(e===F||t===j)return 1;var n=K(t),r=K(e);return null!==n?null!==r?n-r==0?t.length-e.length:n-r:-1:null!==r?1:t<e?-1:1},V=function(t,e){return t===e?0:t<e?-1:1},q=function(t,e){if(e&&t in e)return e[t];throw new Error("Missing required key ("+t+") in object: "+g.stringify(e))},B=function(t){if("object"!=typeof t||null===t)return g.stringify(t);var e=[];for(var n in t)e.push(n);e.sort();for(var r="{",i=0;i<e.length;i++)0!==i&&(r+=","),r+=g.stringify(e[i]),r+=":",r+=B(t[e[i]]);return r+"}"},H=function(t,e){var n=t.length;if(n<=e)return[t];for(var r=[],i=0;i<n;i+=e)r.push(t.substring(i,i+e>n?n:i+e));return r},z=function(t,e){if(Array.isArray(t))for(var n=0;n<t.length;++n)e(n,t[n]);else g.forEach(t,function(t,n){return e(n,t)})},W=function(t){var e,n,r,i,o,s,a;for(g.assert(!L(t),"Invalid JSON number"),0===t?(n=0,r=0,e=1/t==-1/0?1:0):(e=t<0,(t=Math.abs(t))>=Math.pow(2,-1022)?(n=(i=Math.min(Math.floor(Math.log(t)/Math.LN2),1023))+1023,r=Math.round(t*Math.pow(2,52-i)-Math.pow(2,52))):(n=0,r=Math.round(t/Math.pow(2,-1074)))),s=[],o=52;o;o-=1)s.push(r%2?1:0),r=Math.floor(r/2);for(o=11;o;o-=1)s.push(n%2?1:0),n=Math.floor(n/2);s.push(e?1:0),s.reverse(),a=s.join("");var u="";for(o=0;o<64;o+=8){var l=parseInt(a.substr(o,8),2).toString(16);1===l.length&&(l="0"+l),u+=l}return u.toLowerCase()},Q=new RegExp("^-?\\d{1,10}$"),K=function(t){if(Q.test(t)){var e=Number(t);if(e>=-2147483648&&e<=2147483647)return e}return null},G=function(t){try{t()}catch(e){setTimeout(function(){throw M("Exception was thrown by user callback.",e.stack||""),e},Math.floor(0))}},Y=function(){return("object"==typeof window&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i)>=0},X=function(t,e){var n=setTimeout(t,e);return"object"==typeof n&&n.unref&&n.unref(),n},J=function(){function t(t,e){if(void 0===e){this.pieces_=t.split("/");for(var n=0,r=0;r<this.pieces_.length;r++)this.pieces_[r].length>0&&(this.pieces_[n]=this.pieces_[r],n++);this.pieces_.length=n,this.pieceNum_=0}else this.pieces_=t,this.pieceNum_=e}return Object.defineProperty(t,"Empty",{get:function(){return new t("")},enumerable:!0,configurable:!0}),t.prototype.getFront=function(){return this.pieceNum_>=this.pieces_.length?null:this.pieces_[this.pieceNum_]},t.prototype.getLength=function(){return this.pieces_.length-this.pieceNum_},t.prototype.popFront=function(){var e=this.pieceNum_;return e<this.pieces_.length&&e++,new t(this.pieces_,e)},t.prototype.getBack=function(){return this.pieceNum_<this.pieces_.length?this.pieces_[this.pieces_.length-1]:null},t.prototype.toString=function(){for(var t="",e=this.pieceNum_;e<this.pieces_.length;e++)""!==this.pieces_[e]&&(t+="/"+this.pieces_[e]);return t||"/"},t.prototype.toUrlEncodedString=function(){for(var t="",e=this.pieceNum_;e<this.pieces_.length;e++)""!==this.pieces_[e]&&(t+="/"+encodeURIComponent(String(this.pieces_[e])));return t||"/"},t.prototype.slice=function(t){return void 0===t&&(t=0),this.pieces_.slice(this.pieceNum_+t)},t.prototype.parent=function(){if(this.pieceNum_>=this.pieces_.length)return null;for(var e=[],n=this.pieceNum_;n<this.pieces_.length-1;n++)e.push(this.pieces_[n]);return new t(e,0)},t.prototype.child=function(e){for(var n=[],r=this.pieceNum_;r<this.pieces_.length;r++)n.push(this.pieces_[r]);if(e instanceof t)for(r=e.pieceNum_;r<e.pieces_.length;r++)n.push(e.pieces_[r]);else{var i=e.split("/");for(r=0;r<i.length;r++)i[r].length>0&&n.push(i[r])}return new t(n,0)},t.prototype.isEmpty=function(){return this.pieceNum_>=this.pieces_.length},t.relativePath=function(e,n){var r=e.getFront(),i=n.getFront();if(null===r)return n;if(r===i)return t.relativePath(e.popFront(),n.popFront());throw new Error("INTERNAL ERROR: innerPath ("+n+") is not within outerPath ("+e+")")},t.comparePaths=function(t,e){for(var n=t.slice(),r=e.slice(),i=0;i<n.length&&i<r.length;i++){var o=U(n[i],r[i]);if(0!==o)return o}return n.length===r.length?0:n.length<r.length?-1:1},t.prototype.equals=function(t){if(this.getLength()!==t.getLength())return!1;for(var e=this.pieceNum_,n=t.pieceNum_;e<=this.pieces_.length;e++,n++)if(this.pieces_[e]!==t.pieces_[n])return!1;return!0},t.prototype.contains=function(t){var e=this.pieceNum_,n=t.pieceNum_;if(this.getLength()>t.getLength())return!1;for(;e<this.pieces_.length;){if(this.pieces_[e]!==t.pieces_[n])return!1;++e,++n}return!0},t}(),Z=function(){function t(t,e){this.errorPrefix_=e,this.parts_=t.slice(),this.byteLength_=Math.max(1,this.parts_.length);for(var n=0;n<this.parts_.length;n++)this.byteLength_+=g.stringLength(this.parts_[n]);this.checkValid_()}return Object.defineProperty(t,"MAX_PATH_DEPTH",{get:function(){return 32},enumerable:!0,configurable:!0}),Object.defineProperty(t,"MAX_PATH_LENGTH_BYTES",{get:function(){return 768},enumerable:!0,configurable:!0}),t.prototype.push=function(t){this.parts_.length>0&&(this.byteLength_+=1),this.parts_.push(t),this.byteLength_+=g.stringLength(t),this.checkValid_()},t.prototype.pop=function(){var t=this.parts_.pop();this.byteLength_-=g.stringLength(t),this.parts_.length>0&&(this.byteLength_-=1)},t.prototype.checkValid_=function(){if(this.byteLength_>t.MAX_PATH_LENGTH_BYTES)throw new Error(this.errorPrefix_+"has a key path longer than "+t.MAX_PATH_LENGTH_BYTES+" bytes ("+this.byteLength_+").");if(this.parts_.length>t.MAX_PATH_DEPTH)throw new Error(this.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+t.MAX_PATH_DEPTH+") or object contains a cycle "+this.toErrorString())},t.prototype.toErrorString=function(){return 0==this.parts_.length?"":"in property '"+this.parts_.join(".")+"'"},t}(),$="long_polling",tt=function(){function t(t,e,n,r,i){void 0===i&&(i=""),this.secure=e,this.namespace=n,this.webSocketOnly=r,this.persistenceKey=i,this.host=t.toLowerCase(),this.domain=this.host.substr(this.host.indexOf(".")+1),this.internalHost=E.get("host:"+t)||this.host}return t.prototype.needsQueryParam=function(){return this.host!==this.internalHost||this.isCustomHost()},t.prototype.isCacheableHost=function(){return"s-"===this.internalHost.substr(0,2)},t.prototype.isDemoHost=function(){return"firebaseio-demo.com"===this.domain},t.prototype.isCustomHost=function(){return"firebaseio.com"!==this.domain&&"firebaseio-demo.com"!==this.domain},t.prototype.updateHost=function(t){t!==this.internalHost&&(this.internalHost=t,this.isCacheableHost()&&E.set("host:"+this.host,this.internalHost))},t.prototype.connectionURL=function(t,e){var n;if(g.assert("string"==typeof t,"typeof type must == string"),g.assert("object"==typeof e,"typeof params must == object"),"websocket"===t)n=(this.secure?"wss://":"ws://")+this.internalHost+"/.ws?";else{if(t!==$)throw new Error("Unknown connection type: "+t);n=(this.secure?"https://":"http://")+this.internalHost+"/.lp?"}this.needsQueryParam()&&(e.ns=this.namespace);var r=[];return g.forEach(e,function(t,e){r.push(t+"="+e)}),n+r.join("&")},t.prototype.toString=function(){var t=this.toURLString();return this.persistenceKey&&(t+="<"+this.persistenceKey+">"),t},t.prototype.toURLString=function(){return(this.secure?"https://":"http://")+this.host},t}(),et=function(t){var e=nt(t),n=e.subdomain;return"firebase"===e.domain&&P(e.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),n&&"undefined"!=n||"localhost"===e.domain||P("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),e.secure||"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&M("Insecure Firebase access from a secure page. Please use https in calls to new Firebase()."),{repoInfo:new tt(e.host,e.secure,n,"ws"===e.scheme||"wss"===e.scheme),path:new J(e.pathString)}},nt=function(t){var e="",n="",r="",i="",o=!0,s="https",a=443;if("string"==typeof t){var u=t.indexOf("//");u>=0&&(s=t.substring(0,u-1),t=t.substring(u+2));var l=t.indexOf("/");-1===l&&(l=t.length);var c=t.indexOf("?");-1===c&&(c=t.length),e=t.substring(0,Math.min(l,c)),l<c&&(i=function(e){for(var n="",r=t.substring(l,c).split("/"),i=0;i<r.length;i++)if(r[i].length>0){var o=r[i];try{o=decodeURIComponent(o.replace(/\+/g," "))}catch(s){}n+="/"+o}return n}());var h=function(t){var e={};"?"===t.charAt(0)&&(t=t.substring(1));for(var n=0,r=t.split("&");n<r.length;n++){var i=r[n];if(0!==i.length){var o=i.split("=");2===o.length?e[decodeURIComponent(o[0])]=decodeURIComponent(o[1]):M("Invalid query segment '"+i+"' in query '"+t+"'")}}return e}(t.substring(Math.min(t.length,c)));(u=e.indexOf(":"))>=0?(o="https"===s||"wss"===s,a=parseInt(e.substring(u+1),10)):u=t.length;var p=e.split(".");3===p.length?(n=p[1],r=p[0].toLowerCase()):2===p.length?n=p[0]:"localhost"===p[0].slice(0,u).toLowerCase()&&(n="localhost"),""===r&&"ns"in h&&(r=h.ns)}return{host:e,port:a,domain:n,subdomain:r,secure:o,scheme:s,pathString:i}},rt=/[\[\].#$\/\u0000-\u001F\u007F]/,it=/[\[\].#$\u0000-\u001F\u007F]/,ot=function(t){return"string"==typeof t&&0!==t.length&&!rt.test(t)},st=function(t){return"string"==typeof t&&0!==t.length&&!it.test(t)},at=function(t){return null===t||"string"==typeof t||"number"==typeof t&&!L(t)||t&&"object"==typeof t&&g.contains(t,".sv")},ut=function(t,e,n,r,i){i&&void 0===n||lt(g.errorPrefix(t,e,i),n,r)},lt=function(t,e,n){var r=n instanceof J?new Z(n,t):n;if(void 0===e)throw new Error(t+"contains undefined "+r.toErrorString());if("function"==typeof e)throw new Error(t+"contains a function "+r.toErrorString()+" with contents = "+e.toString());if(L(e))throw new Error(t+"contains "+e.toString()+" "+r.toErrorString());if("string"==typeof e&&e.length>10485760/3&&g.stringLength(e)>10485760)throw new Error(t+"contains a string greater than 10485760 utf8 bytes "+r.toErrorString()+" ('"+e.substring(0,50)+"...')");if(e&&"object"==typeof e){var i=!1,o=!1;if(g.forEach(e,function(e,n){if(".value"===e)i=!0;else if(".priority"!==e&&".sv"!==e&&(o=!0,!ot(e)))throw new Error(t+" contains an invalid key ("+e+") "+r.toErrorString()+'.  Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');r.push(e),lt(t,n,r),r.pop()}),i&&o)throw new Error(t+' contains ".value" child '+r.toErrorString()+" in addition to actual children.")}},ct=function(t,e,n,r,i){if(!i||void 0!==n){var o=g.errorPrefix(t,e,i);if(!n||"object"!=typeof n||Array.isArray(n))throw new Error(o+" must be an object containing the children to replace.");var s=[];g.forEach(n,function(t,e){var n=new J(t);if(lt(o,e,r.child(n)),".priority"===n.getBack()&&!at(e))throw new Error(o+"contains an invalid value for '"+n.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");s.push(n)}),function(t,e){var n,r;for(n=0;n<e.length;n++)for(var i=(r=e[n]).slice(),o=0;o<i.length;o++)if(".priority"===i[o]&&o===i.length-1);else if(!ot(i[o]))throw new Error(t+"contains an invalid key ("+i[o]+") in path "+r.toString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');e.sort(J.comparePaths);var s=null;for(n=0;n<e.length;n++){if(r=e[n],null!==s&&s.contains(r))throw new Error(t+"contains a path "+s.toString()+" that is ancestor of another path "+r.toString());s=r}}(o,s)}},ht=function(t,e,n,r){if(!r||void 0!==n){if(L(n))throw new Error(g.errorPrefix(t,e,r)+"is "+n.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!at(n))throw new Error(g.errorPrefix(t,e,r)+"must be a valid Firebase priority (a string, finite number, server value, or null).")}},pt=function(t,e,n,r){if(!r||void 0!==n)switch(n){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(g.errorPrefix(t,e,r)+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}},ft=function(t,e,n,r){if(!(r&&void 0===n||ot(n)))throw new Error(g.errorPrefix(t,e,r)+'was an invalid key = "'+n+'".  Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')},dt=function(t,e,n,r){if(!(r&&void 0===n||st(n)))throw new Error(g.errorPrefix(t,e,r)+'was an invalid path = "'+n+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},mt=function(t,e){if(".info"===e.getFront())throw new Error(t+" failed = Can't modify data under /.info/")},yt=function(t,e,n){var r=n.path.toString();if("string"!=typeof n.repoInfo.host||0===n.repoInfo.host.length||!ot(n.repoInfo.namespace)&&"localhost"!==n.repoInfo.host.split(":")[0]||0!==r.length&&!function(t){return t&&(t=t.replace(/^\/*\.info(\/|$)/,"/")),st(t)}(r))throw new Error(g.errorPrefix(t,e,!1)+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')},gt=function(){function t(t,e){this.repo_=t,this.path_=e}return t.prototype.cancel=function(t){g.validateArgCount("OnDisconnect.cancel",0,1,arguments.length),g.validateCallback("OnDisconnect.cancel",1,t,!0);var e=new g.Deferred;return this.repo_.onDisconnectCancel(this.path_,e.wrapCallback(t)),e.promise},t.prototype.remove=function(t){g.validateArgCount("OnDisconnect.remove",0,1,arguments.length),mt("OnDisconnect.remove",this.path_),g.validateCallback("OnDisconnect.remove",1,t,!0);var e=new g.Deferred;return this.repo_.onDisconnectSet(this.path_,null,e.wrapCallback(t)),e.promise},t.prototype.set=function(t,e){g.validateArgCount("OnDisconnect.set",1,2,arguments.length),mt("OnDisconnect.set",this.path_),ut("OnDisconnect.set",1,t,this.path_,!1),g.validateCallback("OnDisconnect.set",2,e,!0);var n=new g.Deferred;return this.repo_.onDisconnectSet(this.path_,t,n.wrapCallback(e)),n.promise},t.prototype.setWithPriority=function(t,e,n){g.validateArgCount("OnDisconnect.setWithPriority",2,3,arguments.length),mt("OnDisconnect.setWithPriority",this.path_),ut("OnDisconnect.setWithPriority",1,t,this.path_,!1),ht("OnDisconnect.setWithPriority",2,e,!1),g.validateCallback("OnDisconnect.setWithPriority",3,n,!0);var r=new g.Deferred;return this.repo_.onDisconnectSetWithPriority(this.path_,t,e,r.wrapCallback(n)),r.promise},t.prototype.update=function(t,e){if(g.validateArgCount("OnDisconnect.update",1,2,arguments.length),mt("OnDisconnect.update",this.path_),Array.isArray(t)){for(var n={},r=0;r<t.length;++r)n[""+r]=t[r];t=n,M("Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}ct("OnDisconnect.update",1,t,this.path_,!1),g.validateCallback("OnDisconnect.update",2,e,!0);var i=new g.Deferred;return this.repo_.onDisconnectUpdate(this.path_,t,i.wrapCallback(e)),i.promise},t}(),vt=function(){function t(t,e){this.committed=t,this.snapshot=e}return t.prototype.toJSON=function(){return g.validateArgCount("TransactionResult.toJSON",0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}},t}(),_t=(o="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",s=0,a=[],function(t){var e,n=t===s;s=t;var r=new Array(8);for(e=7;e>=0;e--)r[e]=o.charAt(t%64),t=Math.floor(t/64);g.assert(0===t,"Cannot push at time == 0");var i=r.join("");if(n){for(e=11;e>=0&&63===a[e];e--)a[e]=0;a[e]++}else for(e=0;e<12;e++)a[e]=Math.floor(64*Math.random());for(e=0;e<12;e++)i+=o.charAt(a[e]);return g.assert(20===i.length,"nextPushId: Length should be 20."),i}),bt=function(){function t(t,e){this.name=t,this.node=e}return t.Wrap=function(e,n){return new t(e,n)},t}(),wt=function(){function t(){}return t.prototype.getCompare=function(){return this.compare.bind(this)},t.prototype.indexedValueChanged=function(t,e){var n=new bt(F,t),r=new bt(F,e);return 0!==this.compare(n,r)},t.prototype.minPost=function(){return bt.MIN},t}(),Et=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return y.__extends(e,t),Object.defineProperty(e,"__EMPTY_NODE",{get:function(){return u},set:function(t){u=t},enumerable:!0,configurable:!0}),e.prototype.compare=function(t,e){return U(t.name,e.name)},e.prototype.isDefinedOn=function(t){throw g.assertionError("KeyIndex.isDefinedOn not expected to be called.")},e.prototype.indexedValueChanged=function(t,e){return!1},e.prototype.minPost=function(){return bt.MIN},e.prototype.maxPost=function(){return new bt(j,u)},e.prototype.makePost=function(t,e){return g.assert("string"==typeof t,"KeyIndex indexValue must always be a string."),new bt(t,u)},e.prototype.toString=function(){return".key"},e}(wt),St=new Et,Ct=function(t){return"number"==typeof t?"number:"+W(t):"string:"+t},Tt=function(t){if(t.isLeafNode()){var e=t.val();g.assert("string"==typeof e||"number"==typeof e||"object"==typeof e&&g.contains(e,".sv"),"Priority must be a string or number.")}else g.assert(t===l||t.isEmpty(),"priority of unexpected type.");g.assert(t===l||t.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")},It=function(){function t(e,n){void 0===n&&(n=t.__childrenNodeConstructor.EMPTY_NODE),this.value_=e,this.priorityNode_=n,this.lazyHash_=null,g.assert(null!=this.value_,"LeafNode shouldn't be created with null/undefined value."),Tt(this.priorityNode_)}return Object.defineProperty(t,"__childrenNodeConstructor",{get:function(){return c},set:function(t){c=t},enumerable:!0,configurable:!0}),t.prototype.isLeafNode=function(){return!0},t.prototype.getPriority=function(){return this.priorityNode_},t.prototype.updatePriority=function(e){return new t(this.value_,e)},t.prototype.getImmediateChild=function(e){return".priority"===e?this.priorityNode_:t.__childrenNodeConstructor.EMPTY_NODE},t.prototype.getChild=function(e){return e.isEmpty()?this:".priority"===e.getFront()?this.priorityNode_:t.__childrenNodeConstructor.EMPTY_NODE},t.prototype.hasChild=function(){return!1},t.prototype.getPredecessorChildName=function(t,e){return null},t.prototype.updateImmediateChild=function(e,n){return".priority"===e?this.updatePriority(n):n.isEmpty()&&".priority"!==e?this:t.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,n).updatePriority(this.priorityNode_)},t.prototype.updateChild=function(e,n){var r=e.getFront();return null===r?n:n.isEmpty()&&".priority"!==r?this:(g.assert(".priority"!==r||1===e.getLength(),".priority must be the last token in a path"),this.updateImmediateChild(r,t.__childrenNodeConstructor.EMPTY_NODE.updateChild(e.popFront(),n)))},t.prototype.isEmpty=function(){return!1},t.prototype.numChildren=function(){return 0},t.prototype.forEachChild=function(t,e){return!1},t.prototype.val=function(t){return t&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()},t.prototype.hash=function(){if(null===this.lazyHash_){var t="";this.priorityNode_.isEmpty()||(t+="priority:"+Ct(this.priorityNode_.val())+":");var e=typeof this.value_;t+=e+":",t+="number"===e?W(this.value_):this.value_,this.lazyHash_=I(t)}return this.lazyHash_},t.prototype.getValue=function(){return this.value_},t.prototype.compareTo=function(e){return e===t.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof t.__childrenNodeConstructor?-1:(g.assert(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))},t.prototype.compareToLeafNode_=function(e){var n=typeof e.value_,r=typeof this.value_,i=t.VALUE_TYPE_ORDER.indexOf(n),o=t.VALUE_TYPE_ORDER.indexOf(r);return g.assert(i>=0,"Unknown leaf type: "+n),g.assert(o>=0,"Unknown leaf type: "+r),i===o?"object"===r?0:this.value_<e.value_?-1:this.value_===e.value_?0:1:o-i},t.prototype.withIndex=function(){return this},t.prototype.isIndexed=function(){return!0},t.prototype.equals=function(t){return t===this||!!t.isLeafNode()&&this.value_===t.value_&&this.priorityNode_.equals(t.priorityNode_)},t.VALUE_TYPE_ORDER=["object","boolean","number","string"],t}(),xt=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return y.__extends(e,t),e.prototype.compare=function(t,e){var n=t.node.getPriority(),r=e.node.getPriority(),i=n.compareTo(r);return 0===i?U(t.name,e.name):i},e.prototype.isDefinedOn=function(t){return!t.getPriority().isEmpty()},e.prototype.indexedValueChanged=function(t,e){return!t.getPriority().equals(e.getPriority())},e.prototype.minPost=function(){return bt.MIN},e.prototype.maxPost=function(){return new bt(j,new It("[PRIORITY-POST]",p))},e.prototype.makePost=function(t,e){var n=h(t);return new bt(e,new It("[PRIORITY-POST]",n))},e.prototype.toString=function(){return".priority"},e}(wt)),kt=function(){function t(t,e,n,r,i){void 0===i&&(i=null),this.isReverse_=r,this.resultGenerator_=i,this.nodeStack_=[];for(var o=1;!t.isEmpty();)if(t=t,o=e?n(t.key,e):1,r&&(o*=-1),o<0)t=this.isReverse_?t.left:t.right;else{if(0===o){this.nodeStack_.push(t);break}this.nodeStack_.push(t),t=this.isReverse_?t.right:t.left}}return t.prototype.getNext=function(){if(0===this.nodeStack_.length)return null;var t,e=this.nodeStack_.pop();if(t=this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return t},t.prototype.hasNext=function(){return this.nodeStack_.length>0},t.prototype.peek=function(){if(0===this.nodeStack_.length)return null;var t=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(t.key,t.value):{key:t.key,value:t.value}},t}(),At=function(){function t(e,n,r,i,o){this.key=e,this.value=n,this.color=null!=r?r:t.RED,this.left=null!=i?i:Nt.EMPTY_NODE,this.right=null!=o?o:Nt.EMPTY_NODE}return t.prototype.copy=function(e,n,r,i,o){return new t(null!=e?e:this.key,null!=n?n:this.value,null!=r?r:this.color,null!=i?i:this.left,null!=o?o:this.right)},t.prototype.count=function(){return this.left.count()+1+this.right.count()},t.prototype.isEmpty=function(){return!1},t.prototype.inorderTraversal=function(t){return this.left.inorderTraversal(t)||t(this.key,this.value)||this.right.inorderTraversal(t)},t.prototype.reverseTraversal=function(t){return this.right.reverseTraversal(t)||t(this.key,this.value)||this.left.reverseTraversal(t)},t.prototype.min_=function(){return this.left.isEmpty()?this:this.left.min_()},t.prototype.minKey=function(){return this.min_().key},t.prototype.maxKey=function(){return this.right.isEmpty()?this.key:this.right.maxKey()},t.prototype.insert=function(t,e,n){var r,i;return(i=(r=n(t,(i=this).key))<0?i.copy(null,null,null,i.left.insert(t,e,n),null):0===r?i.copy(null,e,null,null,null):i.copy(null,null,null,null,i.right.insert(t,e,n))).fixUp_()},t.prototype.removeMin_=function(){if(this.left.isEmpty())return Nt.EMPTY_NODE;var t=this;return t.left.isRed_()||t.left.left.isRed_()||(t=t.moveRedLeft_()),(t=t.copy(null,null,null,t.left.removeMin_(),null)).fixUp_()},t.prototype.remove=function(t,e){var n,r;if(e(t,(n=this).key)<0)n.left.isEmpty()||n.left.isRed_()||n.left.left.isRed_()||(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.remove(t,e),null);else{if(n.left.isRed_()&&(n=n.rotateRight_()),n.right.isEmpty()||n.right.isRed_()||n.right.left.isRed_()||(n=n.moveRedRight_()),0===e(t,n.key)){if(n.right.isEmpty())return Nt.EMPTY_NODE;r=n.right.min_(),n=n.copy(r.key,r.value,null,null,n.right.removeMin_())}n=n.copy(null,null,null,null,n.right.remove(t,e))}return n.fixUp_()},t.prototype.isRed_=function(){return this.color},t.prototype.fixUp_=function(){var t=this;return t.right.isRed_()&&!t.left.isRed_()&&(t=t.rotateLeft_()),t.left.isRed_()&&t.left.left.isRed_()&&(t=t.rotateRight_()),t.left.isRed_()&&t.right.isRed_()&&(t=t.colorFlip_()),t},t.prototype.moveRedLeft_=function(){var t=this.colorFlip_();return t.right.left.isRed_()&&(t=(t=(t=t.copy(null,null,null,null,t.right.rotateRight_())).rotateLeft_()).colorFlip_()),t},t.prototype.moveRedRight_=function(){var t=this.colorFlip_();return t.left.left.isRed_()&&(t=(t=t.rotateRight_()).colorFlip_()),t},t.prototype.rotateLeft_=function(){var e=this.copy(null,null,t.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)},t.prototype.rotateRight_=function(){var e=this.copy(null,null,t.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)},t.prototype.colorFlip_=function(){var t=this.left.copy(null,null,!this.left.color,null,null),e=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,t,e)},t.prototype.checkMaxDepth_=function(){var t=this.check_();return Math.pow(2,t)<=this.count()+1},t.prototype.check_=function(){var t;if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");if((t=this.left.check_())!==this.right.check_())throw new Error("Black depths differ");return t+(this.isRed_()?0:1)},t.RED=!0,t.BLACK=!1,t}(),Ot=function(){function t(){}return t.prototype.copy=function(t,e,n,r,i){return this},t.prototype.insert=function(t,e,n){return new At(t,e,null)},t.prototype.remove=function(t,e){return this},t.prototype.count=function(){return 0},t.prototype.isEmpty=function(){return!0},t.prototype.inorderTraversal=function(t){return!1},t.prototype.reverseTraversal=function(t){return!1},t.prototype.minKey=function(){return null},t.prototype.maxKey=function(){return null},t.prototype.check_=function(){return 0},t.prototype.isRed_=function(){return!1},t}(),Nt=function(){function t(e,n){void 0===n&&(n=t.EMPTY_NODE),this.comparator_=e,this.root_=n}return t.prototype.insert=function(e,n){return new t(this.comparator_,this.root_.insert(e,n,this.comparator_).copy(null,null,At.BLACK,null,null))},t.prototype.remove=function(e){return new t(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,At.BLACK,null,null))},t.prototype.get=function(t){for(var e,n=this.root_;!n.isEmpty();){if(0===(e=this.comparator_(t,n.key)))return n.value;e<0?n=n.left:e>0&&(n=n.right)}return null},t.prototype.getPredecessorKey=function(t){for(var e,n=this.root_,r=null;!n.isEmpty();){if(0===(e=this.comparator_(t,n.key))){if(n.left.isEmpty())return r?r.key:null;for(n=n.left;!n.right.isEmpty();)n=n.right;return n.key}e<0?n=n.left:e>0&&(r=n,n=n.right)}throw new Error("Attempted to find predecessor key for a nonexistent key.  What gives?")},t.prototype.isEmpty=function(){return this.root_.isEmpty()},t.prototype.count=function(){return this.root_.count()},t.prototype.minKey=function(){return this.root_.minKey()},t.prototype.maxKey=function(){return this.root_.maxKey()},t.prototype.inorderTraversal=function(t){return this.root_.inorderTraversal(t)},t.prototype.reverseTraversal=function(t){return this.root_.reverseTraversal(t)},t.prototype.getIterator=function(t){return new kt(this.root_,null,this.comparator_,!1,t)},t.prototype.getIteratorFrom=function(t,e){return new kt(this.root_,t,this.comparator_,!1,e)},t.prototype.getReverseIteratorFrom=function(t,e){return new kt(this.root_,t,this.comparator_,!0,e)},t.prototype.getReverseIterator=function(t){return new kt(this.root_,null,this.comparator_,!0,t)},t.EMPTY_NODE=new Ot,t}(),Dt=Math.log(2),Rt=function(){function t(t){this.count=parseInt(Math.log(t+1)/Dt,10),this.current_=this.count-1;var e=parseInt(Array(this.count+1).join("1"),2);this.bits_=t+1&e}return t.prototype.nextBitIsOne=function(){var t=!(this.bits_&1<<this.current_);return this.current_--,t},t}(),Pt=function(t,e,n,r){t.sort(e);var i=function(e,r){var o,s,a=r-e;if(0==a)return null;if(1==a)return o=t[e],s=n?n(o):o,new At(s,o.node,At.BLACK,null,null);var u=parseInt(a/2,10)+e,l=i(e,u),c=i(u+1,r);return o=t[u],s=n?n(o):o,new At(s,o.node,At.BLACK,l,c)},o=function(e){for(var r=null,o=null,s=t.length,a=function(e,r){var o=s-e,a=s;s-=e;var l=i(o+1,a),c=t[o],h=n?n(c):c;u(new At(h,c.node,r,null,l))},u=function(t){r?(r.left=t,r=t):(o=t,r=t)},l=0;l<e.count;++l){var c=e.nextBitIsOne(),h=Math.pow(2,e.count-(l+1));c?a(h,At.BLACK):(a(h,At.BLACK),a(h,At.RED))}return o}(new Rt(t.length));return new Nt(r||e,o)},Mt={},Lt=function(){function t(t,e){this.indexes_=t,this.indexSet_=e}return Object.defineProperty(t,"Default",{get:function(){return g.assert(Mt&&xt,"ChildrenNode.ts has not been loaded"),f=f||new t({".priority":Mt},{".priority":xt})},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var e=g.safeGet(this.indexes_,t);if(!e)throw new Error("No index defined for "+t);return e===Mt?null:e},t.prototype.hasIndex=function(t){return g.contains(this.indexSet_,t.toString())},t.prototype.addIndex=function(e,n){g.assert(e!==St,"KeyIndex always exists and isn't meant to be added to the IndexMap.");for(var r,i=[],o=!1,s=n.getIterator(bt.Wrap),a=s.getNext();a;)o=o||e.isDefinedOn(a.node),i.push(a),a=s.getNext();r=o?Pt(i,e.getCompare()):Mt;var u=e.toString(),l=g.clone(this.indexSet_);l[u]=e;var c=g.clone(this.indexes_);return c[u]=r,new t(c,l)},t.prototype.addToIndexes=function(e,n){var r=this;return new t(g.map(this.indexes_,function(t,i){var o=g.safeGet(r.indexSet_,i);if(g.assert(o,"Missing index implementation for "+i),t===Mt){if(o.isDefinedOn(e.node)){for(var s=[],a=n.getIterator(bt.Wrap),u=a.getNext();u;)u.name!=e.name&&s.push(u),u=a.getNext();return s.push(e),Pt(s,o.getCompare())}return Mt}var l=n.get(e.name),c=t;return l&&(c=c.remove(new bt(e.name,l))),c.insert(e,e.node)}),this.indexSet_)},t.prototype.removeFromIndexes=function(e,n){return new t(g.map(this.indexes_,function(t){if(t===Mt)return t;var r=n.get(e.name);return r?t.remove(new bt(e.name,r)):t}),this.indexSet_)},t}();function Ft(t,e){return U(t.name,e.name)}function jt(t,e){return U(t,e)}var Ut=function(){function t(t,e,n){this.children_=t,this.priorityNode_=e,this.indexMap_=n,this.lazyHash_=null,this.priorityNode_&&Tt(this.priorityNode_),this.children_.isEmpty()&&g.assert(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}return Object.defineProperty(t,"EMPTY_NODE",{get:function(){return d||(d=new t(new Nt(jt),null,Lt.Default))},enumerable:!0,configurable:!0}),t.prototype.isLeafNode=function(){return!1},t.prototype.getPriority=function(){return this.priorityNode_||d},t.prototype.updatePriority=function(e){return this.children_.isEmpty()?this:new t(this.children_,e,this.indexMap_)},t.prototype.getImmediateChild=function(t){if(".priority"===t)return this.getPriority();var e=this.children_.get(t);return null===e?d:e},t.prototype.getChild=function(t){var e=t.getFront();return null===e?this:this.getImmediateChild(e).getChild(t.popFront())},t.prototype.hasChild=function(t){return null!==this.children_.get(t)},t.prototype.updateImmediateChild=function(e,n){if(g.assert(n,"We should always be passing snapshot nodes"),".priority"===e)return this.updatePriority(n);var r,i=new bt(e,n),o=void 0,s=void 0;return n.isEmpty()?(o=this.children_.remove(e),s=this.indexMap_.removeFromIndexes(i,this.children_)):(o=this.children_.insert(e,n),s=this.indexMap_.addToIndexes(i,this.children_)),r=o.isEmpty()?d:this.priorityNode_,new t(o,r,s)},t.prototype.updateChild=function(t,e){var n=t.getFront();if(null===n)return e;g.assert(".priority"!==t.getFront()||1===t.getLength(),".priority must be the last token in a path");var r=this.getImmediateChild(n).updateChild(t.popFront(),e);return this.updateImmediateChild(n,r)},t.prototype.isEmpty=function(){return this.children_.isEmpty()},t.prototype.numChildren=function(){return this.children_.count()},t.prototype.val=function(e){if(this.isEmpty())return null;var n={},r=0,i=0,o=!0;if(this.forEachChild(xt,function(s,a){n[s]=a.val(e),r++,o&&t.INTEGER_REGEXP_.test(s)?i=Math.max(i,Number(s)):o=!1}),!e&&o&&i<2*r){var s=[];for(var a in n)s[a]=n[a];return s}return e&&!this.getPriority().isEmpty()&&(n[".priority"]=this.getPriority().val()),n},t.prototype.hash=function(){if(null===this.lazyHash_){var t="";this.getPriority().isEmpty()||(t+="priority:"+Ct(this.getPriority().val())+":"),this.forEachChild(xt,function(e,n){var r=n.hash();""!==r&&(t+=":"+e+":"+r)}),this.lazyHash_=""===t?"":I(t)}return this.lazyHash_},t.prototype.getPredecessorChildName=function(t,e,n){var r=this.resolveIndex_(n);if(r){var i=r.getPredecessorKey(new bt(t,e));return i?i.name:null}return this.children_.getPredecessorKey(t)},t.prototype.getFirstChildName=function(t){var e=this.resolveIndex_(t);if(e){var n=e.minKey();return n&&n.name}return this.children_.minKey()},t.prototype.getFirstChild=function(t){var e=this.getFirstChildName(t);return e?new bt(e,this.children_.get(e)):null},t.prototype.getLastChildName=function(t){var e=this.resolveIndex_(t);if(e){var n=e.maxKey();return n&&n.name}return this.children_.maxKey()},t.prototype.getLastChild=function(t){var e=this.getLastChildName(t);return e?new bt(e,this.children_.get(e)):null},t.prototype.forEachChild=function(t,e){var n=this.resolveIndex_(t);return n?n.inorderTraversal(function(t){return e(t.name,t.node)}):this.children_.inorderTraversal(e)},t.prototype.getIterator=function(t){return this.getIteratorFrom(t.minPost(),t)},t.prototype.getIteratorFrom=function(t,e){var n=this.resolveIndex_(e);if(n)return n.getIteratorFrom(t,function(t){return t});for(var r=this.children_.getIteratorFrom(t.name,bt.Wrap),i=r.peek();null!=i&&e.compare(i,t)<0;)r.getNext(),i=r.peek();return r},t.prototype.getReverseIterator=function(t){return this.getReverseIteratorFrom(t.maxPost(),t)},t.prototype.getReverseIteratorFrom=function(t,e){var n=this.resolveIndex_(e);if(n)return n.getReverseIteratorFrom(t,function(t){return t});for(var r=this.children_.getReverseIteratorFrom(t.name,bt.Wrap),i=r.peek();null!=i&&e.compare(i,t)>0;)r.getNext(),i=r.peek();return r},t.prototype.compareTo=function(t){return this.isEmpty()?t.isEmpty()?0:-1:t.isLeafNode()||t.isEmpty()?1:t===Vt?-1:0},t.prototype.withIndex=function(e){if(e===St||this.indexMap_.hasIndex(e))return this;var n=this.indexMap_.addIndex(e,this.children_);return new t(this.children_,this.priorityNode_,n)},t.prototype.isIndexed=function(t){return t===St||this.indexMap_.hasIndex(t)},t.prototype.equals=function(t){if(t===this)return!0;if(t.isLeafNode())return!1;var e=t;if(this.getPriority().equals(e.getPriority())){if(this.children_.count()===e.children_.count()){for(var n=this.getIterator(xt),r=e.getIterator(xt),i=n.getNext(),o=r.getNext();i&&o;){if(i.name!==o.name||!i.node.equals(o.node))return!1;i=n.getNext(),o=r.getNext()}return null===i&&null===o}return!1}return!1},t.prototype.resolveIndex_=function(t){return t===St?null:this.indexMap_.get(t.toString())},t.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/,t}(),Vt=new(function(t){function e(){return t.call(this,new Nt(jt),Ut.EMPTY_NODE,Lt.Default)||this}return y.__extends(e,t),e.prototype.compareTo=function(t){return t===this?0:1},e.prototype.equals=function(t){return t===this},e.prototype.getPriority=function(){return this},e.prototype.getImmediateChild=function(t){return Ut.EMPTY_NODE},e.prototype.isEmpty=function(){return!1},e}(Ut));Object.defineProperties(bt,{MIN:{value:new bt(F,Ut.EMPTY_NODE)},MAX:{value:new bt(j,Vt)}}),Et.__EMPTY_NODE=Ut.EMPTY_NODE,It.__childrenNodeConstructor=Ut,l=Vt,p=Vt;var qt=!0;function Bt(t,e){if(void 0===e&&(e=null),null===t)return Ut.EMPTY_NODE;if("object"==typeof t&&".priority"in t&&(e=t[".priority"]),g.assert(null===e||"string"==typeof e||"number"==typeof e||"object"==typeof e&&".sv"in e,"Invalid priority type found: "+typeof e),"object"==typeof t&&".value"in t&&null!==t[".value"]&&(t=t[".value"]),"object"!=typeof t||".sv"in t)return new It(t,Bt(e));if(t instanceof Array||!qt){var n=Ut.EMPTY_NODE,r=t;return g.forEach(r,function(t,e){if(g.contains(r,t)&&"."!==t.substring(0,1)){var i=Bt(e);!i.isLeafNode()&&i.isEmpty()||(n=n.updateImmediateChild(t,i))}}),n.updatePriority(Bt(e))}var i=[],o=!1,s=t;if(g.forEach(s,function(t,e){if("string"!=typeof t||"."!==t.substring(0,1)){var n=Bt(s[t]);n.isEmpty()||(o=o||!n.getPriority().isEmpty(),i.push(new bt(t,n)))}}),0==i.length)return Ut.EMPTY_NODE;var a=Pt(i,Ft,function(t){return t.name},jt);if(o){var u=Pt(i,xt.getCompare());return new Ut(a,Bt(e),new Lt({".priority":u},{".priority":xt}))}return new Ut(a,Bt(e),Lt.Default)}h=Bt;var Ht,zt,Wt,Qt=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return y.__extends(e,t),e.prototype.compare=function(t,e){var n=t.node.compareTo(e.node);return 0===n?U(t.name,e.name):n},e.prototype.isDefinedOn=function(t){return!0},e.prototype.indexedValueChanged=function(t,e){return!t.equals(e)},e.prototype.minPost=function(){return bt.MIN},e.prototype.maxPost=function(){return bt.MAX},e.prototype.makePost=function(t,e){var n=Bt(t);return new bt(e,n)},e.prototype.toString=function(){return".value"},e}(wt)),Kt=function(t){function e(e){var n=t.call(this)||this;return n.indexPath_=e,g.assert(!e.isEmpty()&&".priority"!==e.getFront(),"Can't create PathIndex with empty path or .priority key"),n}return y.__extends(e,t),e.prototype.extractChild=function(t){return t.getChild(this.indexPath_)},e.prototype.isDefinedOn=function(t){return!t.getChild(this.indexPath_).isEmpty()},e.prototype.compare=function(t,e){var n=this.extractChild(t.node),r=this.extractChild(e.node),i=n.compareTo(r);return 0===i?U(t.name,e.name):i},e.prototype.makePost=function(t,e){var n=Bt(t),r=Ut.EMPTY_NODE.updateChild(this.indexPath_,n);return new bt(e,r)},e.prototype.maxPost=function(){var t=Ut.EMPTY_NODE.updateChild(this.indexPath_,Vt);return new bt(j,t)},e.prototype.toString=function(){return this.indexPath_.slice().join("/")},e}(wt),Gt=function(){function t(t,e,n){this.node_=t,this.ref_=e,this.index_=n}return t.prototype.val=function(){return g.validateArgCount("DataSnapshot.val",0,0,arguments.length),this.node_.val()},t.prototype.exportVal=function(){return g.validateArgCount("DataSnapshot.exportVal",0,0,arguments.length),this.node_.val(!0)},t.prototype.toJSON=function(){return g.validateArgCount("DataSnapshot.toJSON",0,1,arguments.length),this.exportVal()},t.prototype.exists=function(){return g.validateArgCount("DataSnapshot.exists",0,0,arguments.length),!this.node_.isEmpty()},t.prototype.child=function(e){g.validateArgCount("DataSnapshot.child",0,1,arguments.length),e=String(e),dt("DataSnapshot.child",1,e,!1);var n=new J(e),r=this.ref_.child(n);return new t(this.node_.getChild(n),r,xt)},t.prototype.hasChild=function(t){g.validateArgCount("DataSnapshot.hasChild",1,1,arguments.length),dt("DataSnapshot.hasChild",1,t,!1);var e=new J(t);return!this.node_.getChild(e).isEmpty()},t.prototype.getPriority=function(){return g.validateArgCount("DataSnapshot.getPriority",0,0,arguments.length),this.node_.getPriority().val()},t.prototype.forEach=function(e){var n=this;return g.validateArgCount("DataSnapshot.forEach",1,1,arguments.length),g.validateCallback("DataSnapshot.forEach",1,e,!1),!this.node_.isLeafNode()&&!!this.node_.forEachChild(this.index_,function(r,i){return e(new t(i,n.ref_.child(r),xt))})},t.prototype.hasChildren=function(){return g.validateArgCount("DataSnapshot.hasChildren",0,0,arguments.length),!this.node_.isLeafNode()&&!this.node_.isEmpty()},Object.defineProperty(t.prototype,"key",{get:function(){return this.ref_.getKey()},enumerable:!0,configurable:!0}),t.prototype.numChildren=function(){return g.validateArgCount("DataSnapshot.numChildren",0,0,arguments.length),this.node_.numChildren()},t.prototype.getRef=function(){return g.validateArgCount("DataSnapshot.ref",0,0,arguments.length),this.ref_},Object.defineProperty(t.prototype,"ref",{get:function(){return this.getRef()},enumerable:!0,configurable:!0}),t}(),Yt=function(){function t(t,e,n,r){this.eventType=t,this.eventRegistration=e,this.snapshot=n,this.prevName=r}return t.prototype.getPath=function(){var t=this.snapshot.getRef();return"value"===this.eventType?t.path:t.getParent().path},t.prototype.getEventType=function(){return this.eventType},t.prototype.getEventRunner=function(){return this.eventRegistration.getEventRunner(this)},t.prototype.toString=function(){return this.getPath().toString()+":"+this.eventType+":"+g.stringify(this.snapshot.exportVal())},t}(),Xt=function(){function t(t,e,n){this.eventRegistration=t,this.error=e,this.path=n}return t.prototype.getPath=function(){return this.path},t.prototype.getEventType=function(){return"cancel"},t.prototype.getEventRunner=function(){return this.eventRegistration.getEventRunner(this)},t.prototype.toString=function(){return this.path.toString()+":cancel"},t}(),Jt=function(){function t(t,e,n){this.callback_=t,this.cancelCallback_=e,this.context_=n}return t.prototype.respondsTo=function(t){return"value"===t},t.prototype.createEvent=function(t,e){var n=e.getQueryParams().getIndex();return new Yt("value",this,new Gt(t.snapshotNode,e.getRef(),n))},t.prototype.getEventRunner=function(t){var e=this.context_;if("cancel"===t.getEventType()){g.assert(this.cancelCallback_,"Raising a cancel event on a listener with no cancel callback");var n=this.cancelCallback_;return function(){n.call(e,t.error)}}var r=this.callback_;return function(){r.call(e,t.snapshot)}},t.prototype.createCancelEvent=function(t,e){return this.cancelCallback_?new Xt(this,t,e):null},t.prototype.matches=function(e){return e instanceof t&&(!e.callback_||!this.callback_||e.callback_===this.callback_&&e.context_===this.context_)},t.prototype.hasAnyCallback=function(){return null!==this.callback_},t}(),Zt=function(){function t(t,e,n){this.callbacks_=t,this.cancelCallback_=e,this.context_=n}return t.prototype.respondsTo=function(t){var e="children_added"===t?"child_added":t;return g.contains(this.callbacks_,e="children_removed"===e?"child_removed":e)},t.prototype.createCancelEvent=function(t,e){return this.cancelCallback_?new Xt(this,t,e):null},t.prototype.createEvent=function(t,e){g.assert(null!=t.childName,"Child events should have a childName.");var n=e.getRef().child(t.childName),r=e.getQueryParams().getIndex();return new Yt(t.type,this,new Gt(t.snapshotNode,n,r),t.prevName)},t.prototype.getEventRunner=function(t){var e=this.context_;if("cancel"===t.getEventType()){g.assert(this.cancelCallback_,"Raising a cancel event on a listener with no cancel callback");var n=this.cancelCallback_;return function(){n.call(e,t.error)}}var r=this.callbacks_[t.eventType];return function(){r.call(e,t.snapshot,t.prevName)}},t.prototype.matches=function(e){if(e instanceof t){if(!this.callbacks_||!e.callbacks_)return!0;if(this.context_===e.context_){var n=g.getCount(e.callbacks_);if(n===g.getCount(this.callbacks_)){if(1===n){var r=g.getAnyKey(e.callbacks_),i=g.getAnyKey(this.callbacks_);return!(i!==r||e.callbacks_[r]&&this.callbacks_[i]&&e.callbacks_[r]!==this.callbacks_[i])}return g.every(this.callbacks_,function(t,n){return e.callbacks_[t]===n})}}}return!1},t.prototype.hasAnyCallback=function(){return null!==this.callbacks_},t}(),$t=function(){function t(t,e,n,r){this.repo=t,this.path=e,this.queryParams_=n,this.orderByCalled_=r}return Object.defineProperty(t,"__referenceConstructor",{get:function(){return g.assert(Ht,"Reference.ts has not been loaded"),Ht},set:function(t){Ht=t},enumerable:!0,configurable:!0}),t.validateQueryEndpoints_=function(t){var e=null,n=null;if(t.hasStart()&&(e=t.getIndexStartValue()),t.hasEnd()&&(n=t.getIndexEndValue()),t.getIndex()===St){var r="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), endAt(),or equalTo() must be a string.";if(t.hasStart()){if(t.getIndexStartName()!=F)throw new Error(r);if("string"!=typeof e)throw new Error(i)}if(t.hasEnd()){if(t.getIndexEndName()!=j)throw new Error(r);if("string"!=typeof n)throw new Error(i)}}else if(t.getIndex()===xt){if(null!=e&&!at(e)||null!=n&&!at(n))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), endAt(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(g.assert(t.getIndex()instanceof Kt||t.getIndex()===Qt,"unknown index type."),null!=e&&"object"==typeof e||null!=n&&"object"==typeof n)throw new Error("Query: First argument passed to startAt(), endAt(), or equalTo() cannot be an object.")},t.validateLimit_=function(t){if(t.hasStart()&&t.hasEnd()&&t.hasLimit()&&!t.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), endAt(), and limit(). Use limitToFirst() or limitToLast() instead.")},t.prototype.validateNoPreviousOrderByCall_=function(t){if(!0===this.orderByCalled_)throw new Error(t+": You can't combine multiple orderBy calls.")},t.prototype.getQueryParams=function(){return this.queryParams_},t.prototype.getRef=function(){return g.validateArgCount("Query.ref",0,0,arguments.length),new t.__referenceConstructor(this.repo,this.path)},t.prototype.on=function(e,n,r,i){g.validateArgCount("Query.on",2,4,arguments.length),pt("Query.on",1,e,!1),g.validateCallback("Query.on",2,n,!1);var o=t.getCancelAndContextArgs_("Query.on",r,i);if("value"===e)this.onValueEvent(n,o.cancel,o.context);else{var s={};s[e]=n,this.onChildEvent(s,o.cancel,o.context)}return n},t.prototype.onValueEvent=function(t,e,n){var r=new Jt(t,e||null,n||null);this.repo.addEventCallbackForQuery(this,r)},t.prototype.onChildEvent=function(t,e,n){var r=new Zt(t,e,n);this.repo.addEventCallbackForQuery(this,r)},t.prototype.off=function(t,e,n){g.validateArgCount("Query.off",0,3,arguments.length),pt("Query.off",1,t,!0),g.validateCallback("Query.off",2,e,!0),g.validateContextObject("Query.off",3,n,!0);var r=null,i=null;"value"===t?r=new Jt(e||null,null,n||null):t&&(e&&((i={})[t]=e),r=new Zt(i,null,n||null)),this.repo.removeEventCallbackForQuery(this,r)},t.prototype.once=function(e,n,r,i){var o=this;g.validateArgCount("Query.once",1,4,arguments.length),pt("Query.once",1,e,!1),g.validateCallback("Query.once",2,n,!0);var s=t.getCancelAndContextArgs_("Query.once",r,i),a=!0,u=new g.Deferred;u.promise.catch(function(){});var l=function(t){a&&(a=!1,o.off(e,l),n&&n.bind(s.context)(t),u.resolve(t))};return this.on(e,l,function(t){o.off(e,l),s.cancel&&s.cancel.bind(s.context)(t),u.reject(t)}),u.promise},t.prototype.limitToFirst=function(e){if(g.validateArgCount("Query.limitToFirst",1,1,arguments.length),"number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("Query.limitToFirst: First argument must be a positive integer.");if(this.queryParams_.hasLimit())throw new Error("Query.limitToFirst: Limit was already set (by another call to limit, limitToFirst, or limitToLast).");return new t(this.repo,this.path,this.queryParams_.limitToFirst(e),this.orderByCalled_)},t.prototype.limitToLast=function(e){if(g.validateArgCount("Query.limitToLast",1,1,arguments.length),"number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("Query.limitToLast: First argument must be a positive integer.");if(this.queryParams_.hasLimit())throw new Error("Query.limitToLast: Limit was already set (by another call to limit, limitToFirst, or limitToLast).");return new t(this.repo,this.path,this.queryParams_.limitToLast(e),this.orderByCalled_)},t.prototype.orderByChild=function(e){if(g.validateArgCount("Query.orderByChild",1,1,arguments.length),"$key"===e)throw new Error('Query.orderByChild: "$key" is invalid.  Use Query.orderByKey() instead.');if("$priority"===e)throw new Error('Query.orderByChild: "$priority" is invalid.  Use Query.orderByPriority() instead.');if("$value"===e)throw new Error('Query.orderByChild: "$value" is invalid.  Use Query.orderByValue() instead.');dt("Query.orderByChild",1,e,!1),this.validateNoPreviousOrderByCall_("Query.orderByChild");var n=new J(e);if(n.isEmpty())throw new Error("Query.orderByChild: cannot pass in empty path.  Use Query.orderByValue() instead.");var r=new Kt(n),i=this.queryParams_.orderBy(r);return t.validateQueryEndpoints_(i),new t(this.repo,this.path,i,!0)},t.prototype.orderByKey=function(){g.validateArgCount("Query.orderByKey",0,0,arguments.length),this.validateNoPreviousOrderByCall_("Query.orderByKey");var e=this.queryParams_.orderBy(St);return t.validateQueryEndpoints_(e),new t(this.repo,this.path,e,!0)},t.prototype.orderByPriority=function(){g.validateArgCount("Query.orderByPriority",0,0,arguments.length),this.validateNoPreviousOrderByCall_("Query.orderByPriority");var e=this.queryParams_.orderBy(xt);return t.validateQueryEndpoints_(e),new t(this.repo,this.path,e,!0)},t.prototype.orderByValue=function(){g.validateArgCount("Query.orderByValue",0,0,arguments.length),this.validateNoPreviousOrderByCall_("Query.orderByValue");var e=this.queryParams_.orderBy(Qt);return t.validateQueryEndpoints_(e),new t(this.repo,this.path,e,!0)},t.prototype.startAt=function(e,n){void 0===e&&(e=null),g.validateArgCount("Query.startAt",0,2,arguments.length),ut("Query.startAt",1,e,this.path,!0),ft("Query.startAt",2,n,!0);var r=this.queryParams_.startAt(e,n);if(t.validateLimit_(r),t.validateQueryEndpoints_(r),this.queryParams_.hasStart())throw new Error("Query.startAt: Starting point was already set (by another call to startAt or equalTo).");return void 0===e&&(e=null,n=null),new t(this.repo,this.path,r,this.orderByCalled_)},t.prototype.endAt=function(e,n){void 0===e&&(e=null),g.validateArgCount("Query.endAt",0,2,arguments.length),ut("Query.endAt",1,e,this.path,!0),ft("Query.endAt",2,n,!0);var r=this.queryParams_.endAt(e,n);if(t.validateLimit_(r),t.validateQueryEndpoints_(r),this.queryParams_.hasEnd())throw new Error("Query.endAt: Ending point was already set (by another call to endAt or equalTo).");return new t(this.repo,this.path,r,this.orderByCalled_)},t.prototype.equalTo=function(t,e){if(g.validateArgCount("Query.equalTo",1,2,arguments.length),ut("Query.equalTo",1,t,this.path,!1),ft("Query.equalTo",2,e,!0),this.queryParams_.hasStart())throw new Error("Query.equalTo: Starting point was already set (by another call to startAt or equalTo).");if(this.queryParams_.hasEnd())throw new Error("Query.equalTo: Ending point was already set (by another call to endAt or equalTo).");return this.startAt(t,e).endAt(t,e)},t.prototype.toString=function(){return g.validateArgCount("Query.toString",0,0,arguments.length),this.repo.toString()+this.path.toUrlEncodedString()},t.prototype.toJSON=function(){return g.validateArgCount("Query.toJSON",0,1,arguments.length),this.toString()},t.prototype.queryObject=function(){return this.queryParams_.getQueryObject()},t.prototype.queryIdentifier=function(){var t=this.queryObject(),e=B(t);return"{}"===e?"default":e},t.prototype.isEqual=function(e){if(g.validateArgCount("Query.isEqual",1,1,arguments.length),!(e instanceof t))throw new Error("Query.isEqual failed: First argument must be an instance of firebase.database.Query.");var n=this.repo===e.repo,r=this.path.equals(e.path),i=this.queryIdentifier()===e.queryIdentifier();return n&&r&&i},t.getCancelAndContextArgs_=function(t,e,n){var r={cancel:null,context:null};if(e&&n)r.cancel=e,g.validateCallback(t,3,r.cancel,!0),r.context=n,g.validateContextObject(t,4,r.context,!0);else if(e)if("object"==typeof e&&null!==e)r.context=e;else{if("function"!=typeof e)throw new Error(g.errorPrefix(t,3,!0)+" must either be a cancel callback or a context object.");r.cancel=e}return r},Object.defineProperty(t.prototype,"ref",{get:function(){return this.getRef()},enumerable:!0,configurable:!0}),t}(),te=function(){function t(){this.set={}}return t.prototype.add=function(t,e){this.set[t]=null===e||e},t.prototype.contains=function(t){return g.contains(this.set,t)},t.prototype.get=function(t){return this.contains(t)?this.set[t]:void 0},t.prototype.remove=function(t){delete this.set[t]},t.prototype.clear=function(){this.set={}},t.prototype.isEmpty=function(){return g.isEmpty(this.set)},t.prototype.count=function(){return g.getCount(this.set)},t.prototype.each=function(t){g.forEach(this.set,function(e,n){return t(e,n)})},t.prototype.keys=function(){var t=[];return g.forEach(this.set,function(e){t.push(e)}),t},t}(),ee=function(){function t(){this.value_=null,this.children_=null}return t.prototype.find=function(t){if(null!=this.value_)return this.value_.getChild(t);if(t.isEmpty()||null==this.children_)return null;var e=t.getFront();return t=t.popFront(),this.children_.contains(e)?this.children_.get(e).find(t):null},t.prototype.remember=function(e,n){if(e.isEmpty())this.value_=n,this.children_=null;else if(null!==this.value_)this.value_=this.value_.updateChild(e,n);else{null==this.children_&&(this.children_=new te);var r=e.getFront();this.children_.contains(r)||this.children_.add(r,new t);var i=this.children_.get(r);e=e.popFront(),i.remember(e,n)}},t.prototype.forget=function(t){if(t.isEmpty())return this.value_=null,this.children_=null,!0;if(null!==this.value_){if(this.value_.isLeafNode())return!1;var e=this.value_;this.value_=null;var n=this;return e.forEachChild(xt,function(t,e){n.remember(new J(t),e)}),this.forget(t)}if(null!==this.children_){var r=t.getFront();return t=t.popFront(),this.children_.contains(r)&&this.children_.get(r).forget(t)&&this.children_.remove(r),!!this.children_.isEmpty()&&(this.children_=null,!0)}return!0},t.prototype.forEachTree=function(t,e){null!==this.value_?e(t,this.value_):this.forEachChild(function(n,r){var i=new J(t.toString()+"/"+n);r.forEachTree(i,e)})},t.prototype.forEachChild=function(t){null!==this.children_&&this.children_.each(function(e,n){t(e,n)})},t}(),ne=function(t,e){return t&&"object"==typeof t?(g.assert(".sv"in t,"Unexpected leaf node or priority contents"),e[t[".sv"]]):t},re=function(t,e){var n,r=t.getPriority().val(),i=ne(r,e);if(t.isLeafNode()){var o=t,s=ne(o.getValue(),e);return s!==o.getValue()||i!==o.getPriority().val()?new It(s,Bt(i)):t}var a=t;return n=a,i!==a.getPriority().val()&&(n=n.updatePriority(new It(i))),a.forEachChild(xt,function(t,r){var i=re(r,e);i!==r&&(n=n.updateImmediateChild(t,i))}),n},ie=function(t){return t[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE",t}({}),oe=function(){function t(t,e,n,r){this.fromUser=t,this.fromServer=e,this.queryId=n,this.tagged=r,g.assert(!r||e,"Tagged queries must be from server.")}return t.User=new t(!0,!1,null,!1),t.Server=new t(!1,!0,null,!1),t.forServerTaggedQuery=function(e){return new t(!1,!0,e,!0)},t}(),se=function(){function t(t,e,n){this.path=t,this.affectedTree=e,this.revert=n,this.type=ie.ACK_USER_WRITE,this.source=oe.User}return t.prototype.operationForChild=function(e){if(this.path.isEmpty()){if(null!=this.affectedTree.value)return g.assert(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this;var n=this.affectedTree.subtree(new J(e));return new t(J.Empty,n,this.revert)}return g.assert(this.path.getFront()===e,"operationForChild called for unrelated child."),new t(this.path.popFront(),this.affectedTree,this.revert)},t}(),ae=function(){return zt||(zt=new Nt(V)),zt},ue=function(){function t(t,e){void 0===e&&(e=ae()),this.value=t,this.children=e}return t.fromObject=function(e){var n=t.Empty;return g.forEach(e,function(t,e){n=n.set(new J(t),e)}),n},t.prototype.isEmpty=function(){return null===this.value&&this.children.isEmpty()},t.prototype.findRootMostMatchingPathAndValue=function(t,e){if(null!=this.value&&e(this.value))return{path:J.Empty,value:this.value};if(t.isEmpty())return null;var n=t.getFront(),r=this.children.get(n);if(null!==r){var i=r.findRootMostMatchingPathAndValue(t.popFront(),e);return null!=i?{path:new J(n).child(i.path),value:i.value}:null}return null},t.prototype.findRootMostValueAndPath=function(t){return this.findRootMostMatchingPathAndValue(t,function(){return!0})},t.prototype.subtree=function(e){if(e.isEmpty())return this;var n=e.getFront(),r=this.children.get(n);return null!==r?r.subtree(e.popFront()):t.Empty},t.prototype.set=function(e,n){if(e.isEmpty())return new t(n,this.children);var r=e.getFront(),i=(this.children.get(r)||t.Empty).set(e.popFront(),n),o=this.children.insert(r,i);return new t(this.value,o)},t.prototype.remove=function(e){if(e.isEmpty())return this.children.isEmpty()?t.Empty:new t(null,this.children);var n=e.getFront(),r=this.children.get(n);if(r){var i=r.remove(e.popFront()),o=void 0;return o=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),null===this.value&&o.isEmpty()?t.Empty:new t(this.value,o)}return this},t.prototype.get=function(t){if(t.isEmpty())return this.value;var e=t.getFront(),n=this.children.get(e);return n?n.get(t.popFront()):null},t.prototype.setTree=function(e,n){if(e.isEmpty())return n;var r,i=e.getFront(),o=(this.children.get(i)||t.Empty).setTree(e.popFront(),n);return r=o.isEmpty()?this.children.remove(i):this.children.insert(i,o),new t(this.value,r)},t.prototype.fold=function(t){return this.fold_(J.Empty,t)},t.prototype.fold_=function(t,e){var n={};return this.children.inorderTraversal(function(r,i){n[r]=i.fold_(t.child(r),e)}),e(t,this.value,n)},t.prototype.findOnPath=function(t,e){return this.findOnPath_(t,J.Empty,e)},t.prototype.findOnPath_=function(t,e,n){var r=!!this.value&&n(e,this.value);if(r)return r;if(t.isEmpty())return null;var i=t.getFront(),o=this.children.get(i);return o?o.findOnPath_(t.popFront(),e.child(i),n):null},t.prototype.foreachOnPath=function(t,e){return this.foreachOnPath_(t,J.Empty,e)},t.prototype.foreachOnPath_=function(e,n,r){if(e.isEmpty())return this;this.value&&r(n,this.value);var i=e.getFront(),o=this.children.get(i);return o?o.foreachOnPath_(e.popFront(),n.child(i),r):t.Empty},t.prototype.foreach=function(t){this.foreach_(J.Empty,t)},t.prototype.foreach_=function(t,e){this.children.inorderTraversal(function(n,r){r.foreach_(t.child(n),e)}),this.value&&e(t,this.value)},t.prototype.foreachChild=function(t){this.children.inorderTraversal(function(e,n){n.value&&t(e,n.value)})},t.Empty=new t(null),t}(),le=function(){function t(t,e){this.source=t,this.path=e,this.type=ie.LISTEN_COMPLETE}return t.prototype.operationForChild=function(e){return this.path.isEmpty()?new t(this.source,J.Empty):new t(this.source,this.path.popFront())},t}(),ce=function(){function t(t,e,n){this.source=t,this.path=e,this.snap=n,this.type=ie.OVERWRITE}return t.prototype.operationForChild=function(e){return this.path.isEmpty()?new t(this.source,J.Empty,this.snap.getImmediateChild(e)):new t(this.source,this.path.popFront(),this.snap)},t}(),he=function(){function t(t,e,n){this.source=t,this.path=e,this.children=n,this.type=ie.MERGE}return t.prototype.operationForChild=function(e){if(this.path.isEmpty()){var n=this.children.subtree(new J(e));return n.isEmpty()?null:n.value?new ce(this.source,J.Empty,n.value):new t(this.source,J.Empty,n)}return g.assert(this.path.getFront()===e,"Can't get a merge for a child not on the path of the operation"),new t(this.source,this.path.popFront(),this.children)},t.prototype.toString=function(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"},t}(),pe=function(){function t(t,e,n){this.node_=t,this.fullyInitialized_=e,this.filtered_=n}return t.prototype.isFullyInitialized=function(){return this.fullyInitialized_},t.prototype.isFiltered=function(){return this.filtered_},t.prototype.isCompleteForPath=function(t){if(t.isEmpty())return this.isFullyInitialized()&&!this.filtered_;var e=t.getFront();return this.isCompleteForChild(e)},t.prototype.isCompleteForChild=function(t){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(t)},t.prototype.getNode=function(){return this.node_},t}(),fe=function(){function t(t,e){this.eventCache_=t,this.serverCache_=e}return t.prototype.updateEventSnap=function(e,n,r){return new t(new pe(e,n,r),this.serverCache_)},t.prototype.updateServerSnap=function(e,n,r){return new t(this.eventCache_,new pe(e,n,r))},t.prototype.getEventCache=function(){return this.eventCache_},t.prototype.getCompleteEventSnap=function(){return this.eventCache_.isFullyInitialized()?this.eventCache_.getNode():null},t.prototype.getServerCache=function(){return this.serverCache_},t.prototype.getCompleteServerSnap=function(){return this.serverCache_.isFullyInitialized()?this.serverCache_.getNode():null},t.Empty=new t(new pe(Ut.EMPTY_NODE,!1,!1),new pe(Ut.EMPTY_NODE,!1,!1)),t}(),de=function(){function t(t,e,n,r,i){this.type=t,this.snapshotNode=e,this.childName=n,this.oldSnap=r,this.prevName=i}return t.valueChange=function(e){return new t(t.VALUE,e)},t.childAddedChange=function(e,n){return new t(t.CHILD_ADDED,n,e)},t.childRemovedChange=function(e,n){return new t(t.CHILD_REMOVED,n,e)},t.childChangedChange=function(e,n,r){return new t(t.CHILD_CHANGED,n,e,r)},t.childMovedChange=function(e,n){return new t(t.CHILD_MOVED,n,e)},t.CHILD_ADDED="child_added",t.CHILD_REMOVED="child_removed",t.CHILD_CHANGED="child_changed",t.CHILD_MOVED="child_moved",t.VALUE="value",t}(),me=function(){function t(t){this.index_=t}return t.prototype.updateChild=function(t,e,n,r,i,o){g.assert(t.isIndexed(this.index_),"A node must be indexed if only a child is updated");var s=t.getImmediateChild(e);return s.getChild(r).equals(n.getChild(r))&&s.isEmpty()==n.isEmpty()?t:(null!=o&&(n.isEmpty()?t.hasChild(e)?o.trackChildChange(de.childRemovedChange(e,s)):g.assert(t.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):s.isEmpty()?o.trackChildChange(de.childAddedChange(e,n)):o.trackChildChange(de.childChangedChange(e,n,s))),t.isLeafNode()&&n.isEmpty()?t:t.updateImmediateChild(e,n).withIndex(this.index_))},t.prototype.updateFullNode=function(t,e,n){return null!=n&&(t.isLeafNode()||t.forEachChild(xt,function(t,r){e.hasChild(t)||n.trackChildChange(de.childRemovedChange(t,r))}),e.isLeafNode()||e.forEachChild(xt,function(e,r){if(t.hasChild(e)){var i=t.getImmediateChild(e);i.equals(r)||n.trackChildChange(de.childChangedChange(e,r,i))}else n.trackChildChange(de.childAddedChange(e,r))})),e.withIndex(this.index_)},t.prototype.updatePriority=function(t,e){return t.isEmpty()?Ut.EMPTY_NODE:t.updatePriority(e)},t.prototype.filtersNodes=function(){return!1},t.prototype.getIndexedFilter=function(){return this},t.prototype.getIndex=function(){return this.index_},t}(),ye=function(){function t(){this.changeMap_={}}return t.prototype.trackChildChange=function(t){var e=t.type,n=t.childName;g.assert(e==de.CHILD_ADDED||e==de.CHILD_CHANGED||e==de.CHILD_REMOVED,"Only child changes supported for tracking"),g.assert(".priority"!==n,"Only non-priority child changes can be tracked.");var r=g.safeGet(this.changeMap_,n);if(r){var i=r.type;if(e==de.CHILD_ADDED&&i==de.CHILD_REMOVED)this.changeMap_[n]=de.childChangedChange(n,t.snapshotNode,r.snapshotNode);else if(e==de.CHILD_REMOVED&&i==de.CHILD_ADDED)delete this.changeMap_[n];else if(e==de.CHILD_REMOVED&&i==de.CHILD_CHANGED)this.changeMap_[n]=de.childRemovedChange(n,r.oldSnap);else if(e==de.CHILD_CHANGED&&i==de.CHILD_ADDED)this.changeMap_[n]=de.childAddedChange(n,t.snapshotNode);else{if(e!=de.CHILD_CHANGED||i!=de.CHILD_CHANGED)throw g.assertionError("Illegal combination of changes: "+t+" occurred after "+r);this.changeMap_[n]=de.childChangedChange(n,t.snapshotNode,r.oldSnap)}}else this.changeMap_[n]=t},t.prototype.getChanges=function(){return g.getValues(this.changeMap_)},t}(),ge=new(function(){function t(){}return t.prototype.getCompleteChild=function(t){return null},t.prototype.getChildAfterChild=function(t,e,n){return null},t}()),ve=function(){function t(t,e,n){void 0===n&&(n=null),this.writes_=t,this.viewCache_=e,this.optCompleteServerCache_=n}return t.prototype.getCompleteChild=function(t){var e=this.viewCache_.getEventCache();if(e.isCompleteForChild(t))return e.getNode().getImmediateChild(t);var n=null!=this.optCompleteServerCache_?new pe(this.optCompleteServerCache_,!0,!1):this.viewCache_.getServerCache();return this.writes_.calcCompleteChild(t,n)},t.prototype.getChildAfterChild=function(t,e,n){var r=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:this.viewCache_.getCompleteServerSnap(),i=this.writes_.calcIndexedSlice(r,e,1,n,t);return 0===i.length?null:i[0]},t}(),_e=function(){return function(t,e){this.viewCache=t,this.changes=e}}(),be=function(){function t(t){this.filter_=t}return t.prototype.assertIndexed=function(t){g.assert(t.getEventCache().getNode().isIndexed(this.filter_.getIndex()),"Event snap not indexed"),g.assert(t.getServerCache().getNode().isIndexed(this.filter_.getIndex()),"Server snap not indexed")},t.prototype.applyOperation=function(e,n,r,i){var o,s,a=new ye;if(n.type===ie.OVERWRITE){var u=n;u.source.fromUser?o=this.applyUserOverwrite_(e,u.path,u.snap,r,i,a):(g.assert(u.source.fromServer,"Unknown source."),s=u.source.tagged||e.getServerCache().isFiltered()&&!u.path.isEmpty(),o=this.applyServerOverwrite_(e,u.path,u.snap,r,i,s,a))}else if(n.type===ie.MERGE){var l=n;l.source.fromUser?o=this.applyUserMerge_(e,l.path,l.children,r,i,a):(g.assert(l.source.fromServer,"Unknown source."),s=l.source.tagged||e.getServerCache().isFiltered(),o=this.applyServerMerge_(e,l.path,l.children,r,i,s,a))}else if(n.type===ie.ACK_USER_WRITE){var c=n;o=c.revert?this.revertUserWrite_(e,c.path,r,i,a):this.ackUserWrite_(e,c.path,c.affectedTree,r,i,a)}else{if(n.type!==ie.LISTEN_COMPLETE)throw g.assertionError("Unknown operation type: "+n.type);o=this.listenComplete_(e,n.path,r,a)}var h=a.getChanges();return t.maybeAddValueEvent_(e,o,h),new _e(o,h)},t.maybeAddValueEvent_=function(t,e,n){var r=e.getEventCache();if(r.isFullyInitialized()){var i=r.getNode().isLeafNode()||r.getNode().isEmpty(),o=t.getCompleteEventSnap();(n.length>0||!t.getEventCache().isFullyInitialized()||i&&!r.getNode().equals(o)||!r.getNode().getPriority().equals(o.getPriority()))&&n.push(de.valueChange(e.getCompleteEventSnap()))}},t.prototype.generateEventCacheAfterServerEvent_=function(t,e,n,r,i){var o=t.getEventCache();if(null!=n.shadowingWrite(e))return t;var s=void 0,a=void 0;if(e.isEmpty())if(g.assert(t.getServerCache().isFullyInitialized(),"If change path is empty, we must have complete server data"),t.getServerCache().isFiltered()){var u=t.getCompleteServerSnap(),l=n.calcCompleteEventChildren(u instanceof Ut?u:Ut.EMPTY_NODE);s=this.filter_.updateFullNode(t.getEventCache().getNode(),l,i)}else{var c=n.calcCompleteEventCache(t.getCompleteServerSnap());s=this.filter_.updateFullNode(t.getEventCache().getNode(),c,i)}else{var h=e.getFront();if(".priority"==h){g.assert(1==e.getLength(),"Can't have a priority with additional path components");var p=o.getNode();a=t.getServerCache().getNode();var f=n.calcEventCacheAfterServerOverwrite(e,p,a);s=null!=f?this.filter_.updatePriority(p,f):o.getNode()}else{var d=e.popFront(),m=void 0;if(o.isCompleteForChild(h)){a=t.getServerCache().getNode();var y=n.calcEventCacheAfterServerOverwrite(e,o.getNode(),a);m=null!=y?o.getNode().getImmediateChild(h).updateChild(d,y):o.getNode().getImmediateChild(h)}else m=n.calcCompleteChild(h,t.getServerCache());s=null!=m?this.filter_.updateChild(o.getNode(),h,m,d,r,i):o.getNode()}}return t.updateEventSnap(s,o.isFullyInitialized()||e.isEmpty(),this.filter_.filtersNodes())},t.prototype.applyServerOverwrite_=function(t,e,n,r,i,o,s){var a,u=t.getServerCache(),l=o?this.filter_:this.filter_.getIndexedFilter();if(e.isEmpty())a=l.updateFullNode(u.getNode(),n,null);else if(l.filtersNodes()&&!u.isFiltered()){var c=u.getNode().updateChild(e,n);a=l.updateFullNode(u.getNode(),c,null)}else{var h=e.getFront();if(!u.isCompleteForPath(e)&&e.getLength()>1)return t;var p=e.popFront(),f=u.getNode().getImmediateChild(h).updateChild(p,n);a=".priority"==h?l.updatePriority(u.getNode(),f):l.updateChild(u.getNode(),h,f,p,ge,null)}var d=t.updateServerSnap(a,u.isFullyInitialized()||e.isEmpty(),l.filtersNodes()),m=new ve(r,d,i);return this.generateEventCacheAfterServerEvent_(d,e,r,m,s)},t.prototype.applyUserOverwrite_=function(t,e,n,r,i,o){var s,a,u=t.getEventCache(),l=new ve(r,t,i);if(e.isEmpty())a=this.filter_.updateFullNode(t.getEventCache().getNode(),n,o),s=t.updateEventSnap(a,!0,this.filter_.filtersNodes());else{var c=e.getFront();if(".priority"===c)a=this.filter_.updatePriority(t.getEventCache().getNode(),n),s=t.updateEventSnap(a,u.isFullyInitialized(),u.isFiltered());else{var h=e.popFront(),p=u.getNode().getImmediateChild(c),f=void 0;if(h.isEmpty())f=n;else{var d=l.getCompleteChild(c);f=null!=d?".priority"===h.getBack()&&d.getChild(h.parent()).isEmpty()?d:d.updateChild(h,n):Ut.EMPTY_NODE}if(p.equals(f))s=t;else{var m=this.filter_.updateChild(u.getNode(),c,f,h,l,o);s=t.updateEventSnap(m,u.isFullyInitialized(),this.filter_.filtersNodes())}}}return s},t.cacheHasChild_=function(t,e){return t.getEventCache().isCompleteForChild(e)},t.prototype.applyUserMerge_=function(e,n,r,i,o,s){var a=this,u=e;return r.foreach(function(r,l){var c=n.child(r);t.cacheHasChild_(e,c.getFront())&&(u=a.applyUserOverwrite_(u,c,l,i,o,s))}),r.foreach(function(r,l){var c=n.child(r);t.cacheHasChild_(e,c.getFront())||(u=a.applyUserOverwrite_(u,c,l,i,o,s))}),u},t.prototype.applyMerge_=function(t,e){return e.foreach(function(e,n){t=t.updateChild(e,n)}),t},t.prototype.applyServerMerge_=function(t,e,n,r,i,o,s){var a=this;if(t.getServerCache().getNode().isEmpty()&&!t.getServerCache().isFullyInitialized())return t;var u,l=t;u=e.isEmpty()?n:ue.Empty.setTree(e,n);var c=t.getServerCache().getNode();return u.children.inorderTraversal(function(e,n){if(c.hasChild(e)){var u=t.getServerCache().getNode().getImmediateChild(e),h=a.applyMerge_(u,n);l=a.applyServerOverwrite_(l,new J(e),h,r,i,o,s)}}),u.children.inorderTraversal(function(e,n){var u=!t.getServerCache().isCompleteForChild(e)&&null==n.value;if(!c.hasChild(e)&&!u){var h=t.getServerCache().getNode().getImmediateChild(e),p=a.applyMerge_(h,n);l=a.applyServerOverwrite_(l,new J(e),p,r,i,o,s)}}),l},t.prototype.ackUserWrite_=function(t,e,n,r,i,o){if(null!=r.shadowingWrite(e))return t;var s=t.getServerCache().isFiltered(),a=t.getServerCache();if(null!=n.value){if(e.isEmpty()&&a.isFullyInitialized()||a.isCompleteForPath(e))return this.applyServerOverwrite_(t,e,a.getNode().getChild(e),r,i,s,o);if(e.isEmpty()){var u=ue.Empty;return a.getNode().forEachChild(St,function(t,e){u=u.set(new J(t),e)}),this.applyServerMerge_(t,e,u,r,i,s,o)}return t}var l=ue.Empty;return n.foreach(function(t,n){var r=e.child(t);a.isCompleteForPath(r)&&(l=l.set(t,a.getNode().getChild(r)))}),this.applyServerMerge_(t,e,l,r,i,s,o)},t.prototype.listenComplete_=function(t,e,n,r){var i=t.getServerCache(),o=t.updateServerSnap(i.getNode(),i.isFullyInitialized()||e.isEmpty(),i.isFiltered());return this.generateEventCacheAfterServerEvent_(o,e,n,ge,r)},t.prototype.revertUserWrite_=function(t,e,n,r,i){var o;if(null!=n.shadowingWrite(e))return t;var s=new ve(n,t,r),a=t.getEventCache().getNode(),u=void 0;if(e.isEmpty()||".priority"===e.getFront()){var l=void 0;if(t.getServerCache().isFullyInitialized())l=n.calcCompleteEventCache(t.getCompleteServerSnap());else{var c=t.getServerCache().getNode();g.assert(c instanceof Ut,"serverChildren would be complete if leaf node"),l=n.calcCompleteEventChildren(c)}u=this.filter_.updateFullNode(a,l=l,i)}else{var h=e.getFront(),p=n.calcCompleteChild(h,t.getServerCache());null==p&&t.getServerCache().isCompleteForChild(h)&&(p=a.getImmediateChild(h)),(u=null!=p?this.filter_.updateChild(a,h,p,e.popFront(),s,i):t.getEventCache().getNode().hasChild(h)?this.filter_.updateChild(a,h,Ut.EMPTY_NODE,e.popFront(),s,i):a).isEmpty()&&t.getServerCache().isFullyInitialized()&&(o=n.calcCompleteEventCache(t.getCompleteServerSnap())).isLeafNode()&&(u=this.filter_.updateFullNode(u,o,i))}return o=t.getServerCache().isFullyInitialized()||null!=n.shadowingWrite(J.Empty),t.updateEventSnap(u,o,this.filter_.filtersNodes())},t}(),we=function(){function t(t){this.query_=t,this.index_=this.query_.getQueryParams().getIndex()}return t.prototype.generateEventsForChanges=function(t,e,n){var r=this,i=[],o=[];return t.forEach(function(t){t.type===de.CHILD_CHANGED&&r.index_.indexedValueChanged(t.oldSnap,t.snapshotNode)&&o.push(de.childMovedChange(t.childName,t.snapshotNode))}),this.generateEventsForType_(i,de.CHILD_REMOVED,t,n,e),this.generateEventsForType_(i,de.CHILD_ADDED,t,n,e),this.generateEventsForType_(i,de.CHILD_MOVED,o,n,e),this.generateEventsForType_(i,de.CHILD_CHANGED,t,n,e),this.generateEventsForType_(i,de.VALUE,t,n,e),i},t.prototype.generateEventsForType_=function(t,e,n,r,i){var o=this,s=n.filter(function(t){return t.type===e});s.sort(this.compareChanges_.bind(this)),s.forEach(function(e){var n=o.materializeSingleChange_(e,i);r.forEach(function(r){r.respondsTo(e.type)&&t.push(r.createEvent(n,o.query_))})})},t.prototype.materializeSingleChange_=function(t,e){return"value"===t.type||"child_removed"===t.type?t:(t.prevName=e.getPredecessorChildName(t.childName,t.snapshotNode,this.index_),t)},t.prototype.compareChanges_=function(t,e){if(null==t.childName||null==e.childName)throw g.assertionError("Should only compare child_ events.");var n=new bt(t.childName,t.snapshotNode),r=new bt(e.childName,e.snapshotNode);return this.index_.compare(n,r)},t}(),Ee=function(){function t(t,e){this.query_=t,this.eventRegistrations_=[];var n=this.query_.getQueryParams(),r=new me(n.getIndex()),i=n.getNodeFilter();this.processor_=new be(i);var o=e.getServerCache(),s=e.getEventCache(),a=r.updateFullNode(Ut.EMPTY_NODE,o.getNode(),null),u=i.updateFullNode(Ut.EMPTY_NODE,s.getNode(),null),l=new pe(a,o.isFullyInitialized(),r.filtersNodes()),c=new pe(u,s.isFullyInitialized(),i.filtersNodes());this.viewCache_=new fe(c,l),this.eventGenerator_=new we(this.query_)}return t.prototype.getQuery=function(){return this.query_},t.prototype.getServerCache=function(){return this.viewCache_.getServerCache().getNode()},t.prototype.getCompleteServerCache=function(t){var e=this.viewCache_.getCompleteServerSnap();return e&&(this.query_.getQueryParams().loadsAllData()||!t.isEmpty()&&!e.getImmediateChild(t.getFront()).isEmpty())?e.getChild(t):null},t.prototype.isEmpty=function(){return 0===this.eventRegistrations_.length},t.prototype.addEventRegistration=function(t){this.eventRegistrations_.push(t)},t.prototype.removeEventRegistration=function(t,e){var n=[];if(e){g.assert(null==t,"A cancel should cancel all event registrations.");var r=this.query_.path;this.eventRegistrations_.forEach(function(t){var i=t.createCancelEvent(e=e,r);i&&n.push(i)})}if(t){for(var i=[],o=0;o<this.eventRegistrations_.length;++o){var s=this.eventRegistrations_[o];if(s.matches(t)){if(t.hasAnyCallback()){i=i.concat(this.eventRegistrations_.slice(o+1));break}}else i.push(s)}this.eventRegistrations_=i}else this.eventRegistrations_=[];return n},t.prototype.applyOperation=function(t,e,n){t.type===ie.MERGE&&null!==t.source.queryId&&(g.assert(this.viewCache_.getCompleteServerSnap(),"We should always have a full cache before handling merges"),g.assert(this.viewCache_.getCompleteEventSnap(),"Missing event cache, even though we have a server cache"));var r=this.viewCache_,i=this.processor_.applyOperation(r,t,e,n);return this.processor_.assertIndexed(i.viewCache),g.assert(i.viewCache.getServerCache().isFullyInitialized()||!r.getServerCache().isFullyInitialized(),"Once a server snap is complete, it should never go back"),this.viewCache_=i.viewCache,this.generateEventsForChanges_(i.changes,i.viewCache.getEventCache().getNode(),null)},t.prototype.getInitialEvents=function(t){var e=this.viewCache_.getEventCache(),n=[];return e.getNode().isLeafNode()||e.getNode().forEachChild(xt,function(t,e){n.push(de.childAddedChange(t,e))}),e.isFullyInitialized()&&n.push(de.valueChange(e.getNode())),this.generateEventsForChanges_(n,e.getNode(),t)},t.prototype.generateEventsForChanges_=function(t,e,n){return this.eventGenerator_.generateEventsForChanges(t,e,n?[n]:this.eventRegistrations_)},t}(),Se=function(){function t(){this.views_={}}return Object.defineProperty(t,"__referenceConstructor",{get:function(){return g.assert(Wt,"Reference.ts has not been loaded"),Wt},set:function(t){g.assert(!Wt,"__referenceConstructor has already been defined"),Wt=t},enumerable:!0,configurable:!0}),t.prototype.isEmpty=function(){return g.isEmpty(this.views_)},t.prototype.applyOperation=function(t,e,n){var r=t.source.queryId;if(null!==r){var i=g.safeGet(this.views_,r);return g.assert(null!=i,"SyncTree gave us an op for an invalid query."),i.applyOperation(t,e,n)}var o=[];return g.forEach(this.views_,function(r,i){o=o.concat(i.applyOperation(t,e,n))}),o},t.prototype.addEventRegistration=function(t,e,n,r,i){var o=t.queryIdentifier(),s=g.safeGet(this.views_,o);if(!s){var a=n.calcCompleteEventCache(i?r:null),u=!1;a?u=!0:r instanceof Ut?(a=n.calcCompleteEventChildren(r),u=!1):(a=Ut.EMPTY_NODE,u=!1);var l=new fe(new pe(a,u,!1),new pe(r,i,!1));s=new Ee(t,l),this.views_[o]=s}return s.addEventRegistration(e),s.getInitialEvents(e)},t.prototype.removeEventRegistration=function(e,n,r){var i=e.queryIdentifier(),o=[],s=[],a=this.hasCompleteView();if("default"===i){var u=this;g.forEach(this.views_,function(t,e){s=s.concat(e.removeEventRegistration(n,r)),e.isEmpty()&&(delete u.views_[t],e.getQuery().getQueryParams().loadsAllData()||o.push(e.getQuery()))})}else{var l=g.safeGet(this.views_,i);l&&(s=s.concat(l.removeEventRegistration(n,r)),l.isEmpty()&&(delete this.views_[i],l.getQuery().getQueryParams().loadsAllData()||o.push(l.getQuery())))}return a&&!this.hasCompleteView()&&o.push(new t.__referenceConstructor(e.repo,e.path)),{removed:o,events:s}},t.prototype.getQueryViews=function(){var t=this;return Object.keys(this.views_).map(function(e){return t.views_[e]}).filter(function(t){return!t.getQuery().getQueryParams().loadsAllData()})},t.prototype.getCompleteServerCache=function(t){var e=null;return g.forEach(this.views_,function(n,r){e=e||r.getCompleteServerCache(t)}),e},t.prototype.viewForQuery=function(t){if(t.getQueryParams().loadsAllData())return this.getCompleteView();var e=t.queryIdentifier();return g.safeGet(this.views_,e)},t.prototype.viewExistsForQuery=function(t){return null!=this.viewForQuery(t)},t.prototype.hasCompleteView=function(){return null!=this.getCompleteView()},t.prototype.getCompleteView=function(){return g.findValue(this.views_,function(t){return t.getQuery().getQueryParams().loadsAllData()})||null},t}(),Ce=function(){function t(t){this.writeTree_=t}return t.prototype.addWrite=function(e,n){if(e.isEmpty())return new t(new ue(n));var r=this.writeTree_.findRootMostValueAndPath(e);if(null!=r){var i=r.path,o=r.value,s=J.relativePath(i,e);return o=o.updateChild(s,n),new t(this.writeTree_.set(i,o))}var a=new ue(n);return new t(this.writeTree_.setTree(e,a))},t.prototype.addWrites=function(t,e){var n=this;return g.forEach(e,function(e,r){n=n.addWrite(t.child(e),r)}),n},t.prototype.removeWrite=function(e){return e.isEmpty()?t.Empty:new t(this.writeTree_.setTree(e,ue.Empty))},t.prototype.hasCompleteWrite=function(t){return null!=this.getCompleteNode(t)},t.prototype.getCompleteNode=function(t){var e=this.writeTree_.findRootMostValueAndPath(t);return null!=e?this.writeTree_.get(e.path).getChild(J.relativePath(e.path,t)):null},t.prototype.getCompleteChildren=function(){var t=[],e=this.writeTree_.value;return null!=e?e.isLeafNode()||e.forEachChild(xt,function(e,n){t.push(new bt(e,n))}):this.writeTree_.children.inorderTraversal(function(e,n){null!=n.value&&t.push(new bt(e,n.value))}),t},t.prototype.childCompoundWrite=function(e){if(e.isEmpty())return this;var n=this.getCompleteNode(e);return new t(null!=n?new ue(n):this.writeTree_.subtree(e))},t.prototype.isEmpty=function(){return this.writeTree_.isEmpty()},t.prototype.apply=function(e){return t.applySubtreeWrite_(J.Empty,this.writeTree_,e)},t.Empty=new t(new ue(null)),t.applySubtreeWrite_=function(e,n,r){if(null!=n.value)return r.updateChild(e,n.value);var i=null;return n.children.inorderTraversal(function(n,o){".priority"===n?(g.assert(null!==o.value,"Priority writes must always be leaf nodes"),i=o.value):r=t.applySubtreeWrite_(e.child(n),o,r)}),r.getChild(e).isEmpty()||null===i||(r=r.updateChild(e.child(".priority"),i)),r},t}(),Te=function(){function t(){this.visibleWrites_=Ce.Empty,this.allWrites_=[],this.lastWriteId_=-1}return t.prototype.childWrites=function(t){return new Ie(t,this)},t.prototype.addOverwrite=function(t,e,n,r){g.assert(n>this.lastWriteId_,"Stacking an older write on top of newer ones"),void 0===r&&(r=!0),this.allWrites_.push({path:t,snap:e,writeId:n,visible:r}),r&&(this.visibleWrites_=this.visibleWrites_.addWrite(t,e)),this.lastWriteId_=n},t.prototype.addMerge=function(t,e,n){g.assert(n>this.lastWriteId_,"Stacking an older merge on top of newer ones"),this.allWrites_.push({path:t,children:e,writeId:n,visible:!0}),this.visibleWrites_=this.visibleWrites_.addWrites(t,e),this.lastWriteId_=n},t.prototype.getWrite=function(t){for(var e=0;e<this.allWrites_.length;e++){var n=this.allWrites_[e];if(n.writeId===t)return n}return null},t.prototype.removeWrite=function(t){var e=this,n=this.allWrites_.findIndex(function(e){return e.writeId===t});g.assert(n>=0,"removeWrite called with nonexistent writeId.");var r=this.allWrites_[n];this.allWrites_.splice(n,1);for(var i=r.visible,o=!1,s=this.allWrites_.length-1;i&&s>=0;){var a=this.allWrites_[s];a.visible&&(s>=n&&this.recordContainsPath_(a,r.path)?i=!1:r.path.contains(a.path)&&(o=!0)),s--}return!!i&&(o?(this.resetTree_(),!0):(r.snap?this.visibleWrites_=this.visibleWrites_.removeWrite(r.path):g.forEach(r.children,function(t){e.visibleWrites_=e.visibleWrites_.removeWrite(r.path.child(t))}),!0))},t.prototype.getCompleteWriteData=function(t){return this.visibleWrites_.getCompleteNode(t)},t.prototype.calcCompleteEventCache=function(e,n,r,i){if(r||i){var o=this.visibleWrites_.childCompoundWrite(e);return!i&&o.isEmpty()?n:i||null!=n||o.hasCompleteWrite(J.Empty)?t.layerTree_(this.allWrites_,function(t){return(t.visible||i)&&(!r||!~r.indexOf(t.writeId))&&(t.path.contains(e)||e.contains(t.path))},e).apply(n||Ut.EMPTY_NODE):null}var s=this.visibleWrites_.getCompleteNode(e);if(null!=s)return s;var a=this.visibleWrites_.childCompoundWrite(e);return a.isEmpty()?n:null!=n||a.hasCompleteWrite(J.Empty)?a.apply(n||Ut.EMPTY_NODE):null},t.prototype.calcCompleteEventChildren=function(t,e){var n=Ut.EMPTY_NODE,r=this.visibleWrites_.getCompleteNode(t);if(r)return r.isLeafNode()||r.forEachChild(xt,function(t,e){n=n.updateImmediateChild(t,e)}),n;if(e){var i=this.visibleWrites_.childCompoundWrite(t);return e.forEachChild(xt,function(t,e){var r=i.childCompoundWrite(new J(t)).apply(e);n=n.updateImmediateChild(t,r)}),i.getCompleteChildren().forEach(function(t){n=n.updateImmediateChild(t.name,t.node)}),n}return this.visibleWrites_.childCompoundWrite(t).getCompleteChildren().forEach(function(t){n=n.updateImmediateChild(t.name,t.node)}),n},t.prototype.calcEventCacheAfterServerOverwrite=function(t,e,n,r){g.assert(n||r,"Either existingEventSnap or existingServerSnap must exist");var i=t.child(e);if(this.visibleWrites_.hasCompleteWrite(i))return null;var o=this.visibleWrites_.childCompoundWrite(i);return o.isEmpty()?r.getChild(e):o.apply(r.getChild(e))},t.prototype.calcCompleteChild=function(t,e,n){var r=t.child(e),i=this.visibleWrites_.getCompleteNode(r);return null!=i?i:n.isCompleteForChild(e)?this.visibleWrites_.childCompoundWrite(r).apply(n.getNode().getImmediateChild(e)):null},t.prototype.shadowingWrite=function(t){return this.visibleWrites_.getCompleteNode(t)},t.prototype.calcIndexedSlice=function(t,e,n,r,i,o){var s,a=this.visibleWrites_.childCompoundWrite(t),u=a.getCompleteNode(J.Empty);if(null!=u)s=u;else{if(null==e)return[];s=a.apply(e)}if((s=s.withIndex(o)).isEmpty()||s.isLeafNode())return[];for(var l=[],c=o.getCompare(),h=i?s.getReverseIteratorFrom(n,o):s.getIteratorFrom(n,o),p=h.getNext();p&&l.length<r;)0!==c(p,n)&&l.push(p),p=h.getNext();return l},t.prototype.recordContainsPath_=function(t,e){return t.snap?t.path.contains(e):!!g.findKey(t.children,function(n,r){return t.path.child(r).contains(e)})},t.prototype.resetTree_=function(){this.visibleWrites_=t.layerTree_(this.allWrites_,t.DefaultFilter_,J.Empty),this.lastWriteId_=this.allWrites_.length>0?this.allWrites_[this.allWrites_.length-1].writeId:-1},t.DefaultFilter_=function(t){return t.visible},t.layerTree_=function(t,e,n){for(var r=Ce.Empty,i=0;i<t.length;++i){var o=t[i];if(e(o)){var s=o.path,a=void 0;if(o.snap)n.contains(s)?(a=J.relativePath(n,s),r=r.addWrite(a,o.snap)):s.contains(n)&&(a=J.relativePath(s,n),r=r.addWrite(J.Empty,o.snap.getChild(a)));else{if(!o.children)throw g.assertionError("WriteRecord should have .snap or .children");if(n.contains(s))a=J.relativePath(n,s),r=r.addWrites(a,o.children);else if(s.contains(n))if((a=J.relativePath(s,n)).isEmpty())r=r.addWrites(J.Empty,o.children);else{var u=g.safeGet(o.children,a.getFront());if(u){var l=u.getChild(a.popFront());r=r.addWrite(J.Empty,l)}}}}}return r},t}(),Ie=function(){function t(t,e){this.treePath_=t,this.writeTree_=e}return t.prototype.calcCompleteEventCache=function(t,e,n){return this.writeTree_.calcCompleteEventCache(this.treePath_,t,e,n)},t.prototype.calcCompleteEventChildren=function(t){return this.writeTree_.calcCompleteEventChildren(this.treePath_,t)},t.prototype.calcEventCacheAfterServerOverwrite=function(t,e,n){return this.writeTree_.calcEventCacheAfterServerOverwrite(this.treePath_,t,e,n)},t.prototype.shadowingWrite=function(t){return this.writeTree_.shadowingWrite(this.treePath_.child(t))},t.prototype.calcIndexedSlice=function(t,e,n,r,i){return this.writeTree_.calcIndexedSlice(this.treePath_,t,e,n,r,i)},t.prototype.calcCompleteChild=function(t,e){return this.writeTree_.calcCompleteChild(this.treePath_,t,e)},t.prototype.child=function(e){return new t(this.treePath_.child(e),this.writeTree_)},t}(),xe=function(){function t(t){this.listenProvider_=t,this.syncPointTree_=ue.Empty,this.pendingWriteTree_=new Te,this.tagToQueryMap_={},this.queryToTagMap_={}}return t.prototype.applyUserOverwrite=function(t,e,n,r){return this.pendingWriteTree_.addOverwrite(t,e,n,r),r?this.applyOperationToSyncPoints_(new ce(oe.User,t,e)):[]},t.prototype.applyUserMerge=function(t,e,n){this.pendingWriteTree_.addMerge(t,e,n);var r=ue.fromObject(e);return this.applyOperationToSyncPoints_(new he(oe.User,t,r))},t.prototype.ackUserWrite=function(t,e){void 0===e&&(e=!1);var n=this.pendingWriteTree_.getWrite(t);if(this.pendingWriteTree_.removeWrite(t)){var r=ue.Empty;return null!=n.snap?r=r.set(J.Empty,!0):g.forEach(n.children,function(t,e){r=r.set(new J(t),e)}),this.applyOperationToSyncPoints_(new se(n.path,r,e))}return[]},t.prototype.applyServerOverwrite=function(t,e){return this.applyOperationToSyncPoints_(new ce(oe.Server,t,e))},t.prototype.applyServerMerge=function(t,e){var n=ue.fromObject(e);return this.applyOperationToSyncPoints_(new he(oe.Server,t,n))},t.prototype.applyListenComplete=function(t){return this.applyOperationToSyncPoints_(new le(oe.Server,t))},t.prototype.applyTaggedQueryOverwrite=function(e,n,r){var i=this.queryKeyForTag_(r);if(null!=i){var o=t.parseQueryKey_(i),s=o.path,a=o.queryId,u=J.relativePath(s,e),l=new ce(oe.forServerTaggedQuery(a),u,n);return this.applyTaggedOperation_(s,l)}return[]},t.prototype.applyTaggedQueryMerge=function(e,n,r){var i=this.queryKeyForTag_(r);if(i){var o=t.parseQueryKey_(i),s=o.path,a=o.queryId,u=J.relativePath(s,e),l=ue.fromObject(n),c=new he(oe.forServerTaggedQuery(a),u,l);return this.applyTaggedOperation_(s,c)}return[]},t.prototype.applyTaggedListenComplete=function(e,n){var r=this.queryKeyForTag_(n);if(r){var i=t.parseQueryKey_(r),o=i.path,s=i.queryId,a=J.relativePath(o,e),u=new le(oe.forServerTaggedQuery(s),a);return this.applyTaggedOperation_(o,u)}return[]},t.prototype.addEventRegistration=function(e,n){var r=e.path,i=null,o=!1;this.syncPointTree_.foreachOnPath(r,function(t,e){var n=J.relativePath(t,r);i=i||e.getCompleteServerCache(n),o=o||e.hasCompleteView()});var s,a=this.syncPointTree_.get(r);a?(o=o||a.hasCompleteView(),i=i||a.getCompleteServerCache(J.Empty)):(a=new Se,this.syncPointTree_=this.syncPointTree_.set(r,a)),null!=i?s=!0:(s=!1,i=Ut.EMPTY_NODE,this.syncPointTree_.subtree(r).foreachChild(function(t,e){var n=e.getCompleteServerCache(J.Empty);n&&(i=i.updateImmediateChild(t,n))}));var u=a.viewExistsForQuery(e);if(!u&&!e.getQueryParams().loadsAllData()){var l=t.makeQueryKey_(e);g.assert(!(l in this.queryToTagMap_),"View does not exist, but we have a tag");var c=t.getNextQueryTag_();this.queryToTagMap_[l]=c,this.tagToQueryMap_["_"+c]=l}var h=this.pendingWriteTree_.childWrites(r),p=a.addEventRegistration(e,n,h,i,s);if(!u&&!o){var f=a.viewForQuery(e);p=p.concat(this.setupListener_(e,f))}return p},t.prototype.removeEventRegistration=function(e,n,r){var i=this,o=e.path,s=this.syncPointTree_.get(o),a=[];if(s&&("default"===e.queryIdentifier()||s.viewExistsForQuery(e))){var u=s.removeEventRegistration(e,n,r);s.isEmpty()&&(this.syncPointTree_=this.syncPointTree_.remove(o));var l=u.removed;a=u.events;var c=-1!==l.findIndex(function(t){return t.getQueryParams().loadsAllData()}),h=this.syncPointTree_.findOnPath(o,function(t,e){return e.hasCompleteView()});if(c&&!h){var p=this.syncPointTree_.subtree(o);if(!p.isEmpty())for(var f=this.collectDistinctViewsForSubTree_(p),d=0;d<f.length;++d){var m=f[d],y=m.getQuery(),g=this.createListenerForView_(m);this.listenProvider_.startListening(t.queryForListening_(y),this.tagForQuery_(y),g.hashFn,g.onComplete)}}!h&&l.length>0&&!r&&(c?this.listenProvider_.stopListening(t.queryForListening_(e),null):l.forEach(function(e){var n=i.queryToTagMap_[t.makeQueryKey_(e)];i.listenProvider_.stopListening(t.queryForListening_(e),n)})),this.removeTags_(l)}return a},t.prototype.calcCompleteEventCache=function(t,e){var n=this.pendingWriteTree_,r=this.syncPointTree_.findOnPath(t,function(e,n){var r=J.relativePath(e,t),i=n.getCompleteServerCache(r);if(i)return i});return n.calcCompleteEventCache(t,r,e,!0)},t.prototype.collectDistinctViewsForSubTree_=function(t){return t.fold(function(t,e,n){if(e&&e.hasCompleteView())return[e.getCompleteView()];var r=[];return e&&(r=e.getQueryViews()),g.forEach(n,function(t,e){r=r.concat(e)}),r})},t.prototype.removeTags_=function(e){for(var n=0;n<e.length;++n){var r=e[n];if(!r.getQueryParams().loadsAllData()){var i=t.makeQueryKey_(r),o=this.queryToTagMap_[i];delete this.queryToTagMap_[i],delete this.tagToQueryMap_["_"+o]}}},t.queryForListening_=function(t){return t.getQueryParams().loadsAllData()&&!t.getQueryParams().isDefault()?t.getRef():t},t.prototype.setupListener_=function(e,n){var r=e.path,i=this.tagForQuery_(e),o=this.createListenerForView_(n),s=this.listenProvider_.startListening(t.queryForListening_(e),i,o.hashFn,o.onComplete),a=this.syncPointTree_.subtree(r);if(i)g.assert(!a.value.hasCompleteView(),"If we're adding a query, it shouldn't be shadowed");else for(var u=a.fold(function(t,e,n){if(!t.isEmpty()&&e&&e.hasCompleteView())return[e.getCompleteView().getQuery()];var r=[];return e&&(r=r.concat(e.getQueryViews().map(function(t){return t.getQuery()}))),g.forEach(n,function(t,e){r=r.concat(e)}),r}),l=0;l<u.length;++l){var c=u[l];this.listenProvider_.stopListening(t.queryForListening_(c),this.tagForQuery_(c))}return s},t.prototype.createListenerForView_=function(t){var e=this,n=t.getQuery(),r=this.tagForQuery_(n);return{hashFn:function(){return(t.getServerCache()||Ut.EMPTY_NODE).hash()},onComplete:function(t){if("ok"===t)return r?e.applyTaggedListenComplete(n.path,r):e.applyListenComplete(n.path);var i=function(t,e){var n="Unknown Error";"too_big"===t?n="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"==t?n="Client doesn't have permission to access the desired data.":"unavailable"==t&&(n="The service is unavailable");var r=new Error(t+" at "+e.path.toString()+": "+n);return r.code=t.toUpperCase(),r}(t,n);return e.removeEventRegistration(n,null,i)}}},t.makeQueryKey_=function(t){return t.path.toString()+"$"+t.queryIdentifier()},t.parseQueryKey_=function(t){var e=t.indexOf("$");return g.assert(-1!==e&&e<t.length-1,"Bad queryKey."),{queryId:t.substr(e+1),path:new J(t.substr(0,e))}},t.prototype.queryKeyForTag_=function(t){return this.tagToQueryMap_["_"+t]},t.prototype.tagForQuery_=function(e){var n=t.makeQueryKey_(e);return g.safeGet(this.queryToTagMap_,n)},t.getNextQueryTag_=function(){return t.nextQueryTag_++},t.prototype.applyTaggedOperation_=function(t,e){var n=this.syncPointTree_.get(t);g.assert(n,"Missing sync point for query tag that we're tracking");var r=this.pendingWriteTree_.childWrites(t);return n.applyOperation(e,r,null)},t.prototype.applyOperationToSyncPoints_=function(t){return this.applyOperationHelper_(t,this.syncPointTree_,null,this.pendingWriteTree_.childWrites(J.Empty))},t.prototype.applyOperationHelper_=function(t,e,n,r){if(t.path.isEmpty())return this.applyOperationDescendantsHelper_(t,e,n,r);var i=e.get(J.Empty);null==n&&null!=i&&(n=i.getCompleteServerCache(J.Empty));var o=[],s=t.path.getFront(),a=t.operationForChild(s),u=e.children.get(s);if(u&&a){var l=n?n.getImmediateChild(s):null,c=r.child(s);o=o.concat(this.applyOperationHelper_(a,u,l,c))}return i&&(o=o.concat(i.applyOperation(t,r,n))),o},t.prototype.applyOperationDescendantsHelper_=function(t,e,n,r){var i=this,o=e.get(J.Empty);null==n&&null!=o&&(n=o.getCompleteServerCache(J.Empty));var s=[];return e.children.inorderTraversal(function(e,o){var a=n?n.getImmediateChild(e):null,u=r.child(e),l=t.operationForChild(e);l&&(s=s.concat(i.applyOperationDescendantsHelper_(l,o,a,u)))}),o&&(s=s.concat(o.applyOperation(t,r,n))),s},t.nextQueryTag_=1,t}(),ke=function(){function t(){this.rootNode_=Ut.EMPTY_NODE}return t.prototype.getNode=function(t){return this.rootNode_.getChild(t)},t.prototype.updateSnapshot=function(t,e){this.rootNode_=this.rootNode_.updateChild(t,e)},t}(),Ae=function(){function t(t){this.app_=t}return t.prototype.getToken=function(t){return this.app_.INTERNAL.getToken(t).then(null,function(t){return t&&"auth/token-not-initialized"===t.code?(N("Got auth/token-not-initialized error.  Treating as null token."),null):Promise.reject(t)})},t.prototype.addTokenChangeListener=function(t){this.app_.INTERNAL.addAuthTokenListener(t)},t.prototype.removeTokenChangeListener=function(t){this.app_.INTERNAL.removeAuthTokenListener(t)},t.prototype.notifyForInvalidToken=function(){var t='Provided authentication credentials for the app named "'+this.app_.name+'" are invalid. This usually indicates your app was not initialized correctly. ';M(t+="credential"in this.app_.options?'Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.app_.options?'Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':'Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.')},t}(),Oe=function(){function t(){this.counters_={}}return t.prototype.incrementCounter=function(t,e){void 0===e&&(e=1),g.contains(this.counters_,t)||(this.counters_[t]=0),this.counters_[t]+=e},t.prototype.get=function(){return g.deepCopy(this.counters_)},t}(),Ne=function(){function t(){}return t.getCollection=function(t){var e=t.toString();return this.collections_[e]||(this.collections_[e]=new Oe),this.collections_[e]},t.getOrCreateReporter=function(t,e){var n=t.toString();return this.reporters_[n]||(this.reporters_[n]=e()),this.reporters_[n]},t.collections_={},t.reporters_={},t}(),De=function(){function t(t){this.collection_=t,this.last_=null}return t.prototype.get=function(){var t=this.collection_.get(),e=g.clone(t);return this.last_&&g.forEach(this.last_,function(t,n){e[t]=e[t]-n}),this.last_=t,e},t}(),Re=1e4,Pe=3e4,Me=function(){function t(t,e){this.server_=e,this.statsToReport_={},this.statsListener_=new De(t);var n=Re+(Pe-Re)*Math.random();X(this.reportStats_.bind(this),Math.floor(n))}return t.prototype.includeStat=function(t){this.statsToReport_[t]=!0},t.prototype.reportStats_=function(){var t=this,e=this.statsListener_.get(),n={},r=!1;g.forEach(e,function(e,i){i>0&&g.contains(t.statsToReport_,e)&&(n[e]=i,r=!0)}),r&&this.server_.reportStats(n),X(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))},t}(),Le=function(){function t(){this.eventLists_=[],this.recursionDepth_=0}return t.prototype.queueEvents=function(t){for(var e=null,n=0;n<t.length;n++){var r=t[n],i=r.getPath();null===e||i.equals(e.getPath())||(this.eventLists_.push(e),e=null),null===e&&(e=new Fe(i)),e.add(r)}e&&this.eventLists_.push(e)},t.prototype.raiseEventsAtPath=function(t,e){this.queueEvents(e),this.raiseQueuedEventsMatchingPredicate_(function(e){return e.equals(t)})},t.prototype.raiseEventsForChangedPath=function(t,e){this.queueEvents(e),this.raiseQueuedEventsMatchingPredicate_(function(e){return e.contains(t)||t.contains(e)})},t.prototype.raiseQueuedEventsMatchingPredicate_=function(t){this.recursionDepth_++;for(var e=!0,n=0;n<this.eventLists_.length;n++){var r=this.eventLists_[n];r&&(t(r.getPath())?(this.eventLists_[n].raise(),this.eventLists_[n]=null):e=!1)}e&&(this.eventLists_=[]),this.recursionDepth_--},t}(),Fe=function(){function t(t){this.path_=t,this.events_=[]}return t.prototype.add=function(t){this.events_.push(t)},t.prototype.raise=function(){for(var t=0;t<this.events_.length;t++){var e=this.events_[t];if(null!==e){this.events_[t]=null;var n=e.getEventRunner();k&&N("event: "+e.toString()),G(n)}}},t.prototype.getPath=function(){return this.path_},t}(),je=function(){function t(t){this.allowedEvents_=t,this.listeners_={},g.assert(Array.isArray(t)&&t.length>0,"Requires a non-empty array")}return t.prototype.trigger=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(Array.isArray(this.listeners_[t]))for(var r=this.listeners_[t].slice(),i=0;i<r.length;i++)r[i].callback.apply(r[i].context,e)},t.prototype.on=function(t,e,n){this.validateEventType_(t),this.listeners_[t]=this.listeners_[t]||[],this.listeners_[t].push({callback:e,context:n});var r=this.getInitialEvent(t);r&&e.apply(n,r)},t.prototype.off=function(t,e,n){this.validateEventType_(t);for(var r=this.listeners_[t]||[],i=0;i<r.length;i++)if(r[i].callback===e&&(!n||n===r[i].context))return void r.splice(i,1)},t.prototype.validateEventType_=function(t){g.assert(this.allowedEvents_.find(function(e){return e===t}),"Unknown event: "+t)},t}(),Ue=function(t){function e(){var e,n,r=t.call(this,["visible"])||this;return"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(n="visibilitychange",e="hidden"):void 0!==document.mozHidden?(n="mozvisibilitychange",e="mozHidden"):void 0!==document.msHidden?(n="msvisibilitychange",e="msHidden"):void 0!==document.webkitHidden&&(n="webkitvisibilitychange",e="webkitHidden")),r.visible_=!0,n&&document.addEventListener(n,function(){var t=!document[e];t!==r.visible_&&(r.visible_=t,r.trigger("visible",t))},!1),r}return y.__extends(e,t),e.getInstance=function(){return new e},e.prototype.getInitialEvent=function(t){return g.assert("visible"===t,"Unknown event type: "+t),[this.visible_]},e}(je),Ve=function(t){function e(){var e=t.call(this,["online"])||this;return e.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||g.isMobileCordova()||(window.addEventListener("online",function(){e.online_||(e.online_=!0,e.trigger("online",!0))},!1),window.addEventListener("offline",function(){e.online_&&(e.online_=!1,e.trigger("online",!1))},!1)),e}return y.__extends(e,t),e.getInstance=function(){return new e},e.prototype.getInitialEvent=function(t){return g.assert("online"===t,"Unknown event type: "+t),[this.online_]},e.prototype.currentlyOnline=function(){return this.online_},e}(je),qe=function(){function t(t){this.onMessage_=t,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}return t.prototype.closeAfter=function(t,e){this.closeAfterResponse=t,this.onClose=e,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)},t.prototype.handleResponse=function(t,e){var n=this;this.pendingResponses[t]=e;for(var r=function(){var t=i.pendingResponses[i.currentResponseNum];delete i.pendingResponses[i.currentResponseNum];for(var e=function(e){t[e]&&G(function(){n.onMessage_(t[e])})},r=0;r<t.length;++r)e(r);if(i.currentResponseNum===i.closeAfterResponse)return i.onClose&&(i.onClose(),i.onClose=null),"break";i.currentResponseNum++},i=this;this.pendingResponses[this.currentResponseNum]&&"break"!==r(););},t}(),Be="pLPCommand",He="pRTLPCB",ze=function(){function t(t,e,n,r){this.connId=t,this.repoInfo=e,this.transportSessionId=n,this.lastSessionId=r,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=D(t),this.stats_=Ne.getCollection(e),this.urlFn=function(t){return e.connectionURL($,t)}}return t.prototype.open=function(t,e){var n=this;this.curSegmentNum=0,this.onDisconnect_=e,this.myPacketOrderer=new qe(t),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(function(){n.log_("Timed out trying to connect."),n.onClosed_(),n.connectTimeoutTimer_=null},Math.floor(3e4)),function(t){if(g.isNodeSdk()||"complete"===document.readyState)t();else{var e=!1,n=function(){document.body?e||(e=!0,t()):setTimeout(n,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",function(){"complete"===document.readyState&&n()}),window.attachEvent("onload",n))}}(function(){if(!n.isClosed_){n.scriptTagHolder=new We(function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],i=t[1],o=t[2];if(n.incrementIncomingBytes_(t),n.scriptTagHolder)if(n.connectTimeoutTimer_&&(clearTimeout(n.connectTimeoutTimer_),n.connectTimeoutTimer_=null),n.everConnected_=!0,"start"==r)n.id=i,n.password=o;else{if("close"!==r)throw new Error("Unrecognized command received: "+r);i?(n.scriptTagHolder.sendNewPolls=!1,n.myPacketOrderer.closeAfter(i,function(){n.onClosed_()})):n.onClosed_()}},function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],i=t[1];n.incrementIncomingBytes_(t),n.myPacketOrderer.handleResponse(r,i)},function(){n.onClosed_()},n.urlFn);var t={start:"t"};t.ser=Math.floor(1e8*Math.random()),n.scriptTagHolder.uniqueCallbackIdentifier&&(t.cb=n.scriptTagHolder.uniqueCallbackIdentifier),t.v="5",n.transportSessionId&&(t.s=n.transportSessionId),n.lastSessionId&&(t.ls=n.lastSessionId),!g.isNodeSdk()&&"undefined"!=typeof location&&location.href&&-1!==location.href.indexOf("firebaseio.com")&&(t.r="f");var e=n.urlFn(t);n.log_("Connecting via long-poll to "+e),n.scriptTagHolder.addTag(e,function(){})}})},t.prototype.start=function(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)},t.forceAllow=function(){t.forceAllow_=!0},t.forceDisallow=function(){t.forceDisallow_=!0},t.isAvailable=function(){return t.forceAllow_||!t.forceDisallow_&&"undefined"!=typeof document&&null!=document.createElement&&!("object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href))&&!("object"==typeof Windows&&"object"==typeof Windows.UI)&&!g.isNodeSdk()},t.prototype.markConnectionHealthy=function(){},t.prototype.shutdown_=function(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)},t.prototype.onClosed_=function(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))},t.prototype.close=function(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())},t.prototype.send=function(t){var e=g.stringify(t);this.bytesSent+=e.length,this.stats_.incrementCounter("bytes_sent",e.length);for(var n=g.base64Encode(e),r=H(n,1840),i=0;i<r.length;i++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,r.length,r[i]),this.curSegmentNum++},t.prototype.addDisconnectPingFrame=function(t,e){if(!g.isNodeSdk()){this.myDisconnFrame=document.createElement("iframe");var n={dframe:"t"};n.id=t,n.pw=e,this.myDisconnFrame.src=this.urlFn(n),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}},t.prototype.incrementIncomingBytes_=function(t){var e=g.stringify(t).length;this.bytesReceived+=e,this.stats_.incrementCounter("bytes_received",e)},t}(),We=function(){function t(e,n,r,i){if(this.onDisconnect=r,this.urlFn=i,this.outstandingRequests=new te,this.pendingSegs=[],this.currentSerial=Math.floor(1e8*Math.random()),this.sendNewPolls=!0,g.isNodeSdk())this.commandCB=e,this.onMessageCB=n;else{this.uniqueCallbackIdentifier=T(),window[Be+this.uniqueCallbackIdentifier]=e,window[He+this.uniqueCallbackIdentifier]=n,this.myIFrame=t.createIFrame_();var o="";this.myIFrame.src&&"javascript:"===this.myIFrame.src.substr(0,"javascript:".length)&&(o='<script>document.domain="'+document.domain+'";<\/script>');var s="<html><body>"+o+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(s),this.myIFrame.doc.close()}catch(a){N("frame writing exception"),a.stack&&N(a.stack),N(a)}}}return t.createIFrame_=function(){var t=document.createElement("iframe");if(t.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(t);try{t.contentWindow.document||N("No IE domain setting required")}catch(n){var e=document.domain;t.src="javascript:void((function(){document.open();document.domain='"+e+"';document.close();})())"}return t.contentDocument?t.doc=t.contentDocument:t.contentWindow?t.doc=t.contentWindow.document:t.document&&(t.doc=t.document),t},t.prototype.close=function(){var e=this;if(this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.innerHTML="",setTimeout(function(){null!==e.myIFrame&&(document.body.removeChild(e.myIFrame),e.myIFrame=null)},Math.floor(0))),g.isNodeSdk()&&this.myID){var n={disconn:"t"};n.id=this.myID,n.pw=this.myPW;var r=this.urlFn(n);t.nodeRestRequest(r)}var i=this.onDisconnect;i&&(this.onDisconnect=null,i())},t.prototype.startLongPoll=function(t,e){for(this.myID=t,this.myPW=e,this.alive=!0;this.newRequest_(););},t.prototype.newRequest_=function(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.count()<(this.pendingSegs.length>0?2:1)){this.currentSerial++;var t={};t.id=this.myID,t.pw=this.myPW,t.ser=this.currentSerial;for(var e=this.urlFn(t),n="",r=0;this.pendingSegs.length>0&&this.pendingSegs[0].d.length+30+n.length<=1870;){var i=this.pendingSegs.shift();n=n+"&seg"+r+"="+i.seg+"&ts"+r+"="+i.ts+"&d"+r+"="+i.d,r++}return this.addLongPollTag_(e+=n,this.currentSerial),!0}return!1},t.prototype.enqueueSegment=function(t,e,n){this.pendingSegs.push({seg:t,ts:e,d:n}),this.alive&&this.newRequest_()},t.prototype.addLongPollTag_=function(t,e){var n=this;this.outstandingRequests.add(e,1);var r=function(){n.outstandingRequests.remove(e),n.newRequest_()},i=setTimeout(r,Math.floor(25e3));this.addTag(t,function(){clearTimeout(i),r()})},t.prototype.addTag=function(t,e){var n=this;g.isNodeSdk()?this.doNodeLongPoll(t,e):setTimeout(function(){try{if(!n.sendNewPolls)return;var r=n.myIFrame.doc.createElement("script");r.type="text/javascript",r.async=!0,r.src=t,r.onload=r.onreadystatechange=function(){var t=r.readyState;t&&"loaded"!==t&&"complete"!==t||(r.onload=r.onreadystatechange=null,r.parentNode&&r.parentNode.removeChild(r),e())},r.onerror=function(){N("Long-poll script failed to load: "+t),n.sendNewPolls=!1,n.close()},n.myIFrame.doc.body.appendChild(r)}catch(i){}},Math.floor(1))},t}(),Qe=null;"undefined"!=typeof MozWebSocket?Qe=MozWebSocket:"undefined"!=typeof WebSocket&&(Qe=WebSocket);var Ke=function(){function t(e,n,r,i){this.connId=e,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=D(this.connId),this.stats_=Ne.getCollection(n),this.connURL=t.connectionURL_(n,r,i)}return t.connectionURL_=function(t,e,n){var r={v:"5"};return!g.isNodeSdk()&&"undefined"!=typeof location&&location.href&&-1!==location.href.indexOf("firebaseio.com")&&(r.r="f"),e&&(r.s=e),n&&(r.ls=n),t.connectionURL("websocket",r)},t.prototype.open=function(t,e){var n=this;this.onDisconnect=e,this.onMessage=t,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,E.set("previous_websocket_failure",!0);try{if(g.isNodeSdk()){var r={headers:{"User-Agent":"Firebase/5/"+m.SDK_VERSION+"/"+process.platform+"/"+(g.CONSTANTS.NODE_ADMIN?"AdminNode":"Node")}},i=process.env,o=0==this.connURL.indexOf("wss://")?i.HTTPS_PROXY||i.https_proxy:i.HTTP_PROXY||i.http_proxy;o&&(r.proxy={origin:o}),this.mySock=new Qe(this.connURL,[],r)}else this.mySock=new Qe(this.connURL)}catch(a){this.log_("Error instantiating WebSocket.");var s=a.message||a.data;return s&&this.log_(s),void this.onClosed_()}this.mySock.onopen=function(){n.log_("Websocket connected."),n.everConnected_=!0},this.mySock.onclose=function(){n.log_("Websocket connection was disconnected."),n.mySock=null,n.onClosed_()},this.mySock.onmessage=function(t){n.handleIncomingFrame(t)},this.mySock.onerror=function(t){n.log_("WebSocket error.  Closing connection.");var e=t.message||t.data;e&&n.log_(e),n.onClosed_()}},t.prototype.start=function(){},t.forceDisallow=function(){t.forceDisallow_=!0},t.isAvailable=function(){var e=!1;if("undefined"!=typeof navigator&&navigator.userAgent){var n=navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/);n&&n.length>1&&parseFloat(n[1])<4.4&&(e=!0)}return!e&&null!==Qe&&!t.forceDisallow_},t.previouslyFailed=function(){return E.isInMemoryStorage||!0===E.get("previous_websocket_failure")},t.prototype.markConnectionHealthy=function(){E.remove("previous_websocket_failure")},t.prototype.appendFrame_=function(t){if(this.frames.push(t),this.frames.length==this.totalFrames){var e=this.frames.join("");this.frames=null;var n=g.jsonEval(e);this.onMessage(n)}},t.prototype.handleNewFrameCount_=function(t){this.totalFrames=t,this.frames=[]},t.prototype.extractFrameCount_=function(t){if(g.assert(null===this.frames,"We already have a frame buffer"),t.length<=6){var e=Number(t);if(!isNaN(e))return this.handleNewFrameCount_(e),null}return this.handleNewFrameCount_(1),t},t.prototype.handleIncomingFrame=function(t){if(null!==this.mySock){var e=t.data;if(this.bytesReceived+=e.length,this.stats_.incrementCounter("bytes_received",e.length),this.resetKeepAlive(),null!==this.frames)this.appendFrame_(e);else{var n=this.extractFrameCount_(e);null!==n&&this.appendFrame_(n)}}},t.prototype.send=function(t){this.resetKeepAlive();var e=g.stringify(t);this.bytesSent+=e.length,this.stats_.incrementCounter("bytes_sent",e.length);var n=H(e,16384);n.length>1&&this.sendString_(String(n.length));for(var r=0;r<n.length;r++)this.sendString_(n[r])},t.prototype.shutdown_=function(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)},t.prototype.onClosed_=function(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))},t.prototype.close=function(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())},t.prototype.resetKeepAlive=function(){var t=this;clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(function(){t.mySock&&t.sendString_("0"),t.resetKeepAlive()},Math.floor(45e3))},t.prototype.sendString_=function(t){try{this.mySock.send(t)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}},t.responsesRequiredToBeHealthy=2,t.healthyTimeout=3e4,t}(),Ge=function(){function t(t){this.initTransports_(t)}return Object.defineProperty(t,"ALL_TRANSPORTS",{get:function(){return[ze,Ke]},enumerable:!0,configurable:!0}),t.prototype.initTransports_=function(e){var n=Ke&&Ke.isAvailable(),r=n&&!Ke.previouslyFailed();if(e.webSocketOnly&&(n||M("wss:// URL used, but browser isn't known to support websockets.  Trying anyway."),r=!0),r)this.transports_=[Ke];else{var i=this.transports_=[];z(t.ALL_TRANSPORTS,function(t,e){e&&e.isAvailable()&&i.push(e)})}},t.prototype.initialTransport=function(){if(this.transports_.length>0)return this.transports_[0];throw new Error("No transports available")},t.prototype.upgradeTransport=function(){return this.transports_.length>1?this.transports_[1]:null},t}(),Ye=function(){function t(t,e,n,r,i,o,s){this.id=t,this.repoInfo_=e,this.onMessage_=n,this.onReady_=r,this.onDisconnect_=i,this.onKill_=o,this.lastSessionId=s,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=D("c:"+this.id+":"),this.transportManager_=new Ge(e),this.log_("Connection created"),this.start_()}return t.prototype.start_=function(){var t=this,e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,void 0,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;var n=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(function(){t.conn_&&t.conn_.open(n,r)},Math.floor(0));var i=e.healthyTimeout||0;i>0&&(this.healthyTimeout_=X(function(){t.healthyTimeout_=null,t.isHealthy_||(t.conn_&&t.conn_.bytesReceived>102400?(t.log_("Connection exceeded healthy timeout but has received "+t.conn_.bytesReceived+" bytes.  Marking connection healthy."),t.isHealthy_=!0,t.conn_.markConnectionHealthy()):t.conn_&&t.conn_.bytesSent>10240?t.log_("Connection exceeded healthy timeout but has sent "+t.conn_.bytesSent+" bytes.  Leaving connection alive."):(t.log_("Closing unhealthy connection after timeout."),t.close()))},Math.floor(i)))},t.prototype.nextTransportId_=function(){return"c:"+this.id+":"+this.connectionCount++},t.prototype.disconnReceiver_=function(t){var e=this;return function(n){t===e.conn_?e.onConnectionLost_(n):t===e.secondaryConn_?(e.log_("Secondary connection lost."),e.onSecondaryConnectionLost_()):e.log_("closing an old connection")}},t.prototype.connReceiver_=function(t){var e=this;return function(n){2!=e.state_&&(t===e.rx_?e.onPrimaryMessageReceived_(n):t===e.secondaryConn_?e.onSecondaryMessageReceived_(n):e.log_("message on old connection"))}},t.prototype.sendRequest=function(t){this.sendData_({t:"d",d:t})},t.prototype.tryCleanupConnection=function(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)},t.prototype.onSecondaryControl_=function(t){if("t"in t){var e=t.t;"a"===e?this.upgradeIfSecondaryHealthy_():"r"===e?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===e&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_())}},t.prototype.onSecondaryMessageReceived_=function(t){var e=q("t",t),n=q("d",t);if("c"==e)this.onSecondaryControl_(n);else{if("d"!=e)throw new Error("Unknown protocol layer: "+e);this.pendingDataMessages.push(n)}},t.prototype.upgradeIfSecondaryHealthy_=function(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))},t.prototype.proceedWithUpgrade_=function(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()},t.prototype.onPrimaryMessageReceived_=function(t){var e=q("t",t),n=q("d",t);"c"==e?this.onControl_(n):"d"==e&&this.onDataMessage_(n)},t.prototype.onDataMessage_=function(t){this.onPrimaryResponse_(),this.onMessage_(t)},t.prototype.onPrimaryResponse_=function(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))},t.prototype.onControl_=function(t){var e=q("t",t);if("d"in t){var n=t.d;if("h"===e)this.onHandshake_(n);else if("n"===e){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(var r=0;r<this.pendingDataMessages.length;++r)this.onDataMessage_(this.pendingDataMessages[r]);this.pendingDataMessages=[],this.tryCleanupConnection()}else"s"===e?this.onConnectionShutdown_(n):"r"===e?this.onReset_(n):"e"===e?R("Server Error: "+n):"o"===e?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):R("Unknown control packet command: "+e)}},t.prototype.onHandshake_=function(t){var e=t.ts,n=t.v,r=t.h;this.sessionId=t.s,this.repoInfo_.updateHost(r),0==this.state_&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,e),"5"!==n&&M("Protocol version mismatch detected"),this.tryStartUpgrade_())},t.prototype.tryStartUpgrade_=function(){var t=this.transportManager_.upgradeTransport();t&&this.startUpgrade_(t)},t.prototype.startUpgrade_=function(t){var e=this;this.secondaryConn_=new t(this.nextTransportId_(),this.repoInfo_,this.sessionId),this.secondaryResponsesRequired_=t.responsesRequiredToBeHealthy||0;var n=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(n,r),X(function(){e.secondaryConn_&&(e.log_("Timed out trying to upgrade."),e.secondaryConn_.close())},Math.floor(6e4))},t.prototype.onReset_=function(t){this.log_("Reset packet received.  New host: "+t),this.repoInfo_.updateHost(t),1===this.state_?this.close():(this.closeConnections_(),this.start_())},t.prototype.onConnectionEstablished_=function(t,e){var n=this;this.log_("Realtime connection established."),this.conn_=t,this.state_=1,this.onReady_&&(this.onReady_(e,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):X(function(){n.sendPingOnPrimaryIfNecessary_()},Math.floor(5e3))},t.prototype.sendPingOnPrimaryIfNecessary_=function(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))},t.prototype.onSecondaryConnectionLost_=function(){var t=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==t&&this.rx_!==t||this.close()},t.prototype.onConnectionLost_=function(t){this.conn_=null,t||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(E.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()},t.prototype.onConnectionShutdown_=function(t){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(t),this.onKill_=null),this.onDisconnect_=null,this.close()},t.prototype.sendData_=function(t){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(t)},t.prototype.close=function(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_&&(this.onDisconnect_(),this.onDisconnect_=null))},t.prototype.closeConnections_=function(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)},t}(),Xe=function(){function t(){}return t.prototype.put=function(t,e,n,r){},t.prototype.merge=function(t,e,n,r){},t.prototype.refreshAuthToken=function(t){},t.prototype.onDisconnectPut=function(t,e,n){},t.prototype.onDisconnectMerge=function(t,e,n){},t.prototype.onDisconnectCancel=function(t,e){},t.prototype.reportStats=function(t){},t}(),Je=1e3,Ze=3e5,$e=function(t){function e(n,r,i,o,s,a){var u=t.call(this)||this;if(u.repoInfo_=n,u.onDataUpdate_=r,u.onConnectStatus_=i,u.onServerInfoUpdate_=o,u.authTokenProvider_=s,u.authOverride_=a,u.id=e.nextPersistentConnectionId_++,u.log_=D("p:"+u.id+":"),u.interruptReasons_={},u.listens_={},u.outstandingPuts_=[],u.outstandingPutCount_=0,u.onDisconnectRequestQueue_=[],u.connected_=!1,u.reconnectDelay_=Je,u.maxReconnectDelay_=Ze,u.securityDebugCallback_=null,u.lastSessionId=null,u.establishConnectionTimer_=null,u.visible_=!1,u.requestCBHash_={},u.requestNumber_=0,u.realtime_=null,u.authToken_=null,u.forceTokenRefresh_=!1,u.invalidAuthTokenCount_=0,u.firstConnection_=!0,u.lastConnectionAttemptTime_=null,u.lastConnectionEstablishedTime_=null,a&&!g.isNodeSdk())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");return u.scheduleConnect_(0),Ue.getInstance().on("visible",u.onVisible_,u),-1===n.host.indexOf("fblocal")&&Ve.getInstance().on("online",u.onOnline_,u),u}return y.__extends(e,t),e.prototype.sendRequest=function(t,e,n){var r=++this.requestNumber_,i={r:r,a:t,b:e};this.log_(g.stringify(i)),g.assert(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(i),n&&(this.requestCBHash_[r]=n)},e.prototype.listen=function(t,e,n,r){var i=t.queryIdentifier(),o=t.path.toString();this.log_("Listen called for "+o+" "+i),this.listens_[o]=this.listens_[o]||{},g.assert(t.getQueryParams().isDefault()||!t.getQueryParams().loadsAllData(),"listen() called for non-default but complete query"),g.assert(!this.listens_[o][i],"listen() called twice for same path/queryId.");var s={onComplete:r,hashFn:e,query:t,tag:n};this.listens_[o][i]=s,this.connected_&&this.sendListen_(s)},e.prototype.sendListen_=function(t){var n=this,r=t.query,i=r.path.toString(),o=r.queryIdentifier();this.log_("Listen on "+i+" for "+o);var s={p:i};t.tag&&(s.q=r.queryObject(),s.t=t.tag),s.h=t.hashFn(),this.sendRequest("q",s,function(s){var a=s.d,u=s.s;e.warnOnListenWarnings_(a,r),(n.listens_[i]&&n.listens_[i][o])===t&&(n.log_("listen response",s),"ok"!==u&&n.removeListen_(i,o),t.onComplete&&t.onComplete(u,a))})},e.warnOnListenWarnings_=function(t,e){if(t&&"object"==typeof t&&g.contains(t,"w")){var n=g.safeGet(t,"w");if(Array.isArray(n)&&~n.indexOf("no_index")){var r='".indexOn": "'+e.getQueryParams().getIndex().toString()+'"',i=e.path.toString();M("Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding "+r+" at "+i+" to your security rules for better performance.")}}},e.prototype.refreshAuthToken=function(t){this.authToken_=t,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},function(){}),this.reduceReconnectDelayIfAdminCredential_(t)},e.prototype.reduceReconnectDelayIfAdminCredential_=function(t){(t&&40===t.length||g.isAdmin(t))&&(this.log_("Admin auth credential detected.  Reducing max reconnect time."),this.maxReconnectDelay_=3e4)},e.prototype.tryAuth=function(){var t=this;if(this.connected_&&this.authToken_){var e=this.authToken_,n=g.isValidFormat(e)?"auth":"gauth",r={cred:e};null===this.authOverride_?r.noauth=!0:"object"==typeof this.authOverride_&&(r.authvar=this.authOverride_),this.sendRequest(n,r,function(n){var r=n.s,i=n.d||"error";t.authToken_===e&&("ok"===r?t.invalidAuthTokenCount_=0:t.onAuthRevoked_(r,i))})}},e.prototype.unlisten=function(t,e){var n=t.path.toString(),r=t.queryIdentifier();this.log_("Unlisten called for "+n+" "+r),g.assert(t.getQueryParams().isDefault()||!t.getQueryParams().loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(n,r)&&this.connected_&&this.sendUnlisten_(n,r,t.queryObject(),e)},e.prototype.sendUnlisten_=function(t,e,n,r){this.log_("Unlisten on "+t+" for "+e);var i={p:t};r&&(i.q=n,i.t=r),this.sendRequest("n",i)},e.prototype.onDisconnectPut=function(t,e,n){this.connected_?this.sendOnDisconnect_("o",t,e,n):this.onDisconnectRequestQueue_.push({pathString:t,action:"o",data:e,onComplete:n})},e.prototype.onDisconnectMerge=function(t,e,n){this.connected_?this.sendOnDisconnect_("om",t,e,n):this.onDisconnectRequestQueue_.push({pathString:t,action:"om",data:e,onComplete:n})},e.prototype.onDisconnectCancel=function(t,e){this.connected_?this.sendOnDisconnect_("oc",t,null,e):this.onDisconnectRequestQueue_.push({pathString:t,action:"oc",data:null,onComplete:e})},e.prototype.sendOnDisconnect_=function(t,e,n,r){var i={p:e,d:n};this.log_("onDisconnect "+t,i),this.sendRequest(t,i,function(t){r&&setTimeout(function(){r(t.s,t.d)},Math.floor(0))})},e.prototype.put=function(t,e,n,r){this.putInternal("p",t,e,n,r)},e.prototype.merge=function(t,e,n,r){this.putInternal("m",t,e,n,r)},e.prototype.putInternal=function(t,e,n,r,i){var o={p:e,d:n};void 0!==i&&(o.h=i),this.outstandingPuts_.push({action:t,request:o,onComplete:r}),this.outstandingPutCount_++,this.connected_?this.sendPut_(this.outstandingPuts_.length-1):this.log_("Buffering put: "+e)},e.prototype.sendPut_=function(t){var e=this,n=this.outstandingPuts_[t].action,r=this.outstandingPuts_[t].request,i=this.outstandingPuts_[t].onComplete;this.outstandingPuts_[t].queued=this.connected_,this.sendRequest(n,r,function(r){e.log_(n+" response",r),delete e.outstandingPuts_[t],e.outstandingPutCount_--,0===e.outstandingPutCount_&&(e.outstandingPuts_=[]),i&&i(r.s,r.d)})},e.prototype.reportStats=function(t){var e=this;if(this.connected_){var n={c:t};this.log_("reportStats",n),this.sendRequest("s",n,function(t){"ok"!==t.s&&e.log_("reportStats","Error sending stats: "+t.d)})}},e.prototype.onDataMessage_=function(t){if("r"in t){this.log_("from server: "+g.stringify(t));var e=t.r,n=this.requestCBHash_[e];n&&(delete this.requestCBHash_[e],n(t.b))}else{if("error"in t)throw"A server-side error has occurred: "+t.error;"a"in t&&this.onDataPush_(t.a,t.b)}},e.prototype.onDataPush_=function(t,e){this.log_("handleServerMessage",t,e),"d"===t?this.onDataUpdate_(e.p,e.d,!1,e.t):"m"===t?this.onDataUpdate_(e.p,e.d,!0,e.t):"c"===t?this.onListenRevoked_(e.p,e.q):"ac"===t?this.onAuthRevoked_(e.s,e.d):"sd"===t?this.onSecurityDebugPacket_(e):R("Unrecognized action received from server: "+g.stringify(t)+"\nAre you using the latest client?")},e.prototype.onReady_=function(t,e){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(t),this.lastSessionId=e,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)},e.prototype.scheduleConnect_=function(t){var e=this;g.assert(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout(function(){e.establishConnectionTimer_=null,e.establishConnection_()},Math.floor(t))},e.prototype.onVisible_=function(t){t&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible.  Reducing delay."),this.reconnectDelay_=Je,this.realtime_||this.scheduleConnect_(0)),this.visible_=t},e.prototype.onOnline_=function(t){t?(this.log_("Browser went online."),this.reconnectDelay_=Je,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline.  Killing connection."),this.realtime_&&this.realtime_.close())},e.prototype.onRealtimeDisconnect_=function(){if(this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()){this.visible_?this.lastConnectionEstablishedTime_&&((new Date).getTime()-this.lastConnectionEstablishedTime_>3e4&&(this.reconnectDelay_=Je),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible.  Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime());var t=(new Date).getTime()-this.lastConnectionAttemptTime_,e=Math.max(0,this.reconnectDelay_-t);e=Math.random()*e,this.log_("Trying to reconnect in "+e+"ms"),this.scheduleConnect_(e),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)}this.onConnectStatus_(!1)},e.prototype.establishConnection_=function(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;var t=this.onDataMessage_.bind(this),n=this.onReady_.bind(this),r=this.onRealtimeDisconnect_.bind(this),i=this.id+":"+e.nextConnectionId_++,o=this,s=this.lastSessionId,a=!1,u=null,l=function(){u?u.close():(a=!0,r())};this.realtime_={close:l,sendRequest:function(t){g.assert(u,"sendRequest call when we're not connected not allowed."),u.sendRequest(t)}};var c=this.forceTokenRefresh_;this.forceTokenRefresh_=!1,this.authTokenProvider_.getToken(c).then(function(e){a?N("getToken() completed but was canceled"):(N("getToken() completed. Creating connection."),o.authToken_=e&&e.accessToken,u=new Ye(i,o.repoInfo_,t,n,r,function(t){M(t+" ("+o.repoInfo_.toString()+")"),o.interrupt("server_kill")},s))}).then(null,function(t){o.log_("Failed to get token: "+t),a||(g.CONSTANTS.NODE_ADMIN&&M(t),l())})}},e.prototype.interrupt=function(t){N("Interrupting connection for reason: "+t),this.interruptReasons_[t]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())},e.prototype.resume=function(t){N("Resuming connection for reason: "+t),delete this.interruptReasons_[t],g.isEmpty(this.interruptReasons_)&&(this.reconnectDelay_=Je,this.realtime_||this.scheduleConnect_(0))},e.prototype.handleTimestamp_=function(t){var e=t-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:e})},e.prototype.cancelSentTransactions_=function(){for(var t=0;t<this.outstandingPuts_.length;t++){var e=this.outstandingPuts_[t];e&&"h"in e.request&&e.queued&&(e.onComplete&&e.onComplete("disconnect"),delete this.outstandingPuts_[t],this.outstandingPutCount_--)}0===this.outstandingPutCount_&&(this.outstandingPuts_=[])},e.prototype.onListenRevoked_=function(t,e){var n;n=e?e.map(function(t){return B(t)}).join("$"):"default";var r=this.removeListen_(t,n);r&&r.onComplete&&r.onComplete("permission_denied")},e.prototype.removeListen_=function(t,e){var n,r=new J(t).toString();return void 0!==this.listens_[r]?(n=this.listens_[r][e],delete this.listens_[r][e],0===g.getCount(this.listens_[r])&&delete this.listens_[r]):n=void 0,n},e.prototype.onAuthRevoked_=function(t,e){N("Auth token revoked: "+t+"/"+e),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==t&&"permission_denied"!==t||(this.invalidAuthTokenCount_++,this.invalidAuthTokenCount_>=3&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))},e.prototype.onSecurityDebugPacket_=function(t){this.securityDebugCallback_?this.securityDebugCallback_(t):"msg"in t&&console.log("FIREBASE: "+t.msg.replace("\n","\nFIREBASE: "))},e.prototype.restoreState_=function(){var t=this;this.tryAuth(),g.forEach(this.listens_,function(e,n){g.forEach(n,function(e,n){t.sendListen_(n)})});for(var e=0;e<this.outstandingPuts_.length;e++)this.outstandingPuts_[e]&&this.sendPut_(e);for(;this.onDisconnectRequestQueue_.length;){var n=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(n.action,n.pathString,n.data,n.onComplete)}},e.prototype.sendConnectStats_=function(){var t={},e="js";g.CONSTANTS.NODE_ADMIN?e="admin_node":g.CONSTANTS.NODE_CLIENT&&(e="node"),t["sdk."+e+"."+m.SDK_VERSION.replace(/\./g,"-")]=1,g.isMobileCordova()?t["framework.cordova"]=1:g.isReactNative()&&(t["framework.reactnative"]=1),this.reportStats(t)},e.prototype.shouldReconnect_=function(){var t=Ve.getInstance().currentlyOnline();return g.isEmpty(this.interruptReasons_)&&t},e.nextPersistentConnectionId_=0,e.nextConnectionId_=0,e}(Xe),tn=function(t){function e(e,n,r){var i=t.call(this)||this;return i.repoInfo_=e,i.onDataUpdate_=n,i.authTokenProvider_=r,i.log_=D("p:rest:"),i.listens_={},i}return y.__extends(e,t),e.prototype.reportStats=function(t){throw new Error("Method not implemented.")},e.getListenId_=function(t,e){return void 0!==e?"tag$"+e:(g.assert(t.getQueryParams().isDefault(),"should have a tag if it's not a default query."),t.path.toString())},e.prototype.listen=function(t,n,r,i){var o=this,s=t.path.toString();this.log_("Listen called for "+s+" "+t.queryIdentifier());var a=e.getListenId_(t,r),u={};this.listens_[a]=u;var l=t.getQueryParams().toRestQueryStringParameters();this.restRequest_(s+".json",l,function(t,e){var n=e;404===t&&(n=null,t=null),null===t&&o.onDataUpdate_(s,n,!1,r),g.safeGet(o.listens_,a)===u&&i(t?401==t?"permission_denied":"rest_error:"+t:"ok",null)})},e.prototype.unlisten=function(t,n){var r=e.getListenId_(t,n);delete this.listens_[r]},e.prototype.refreshAuthToken=function(t){},e.prototype.restRequest_=function(t,e,n){var r=this;void 0===e&&(e={}),e.format="export",this.authTokenProvider_.getToken(!1).then(function(i){var o=i&&i.accessToken;o&&(e.auth=o);var s=(r.repoInfo_.secure?"https://":"http://")+r.repoInfo_.host+t+"?ns="+r.repoInfo_.namespace+g.querystring(e);r.log_("Sending REST request for "+s);var a=new XMLHttpRequest;a.onreadystatechange=function(){if(n&&4===a.readyState){r.log_("REST Response for "+s+" received. status:",a.status,"response:",a.responseText);var t=null;if(a.status>=200&&a.status<300){try{t=g.jsonEval(a.responseText)}catch(e){M("Failed to parse JSON response for "+s+": "+a.responseText)}n(null,t)}else 401!==a.status&&404!==a.status&&M("Got unsuccessful REST response for "+s+" Status: "+a.status),n(a.status);n=null}},a.open("GET",s,!0),a.send()})},e}(Xe),en=function(){function t(t,e,n){var r=this;this.repoInfo_=t,this.app=n,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Le,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=new ee,this.persistentConnection_=null;var i=new Ae(n);if(this.stats_=Ne.getCollection(t),e||Y())this.server_=new tn(this.repoInfo_,this.onDataUpdate_.bind(this),i),setTimeout(this.onConnectStatus_.bind(this,!0),0);else{var o=n.options.databaseAuthVariableOverride;if(null!=o){if("object"!=typeof o)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{g.stringify(o)}catch(s){throw new Error("Invalid authOverride provided: "+s)}}this.persistentConnection_=new $e(this.repoInfo_,this.onDataUpdate_.bind(this),this.onConnectStatus_.bind(this),this.onServerInfoUpdate_.bind(this),i,o),this.server_=this.persistentConnection_}i.addTokenChangeListener(function(t){r.server_.refreshAuthToken(t)}),this.statsReporter_=Ne.getOrCreateReporter(t,function(){return new Me(r.stats_,r.server_)}),this.transactions_init_(),this.infoData_=new ke,this.infoSyncTree_=new xe({startListening:function(t,e,n,i){var o=[],s=r.infoData_.getNode(t.path);return s.isEmpty()||(o=r.infoSyncTree_.applyServerOverwrite(t.path,s),setTimeout(function(){i("ok")},0)),o},stopListening:function(){}}),this.updateInfo_("connected",!1),this.serverSyncTree_=new xe({startListening:function(t,e,n,i){return r.server_.listen(t,n,e,function(e,n){var o=i(e,n);r.eventQueue_.raiseEventsForChangedPath(t.path,o)}),[]},stopListening:function(t,e){r.server_.unlisten(t,e)}})}return t.prototype.toString=function(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host},t.prototype.name=function(){return this.repoInfo_.namespace},t.prototype.serverTime=function(){var t=this.infoData_.getNode(new J(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t},t.prototype.generateServerValues=function(){return(t=(t={timestamp:this.serverTime()})||{}).timestamp=t.timestamp||(new Date).getTime(),t;var t},t.prototype.onDataUpdate_=function(t,e,n,r){this.dataUpdateCount++;var i=new J(t);e=this.interceptServerDataCallback_?this.interceptServerDataCallback_(t,e):e;var o=[];if(r)if(n){var s=g.map(e,function(t){return Bt(t)});o=this.serverSyncTree_.applyTaggedQueryMerge(i,s,r)}else{var a=Bt(e);o=this.serverSyncTree_.applyTaggedQueryOverwrite(i,a,r)}else if(n){var u=g.map(e,function(t){return Bt(t)});o=this.serverSyncTree_.applyServerMerge(i,u)}else{var l=Bt(e);o=this.serverSyncTree_.applyServerOverwrite(i,l)}var c=i;o.length>0&&(c=this.rerunTransactions_(i)),this.eventQueue_.raiseEventsForChangedPath(c,o)},t.prototype.interceptServerData_=function(t){this.interceptServerDataCallback_=t},t.prototype.onConnectStatus_=function(t){this.updateInfo_("connected",t),!1===t&&this.runOnDisconnectEvents_()},t.prototype.onServerInfoUpdate_=function(t){var e=this;z(t,function(t,n){e.updateInfo_(n,t)})},t.prototype.updateInfo_=function(t,e){var n=new J("/.info/"+t),r=Bt(e);this.infoData_.updateSnapshot(n,r);var i=this.infoSyncTree_.applyServerOverwrite(n,r);this.eventQueue_.raiseEventsForChangedPath(n,i)},t.prototype.getNextWriteId_=function(){return this.nextWriteId_++},t.prototype.setWithPriority=function(t,e,n,r){var i=this;this.log_("set",{path:t.toString(),value:e,priority:n});var o=this.generateServerValues(),s=Bt(e,n),a=re(s,o),u=this.getNextWriteId_(),l=this.serverSyncTree_.applyUserOverwrite(t,a,u,!0);this.eventQueue_.queueEvents(l),this.server_.put(t.toString(),s.val(!0),function(e,n){var o="ok"===e;o||M("set at "+t+" failed: "+e);var s=i.serverSyncTree_.ackUserWrite(u,!o);i.eventQueue_.raiseEventsForChangedPath(t,s),i.callOnCompleteCallback(r,e,n)});var c=this.abortTransactions_(t);this.rerunTransactions_(c),this.eventQueue_.raiseEventsForChangedPath(c,[])},t.prototype.update=function(t,e,n){var r=this;this.log_("update",{path:t.toString(),value:e});var i=!0,o=this.generateServerValues(),s={};if(g.forEach(e,function(t,e){i=!1;var n=Bt(e);s[t]=re(n,o)}),i)N("update() called with empty data.  Don't do anything."),this.callOnCompleteCallback(n,"ok");else{var a=this.getNextWriteId_(),u=this.serverSyncTree_.applyUserMerge(t,s,a);this.eventQueue_.queueEvents(u),this.server_.merge(t.toString(),e,function(e,i){var o="ok"===e;o||M("update at "+t+" failed: "+e);var s=r.serverSyncTree_.ackUserWrite(a,!o),u=s.length>0?r.rerunTransactions_(t):t;r.eventQueue_.raiseEventsForChangedPath(u,s),r.callOnCompleteCallback(n,e,i)}),g.forEach(e,function(e){var n=r.abortTransactions_(t.child(e));r.rerunTransactions_(n)}),this.eventQueue_.raiseEventsForChangedPath(t,[])}},t.prototype.runOnDisconnectEvents_=function(){var t=this;this.log_("onDisconnectEvents");var e=this.generateServerValues(),n=function(t,e){var n=new ee;return t.forEachTree(new J(""),function(t,r){n.remember(t,re(r,e))}),n}(this.onDisconnect_,e),r=[];n.forEachTree(J.Empty,function(e,n){r=r.concat(t.serverSyncTree_.applyServerOverwrite(e,n));var i=t.abortTransactions_(e);t.rerunTransactions_(i)}),this.onDisconnect_=new ee,this.eventQueue_.raiseEventsForChangedPath(J.Empty,r)},t.prototype.onDisconnectCancel=function(t,e){var n=this;this.server_.onDisconnectCancel(t.toString(),function(r,i){"ok"===r&&n.onDisconnect_.forget(t),n.callOnCompleteCallback(e,r,i)})},t.prototype.onDisconnectSet=function(t,e,n){var r=this,i=Bt(e);this.server_.onDisconnectPut(t.toString(),i.val(!0),function(e,o){"ok"===e&&r.onDisconnect_.remember(t,i),r.callOnCompleteCallback(n,e,o)})},t.prototype.onDisconnectSetWithPriority=function(t,e,n,r){var i=this,o=Bt(e,n);this.server_.onDisconnectPut(t.toString(),o.val(!0),function(e,n){"ok"===e&&i.onDisconnect_.remember(t,o),i.callOnCompleteCallback(r,e,n)})},t.prototype.onDisconnectUpdate=function(t,e,n){var r=this;if(g.isEmpty(e))return N("onDisconnect().update() called with empty data.  Don't do anything."),void this.callOnCompleteCallback(n,"ok");this.server_.onDisconnectMerge(t.toString(),e,function(i,o){"ok"===i&&g.forEach(e,function(e,n){var i=Bt(n);r.onDisconnect_.remember(t.child(e),i)}),r.callOnCompleteCallback(n,i,o)})},t.prototype.addEventCallbackForQuery=function(t,e){var n;n=".info"===t.path.getFront()?this.infoSyncTree_.addEventRegistration(t,e):this.serverSyncTree_.addEventRegistration(t,e),this.eventQueue_.raiseEventsAtPath(t.path,n)},t.prototype.removeEventCallbackForQuery=function(t,e){var n;n=".info"===t.path.getFront()?this.infoSyncTree_.removeEventRegistration(t,e):this.serverSyncTree_.removeEventRegistration(t,e),this.eventQueue_.raiseEventsAtPath(t.path,n)},t.prototype.interrupt=function(){this.persistentConnection_&&this.persistentConnection_.interrupt("repo_interrupt")},t.prototype.resume=function(){this.persistentConnection_&&this.persistentConnection_.resume("repo_interrupt")},t.prototype.stats=function(t){if(void 0===t&&(t=!1),"undefined"!=typeof console){var e;t?(this.statsListener_||(this.statsListener_=new De(this.stats_)),e=this.statsListener_.get()):e=this.stats_.get();var n=Object.keys(e).reduce(function(t,e){return Math.max(e.length,t)},0);g.forEach(e,function(t,e){for(var r=t.length;r<n+2;r++)t+=" ";console.log(t+e)})}},t.prototype.statsIncrementCounter=function(t){this.stats_.incrementCounter(t),this.statsReporter_.includeStat(t)},t.prototype.log_=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n="";this.persistentConnection_&&(n=this.persistentConnection_.id+":"),N.apply(void 0,[n].concat(t))},t.prototype.callOnCompleteCallback=function(t,e,n){t&&G(function(){if("ok"==e)t(null);else{var r=(e||"error").toUpperCase(),i=r;n&&(i+=": "+n);var o=new Error(i);o.code=r,t(o)}})},Object.defineProperty(t.prototype,"database",{get:function(){return this.__database||(this.__database=new pn(this))},enumerable:!0,configurable:!0}),t}(),nn=function(){function t(e){this.indexedFilter_=new me(e.getIndex()),this.index_=e.getIndex(),this.startPost_=t.getStartPost_(e),this.endPost_=t.getEndPost_(e)}return t.prototype.getStartPost=function(){return this.startPost_},t.prototype.getEndPost=function(){return this.endPost_},t.prototype.matches=function(t){return this.index_.compare(this.getStartPost(),t)<=0&&this.index_.compare(t,this.getEndPost())<=0},t.prototype.updateChild=function(t,e,n,r,i,o){return this.matches(new bt(e,n))||(n=Ut.EMPTY_NODE),this.indexedFilter_.updateChild(t,e,n,r,i,o)},t.prototype.updateFullNode=function(t,e,n){e.isLeafNode()&&(e=Ut.EMPTY_NODE);var r=e.withIndex(this.index_);r=r.updatePriority(Ut.EMPTY_NODE);var i=this;return e.forEachChild(xt,function(t,e){i.matches(new bt(t,e))||(r=r.updateImmediateChild(t,Ut.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(t,r,n)},t.prototype.updatePriority=function(t,e){return t},t.prototype.filtersNodes=function(){return!0},t.prototype.getIndexedFilter=function(){return this.indexedFilter_},t.prototype.getIndex=function(){return this.index_},t.getStartPost_=function(t){if(t.hasStart()){var e=t.getIndexStartName();return t.getIndex().makePost(t.getIndexStartValue(),e)}return t.getIndex().minPost()},t.getEndPost_=function(t){if(t.hasEnd()){var e=t.getIndexEndName();return t.getIndex().makePost(t.getIndexEndValue(),e)}return t.getIndex().maxPost()},t}(),rn=function(){function t(t){this.rangedFilter_=new nn(t),this.index_=t.getIndex(),this.limit_=t.getLimit(),this.reverse_=!t.isViewFromLeft()}return t.prototype.updateChild=function(t,e,n,r,i,o){return this.rangedFilter_.matches(new bt(e,n))||(n=Ut.EMPTY_NODE),t.getImmediateChild(e).equals(n)?t:t.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(t,e,n,r,i,o):this.fullLimitUpdateChild_(t,e,n,i,o)},t.prototype.updateFullNode=function(t,e,n){var r;if(e.isLeafNode()||e.isEmpty())r=Ut.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<e.numChildren()&&e.isIndexed(this.index_)){r=Ut.EMPTY_NODE.withIndex(this.index_);var i=void 0;i=this.reverse_?e.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):e.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_);for(var o=0;i.hasNext()&&o<this.limit_;){var s=i.getNext();if(!(this.reverse_?this.index_.compare(this.rangedFilter_.getStartPost(),s)<=0:this.index_.compare(s,this.rangedFilter_.getEndPost())<=0))break;r=r.updateImmediateChild(s.name,s.node),o++}}else{r=(r=e.withIndex(this.index_)).updatePriority(Ut.EMPTY_NODE);var a=void 0,u=void 0,l=void 0;if(i=void 0,this.reverse_){i=r.getReverseIterator(this.index_),a=this.rangedFilter_.getEndPost(),u=this.rangedFilter_.getStartPost();var c=this.index_.getCompare();l=function(t,e){return c(e,t)}}else i=r.getIterator(this.index_),a=this.rangedFilter_.getStartPost(),u=this.rangedFilter_.getEndPost(),l=this.index_.getCompare();o=0;for(var h=!1;i.hasNext();)s=i.getNext(),!h&&l(a,s)<=0&&(h=!0),h&&o<this.limit_&&l(s,u)<=0?o++:r=r.updateImmediateChild(s.name,Ut.EMPTY_NODE)}return this.rangedFilter_.getIndexedFilter().updateFullNode(t,r,n)},t.prototype.updatePriority=function(t,e){return t},t.prototype.filtersNodes=function(){return!0},t.prototype.getIndexedFilter=function(){return this.rangedFilter_.getIndexedFilter()},t.prototype.getIndex=function(){return this.index_},t.prototype.fullLimitUpdateChild_=function(t,e,n,r,i){var o;if(this.reverse_){var s=this.index_.getCompare();o=function(t,e){return s(e,t)}}else o=this.index_.getCompare();var a=t;g.assert(a.numChildren()==this.limit_,"");var u=new bt(e,n),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),c=this.rangedFilter_.matches(u);if(a.hasChild(e)){for(var h=a.getImmediateChild(e),p=r.getChildAfterChild(this.index_,l,this.reverse_);null!=p&&(p.name==e||a.hasChild(p.name));)p=r.getChildAfterChild(this.index_,p,this.reverse_);var f=null==p?1:o(p,u);if(c&&!n.isEmpty()&&f>=0)return null!=i&&i.trackChildChange(de.childChangedChange(e,n,h)),a.updateImmediateChild(e,n);null!=i&&i.trackChildChange(de.childRemovedChange(e,h));var d=a.updateImmediateChild(e,Ut.EMPTY_NODE);return null!=p&&this.rangedFilter_.matches(p)?(null!=i&&i.trackChildChange(de.childAddedChange(p.name,p.node)),d.updateImmediateChild(p.name,p.node)):d}return n.isEmpty()?t:c&&o(l,u)>=0?(null!=i&&(i.trackChildChange(de.childRemovedChange(l.name,l.node)),i.trackChildChange(de.childAddedChange(e,n))),a.updateImmediateChild(e,n).updateImmediateChild(l.name,Ut.EMPTY_NODE)):t},t}(),on=function(){function t(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=xt}return t.prototype.hasStart=function(){return this.startSet_},t.prototype.isViewFromLeft=function(){return""===this.viewFrom_?this.startSet_:this.viewFrom_===t.WIRE_PROTOCOL_CONSTANTS_.VIEW_FROM_LEFT},t.prototype.getIndexStartValue=function(){return g.assert(this.startSet_,"Only valid if start has been set"),this.indexStartValue_},t.prototype.getIndexStartName=function(){return g.assert(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:F},t.prototype.hasEnd=function(){return this.endSet_},t.prototype.getIndexEndValue=function(){return g.assert(this.endSet_,"Only valid if end has been set"),this.indexEndValue_},t.prototype.getIndexEndName=function(){return g.assert(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:j},t.prototype.hasLimit=function(){return this.limitSet_},t.prototype.hasAnchoredLimit=function(){return this.limitSet_&&""!==this.viewFrom_},t.prototype.getLimit=function(){return g.assert(this.limitSet_,"Only valid if limit has been set"),this.limit_},t.prototype.getIndex=function(){return this.index_},t.prototype.copy_=function(){var e=new t;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e},t.prototype.limit=function(t){var e=this.copy_();return e.limitSet_=!0,e.limit_=t,e.viewFrom_="",e},t.prototype.limitToFirst=function(e){var n=this.copy_();return n.limitSet_=!0,n.limit_=e,n.viewFrom_=t.WIRE_PROTOCOL_CONSTANTS_.VIEW_FROM_LEFT,n},t.prototype.limitToLast=function(e){var n=this.copy_();return n.limitSet_=!0,n.limit_=e,n.viewFrom_=t.WIRE_PROTOCOL_CONSTANTS_.VIEW_FROM_RIGHT,n},t.prototype.startAt=function(t,e){var n=this.copy_();return n.startSet_=!0,void 0===t&&(t=null),n.indexStartValue_=t,null!=e?(n.startNameSet_=!0,n.indexStartName_=e):(n.startNameSet_=!1,n.indexStartName_=""),n},t.prototype.endAt=function(t,e){var n=this.copy_();return n.endSet_=!0,void 0===t&&(t=null),n.indexEndValue_=t,void 0!==e?(n.endNameSet_=!0,n.indexEndName_=e):(n.endNameSet_=!1,n.indexEndName_=""),n},t.prototype.orderBy=function(t){var e=this.copy_();return e.index_=t,e},t.prototype.getQueryObject=function(){var e=t.WIRE_PROTOCOL_CONSTANTS_,n={};if(this.startSet_&&(n[e.INDEX_START_VALUE]=this.indexStartValue_,this.startNameSet_&&(n[e.INDEX_START_NAME]=this.indexStartName_)),this.endSet_&&(n[e.INDEX_END_VALUE]=this.indexEndValue_,this.endNameSet_&&(n[e.INDEX_END_NAME]=this.indexEndName_)),this.limitSet_){n[e.LIMIT]=this.limit_;var r=this.viewFrom_;""===r&&(r=this.isViewFromLeft()?e.VIEW_FROM_LEFT:e.VIEW_FROM_RIGHT),n[e.VIEW_FROM]=r}return this.index_!==xt&&(n[e.INDEX]=this.index_.toString()),n},t.prototype.loadsAllData=function(){return!(this.startSet_||this.endSet_||this.limitSet_)},t.prototype.isDefault=function(){return this.loadsAllData()&&this.index_==xt},t.prototype.getNodeFilter=function(){return this.loadsAllData()?new me(this.getIndex()):this.hasLimit()?new rn(this):new nn(this)},t.prototype.toRestQueryStringParameters=function(){var e,n=t.REST_QUERY_CONSTANTS_,r={};return this.isDefault()?r:(this.index_===xt?e=n.PRIORITY_INDEX:this.index_===Qt?e=n.VALUE_INDEX:this.index_===St?e=n.KEY_INDEX:(g.assert(this.index_ instanceof Kt,"Unrecognized index type!"),e=this.index_.toString()),r[n.ORDER_BY]=g.stringify(e),this.startSet_&&(r[n.START_AT]=g.stringify(this.indexStartValue_),this.startNameSet_&&(r[n.START_AT]+=","+g.stringify(this.indexStartName_))),this.endSet_&&(r[n.END_AT]=g.stringify(this.indexEndValue_),this.endNameSet_&&(r[n.END_AT]+=","+g.stringify(this.indexEndName_))),this.limitSet_&&(this.isViewFromLeft()?r[n.LIMIT_TO_FIRST]=this.limit_:r[n.LIMIT_TO_LAST]=this.limit_),r)},t.WIRE_PROTOCOL_CONSTANTS_={INDEX_START_VALUE:"sp",INDEX_START_NAME:"sn",INDEX_END_VALUE:"ep",INDEX_END_NAME:"en",LIMIT:"l",VIEW_FROM:"vf",VIEW_FROM_LEFT:"l",VIEW_FROM_RIGHT:"r",INDEX:"i"},t.REST_QUERY_CONSTANTS_={ORDER_BY:"orderBy",PRIORITY_INDEX:"$priority",VALUE_INDEX:"$value",KEY_INDEX:"$key",START_AT:"startAt",END_AT:"endAt",LIMIT_TO_FIRST:"limitToFirst",LIMIT_TO_LAST:"limitToLast"},t.DEFAULT=new t,t}(),sn=function(t){function e(e,n){if(!(e instanceof en))throw new Error("new Reference() no longer supported - use app.database().");return t.call(this,e,n,on.DEFAULT,!1)||this}return y.__extends(e,t),e.prototype.getKey=function(){return g.validateArgCount("Reference.key",0,0,arguments.length),this.path.isEmpty()?null:this.path.getBack()},e.prototype.child=function(t){return g.validateArgCount("Reference.child",1,1,arguments.length),"number"==typeof t?t=String(t):t instanceof J||(null===this.path.getFront()?function(t,e,n,r){n&&(n=n.replace(/^\/*\.info(\/|$)/,"/")),dt("Reference.child",1,n,!1)}(0,0,t):dt("Reference.child",1,t,!1)),new e(this.repo,this.path.child(t))},e.prototype.getParent=function(){g.validateArgCount("Reference.parent",0,0,arguments.length);var t=this.path.parent();return null===t?null:new e(this.repo,t)},e.prototype.getRoot=function(){g.validateArgCount("Reference.root",0,0,arguments.length);for(var t=this;null!==t.getParent();)t=t.getParent();return t},e.prototype.databaseProp=function(){return this.repo.database},e.prototype.set=function(t,e){g.validateArgCount("Reference.set",1,2,arguments.length),mt("Reference.set",this.path),ut("Reference.set",1,t,this.path,!1),g.validateCallback("Reference.set",2,e,!0);var n=new g.Deferred;return this.repo.setWithPriority(this.path,t,null,n.wrapCallback(e)),n.promise},e.prototype.update=function(t,e){if(g.validateArgCount("Reference.update",1,2,arguments.length),mt("Reference.update",this.path),Array.isArray(t)){for(var n={},r=0;r<t.length;++r)n[""+r]=t[r];t=n,M("Passing an Array to Firebase.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}ct("Reference.update",1,t,this.path,!1),g.validateCallback("Reference.update",2,e,!0);var i=new g.Deferred;return this.repo.update(this.path,t,i.wrapCallback(e)),i.promise},e.prototype.setWithPriority=function(t,e,n){if(g.validateArgCount("Reference.setWithPriority",2,3,arguments.length),mt("Reference.setWithPriority",this.path),ut("Reference.setWithPriority",1,t,this.path,!1),ht("Reference.setWithPriority",2,e,!1),g.validateCallback("Reference.setWithPriority",3,n,!0),".length"===this.getKey()||".keys"===this.getKey())throw"Reference.setWithPriority failed: "+this.getKey()+" is a read-only object.";var r=new g.Deferred;return this.repo.setWithPriority(this.path,t,e,r.wrapCallback(n)),r.promise},e.prototype.remove=function(t){return g.validateArgCount("Reference.remove",0,1,arguments.length),mt("Reference.remove",this.path),g.validateCallback("Reference.remove",1,t,!0),this.set(null,t)},e.prototype.transaction=function(t,e,n){if(g.validateArgCount("Reference.transaction",1,3,arguments.length),mt("Reference.transaction",this.path),g.validateCallback("Reference.transaction",1,t,!1),g.validateCallback("Reference.transaction",2,e,!0),function(t,e,r,i){if(void 0!==n&&"boolean"!=typeof n)throw new Error(g.errorPrefix("Reference.transaction",3,!0)+"must be a boolean.")}(),".length"===this.getKey()||".keys"===this.getKey())throw"Reference.transaction failed: "+this.getKey()+" is a read-only object.";void 0===n&&(n=!0);var r=new g.Deferred;return"function"==typeof e&&r.promise.catch(function(){}),this.repo.startTransaction(this.path,t,function(t,n,i){t?r.reject(t):r.resolve(new vt(n,i)),"function"==typeof e&&e(t,n,i)},n),r.promise},e.prototype.setPriority=function(t,e){g.validateArgCount("Reference.setPriority",1,2,arguments.length),mt("Reference.setPriority",this.path),ht("Reference.setPriority",1,t,!1),g.validateCallback("Reference.setPriority",2,e,!0);var n=new g.Deferred;return this.repo.setWithPriority(this.path.child(".priority"),t,null,n.wrapCallback(e)),n.promise},e.prototype.push=function(t,e){g.validateArgCount("Reference.push",0,2,arguments.length),mt("Reference.push",this.path),ut("Reference.push",1,t,this.path,!0),g.validateCallback("Reference.push",2,e,!0);var n,r=this.repo.serverTime(),i=_t(r),o=this.child(i),s=this.child(i);return n=null!=t?o.set(t,e).then(function(){return s}):Promise.resolve(s),o.then=n.then.bind(n),o.catch=n.then.bind(n,void 0),"function"==typeof e&&n.catch(function(){}),o},e.prototype.onDisconnect=function(){return mt("Reference.onDisconnect",this.path),new gt(this.repo,this.path)},Object.defineProperty(e.prototype,"database",{get:function(){return this.databaseProp()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"key",{get:function(){return this.getKey()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this.getParent()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"root",{get:function(){return this.getRoot()},enumerable:!0,configurable:!0}),e}($t);$t.__referenceConstructor=sn,Se.__referenceConstructor=sn;var an=function(){return function(){this.children={},this.childCount=0,this.value=null}}(),un=function(){function t(t,e,n){void 0===t&&(t=""),void 0===e&&(e=null),void 0===n&&(n=new an),this.name_=t,this.parent_=e,this.node_=n}return t.prototype.subTree=function(e){for(var n,r=e instanceof J?e:new J(e),i=this;null!==(n=r.getFront());)i=new t(n,i,g.safeGet(i.node_.children,n)||new an),r=r.popFront();return i},t.prototype.getValue=function(){return this.node_.value},t.prototype.setValue=function(t){g.assert(void 0!==t,"Cannot set value to undefined"),this.node_.value=t,this.updateParents_()},t.prototype.clear=function(){this.node_.value=null,this.node_.children={},this.node_.childCount=0,this.updateParents_()},t.prototype.hasChildren=function(){return this.node_.childCount>0},t.prototype.isEmpty=function(){return null===this.getValue()&&!this.hasChildren()},t.prototype.forEachChild=function(e){var n=this;g.forEach(this.node_.children,function(r,i){e(new t(r,n,i))})},t.prototype.forEachDescendant=function(t,e,n){e&&!n&&t(this),this.forEachChild(function(e){e.forEachDescendant(t,!0,n)}),e&&n&&t(this)},t.prototype.forEachAncestor=function(t,e){for(var n=e?this:this.parent();null!==n;){if(t(n))return!0;n=n.parent()}return!1},t.prototype.forEachImmediateDescendantWithValue=function(t){this.forEachChild(function(e){null!==e.getValue()?t(e):e.forEachImmediateDescendantWithValue(t)})},t.prototype.path=function(){return new J(null===this.parent_?this.name_:this.parent_.path()+"/"+this.name_)},t.prototype.name=function(){return this.name_},t.prototype.parent=function(){return this.parent_},t.prototype.updateParents_=function(){null!==this.parent_&&this.parent_.updateChild_(this.name_,this)},t.prototype.updateChild_=function(t,e){var n=e.isEmpty(),r=g.contains(this.node_.children,t);n&&r?(delete this.node_.children[t],this.node_.childCount--,this.updateParents_()):n||r||(this.node_.children[t]=e.node_,this.node_.childCount++,this.updateParents_())},t}(),ln=function(t){return t[t.RUN=0]="RUN",t[t.SENT=1]="SENT",t[t.COMPLETED=2]="COMPLETED",t[t.SENT_NEEDS_ABORT=3]="SENT_NEEDS_ABORT",t[t.NEEDS_ABORT=4]="NEEDS_ABORT",t}({});en.MAX_TRANSACTION_RETRIES_=25,en.prototype.transactions_init_=function(){this.transactionQueueTree_=new un},en.prototype.startTransaction=function(t,e,n,r){this.log_("transaction on "+t);var i=function(){},o=new sn(this,t);o.on("value",i);var s={path:t,update:e,onComplete:n,status:null,order:T(),applyLocally:r,retryCount:0,unwatcher:function(){o.off("value",i)},abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},a=this.getLatestState_(t);s.currentInputSnapshot=a;var u=s.update(a.val());if(void 0===u){if(s.unwatcher(),s.currentOutputSnapshotRaw=null,s.currentOutputSnapshotResolved=null,s.onComplete){var l=new Gt(s.currentInputSnapshot,new sn(this,s.path),xt);s.onComplete(null,!1,l)}}else{lt("transaction failed: Data returned ",u,s.path),s.status=ln.RUN;var c=this.transactionQueueTree_.subTree(t),h=c.getValue()||[];h.push(s),c.setValue(h);var p=void 0;"object"==typeof u&&null!==u&&g.contains(u,".priority")?(p=g.safeGet(u,".priority"),g.assert(at(p),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):p=(this.serverSyncTree_.calcCompleteEventCache(t)||Ut.EMPTY_NODE).getPriority().val(),p=p;var f=this.generateServerValues(),d=Bt(u,p),m=re(d,f);s.currentOutputSnapshotRaw=d,s.currentOutputSnapshotResolved=m,s.currentWriteId=this.getNextWriteId_();var y=this.serverSyncTree_.applyUserOverwrite(t,m,s.currentWriteId,s.applyLocally);this.eventQueue_.raiseEventsForChangedPath(t,y),this.sendReadyTransactions_()}},en.prototype.getLatestState_=function(t,e){return this.serverSyncTree_.calcCompleteEventCache(t,e)||Ut.EMPTY_NODE},en.prototype.sendReadyTransactions_=function(t){var e=this;if(void 0===t&&(t=this.transactionQueueTree_),t||this.pruneCompletedTransactionsBelowNode_(t),null!==t.getValue()){var n=this.buildTransactionQueue_(t);g.assert(n.length>0,"Sending zero length transaction queue"),n.every(function(t){return t.status===ln.RUN})&&this.sendTransactionQueue_(t.path(),n)}else t.hasChildren()&&t.forEachChild(function(t){e.sendReadyTransactions_(t)})},en.prototype.sendTransactionQueue_=function(t,e){for(var n=this,r=e.map(function(t){return t.currentWriteId}),i=this.getLatestState_(t,r),o=i,s=i.hash(),a=0;a<e.length;a++){var u=e[a];g.assert(u.status===ln.RUN,"tryToSendTransactionQueue_: items in queue should all be run."),u.status=ln.SENT,u.retryCount++;var l=J.relativePath(t,u.path);o=o.updateChild(l,u.currentOutputSnapshotRaw)}var c=o.val(!0),h=t;this.server_.put(h.toString(),c,function(r){n.log_("transaction put response",{path:h.toString(),status:r});var i=[];if("ok"===r){for(var o=[],s=0;s<e.length;s++){if(e[s].status=ln.COMPLETED,i=i.concat(n.serverSyncTree_.ackUserWrite(e[s].currentWriteId)),e[s].onComplete){var a=e[s].currentOutputSnapshotResolved,u=new sn(n,e[s].path),l=new Gt(a,u,xt);o.push(e[s].onComplete.bind(null,null,!0,l))}e[s].unwatcher()}for(n.pruneCompletedTransactionsBelowNode_(n.transactionQueueTree_.subTree(t)),n.sendReadyTransactions_(),n.eventQueue_.raiseEventsForChangedPath(t,i),s=0;s<o.length;s++)G(o[s])}else{if("datastale"===r)for(s=0;s<e.length;s++)e[s].status=e[s].status===ln.SENT_NEEDS_ABORT?ln.NEEDS_ABORT:ln.RUN;else for(M("transaction at "+h.toString()+" failed: "+r),s=0;s<e.length;s++)e[s].status=ln.NEEDS_ABORT,e[s].abortReason=r;n.rerunTransactions_(t)}},s)},en.prototype.rerunTransactions_=function(t){var e=this.getAncestorTransactionNode_(t),n=e.path(),r=this.buildTransactionQueue_(e);return this.rerunTransactionQueue_(r,n),n},en.prototype.rerunTransactionQueue_=function(t,e){if(0!==t.length){for(var n=[],r=[],i=t.filter(function(t){return t.status===ln.RUN}).map(function(t){return t.currentWriteId}),o=0;o<t.length;o++){var s=t[o],a=J.relativePath(e,s.path),u=!1,l=void 0;if(g.assert(null!==a,"rerunTransactionsUnderNode_: relativePath should not be null."),s.status===ln.NEEDS_ABORT)u=!0,l=s.abortReason,r=r.concat(this.serverSyncTree_.ackUserWrite(s.currentWriteId,!0));else if(s.status===ln.RUN)if(s.retryCount>=en.MAX_TRANSACTION_RETRIES_)u=!0,l="maxretry",r=r.concat(this.serverSyncTree_.ackUserWrite(s.currentWriteId,!0));else{var c=this.getLatestState_(s.path,i);s.currentInputSnapshot=c;var h=t[o].update(c.val());if(void 0!==h){lt("transaction failed: Data returned ",h,s.path);var p=Bt(h);"object"==typeof h&&null!=h&&g.contains(h,".priority")||(p=p.updatePriority(c.getPriority()));var f=s.currentWriteId,d=this.generateServerValues(),m=re(p,d);s.currentOutputSnapshotRaw=p,s.currentOutputSnapshotResolved=m,s.currentWriteId=this.getNextWriteId_(),i.splice(i.indexOf(f),1),r=(r=r.concat(this.serverSyncTree_.applyUserOverwrite(s.path,m,s.currentWriteId,s.applyLocally))).concat(this.serverSyncTree_.ackUserWrite(f,!0))}else u=!0,l="nodata",r=r.concat(this.serverSyncTree_.ackUserWrite(s.currentWriteId,!0))}if(this.eventQueue_.raiseEventsForChangedPath(e,r),r=[],u&&(t[o].status=ln.COMPLETED,setTimeout(t[o].unwatcher,Math.floor(0)),t[o].onComplete))if("nodata"===l){var y=new sn(this,t[o].path),v=new Gt(t[o].currentInputSnapshot,y,xt);n.push(t[o].onComplete.bind(null,null,!1,v))}else n.push(t[o].onComplete.bind(null,new Error(l),!1,null))}for(this.pruneCompletedTransactionsBelowNode_(this.transactionQueueTree_),o=0;o<n.length;o++)G(n[o]);this.sendReadyTransactions_()}},en.prototype.getAncestorTransactionNode_=function(t){for(var e,n=this.transactionQueueTree_;null!==(e=t.getFront())&&null===n.getValue();)n=n.subTree(e),t=t.popFront();return n},en.prototype.buildTransactionQueue_=function(t){var e=[];return this.aggregateTransactionQueuesForNode_(t,e),e.sort(function(t,e){return t.order-e.order}),e},en.prototype.aggregateTransactionQueuesForNode_=function(t,e){var n=this,r=t.getValue();if(null!==r)for(var i=0;i<r.length;i++)e.push(r[i]);t.forEachChild(function(t){n.aggregateTransactionQueuesForNode_(t,e)})},en.prototype.pruneCompletedTransactionsBelowNode_=function(t){var e=this,n=t.getValue();if(n){for(var r=0,i=0;i<n.length;i++)n[i].status!==ln.COMPLETED&&(n[r]=n[i],r++);n.length=r,t.setValue(n.length>0?n:null)}t.forEachChild(function(t){e.pruneCompletedTransactionsBelowNode_(t)})},en.prototype.abortTransactions_=function(t){var e=this,n=this.getAncestorTransactionNode_(t).path(),r=this.transactionQueueTree_.subTree(t);return r.forEachAncestor(function(t){e.abortTransactionsOnNode_(t)}),this.abortTransactionsOnNode_(r),r.forEachDescendant(function(t){e.abortTransactionsOnNode_(t)}),n},en.prototype.abortTransactionsOnNode_=function(t){var e=t.getValue();if(null!==e){for(var n=[],r=[],i=-1,o=0;o<e.length;o++)e[o].status===ln.SENT_NEEDS_ABORT||(e[o].status===ln.SENT?(g.assert(i===o-1,"All SENT items should be at beginning of queue."),i=o,e[o].status=ln.SENT_NEEDS_ABORT,e[o].abortReason="set"):(g.assert(e[o].status===ln.RUN,"Unexpected transaction status in abort"),e[o].unwatcher(),r=r.concat(this.serverSyncTree_.ackUserWrite(e[o].currentWriteId,!0)),e[o].onComplete&&n.push(e[o].onComplete.bind(null,new Error("set"),!1,null))));for(-1===i?t.setValue(null):e.length=i+1,this.eventQueue_.raiseEventsForChangedPath(t.path(),r),o=0;o<n.length;o++)G(n[o])}};var cn,hn=function(){function t(){this.repos_={},this.useRestClient_=!1}return t.getInstance=function(){return cn||(cn=new t),cn},t.prototype.interrupt=function(){for(var t in this.repos_)for(var e in this.repos_[t])this.repos_[t][e].interrupt()},t.prototype.resume=function(){for(var t in this.repos_)for(var e in this.repos_[t])this.repos_[t][e].resume()},t.prototype.databaseFromApp=function(t,e){var n=e||t.options.databaseURL;void 0===n&&P("Can't determine Firebase Database URL.  Be sure to include databaseURL option when calling firebase.initializeApp().");var r=et(n),i=r.repoInfo;return yt("Invalid Firebase Database URL",1,r),r.path.isEmpty()||P("Database URL must point to the root of a Firebase Database (not including a child path)."),this.createRepo(i,t).database},t.prototype.deleteRepo=function(t){var e=g.safeGet(this.repos_,t.app.name);e&&g.safeGet(e,t.repoInfo_.toURLString())===t||P("Database "+t.app.name+"("+t.repoInfo_+") has already been deleted."),t.interrupt(),delete e[t.repoInfo_.toURLString()]},t.prototype.createRepo=function(t,e){var n=g.safeGet(this.repos_,e.name);n||(this.repos_[e.name]=n={});var r=g.safeGet(n,t.toURLString());return r&&P("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),r=new en(t,this.useRestClient_,e),n[t.toURLString()]=r,r},t.prototype.forceRestClient=function(t){this.useRestClient_=t},t}(),pn=function(){function t(t){this.repo_=t,t instanceof en||P("Don't call new Database() directly - please use firebase.database()."),this.root_=new sn(t,J.Empty),this.INTERNAL=new fn(this)}return Object.defineProperty(t.prototype,"app",{get:function(){return this.repo_.app},enumerable:!0,configurable:!0}),t.prototype.ref=function(t){return this.checkDeleted_("ref"),g.validateArgCount("database.ref",0,1,arguments.length),t instanceof sn?this.refFromURL(t.toString()):void 0!==t?this.root_.child(t):this.root_},t.prototype.refFromURL=function(t){var e="database.refFromURL";this.checkDeleted_(e),g.validateArgCount(e,1,1,arguments.length);var n=et(t);yt(e,1,n);var r=n.repoInfo;return r.host!==this.repo_.repoInfo_.host&&P(e+": Host name does not match the current database: (found "+r.host+" but expected "+this.repo_.repoInfo_.host+")"),this.ref(n.path.toString())},t.prototype.checkDeleted_=function(t){null===this.repo_&&P("Cannot call "+t+" on a deleted database.")},t.prototype.goOffline=function(){g.validateArgCount("database.goOffline",0,0,arguments.length),this.checkDeleted_("goOffline"),this.repo_.interrupt()},t.prototype.goOnline=function(){g.validateArgCount("database.goOnline",0,0,arguments.length),this.checkDeleted_("goOnline"),this.repo_.resume()},t.ServerValue={TIMESTAMP:{".sv":"timestamp"}},t}(),fn=function(){function t(t){this.database=t}return t.prototype.delete=function(){return y.__awaiter(this,void 0,void 0,function(){return y.__generator(this,function(t){return this.database.checkDeleted_("delete"),hn.getInstance().deleteRepo(this.database.repo_),this.database.repo_=null,this.database.root_=null,this.database.INTERNAL=null,this.database=null,[2]})})},t}(),dn=Object.freeze({forceLongPolling:function(){Ke.forceDisallow(),ze.forceAllow()},forceWebSockets:function(){ze.forceDisallow()},isWebSocketsAvailable:function(){return Ke.isAvailable()},setSecurityDebugCallback:function(t,e){t.repo.persistentConnection_.securityDebugCallback_=e},stats:function(t,e){t.repo.stats(e)},statsIncrementCounter:function(t,e){t.repo.statsIncrementCounter(e)},dataUpdateCount:function(t){return t.repo.dataUpdateCount},interceptServerData:function(t,e){return t.repo.interceptServerData_(e)}}),mn=$e;$e.prototype.simpleListen=function(t,e){this.sendRequest("q",{p:t},e)},$e.prototype.echo=function(t,e){this.sendRequest("echo",{d:t},e)};var yn=Object.freeze({DataConnection:mn,RealTimeConnection:Ye,hijackHash:function(t){var e=$e.prototype.put;return $e.prototype.put=function(n,r,i,o){void 0!==o&&(o=t()),e.call(this,n,r,i,o)},function(){$e.prototype.put=e}},ConnectionTarget:tt,queryIdentifier:function(t){return t.queryIdentifier()},listens:function(t){return t.repo.persistentConnection_.listens_},forceRestClient:function(t){hn.getInstance().forceRestClient(t)}}),gn=pn.ServerValue;function vn(e){var n=e.INTERNAL.registerService("database",function(t,e,n){return hn.getInstance().databaseFromApp(t,n)},{Reference:sn,Query:$t,Database:pn,DataSnapshot:Gt,enableLogging:O,INTERNAL:dn,ServerValue:gn,TEST_ACCESS:yn},null,!0);g.isNodeSdk()&&(t.exports=n)}vn(m),e.registerDatabase=vn,e.Database=pn,e.Query=$t,e.Reference=sn,e.enableLogging=O,e.ServerValue=gn,e.DataSnapshot=Gt,e.OnDisconnect=gt},Q2Kg:function(t,e,n){var r=n("2w5C"),i=n("o9j8");t.exports=Object.keys||function(t){return r(t,i)}},QURa:function(t,e,n){n("q94Q")("patternMatch")},QvOV:function(t,e,n){var r=n("YCU0"),i=Object.prototype;r!==i.toString&&n("1f/i")(i,"toString",r,{unsafe:!0})},S4gH:function(t,e,n){var r=n("TIpl").f,i=n("57wU"),o=n("aXXJ")("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},S5sp:function(t,e,n){t.exports=!n("0HDe")(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})},SAp2:function(t,e,n){var r=n("9Nts");t.exports=function(t){return Object(r(t))}},SIcJ:function(t,e,n){var r=n("Q2Kg"),i=n("fw2a"),o=n("iCuu");t.exports=function(t){var e=r(t),n=i.f;if(n)for(var s,a=n(t),u=o.f,l=0;a.length>l;)u.call(t,s=a[l++])&&e.push(s);return e}},T3Qk:function(t,e,n){n("q0E7"),n("//qW"),n("spD4"),t.exports=n("ahhG").f("iterator")},TIpl:function(t,e,n){var r=n("lb/b"),i=n("a0i3"),o=n("bcPd"),s=n("ehg7"),a=Object.defineProperty;e.f=r?a:function(t,e,n){if(o(t),e=s(e,!0),o(n),i)try{return a(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},U4hp:function(t,e,n){"use strict";var r=n("ehg7"),i=n("TIpl"),o=n("2Hee");t.exports=function(t,e,n){var s=r(e);s in t?i.f(t,s,o(0,n)):t[s]=n}},U5J1:function(t,e){t.exports=!1},Uv6z:function(t,e){!function(t){"use strict";if(!t.fetch){var e={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};if(e.arrayBuffer)var n=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],r=function(t){return t&&DataView.prototype.isPrototypeOf(t)},i=ArrayBuffer.isView||function(t){return t&&n.indexOf(Object.prototype.toString.call(t))>-1};c.prototype.append=function(t,e){t=a(t),e=u(e);var n=this.map[t];this.map[t]=n?n+","+e:e},c.prototype.delete=function(t){delete this.map[a(t)]},c.prototype.get=function(t){return t=a(t),this.has(t)?this.map[t]:null},c.prototype.has=function(t){return this.map.hasOwnProperty(a(t))},c.prototype.set=function(t,e){this.map[a(t)]=u(e)},c.prototype.forEach=function(t,e){for(var n in this.map)this.map.hasOwnProperty(n)&&t.call(e,this.map[n],n,this)},c.prototype.keys=function(){var t=[];return this.forEach(function(e,n){t.push(n)}),l(t)},c.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),l(t)},c.prototype.entries=function(){var t=[];return this.forEach(function(e,n){t.push([n,e])}),l(t)},e.iterable&&(c.prototype[Symbol.iterator]=c.prototype.entries);var o=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];y.prototype.clone=function(){return new y(this,{body:this._bodyInit})},m.call(y.prototype),m.call(v.prototype),v.prototype.clone=function(){return new v(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new c(this.headers),url:this.url})},v.error=function(){var t=new v(null,{status:0,statusText:""});return t.type="error",t};var s=[301,302,303,307,308];v.redirect=function(t,e){if(-1===s.indexOf(e))throw new RangeError("Invalid status code");return new v(null,{status:e,headers:{location:t}})},t.Headers=c,t.Request=y,t.Response=v,t.fetch=function(t,n){return new Promise(function(r,i){var o=new y(t,n),s=new XMLHttpRequest;s.onload=function(){var t,e,n={status:s.status,statusText:s.statusText,headers:(t=s.getAllResponseHeaders()||"",e=new c,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var n=t.split(":"),r=n.shift().trim();if(r){var i=n.join(":").trim();e.append(r,i)}}),e)};n.url="responseURL"in s?s.responseURL:n.headers.get("X-Request-URL"),r(new v("response"in s?s.response:s.responseText,n))},s.onerror=function(){i(new TypeError("Network request failed"))},s.ontimeout=function(){i(new TypeError("Network request failed"))},s.open(o.method,o.url,!0),"include"===o.credentials?s.withCredentials=!0:"omit"===o.credentials&&(s.withCredentials=!1),"responseType"in s&&e.blob&&(s.responseType="blob"),o.headers.forEach(function(t,e){s.setRequestHeader(e,t)}),s.send(void 0===o._bodyInit?null:o._bodyInit)})},t.fetch.polyfill=!0}function a(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function u(t){return"string"!=typeof t&&(t=String(t)),t}function l(t){var n={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return e.iterable&&(n[Symbol.iterator]=function(){return n}),n}function c(t){this.map={},t instanceof c?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function h(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function p(t){return new Promise(function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}})}function f(t){var e=new FileReader,n=p(e);return e.readAsArrayBuffer(t),n}function d(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function m(){return this.bodyUsed=!1,this._initBody=function(t){if(this._bodyInit=t,t)if("string"==typeof t)this._bodyText=t;else if(e.blob&&Blob.prototype.isPrototypeOf(t))this._bodyBlob=t;else if(e.formData&&FormData.prototype.isPrototypeOf(t))this._bodyFormData=t;else if(e.searchParams&&URLSearchParams.prototype.isPrototypeOf(t))this._bodyText=t.toString();else if(e.arrayBuffer&&e.blob&&r(t))this._bodyArrayBuffer=d(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!e.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(t)&&!i(t))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=d(t)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):e.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},e.blob&&(this.blob=function(){var t=h(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?h(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(f)}),this.text=function(){var t,e,n,r=h(this);if(r)return r;if(this._bodyBlob)return t=this._bodyBlob,n=p(e=new FileReader),e.readAsText(t),n;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r<e.length;r++)n[r]=String.fromCharCode(e[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},e.formData&&(this.formData=function(){return this.text().then(g)}),this.json=function(){return this.text().then(JSON.parse)},this}function y(t,e){var n,r,i=(e=e||{}).body;if(t instanceof y){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new c(t.headers)),this.method=t.method,this.mode=t.mode,i||null==t._bodyInit||(i=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"omit",!e.headers&&this.headers||(this.headers=new c(e.headers)),this.method=(r=(n=e.method||this.method||"GET").toUpperCase(),o.indexOf(r)>-1?r:n),this.mode=e.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i)}function g(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(i))}}),e}function v(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new c(e.headers),this.url=e.url||"",this._initBody(t)}}("undefined"!=typeof self?self:this)},WBJg:function(t,e,n){n("pSMy")({target:"String",proto:!0},{repeat:n("nsc/")})},Wcq6:function(t,e,n){"use strict";n("lcbw");var r,i=(r=n("wj3C"))&&"object"==typeof r&&"default"in r?r.default:r;t.exports=i},XCog:function(t,e,n){var r=n("0Bu/");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return r(n,i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},YCU0:function(t,e,n){"use strict";var r=n("ZrEc"),i={};i[n("aXXJ")("toStringTag")]="z",t.exports="[object z]"!==String(i)?function(){return"[object "+r(this)+"]"}:i.toString},YxH6:function(t,e,n){"use strict";var r,i,o,s=n("0idE"),a=n("wBs/"),u=n("57wU"),l=n("U5J1"),c=n("aXXJ")("iterator"),h=!1;[].keys&&("next"in(o=[].keys())?(i=s(s(o)))!==Object.prototype&&(r=i):h=!0),null==r&&(r={}),l||u(r,c)||a(r,c,function(){return this}),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},ZPxF:function(t,e,n){n("S4gH")(n("ysHE").JSON,"JSON",!0)},ZrEc:function(t,e,n){var r=n("hdqJ"),i=n("aXXJ")("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:o?r(e):"Object"==(s=r(e))&&"function"==typeof e.callee?"Arguments":s}},"a+hM":function(t,e,n){var r=n("57wU"),i=n("ySdl"),o=n("pYsU"),s=n("TIpl");t.exports=function(t,e){for(var n=i(e),a=s.f,u=o.f,l=0;l<n.length;l++){var c=n[l];r(t,c)||a(t,c,u(e,c))}}},a0i3:function(t,e,n){t.exports=!n("lb/b")&&!n("0HDe")(function(){return 7!=Object.defineProperty(n("JIMt")("div"),"a",{get:function(){return 7}}).a})},aXXJ:function(t,e,n){var r=n("MfhB")("wks"),i=n("ptKZ"),o=n("ysHE").Symbol,s=n("mk1t");t.exports=function(t){return r[t]||(r[t]=s&&o[t]||(s?o:i)("Symbol."+t))}},ahhG:function(t,e,n){e.f=n("aXXJ")},b2LF:function(t,e,n){n("q94Q")("hasInstance")},bcPd:function(t,e,n){var r=n("kpns");t.exports=function(t){if(!r(t))throw TypeError(String(t)+" is not an object");return t}},crnd:function(t,e){function n(t){return Promise.resolve().then(function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e})}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id="crnd"},d8cw:function(t,e,n){"use strict";var r=n("vQkR")(5),i=!0;"find"in[]&&Array(1).find(function(){i=!1}),n("pSMy")({target:"Array",proto:!0,forced:i},{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n("gJLK")("find")},dYkh:function(t,e,n){n("q94Q")("search")},dstF:function(t,e,n){n("q94Q")("replace")},ehBJ:function(t,e,n){n("73IE"),t.exports=n("vLVD")("String","startsWith")},ehg7:function(t,e,n){var r=n("kpns");t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},fw2a:function(t,e){e.f=Object.getOwnPropertySymbols},g7Su:function(t,e,n){var r=n("0HDe"),i=n("aXXJ")("species");t.exports=function(t){return!r(function(){var e=[];return(e.constructor={})[i]=function(){return{foo:1}},1!==e[t](Boolean).foo})}},gHGA:function(t,e,n){"use strict";n.r(e),n.d(e,"registerMessaging",function(){return A}),n.d(e,"isSupported",function(){return O});var r,i,o,s=n("wj3C"),a=n.n(s),u=n("mrSG"),l=n("zVF4"),c=((r={})["only-available-in-window"]="This method is available in a Window context.",r["only-available-in-sw"]="This method is available in a service worker context.",r["should-be-overriden"]="This method should be overriden by extended classes.",r["bad-sender-id"]="Please ensure that 'messagingSenderId' is set correctly in the options passed into firebase.initializeApp().",r["permission-default"]="The required permissions were not granted and dismissed instead.",r["permission-blocked"]="The required permissions were not granted and blocked instead.",r["unsupported-browser"]="This browser doesn't support the API's required to use the firebase SDK.",r["notifications-blocked"]="Notifications have been blocked.",r["failed-serviceworker-registration"]="We are unable to register the default service worker. {$browserErrorMessage}",r["sw-registration-expected"]="A service worker registration was the expected input.",r["get-subscription-failed"]="There was an error when trying to get any existing Push Subscriptions.",r["invalid-saved-token"]="Unable to access details of the saved token.",r["sw-reg-redundant"]="The service worker being used for push was made redundant.",r["token-subscribe-failed"]="A problem occured while subscribing the user to FCM: {$message}",r["token-subscribe-no-token"]="FCM returned no token when subscribing the user to push.",r["token-subscribe-no-push-set"]="FCM returned an invalid response when getting an FCM token.",r["token-unsubscribe-failed"]="A problem occured while unsubscribing the user from FCM: {$message}",r["token-update-failed"]="A problem occured while updating the user from FCM: {$message}",r["token-update-no-token"]="FCM returned no token when updating the user to push.",r["use-sw-before-get-token"]="The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.",r["invalid-delete-token"]="You must pass a valid token into deleteToken(), i.e. the token from getToken().",r["delete-token-not-found"]="The deletion attempt for token could not be performed as the token was not found.",r["delete-scope-not-found"]="The deletion attempt for service worker scope could not be performed as the scope was not found.",r["bg-handler-function-expected"]="The input to setBackgroundMessageHandler() must be a function.",r["no-window-client-to-msg"]="An attempt was made to message a non-existant window client.",r["unable-to-resubscribe"]="There was an error while re-subscribing the FCM token for push messaging. Will have to resubscribe the user on next visit. {$message}",r["no-fcm-token-for-resubscribe"]="Could not find an FCM token and as a result, unable to resubscribe. Will have to resubscribe the user on next visit.",r["failed-to-delete-token"]="Unable to delete the currently saved token.",r["no-sw-in-reg"]="Even though the service worker registration was successful, there was a problem accessing the service worker itself.",r["incorrect-gcm-sender-id"]="Please change your web app manifest's 'gcm_sender_id' value to '103953800507' to use Firebase messaging.",r["bad-scope"]="The service worker scope must be a string with at least one character.",r["bad-vapid-key"]="The public VAPID key is not a Uint8Array with 65 bytes.",r["bad-subscription"]="The subscription must be a valid PushSubscription.",r["bad-token"]="The FCM Token used for storage / lookup was not a valid token string.",r["bad-push-set"]="The FCM push set used for storage / lookup was not not a valid push set string.",r["failed-delete-vapid-key"]="The VAPID key could not be deleted.",r["invalid-public-vapid-key"]="The public VAPID key must be a string.",r["use-public-key-before-get-token"]="The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used.",r["public-vapid-key-decryption-failed"]="The public VAPID key did not equal 65 bytes when decrypted.",r),h=new l.ErrorFactory("messaging","Messaging",c),p=new Uint8Array([4,51,148,247,223,161,235,177,220,3,162,94,21,113,219,72,211,46,237,237,178,52,219,183,71,58,12,143,196,204,225,111,60,140,132,223,171,182,102,62,242,12,212,139,254,227,249,118,47,20,28,99,8,106,111,45,177,26,149,176,206,55,192,156,110]),f="https://fcm.googleapis.com";function d(t,e){if(null==t||null==e)return!1;if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(var n=new DataView(t),r=new DataView(e),i=0;i<t.byteLength;i++)if(n.getUint8(i)!==r.getUint8(i))return!1;return!0}function m(t){return function(t){var e=new Uint8Array(t);return btoa(String.fromCharCode.apply(String,Object(u.__spread)(e)))}(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}!function(t){t.TYPE_OF_MSG="firebase-messaging-msg-type",t.DATA="firebase-messaging-msg-data"}(i||(i={})),function(t){t.PUSH_MSG_RECEIVED="push-msg-received",t.NOTIFICATION_CLICKED="notification-clicked"}(o||(o={}));var y=function(){function t(){}return t.prototype.getToken=function(t,e,n){return Object(u.__awaiter)(this,void 0,void 0,function(){var r,i,o,s,a,l,c;return Object(u.__generator)(this,function(u){switch(u.label){case 0:r=m(e.getKey("p256dh")),i=m(e.getKey("auth")),o="authorized_entity="+t+"&endpoint="+e.endpoint+"&encryption_key="+r+"&encryption_auth="+i,d(n.buffer,p.buffer)||(s=m(n),o+="&application_pub_key="+s),(a=new Headers).append("Content-Type","application/x-www-form-urlencoded"),l={method:"POST",headers:a,body:o},u.label=1;case 1:return u.trys.push([1,4,,5]),[4,fetch(f+"/fcm/connect/subscribe",l)];case 2:return[4,u.sent().json()];case 3:return c=u.sent(),[3,5];case 4:throw u.sent(),h.create("token-subscribe-failed");case 5:if(c.error)throw h.create("token-subscribe-failed",{message:c.error.message});if(!c.token)throw h.create("token-subscribe-no-token");if(!c.pushSet)throw h.create("token-subscribe-no-push-set");return[2,{token:c.token,pushSet:c.pushSet}]}})})},t.prototype.updateToken=function(t,e,n,r,i){return Object(u.__awaiter)(this,void 0,void 0,function(){var o,s,a,l,c,y,g;return Object(u.__generator)(this,function(u){switch(u.label){case 0:o=m(r.getKey("p256dh")),s=m(r.getKey("auth")),a="push_set="+n+"&token="+e+"&authorized_entity="+t+"&endpoint="+r.endpoint+"&encryption_key="+o+"&encryption_auth="+s,d(i.buffer,p.buffer)||(l=m(i),a+="&application_pub_key="+l),(c=new Headers).append("Content-Type","application/x-www-form-urlencoded"),y={method:"POST",headers:c,body:a},u.label=1;case 1:return u.trys.push([1,4,,5]),[4,fetch(f+"/fcm/connect/subscribe",y)];case 2:return[4,u.sent().json()];case 3:return g=u.sent(),[3,5];case 4:throw u.sent(),h.create("token-update-failed");case 5:if(g.error)throw h.create("token-update-failed",{message:g.error.message});if(!g.token)throw h.create("token-update-no-token");return[2,g.token]}})})},t.prototype.deleteToken=function(t,e,n){return Object(u.__awaiter)(this,void 0,void 0,function(){var r,i,o,s;return Object(u.__generator)(this,function(a){switch(a.label){case 0:r="authorized_entity="+t+"&token="+e+"&pushSet="+n,(i=new Headers).append("Content-Type","application/x-www-form-urlencoded"),o={method:"POST",headers:i,body:r},a.label=1;case 1:return a.trys.push([1,4,,5]),[4,fetch(f+"/fcm/connect/unsubscribe",o)];case 2:return[4,a.sent().json()];case 3:if((s=a.sent()).error)throw h.create("token-unsubscribe-failed",{message:s.error.message});return[3,5];case 4:throw a.sent(),h.create("token-unsubscribe-failed");case 5:return[2]}})})},t}();function g(t){for(var e=(t+"=".repeat((4-t.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),n=atob(e),r=new Uint8Array(n.length),i=0;i<n.length;++i)r[i]=n.charCodeAt(i);return r}var v=function(){function t(){this.dbPromise=null}return t.prototype.get=function(t){return this.createTransaction(function(e){return e.get(t)})},t.prototype.getIndex=function(t,e){return this.createTransaction(function(n){return n.index(t).get(e)})},t.prototype.put=function(t){return this.createTransaction(function(e){return e.put(t)},"readwrite")},t.prototype.delete=function(t){return this.createTransaction(function(e){return e.delete(t)},"readwrite")},t.prototype.closeDatabase=function(){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(t){switch(t.label){case 0:return this.dbPromise?[4,this.dbPromise]:[3,2];case 1:t.sent().close(),this.dbPromise=null,t.label=2;case 2:return[2]}})})},t.prototype.createTransaction=function(t,e){return void 0===e&&(e="readonly"),Object(u.__awaiter)(this,void 0,void 0,function(){var n,r,i,o;return Object(u.__generator)(this,function(s){switch(s.label){case 0:return[4,this.getDb()];case 1:return n=s.sent(),r=n.transaction(this.objectStoreName,e),i=r.objectStore(this.objectStoreName),[4,_(t(i))];case 2:return o=s.sent(),[2,new Promise(function(t,e){r.oncomplete=function(){t(o)},r.onerror=function(){e(r.error)}})]}})})},t.prototype.getDb=function(){var t=this;return this.dbPromise||(this.dbPromise=new Promise(function(e,n){var r=indexedDB.open(t.dbName,t.dbVersion);r.onsuccess=function(){e(r.result)},r.onerror=function(){t.dbPromise=null,n(r.error)},r.onupgradeneeded=function(e){return t.onDbUpgrade(r,e)}})),this.dbPromise},t}();function _(t){return new Promise(function(e,n){t.onsuccess=function(){e(t.result)},t.onerror=function(){n(t.error)}})}var b=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.dbName="fcm_token_details_db",e.dbVersion=3,e.objectStoreName="fcm_token_object_Store",e}return Object(u.__extends)(e,t),e.prototype.onDbUpgrade=function(t,e){var n=t.result;switch(e.oldVersion){case 0:(r=n.createObjectStore(this.objectStoreName,{keyPath:"swScope"})).createIndex("fcmSenderId","fcmSenderId",{unique:!1}),r.createIndex("fcmToken","fcmToken",{unique:!0});case 1:!function(){var t=indexedDB.open("undefined");t.onerror=function(t){},t.onsuccess=function(e){!function(t){if(t.objectStoreNames.contains("fcm_token_object_Store")){var e=t.transaction("fcm_token_object_Store").objectStore("fcm_token_object_Store"),n=new y,r=e.openCursor();r.onerror=function(t){console.warn("Unable to cleanup old IDB.",t)},r.onsuccess=function(){var e=r.result;if(e){var i=e.value;n.deleteToken(i.fcmSenderId,i.fcmToken,i.fcmPushSet),e.continue()}else t.close(),indexedDB.deleteDatabase("undefined")}}}(t.result)}}();case 2:var r,i=(r=t.transaction.objectStore(this.objectStoreName)).openCursor();i.onsuccess=function(){var t=i.result;if(t){var e=t.value,n=Object(u.__assign)({},e);e.createTime||(n.createTime=Date.now()),"string"==typeof e.vapidKey&&(n.vapidKey=g(e.vapidKey)),"string"==typeof e.auth&&(n.auth=g(e.auth).buffer),"string"==typeof e.auth&&(n.p256dh=g(e.p256dh).buffer),t.update(n),t.continue()}}}},e.prototype.getTokenDetailsFromToken=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(e){if(!t)throw h.create("bad-token");return w({fcmToken:t}),[2,this.getIndex("fcmToken",t)]})})},e.prototype.getTokenDetailsFromSWScope=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(e){if(!t)throw h.create("bad-scope");return w({swScope:t}),[2,this.get(t)]})})},e.prototype.saveTokenDetails=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(e){if(!t.swScope)throw h.create("bad-scope");if(!t.vapidKey)throw h.create("bad-vapid-key");if(!t.endpoint||!t.auth||!t.p256dh)throw h.create("bad-subscription");if(!t.fcmSenderId)throw h.create("bad-sender-id");if(!t.fcmToken)throw h.create("bad-token");if(!t.fcmPushSet)throw h.create("bad-push-set");return w(t),[2,this.put(t)]})})},e.prototype.deleteToken=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){var e;return Object(u.__generator)(this,function(n){switch(n.label){case 0:return"string"!=typeof t||0===t.length?[2,Promise.reject(h.create("invalid-delete-token"))]:[4,this.getTokenDetailsFromToken(t)];case 1:if(!(e=n.sent()))throw h.create("delete-token-not-found");return[4,this.delete(e.swScope)];case 2:return n.sent(),[2,e]}})})},e}(v);function w(t){if(t.fcmToken&&("string"!=typeof t.fcmToken||0===t.fcmToken.length))throw h.create("bad-token");if(t.swScope&&("string"!=typeof t.swScope||0===t.swScope.length))throw h.create("bad-scope");if(t.vapidKey&&(!(t.vapidKey instanceof Uint8Array)||65!==t.vapidKey.length))throw h.create("bad-vapid-key");if(t.endpoint&&("string"!=typeof t.endpoint||0===t.endpoint.length))throw h.create("bad-subscription");if(t.auth&&!(t.auth instanceof ArrayBuffer))throw h.create("bad-subscription");if(t.p256dh&&!(t.p256dh instanceof ArrayBuffer))throw h.create("bad-subscription");if(t.fcmSenderId&&("string"!=typeof t.fcmSenderId||0===t.fcmSenderId.length))throw h.create("bad-sender-id");if(t.fcmPushSet&&("string"!=typeof t.fcmPushSet||0===t.fcmPushSet.length))throw h.create("bad-push-set")}var E=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.dbName="fcm_vapid_details_db",e.dbVersion=1,e.objectStoreName="fcm_vapid_object_Store",e}return Object(u.__extends)(e,t),e.prototype.onDbUpgrade=function(t){t.result.createObjectStore(this.objectStoreName,{keyPath:"swScope"})},e.prototype.getVapidFromSWScope=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){var e;return Object(u.__generator)(this,function(n){switch(n.label){case 0:if("string"!=typeof t||0===t.length)throw h.create("bad-scope");return[4,this.get(t)];case 1:return[2,(e=n.sent())?e.vapidKey:void 0]}})})},e.prototype.saveVapidDetails=function(t,e){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(n){if("string"!=typeof t||0===t.length)throw h.create("bad-scope");if(null===e||65!==e.length)throw h.create("bad-vapid-key");return[2,this.put({swScope:t,vapidKey:e})]})})},e.prototype.deleteVapidDetails=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){var e;return Object(u.__generator)(this,function(n){switch(n.label){case 0:return[4,this.getVapidFromSWScope(t)];case 1:if(!(e=n.sent()))throw h.create("delete-scope-not-found");return[4,this.delete(t)];case 2:return n.sent(),[2,e]}})})},e}(v),S="messagingSenderId",C=function(){function t(t){var e=this;if(!t.options[S]||"string"!=typeof t.options[S])throw h.create("bad-sender-id");this.messagingSenderId=t.options[S],this.tokenDetailsModel=new b,this.vapidDetailsModel=new E,this.iidModel=new y,this.app=t,this.INTERNAL={delete:function(){return e.delete()}}}return t.prototype.getToken=function(){return Object(u.__awaiter)(this,void 0,void 0,function(){var t,e,n,r,i;return Object(u.__generator)(this,function(o){switch(o.label){case 0:if("denied"===(t=this.getNotificationPermission_()))throw h.create("notifications-blocked");return"granted"!==t?[2,null]:[4,this.getSWRegistration_()];case 1:return e=o.sent(),[4,this.getPublicVapidKey_()];case 2:return n=o.sent(),[4,this.getPushSubscription(e,n)];case 3:return r=o.sent(),[4,this.tokenDetailsModel.getTokenDetailsFromSWScope(e.scope)];case 4:return(i=o.sent())?[2,this.manageExistingToken(e,r,n,i)]:[2,this.getNewToken(e,r,n)]}})})},t.prototype.manageExistingToken=function(t,e,n,r){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(i){switch(i.label){case 0:return function(t,e,n){if(!n.vapidKey||!d(e.buffer,n.vapidKey.buffer))return!1;var r=t.endpoint===n.endpoint,i=d(t.getKey("auth"),n.auth),o=d(t.getKey("p256dh"),n.p256dh);return r&&i&&o}(e,n,r)?Date.now()<r.createTime+6048e5?[2,r.fcmToken]:[2,this.updateToken(t,e,n,r)]:[4,this.deleteTokenFromDB(r.fcmToken)];case 1:return i.sent(),[2,this.getNewToken(t,e,n)]}})})},t.prototype.updateToken=function(t,e,n,r){return Object(u.__awaiter)(this,void 0,void 0,function(){var i,o,s;return Object(u.__generator)(this,function(a){switch(a.label){case 0:return a.trys.push([0,4,,6]),[4,this.iidModel.updateToken(this.messagingSenderId,r.fcmToken,r.fcmPushSet,e,n)];case 1:return i=a.sent(),o={swScope:t.scope,vapidKey:n,fcmSenderId:this.messagingSenderId,fcmToken:i,fcmPushSet:r.fcmPushSet,createTime:Date.now(),endpoint:e.endpoint,auth:e.getKey("auth"),p256dh:e.getKey("p256dh")},[4,this.tokenDetailsModel.saveTokenDetails(o)];case 2:return a.sent(),[4,this.vapidDetailsModel.saveVapidDetails(t.scope,n)];case 3:return a.sent(),[2,i];case 4:return s=a.sent(),[4,this.deleteToken(r.fcmToken)];case 5:throw a.sent(),s;case 6:return[2]}})})},t.prototype.getNewToken=function(t,e,n){return Object(u.__awaiter)(this,void 0,void 0,function(){var r,i;return Object(u.__generator)(this,function(o){switch(o.label){case 0:return[4,this.iidModel.getToken(this.messagingSenderId,e,n)];case 1:return r=o.sent(),i={swScope:t.scope,vapidKey:n,fcmSenderId:this.messagingSenderId,fcmToken:r.token,fcmPushSet:r.pushSet,createTime:Date.now(),endpoint:e.endpoint,auth:e.getKey("auth"),p256dh:e.getKey("p256dh")},[4,this.tokenDetailsModel.saveTokenDetails(i)];case 2:return o.sent(),[4,this.vapidDetailsModel.saveVapidDetails(t.scope,n)];case 3:return o.sent(),[2,r.token]}})})},t.prototype.deleteToken=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){var e,n;return Object(u.__generator)(this,function(r){switch(r.label){case 0:return[4,this.deleteTokenFromDB(t)];case 1:return r.sent(),[4,this.getSWRegistration_()];case 2:return(e=r.sent())?[4,e.pushManager.getSubscription()]:[3,4];case 3:if(n=r.sent())return[2,n.unsubscribe()];r.label=4;case 4:return[2,!0]}})})},t.prototype.deleteTokenFromDB=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){var e;return Object(u.__generator)(this,function(n){switch(n.label){case 0:return[4,this.tokenDetailsModel.deleteToken(t)];case 1:return e=n.sent(),[4,this.iidModel.deleteToken(e.fcmSenderId,e.fcmToken,e.fcmPushSet)];case 2:return n.sent(),[2]}})})},t.prototype.getPushSubscription=function(t,e){return t.pushManager.getSubscription().then(function(n){return n||t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:e})})},t.prototype.requestPermission=function(){throw h.create("only-available-in-window")},t.prototype.useServiceWorker=function(t){throw h.create("only-available-in-window")},t.prototype.usePublicVapidKey=function(t){throw h.create("only-available-in-window")},t.prototype.onMessage=function(t,e,n){throw h.create("only-available-in-window")},t.prototype.onTokenRefresh=function(t,e,n){throw h.create("only-available-in-window")},t.prototype.setBackgroundMessageHandler=function(t){throw h.create("only-available-in-sw")},t.prototype.delete=function(){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(t){switch(t.label){case 0:return[4,Promise.all([this.tokenDetailsModel.closeDatabase(),this.vapidDetailsModel.closeDatabase()])];case 1:return t.sent(),[2]}})})},t.prototype.getNotificationPermission_=function(){return Notification.permission},t.prototype.getTokenDetailsModel=function(){return this.tokenDetailsModel},t.prototype.getVapidDetailsModel=function(){return this.vapidDetailsModel},t.prototype.getIidModel=function(){return this.iidModel},t}(),T=function(t){function e(e){var n=t.call(this,e)||this;return n.bgMessageHandler=null,self.addEventListener("push",function(t){n.onPush(t)}),self.addEventListener("pushsubscriptionchange",function(t){n.onSubChange(t)}),self.addEventListener("notificationclick",function(t){n.onNotificationClick(t)}),n}return Object(u.__extends)(e,t),e.prototype.onPush=function(t){t.waitUntil(this.onPush_(t))},e.prototype.onSubChange=function(t){t.waitUntil(this.onSubChange_(t))},e.prototype.onNotificationClick=function(t){t.waitUntil(this.onNotificationClick_(t))},e.prototype.onPush_=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){var e,n,r,i,o,s;return Object(u.__generator)(this,function(a){switch(a.label){case 0:if(!t.data)return[2];try{e=t.data.json()}catch(u){return[2]}return[4,this.hasVisibleClients_()];case 1:return a.sent()?[2,this.sendMessageToWindowClients_(e)]:(n=this.getNotificationData_(e))?(r=n.title||"",[4,this.getSWRegistration_()]):[3,3];case 2:return i=a.sent(),o=n.actions,s=Notification.maxActions,o&&s&&o.length>s&&console.warn("This browser only supports "+s+" actions.The remaining actions will not be displayed."),[2,i.showNotification(r,n)];case 3:return this.bgMessageHandler?[4,this.bgMessageHandler(e)]:[3,5];case 4:return a.sent(),[2];case 5:return[2]}})})},e.prototype.onSubChange_=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){var t,e,n,r;return Object(u.__generator)(this,function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),[4,this.getSWRegistration_()];case 1:return t=i.sent(),[3,3];case 2:throw e=i.sent(),h.create("unable-to-resubscribe",{message:e});case 3:return i.trys.push([3,5,,8]),[4,t.pushManager.getSubscription()];case 4:return i.sent(),[3,8];case 5:return n=i.sent(),[4,this.getTokenDetailsModel().getTokenDetailsFromSWScope(t.scope)];case 6:if(!(r=i.sent()))throw n;return[4,this.deleteToken(r.fcmToken)];case 7:throw i.sent(),n;case 8:return[2]}})})},e.prototype.onNotificationClick_=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){var e,n,r,i;return Object(u.__generator)(this,function(s){switch(s.label){case 0:return t.notification&&t.notification.data&&t.notification.data.FCM_MSG?t.action?[2]:(t.stopImmediatePropagation(),t.notification.close(),(e=t.notification.data.FCM_MSG).notification&&(n=e.fcmOptions&&e.fcmOptions.link||e.notification.click_action)?[4,this.getWindowClient_(n)]:[2]):[2];case 1:return(r=s.sent())?[3,3]:[4,self.clients.openWindow(n)];case 2:return r=s.sent(),[3,5];case 3:return[4,r.focus()];case 4:r=s.sent(),s.label=5;case 5:return r?(delete e.notification,delete e.fcmOptions,i=x(o.NOTIFICATION_CLICKED,e),[2,this.attemptToMessageClient_(r,i)]):[2]}})})},e.prototype.getNotificationData_=function(t){var e;if(t&&"object"==typeof t.notification){var n=Object(u.__assign)({},t.notification);return n.data=Object(u.__assign)({},t.notification.data,((e={}).FCM_MSG=t,e)),n}},e.prototype.setBackgroundMessageHandler=function(t){if(!t||"function"!=typeof t)throw h.create("bg-handler-function-expected");this.bgMessageHandler=t},e.prototype.getWindowClient_=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){var e,n,r,i;return Object(u.__generator)(this,function(o){switch(o.label){case 0:return e=new URL(t,self.location.href).href,[4,I()];case 1:for(n=o.sent(),r=null,i=0;i<n.length;i++)if(new URL(n[i].url,self.location.href).href===e){r=n[i];break}return[2,r]}})})},e.prototype.attemptToMessageClient_=function(t,e){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(n){if(!t)throw h.create("no-window-client-to-msg");return t.postMessage(e),[2]})})},e.prototype.hasVisibleClients_=function(){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(t){switch(t.label){case 0:return[4,I()];case 1:return[2,t.sent().some(function(t){return"visible"===t.visibilityState&&!t.url.startsWith("chrome-extension://")})]}})})},e.prototype.sendMessageToWindowClients_=function(t){return Object(u.__awaiter)(this,void 0,void 0,function(){var e,n,r=this;return Object(u.__generator)(this,function(i){switch(i.label){case 0:return[4,I()];case 1:return e=i.sent(),n=x(o.PUSH_MSG_RECEIVED,t),[4,Promise.all(e.map(function(t){return r.attemptToMessageClient_(t,n)}))];case 2:return i.sent(),[2]}})})},e.prototype.getSWRegistration_=function(){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(t){return[2,self.registration]})})},e.prototype.getPublicVapidKey_=function(){return Object(u.__awaiter)(this,void 0,void 0,function(){var t,e;return Object(u.__generator)(this,function(n){switch(n.label){case 0:return[4,this.getSWRegistration_()];case 1:if(!(t=n.sent()))throw h.create("sw-registration-expected");return[4,this.getVapidDetailsModel().getVapidFromSWScope(t.scope)];case 2:return null==(e=n.sent())?[2,p]:[2,e]}})})},e}(C);function I(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function x(t,e){var n;return(n={})[i.TYPE_OF_MSG]=t,n[i.DATA]=e,n}var k=function(t){function e(e){var n=t.call(this,e)||this;return n.registrationToUse=null,n.publicVapidKeyToUse=null,n.manifestCheckPromise=null,n.messageObserver=null,n.tokenRefreshObserver=null,n.onMessageInternal=Object(l.createSubscribe)(function(t){n.messageObserver=t}),n.onTokenRefreshInternal=Object(l.createSubscribe)(function(t){n.tokenRefreshObserver=t}),n.setupSWMessageListener_(),n}return Object(u.__extends)(e,t),e.prototype.getToken=function(){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(e){switch(e.label){case 0:return this.manifestCheckPromise||(this.manifestCheckPromise=function(){return Object(u.__awaiter)(this,void 0,void 0,function(){var t,e;return Object(u.__generator)(this,function(n){switch(n.label){case 0:if(!(t=document.querySelector('link[rel="manifest"]')))return[2];n.label=1;case 1:return n.trys.push([1,4,,5]),[4,fetch(t.href)];case 2:return[4,n.sent().json()];case 3:return e=n.sent(),[3,5];case 4:return n.sent(),[2];case 5:if(!e||!e.gcm_sender_id)return[2];if("103953800507"!==e.gcm_sender_id)throw h.create("incorrect-gcm-sender-id");return[2]}})})}()),[4,this.manifestCheckPromise];case 1:return e.sent(),[2,t.prototype.getToken.call(this)]}})})},e.prototype.requestPermission=function(){return Object(u.__awaiter)(this,void 0,void 0,function(){var t;return Object(u.__generator)(this,function(e){switch(e.label){case 0:return"granted"===this.getNotificationPermission_()?[2]:[4,Notification.requestPermission()];case 1:if("granted"===(t=e.sent()))return[2];throw h.create("denied"===t?"permission-blocked":"permission-default")}})})},e.prototype.useServiceWorker=function(t){if(!(t instanceof ServiceWorkerRegistration))throw h.create("sw-registration-expected");if(null!=this.registrationToUse)throw h.create("use-sw-before-get-token");this.registrationToUse=t},e.prototype.usePublicVapidKey=function(t){if("string"!=typeof t)throw h.create("invalid-public-vapid-key");if(null!=this.publicVapidKeyToUse)throw h.create("use-public-key-before-get-token");var e=g(t);if(65!==e.length)throw h.create("public-vapid-key-decryption-failed");this.publicVapidKeyToUse=e},e.prototype.onMessage=function(t,e,n){return"function"==typeof t?this.onMessageInternal(t,e,n):this.onMessageInternal(t)},e.prototype.onTokenRefresh=function(t,e,n){return"function"==typeof t?this.onTokenRefreshInternal(t,e,n):this.onTokenRefreshInternal(t)},e.prototype.waitForRegistrationToActivate_=function(t){var e=t.installing||t.waiting||t.active;return new Promise(function(n,r){if(e)if("activated"!==e.state)if("redundant"!==e.state){var i=function(){if("activated"===e.state)n(t);else{if("redundant"!==e.state)return;r(h.create("sw-reg-redundant"))}e.removeEventListener("statechange",i)};e.addEventListener("statechange",i)}else r(h.create("sw-reg-redundant"));else n(t);else r(h.create("no-sw-in-reg"))})},e.prototype.getSWRegistration_=function(){var t=this;return this.registrationToUse?this.waitForRegistrationToActivate_(this.registrationToUse):(this.registrationToUse=null,navigator.serviceWorker.register("/firebase-messaging-sw.js",{scope:"/firebase-cloud-messaging-push-scope"}).catch(function(t){throw h.create("failed-serviceworker-registration",{browserErrorMessage:t.message})}).then(function(e){return t.waitForRegistrationToActivate_(e).then(function(){return t.registrationToUse=e,e.update(),e})}))},e.prototype.getPublicVapidKey_=function(){return Object(u.__awaiter)(this,void 0,void 0,function(){return Object(u.__generator)(this,function(t){return this.publicVapidKeyToUse?[2,this.publicVapidKeyToUse]:[2,p]})})},e.prototype.setupSWMessageListener_=function(){var t=this;navigator.serviceWorker.addEventListener("message",function(e){if(e.data&&e.data[i.TYPE_OF_MSG]){var n=e.data;switch(n[i.TYPE_OF_MSG]){case o.PUSH_MSG_RECEIVED:case o.NOTIFICATION_CLICKED:t.messageObserver&&t.messageObserver.next(n[i.DATA])}}},!1)},e}(C);function A(t){t.INTERNAL.registerService("messaging",function(t){if(!O())throw h.create("unsupported-browser");return self&&"ServiceWorkerGlobalScope"in self?new T(t):new k(t)},{isSupported:O})}function O(){return self&&"ServiceWorkerGlobalScope"in self?"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey"):navigator.cookieEnabled&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}A(a.a)},gIEr:function(t,e,n){n("q94Q")("species")},gJLK:function(t,e,n){var r=n("aXXJ")("unscopables"),i=n("tzov"),o=n("wBs/"),s=Array.prototype;null==s[r]&&o(s,r,i(null)),t.exports=function(t){s[r][t]=!0}},hEy5:function(t,e,n){var r=n("FnXw"),i=n("9Nts");t.exports=function(t,e,n){if(r(e))throw TypeError("String.prototype."+n+" doesn't accept regex");return String(i(t))}},hdqJ:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},iCuu:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,o=i&&!r.call({1:2},1);e.f=o?function(t){var e=i(this,t);return!!e&&e.enumerable}:r},iqUP:function(t,e,n){"use strict";n("lcbw");var r,i=(r=n("wj3C"))&&"object"==typeof r&&"default"in r?r.default:r;n("t6oF"),n("NSPt"),n("6Joi"),n("ABqa"),n("gHGA"),n("LmZi"),console.warn("\nIt looks like you're using the development build of the Firebase JS SDK.\nWhen deploying Firebase apps to production, it is advisable to only import\nthe individual SDK components you intend to use.\n\nFor the module builds, these are available in the following manner\n(replace <PACKAGE> with the name of a component - i.e. auth, database, etc):\n\nCommonJS Modules:\nconst firebase = require('firebase/app');\nrequire('firebase/<PACKAGE>');\n\nES Modules:\nimport firebase from 'firebase/app';\nimport 'firebase/<PACKAGE>';\n\nTypescript:\nimport * as firebase from 'firebase/app';\nimport 'firebase/<PACKAGE>';\n"),t.exports=i},k2qa:function(t,e,n){var r=n("hdqJ");t.exports=Array.isArray||function(t){return"Array"==r(t)}},kpns:function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},"lb/b":function(t,e,n){t.exports=!n("0HDe")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},lcbw:function(t,e,n){"use strict";n.r(e),n("Uv6z"),n("pZxE"),n("9r11"),n("KaSA"),n("z5Af"),n("o/0F"),n("AzFY"),n("y2cN"),n("7xuS")},luCB:function(t,e,n){n("q94Q")("split")},mKQw:function(t,e,n){var r=n("0HDe"),i=/#|\.prototype\./,o=function(t,e){var n=a[s(t)];return n==l||n!=u&&("function"==typeof e?r(e):!!e)},s=o.normalize=function(t){return String(t).replace(i,".").toLowerCase()},a=o.data={},u=o.NATIVE="N",l=o.POLYFILL="P";t.exports=o},mk1t:function(t,e,n){t.exports=!n("0HDe")(function(){String(Symbol())})},mrSG:function(t,e,n){"use strict";n.r(e),n.d(e,"__extends",function(){return i}),n.d(e,"__assign",function(){return o}),n.d(e,"__rest",function(){return s}),n.d(e,"__decorate",function(){return a}),n.d(e,"__param",function(){return u}),n.d(e,"__metadata",function(){return l}),n.d(e,"__awaiter",function(){return c}),n.d(e,"__generator",function(){return h}),n.d(e,"__exportStar",function(){return p}),n.d(e,"__values",function(){return f}),n.d(e,"__read",function(){return d}),n.d(e,"__spread",function(){return m}),n.d(e,"__await",function(){return y}),n.d(e,"__asyncGenerator",function(){return g}),n.d(e,"__asyncDelegator",function(){return v}),n.d(e,"__asyncValues",function(){return _}),n.d(e,"__makeTemplateObject",function(){return b}),n.d(e,"__importStar",function(){return w}),n.d(e,"__importDefault",function(){return E});var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function i(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var o=function(){return(o=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}).apply(this,arguments)};function s(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&(n[r[i]]=t[r[i]])}return n}function a(t,e,n,r){var i,o=arguments.length,s=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(s=(o<3?i(s):o>3?i(e,n,s):i(e,n))||s);return o>3&&s&&Object.defineProperty(e,n,s),s}function u(t,e){return function(n,r){e(n,r,t)}}function l(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function c(t,e,n,r){return new(n||(n=Promise))(function(i,o){function s(t){try{u(r.next(t))}catch(e){o(e)}}function a(t){try{u(r.throw(t))}catch(e){o(e)}}function u(t){t.done?i(t.value):new n(function(e){e(t.value)}).then(s,a)}u((r=r.apply(t,e||[])).next())})}function h(t,e){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=e.call(t,s)}catch(a){o=[6,a],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function p(t,e){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}function f(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}function d(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,o=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(a){i={error:a}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function m(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(d(arguments[e]));return t}function y(t){return this instanceof y?(this.v=t,this):new y(t)}function g(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=n.apply(t,e||[]),o=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(t){i[t]&&(r[t]=function(e){return new Promise(function(n,r){o.push([t,e,n,r])>1||a(t,e)})})}function a(t,e){try{(n=i[t](e)).value instanceof y?Promise.resolve(n.value.v).then(u,l):c(o[0][2],n)}catch(r){c(o[0][3],r)}var n}function u(t){a("next",t)}function l(t){a("throw",t)}function c(t,e){t(e),o.shift(),o.length&&a(o[0][0],o[0][1])}}function v(t){var e,n;return e={},r("next"),r("throw",function(t){throw t}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(r,i){e[r]=t[r]?function(e){return(n=!n)?{value:y(t[r](e)),done:"return"===r}:i?i(e):e}:i}}function _(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=f(t),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise(function(r,i){!function(t,e,n,r){Promise.resolve(r).then(function(e){t({value:e,done:n})},e)}(r,i,(e=t[n](e)).done,e.value)})}}}function b(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function w(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function E(t){return t&&t.__esModule?t:{default:t}}},nJQW:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},nX7E:function(t,e,n){var r=n("ysHE"),i=n("wBs/");t.exports=function(t,e){try{i(r,t,e)}catch(n){r[t]=e}return e}},"nsc/":function(t,e,n){"use strict";var r=n("JKJi"),i=n("9Nts");t.exports="".repeat||function(t){var e=String(i(this)),n="",o=r(t);if(o<0||o==1/0)throw RangeError("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(e+=e))1&o&&(n+=e);return n}},"o/0F":function(t,e,n){t.exports=n("ehBJ")},o9j8:function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},pSMy:function(t,e,n){var r=n("ysHE"),i=n("pYsU").f,o=n("wBs/"),s=n("1f/i"),a=n("nX7E"),u=n("a+hM"),l=n("mKQw");t.exports=function(t,e){var n,c,h,p,f,d=t.target,m=t.global,y=t.stat;if(n=m?r:y?r[d]||a(d,{}):(r[d]||{}).prototype)for(c in e){if(p=e[c],h=t.noTargetGet?(f=i(n,c))&&f.value:n[c],!l(m?c:d+(y?".":"#")+c,t.forced)&&void 0!==h){if(typeof p==typeof h)continue;u(p,h)}(t.sham||h&&h.sham)&&o(p,"sham",!0),s(n,c,p,t)}}},pYsU:function(t,e,n){var r=n("lb/b"),i=n("iCuu"),o=n("2Hee"),s=n("IutQ"),a=n("ehg7"),u=n("57wU"),l=n("a0i3"),c=Object.getOwnPropertyDescriptor;e.f=r?c:function(t,e){if(t=s(t),e=a(e,!0),l)try{return c(t,e)}catch(n){}if(u(t,e))return o(!i.f.call(t,e),t[e])}},pZxE:function(t,e,n){"use strict";function r(t){var e=this.constructor;return this.then(function(n){return e.resolve(t()).then(function(){return n})},function(n){return e.resolve(t()).then(function(){return e.reject(n)})})}var i=setTimeout;function o(){}function s(t){if(!(this instanceof s))throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],p(t,this)}function a(t,e){for(;3===t._state;)t=t._value;0!==t._state?(t._handled=!0,s._immediateFn(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null!==n){var r;try{r=n(t._value)}catch(i){return void l(e.promise,i)}u(e.promise,r)}else(1===t._state?u:l)(e.promise,t._value)})):t._deferreds.push(e)}function u(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof s)return t._state=3,t._value=e,void c(t);if("function"==typeof n)return void p((r=n,i=e,function(){r.apply(i,arguments)}),t)}t._state=1,t._value=e,c(t)}catch(o){l(t,o)}var r,i}function l(t,e){t._state=2,t._value=e,c(t)}function c(t){2===t._state&&0===t._deferreds.length&&s._immediateFn(function(){t._handled||s._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e<n;e++)a(t,t._deferreds[e]);t._deferreds=null}function h(t,e,n){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.promise=n}function p(t,e){var n=!1;try{t(function(t){n||(n=!0,u(e,t))},function(t){n||(n=!0,l(e,t))})}catch(r){if(n)return;n=!0,l(e,r)}}s.prototype.catch=function(t){return this.then(null,t)},s.prototype.then=function(t,e){var n=new this.constructor(o);return a(this,new h(t,e,n)),n},s.prototype.finally=r,s.all=function(t){return new s(function(e,n){if(!t||void 0===t.length)throw new TypeError("Promise.all accepts an array");var r=Array.prototype.slice.call(t);if(0===r.length)return e([]);var i=r.length;function o(t,s){try{if(s&&("object"==typeof s||"function"==typeof s)){var a=s.then;if("function"==typeof a)return void a.call(s,function(e){o(t,e)},n)}r[t]=s,0==--i&&e(r)}catch(u){n(u)}}for(var s=0;s<r.length;s++)o(s,r[s])})},s.resolve=function(t){return t&&"object"==typeof t&&t.constructor===s?t:new s(function(e){e(t)})},s.reject=function(t){return new s(function(e,n){n(t)})},s.race=function(t){return new s(function(e,n){for(var r=0,i=t.length;r<i;r++)t[r].then(e,n)})},s._immediateFn="function"==typeof setImmediate&&function(t){setImmediate(t)}||function(t){i(t,0)},s._unhandledRejectionFn=function(t){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",t)};var f=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();"Promise"in f?f.Promise.prototype.finally||(f.Promise.prototype.finally=r):f.Promise=s},ptKZ:function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},"q/0M":function(t,e,n){"use strict";n.r(e),n.d(e,"setLogLevel",function(){return u}),n.d(e,"Logger",function(){return a}),n.d(e,"LogLevel",function(){return i});var r=[],i=function(t){return t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT",t}({}),o=i.INFO,s=function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];if(!(e<t.logLevel)){var o=(new Date).toISOString();switch(e){case i.DEBUG:case i.VERBOSE:console.log.apply(console,["["+o+"]  "+t.name+":"].concat(n));break;case i.INFO:console.info.apply(console,["["+o+"]  "+t.name+":"].concat(n));break;case i.WARN:console.warn.apply(console,["["+o+"]  "+t.name+":"].concat(n));break;case i.ERROR:console.error.apply(console,["["+o+"]  "+t.name+":"].concat(n));break;default:throw new Error("Attempted to log a message with an invalid logType (value: "+e+")")}}},a=function(){function t(t){this.name=t,this._logLevel=o,this._logHandler=s,r.push(this)}return Object.defineProperty(t.prototype,"logLevel",{get:function(){return this._logLevel},set:function(t){if(!(t in i))throw new TypeError("Invalid value assigned to `logLevel`");this._logLevel=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"logHandler",{get:function(){return this._logHandler},set:function(t){if("function"!=typeof t)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=t},enumerable:!0,configurable:!0}),t.prototype.debug=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this._logHandler.apply(this,[this,i.DEBUG].concat(t))},t.prototype.log=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this._logHandler.apply(this,[this,i.VERBOSE].concat(t))},t.prototype.info=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this._logHandler.apply(this,[this,i.INFO].concat(t))},t.prototype.warn=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this._logHandler.apply(this,[this,i.WARN].concat(t))},t.prototype.error=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this._logHandler.apply(this,[this,i.ERROR].concat(t))},t}();function u(t){r.forEach(function(e){e.logLevel=t})}},q0E7:function(t,e,n){n("q94Q")("iterator")},q94Q:function(t,e,n){var r=n("4Ea8"),i=n("57wU"),o=n("ahhG"),s=n("TIpl").f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});i(e,t)||s(e,t,{value:o.f(t)})}},qBi7:function(t,e,n){var r=n("MfhB")("keys"),i=n("ptKZ");t.exports=function(t){return r[t]||(r[t]=i(t))}},qjh4:function(t,e,n){"use strict";var r=n("lb/b"),i=n("57wU"),o=n("kpns"),s=n("TIpl").f,a=n("a+hM"),u=n("ysHE").Symbol;if(r&&"function"==typeof u&&(!("description"in u.prototype)||void 0!==u().description)){var l={},c=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof c?new u(t):void 0===t?u():u(t);return""===t&&(l[e]=!0),e};a(c,u);var h=c.prototype=u.prototype;h.constructor=c;var p=h.toString,f="Symbol(test)"==String(u("test")),d=/^Symbol\((.*)\)[^)]+$/;s(h,"description",{configurable:!0,get:function(){var t=o(this)?this.valueOf():this,e=p.call(t);if(i(l,t))return"";var n=f?e.slice(7,-1):e.replace(d,"$1");return""===n?void 0:n}}),n("pSMy")({global:!0,forced:!0},{Symbol:c})}},rZEa:function(t,e,n){"use strict";var r=n("k2qa"),i=n("kpns"),o=n("SAp2"),s=n("H6ty"),a=n("U4hp"),u=n("rhCS"),l=n("aXXJ")("isConcatSpreadable"),c=!n("0HDe")(function(){var t=[];return t[l]=!1,t.concat()[0]!==t}),h=n("g7Su")("concat"),p=function(t){if(!i(t))return!1;var e=t[l];return void 0!==e?!!e:r(t)},f=!c||!h;n("pSMy")({target:"Array",proto:!0,forced:f},{concat:function(t){var e,n,r,i,l,c=o(this),h=u(c,0),f=0;for(e=-1,r=arguments.length;e<r;e++)if(p(l=-1===e?c:arguments[e])){if(f+(i=s(l.length))>9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n<i;n++,f++)n in l&&a(h,f,l[n])}else{if(f>=9007199254740991)throw TypeError("Maximum allowed index exceeded");a(h,f++,l)}return h.length=f,h}})},rhCS:function(t,e,n){var r=n("kpns"),i=n("k2qa"),o=n("aXXJ")("species");t.exports=function(t,e){var n;return i(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!i(n.prototype)?r(n)&&null===(n=n[o])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},rs5h:function(t,e,n){var r=n("ysHE").document;t.exports=r&&r.documentElement},spD4:function(t,e,n){var r=n("1VRj"),i=n("K8G7"),o=n("ysHE"),s=n("wBs/"),a=n("aXXJ"),u=a("iterator"),l=a("toStringTag"),c=i.values;for(var h in r){var p=o[h],f=p&&p.prototype;if(f){if(f[u]!==c)try{s(f,u,c)}catch(m){f[u]=c}if(f[l]||s(f,l,h),r[h])for(var d in i)if(f[d]!==i[d])try{s(f,d,i[d])}catch(m){f[d]=i[d]}}}},stQs:function(t,e,n){"use strict";var r=n("pSMy"),i=n("A9d8"),o=n("0idE"),s=n("XCog"),a=n("S4gH"),u=n("wBs/"),l=n("1f/i"),c=n("U5J1"),h=n("aXXJ")("iterator"),p=n("0i0S"),f=n("YxH6"),d=f.IteratorPrototype,m=f.BUGGY_SAFARI_ITERATORS,y=function(){return this};t.exports=function(t,e,n,f,g,v,_){i(n,e,f);var b,w,E,S=function(t){if(t===g&&k)return k;if(!m&&t in I)return I[t];switch(t){case"keys":case"values":case"entries":return function(){return new n(this,t)}}return function(){return new n(this)}},C=e+" Iterator",T=!1,I=t.prototype,x=I[h]||I["@@iterator"]||g&&I[g],k=!m&&x||S(g),A="Array"==e&&I.entries||x;if(A&&(b=o(A.call(new t)),d!==Object.prototype&&b.next&&(c||o(b)===d||(s?s(b,d):"function"!=typeof b[h]&&u(b,h,y)),a(b,C,!0,!0),c&&(p[C]=y))),"values"==g&&x&&"values"!==x.name&&(T=!0,k=function(){return x.call(this)}),c&&!_||I[h]===k||u(I,h,k),p[e]=k,g)if(w={values:S("values"),keys:v?k:S("keys"),entries:S("entries")},_)for(E in w)!m&&!T&&E in I||l(I,E,w[E]);else r({target:e,proto:!0,forced:m||T},w);return w}},t5mC:function(t,e,n){var r=n("0HDe"),i=n("hdqJ"),o="".split;t.exports=r(function(){return!Object("z").propertyIsEnumerable(0)})?function(t){return"String"==i(t)?o.call(t,""):Object(t)}:Object},t6oF:function(t,e,n){"use strict";n.r(e);var r=n("wj3C"),i=n.n(r);(function(){var t,e=e||{},n=this;function r(t){return"string"==typeof t}function o(t){return"boolean"==typeof t}var s=/^[\w+\/_-]+[=]{0,2}$/,a=null;function u(){}function l(t){var e=typeof t;if("object"==e){if(!t)return"null";if(t instanceof Array)return"array";if(t instanceof Object)return e;var n=Object.prototype.toString.call(t);if("[object Window]"==n)return"object";if("[object Array]"==n||"number"==typeof t.length&&void 0!==t.splice&&void 0!==t.propertyIsEnumerable&&!t.propertyIsEnumerable("splice"))return"array";if("[object Function]"==n||void 0!==t.call&&void 0!==t.propertyIsEnumerable&&!t.propertyIsEnumerable("call"))return"function"}else if("function"==e&&void 0===t.call)return"object";return e}function c(t){return null===t}function h(t){return"array"==l(t)}function p(t){var e=l(t);return"array"==e||"object"==e&&"number"==typeof t.length}function f(t){return"function"==l(t)}function d(t){var e=typeof t;return"object"==e&&null!=t||"function"==e}var m="closure_uid_"+(1e9*Math.random()>>>0),y=0;function g(t,e,n){return t.call.apply(t.bind,arguments)}function v(t,e,n){if(!t)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var n=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(n,r),t.apply(e,n)}}return function(){return t.apply(e,arguments)}}function _(t,e,n){return(_=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?g:v).apply(null,arguments)}function b(t,e){var n=Array.prototype.slice.call(arguments,1);return function(){var e=n.slice();return e.push.apply(e,arguments),t.apply(this,e)}}var w=Date.now||function(){return+new Date};function E(t,e){function n(){}n.prototype=e.prototype,t.pb=e.prototype,t.prototype=new n,t.prototype.constructor=t,t.gd=function(t,n,r){for(var i=Array(arguments.length-2),o=2;o<arguments.length;o++)i[o-2]=arguments[o];return e.prototype[n].apply(t,i)}}function S(t){if(!t)return!1;try{return!!t.$goog_Thenable}catch(e){return!1}}function C(t){if(Error.captureStackTrace)Error.captureStackTrace(this,C);else{var e=Error().stack;e&&(this.stack=e)}t&&(this.message=String(t))}function T(t,e){for(var n="",r=(t=t.split("%s")).length-1,i=0;i<r;i++)n+=t[i]+(i<e.length?e[i]:"%s");C.call(this,n+t[r])}function I(t,e){throw new T("Failure"+(t?": "+t:""),Array.prototype.slice.call(arguments,1))}function x(t,e){this.c=t,this.f=e,this.b=0,this.a=null}function k(t,e){t.f(e),100>t.b&&(t.b++,e.next=t.a,t.a=e)}function A(){this.b=this.a=null}E(C,Error),C.prototype.name="CustomError",E(T,C),T.prototype.name="AssertionError",x.prototype.get=function(){if(0<this.b){this.b--;var t=this.a;this.a=t.next,t.next=null}else t=this.c();return t};var O=new x(function(){return new D},function(t){t.reset()});function N(){var t=dt,e=null;return t.a&&(e=t.a,t.a=t.a.next,t.a||(t.b=null),e.next=null),e}function D(){this.next=this.b=this.a=null}A.prototype.add=function(t,e){var n=O.get();n.set(t,e),this.b?this.b.next=n:this.a=n,this.b=n},D.prototype.set=function(t,e){this.a=t,this.b=e,this.next=null},D.prototype.reset=function(){this.next=this.b=this.a=null};var R=Array.prototype.indexOf?function(t,e){return Array.prototype.indexOf.call(t,e,void 0)}:function(t,e){if(r(t))return r(e)&&1==e.length?t.indexOf(e,0):-1;for(var n=0;n<t.length;n++)if(n in t&&t[n]===e)return n;return-1},P=Array.prototype.forEach?function(t,e,n){Array.prototype.forEach.call(t,e,n)}:function(t,e,n){for(var i=t.length,o=r(t)?t.split(""):t,s=0;s<i;s++)s in o&&e.call(n,o[s],s,t)},M=Array.prototype.map?function(t,e){return Array.prototype.map.call(t,e,void 0)}:function(t,e){for(var n=t.length,i=Array(n),o=r(t)?t.split(""):t,s=0;s<n;s++)s in o&&(i[s]=e.call(void 0,o[s],s,t));return i},L=Array.prototype.some?function(t,e){return Array.prototype.some.call(t,e,void 0)}:function(t,e){for(var n=t.length,i=r(t)?t.split(""):t,o=0;o<n;o++)if(o in i&&e.call(void 0,i[o],o,t))return!0;return!1};function F(t,e){return 0<=R(t,e)}function j(t,e){var n;return(n=0<=(e=R(t,e)))&&Array.prototype.splice.call(t,e,1),n}function U(t,e){!function(t,e){var n=t.length,i=r(t)?t.split(""):t;for(--n;0<=n;--n)n in i&&e.call(void 0,i[n],n,t)}(t,function(n,r){e.call(void 0,n,r,t)&&Array.prototype.splice.call(t,r,1)})}function V(t){return Array.prototype.concat.apply([],arguments)}function q(t){var e=t.length;if(0<e){for(var n=Array(e),r=0;r<e;r++)n[r]=t[r];return n}return[]}var B,H=String.prototype.trim?function(t){return t.trim()}:function(t){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(t)[1]},z=/&/g,W=/</g,Q=/>/g,K=/"/g,G=/'/g,Y=/\x00/g,X=/[\x00&<>"']/;function J(t,e){return-1!=t.indexOf(e)}function Z(t,e){return t<e?-1:t>e?1:0}t:{var $=n.navigator;if($){var tt=$.userAgent;if(tt){B=tt;break t}}B=""}function et(t){return J(B,t)}function nt(t,e){for(var n in t)e.call(void 0,t[n],n,t)}function rt(t){for(var e in t)return!1;return!0}function it(t){var e,n={};for(e in t)n[e]=t[e];return n}var ot,st,at="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function ut(t,e){for(var n,r,i=1;i<arguments.length;i++){for(n in r=arguments[i])t[n]=r[n];for(var o=0;o<at.length;o++)n=at[o],Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}}function lt(t,e){for(var n=t.split("%s"),r="",i=Array.prototype.slice.call(arguments,1);i.length&&1<n.length;)r+=n.shift()+i.shift();return r+n.join("%s")}function ct(t){return X.test(t)&&(-1!=t.indexOf("&")&&(t=t.replace(z,"&amp;")),-1!=t.indexOf("<")&&(t=t.replace(W,"&lt;")),-1!=t.indexOf(">")&&(t=t.replace(Q,"&gt;")),-1!=t.indexOf('"')&&(t=t.replace(K,"&quot;")),-1!=t.indexOf("'")&&(t=t.replace(G,"&#39;")),-1!=t.indexOf("\0")&&(t=t.replace(Y,"&#0;"))),t}function ht(t){n.setTimeout(function(){throw t},0)}function pt(t,e){st||function(){if(n.Promise&&n.Promise.resolve){var t=n.Promise.resolve(void 0);st=function(){t.then(mt)}}else st=function(){var t=mt;!f(n.setImmediate)||n.Window&&n.Window.prototype&&!et("Edge")&&n.Window.prototype.setImmediate==n.setImmediate?(ot||(ot=function(){var t=n.MessageChannel;if(void 0===t&&"undefined"!=typeof window&&window.postMessage&&window.addEventListener&&!et("Presto")&&(t=function(){var t=document.createElement("IFRAME");t.style.display="none",t.src="",document.documentElement.appendChild(t);var e=t.contentWindow;(t=e.document).open(),t.write(""),t.close();var n="callImmediate"+Math.random(),r="file:"==e.location.protocol?"*":e.location.protocol+"//"+e.location.host;t=_(function(t){"*"!=r&&t.origin!=r||t.data!=n||this.port1.onmessage()},this),e.addEventListener("message",t,!1),this.port1={},this.port2={postMessage:function(){e.postMessage(n,r)}}}),void 0!==t&&!et("Trident")&&!et("MSIE")){var e=new t,r={},i=r;return e.port1.onmessage=function(){if(void 0!==r.next){var t=(r=r.next).xb;r.xb=null,t()}},function(t){i.next={xb:t},i=i.next,e.port2.postMessage(0)}}return"undefined"!=typeof document&&"onreadystatechange"in document.createElement("SCRIPT")?function(t){var e=document.createElement("SCRIPT");e.onreadystatechange=function(){e.onreadystatechange=null,e.parentNode.removeChild(e),e=null,t(),t=null},document.documentElement.appendChild(e)}:function(t){n.setTimeout(t,0)}}()),ot(t)):n.setImmediate(t)}}(),ft||(st(),ft=!0),dt.add(t,e)}var ft=!1,dt=new A;function mt(){for(var t;t=N();){try{t.a.call(t.b)}catch(e){ht(e)}k(O,t)}ft=!1}function yt(t,e){if(this.a=gt,this.i=void 0,this.f=this.b=this.c=null,this.g=this.h=!1,t!=u)try{var n=this;t.call(e,function(t){At(n,vt,t)},function(t){if(!(t instanceof Lt))try{if(t instanceof Error)throw t;throw Error("Promise rejected.")}catch(e){}At(n,_t,t)})}catch(r){At(this,_t,r)}}var gt=0,vt=2,_t=3;function bt(){this.next=this.f=this.b=this.g=this.a=null,this.c=!1}bt.prototype.reset=function(){this.f=this.b=this.g=this.a=null,this.c=!1};var wt=new x(function(){return new bt},function(t){t.reset()});function Et(t,e,n){var r=wt.get();return r.g=t,r.b=e,r.f=n,r}function St(t){if(t instanceof yt)return t;var e=new yt(u);return At(e,vt,t),e}function Ct(t){return new yt(function(e,n){n(t)})}function Tt(t,e,n){Ot(t,e,n,null)||pt(b(e,t))}function It(t){return new yt(function(e){var n=t.length,r=[];if(n)for(var i=function(t,i,o){n--,r[t]=i?{Eb:!0,value:o}:{Eb:!1,reason:o},0==n&&e(r)},o=0;o<t.length;o++)Tt(t[o],b(i,o,!0),b(i,o,!1));else e(r)})}function xt(t,e){t.b||t.a!=vt&&t.a!=_t||Nt(t),t.f?t.f.next=e:t.b=e,t.f=e}function kt(t,e,n,r){var i=Et(null,null,null);return i.a=new yt(function(t,o){i.g=e?function(n){try{var i=e.call(r,n);t(i)}catch(s){o(s)}}:t,i.b=n?function(e){try{var i=n.call(r,e);void 0===i&&e instanceof Lt?o(e):t(i)}catch(s){o(s)}}:o}),i.a.c=t,xt(t,i),i.a}function At(t,e,n){t.a==gt&&(t===n&&(e=_t,n=new TypeError("Promise cannot resolve to itself")),t.a=1,Ot(n,t.Pc,t.Qc,t)||(t.i=n,t.a=e,t.c=null,Nt(t),e!=_t||n instanceof Lt||function(t,e){t.g=!0,pt(function(){t.g&&Mt.call(null,e)})}(t,n)))}function Ot(t,e,n,r){if(t instanceof yt)return xt(t,Et(e||u,n||null,r)),!0;if(S(t))return t.then(e,n,r),!0;if(d(t))try{var i=t.then;if(f(i))return function(t,e,n,r,i){function o(t){s||(s=!0,r.call(i,t))}var s=!1;try{e.call(t,function(t){s||(s=!0,n.call(i,t))},o)}catch(a){o(a)}}(t,i,e,n,r),!0}catch(o){return n.call(r,o),!0}return!1}function Nt(t){t.h||(t.h=!0,pt(t.Yb,t))}function Dt(t){var e=null;return t.b&&(t.b=(e=t.b).next,e.next=null),t.b||(t.f=null),e}function Rt(t,e,n,r){if(n==_t&&e.b&&!e.c)for(;t&&t.g;t=t.c)t.g=!1;if(e.a)e.a.c=null,Pt(e,n,r);else try{e.c?e.g.call(e.f):Pt(e,n,r)}catch(i){Mt.call(null,i)}k(wt,e)}function Pt(t,e,n){e==vt?t.g.call(t.f,n):t.b&&t.b.call(t.f,n)}yt.prototype.then=function(t,e,n){return kt(this,f(t)?t:null,f(e)?e:null,n)},yt.prototype.$goog_Thenable=!0,(t=yt.prototype).ia=function(t,e){return(t=Et(t,t,e)).c=!0,xt(this,t),this},t.s=function(t,e){return kt(this,null,t,e)},t.cancel=function(t){this.a==gt&&pt(function(){!function t(e,n){if(e.a==gt)if(e.c){var r=e.c;if(r.b){for(var i=0,o=null,s=null,a=r.b;a&&(a.c||(i++,a.a==e&&(o=a),!(o&&1<i)));a=a.next)o||(s=a);o&&(r.a==gt&&1==i?t(r,n):(s?((i=s).next==r.f&&(r.f=i),i.next=i.next.next):Dt(r),Rt(r,o,_t,n)))}e.c=null}else At(e,_t,n)}(this,new Lt(t))},this)},t.Pc=function(t){this.a=gt,At(this,vt,t)},t.Qc=function(t){this.a=gt,At(this,_t,t)},t.Yb=function(){for(var t;t=Dt(this);)Rt(this,t,this.a,this.i);this.h=!1};var Mt=ht;function Lt(t){C.call(this,t)}function Ft(){0!=jt&&(Ut[this[m]||(this[m]=++y)]=this),this.qa=this.qa,this.ja=this.ja}E(Lt,C),Lt.prototype.name="cancel";var jt=0,Ut={};function Vt(t){if(!t.qa&&(t.qa=!0,t.va(),0!=jt)){var e=t[m]||(t[m]=++y);if(0!=jt&&t.ja&&0<t.ja.length)throw Error(t+" did not empty its onDisposeCallbacks queue. This probably means it overrode dispose() or disposeInternal() without calling the superclass' method.");delete Ut[e]}}function qt(t){return qt[" "](t),t}Ft.prototype.qa=!1,Ft.prototype.va=function(){if(this.ja)for(;this.ja.length;)this.ja.shift()()},qt[" "]=u;var Bt,Ht,zt=et("Opera"),Wt=et("Trident")||et("MSIE"),Qt=et("Edge"),Kt=Qt||Wt,Gt=et("Gecko")&&!(J(B.toLowerCase(),"webkit")&&!et("Edge"))&&!(et("Trident")||et("MSIE"))&&!et("Edge"),Yt=J(B.toLowerCase(),"webkit")&&!et("Edge");function Xt(){var t=n.document;return t?t.documentMode:void 0}t:{var Jt="",Zt=(Ht=B,Gt?/rv:([^\);]+)(\)|;)/.exec(Ht):Qt?/Edge\/([\d\.]+)/.exec(Ht):Wt?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(Ht):Yt?/WebKit\/(\S+)/.exec(Ht):zt?/(?:Version)[ \/]?(\S+)/.exec(Ht):void 0);if(Zt&&(Jt=Zt?Zt[1]:""),Wt){var $t=Xt();if(null!=$t&&$t>parseFloat(Jt)){Bt=String($t);break t}}Bt=Jt}var te,ee={};function ne(t){return function(t,e){var n=ee;return Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=e()}(t,function(){for(var e=0,n=H(String(Bt)).split("."),r=H(String(t)).split("."),i=Math.max(n.length,r.length),o=0;0==e&&o<i;o++){var s=n[o]||"",a=r[o]||"";do{if(s=/(\d*)(\D*)(.*)/.exec(s)||["","","",""],a=/(\d*)(\D*)(.*)/.exec(a)||["","","",""],0==s[0].length&&0==a[0].length)break;e=Z(0==s[1].length?0:parseInt(s[1],10),0==a[1].length?0:parseInt(a[1],10))||Z(0==s[2].length,0==a[2].length)||Z(s[2],a[2]),s=s[3],a=a[3]}while(0==e)}return 0<=e})}var re=n.document;te=re&&Wt?Xt()||("CSS1Compat"==re.compatMode?parseInt(Bt,10):5):void 0;var ie=Object.freeze||function(t){return t},oe=!Wt||9<=Number(te),se=Wt&&!ne("9"),ae=function(){if(!n.addEventListener||!Object.defineProperty)return!1;var t=!1,e=Object.defineProperty({},"passive",{get:function(){t=!0}});try{n.addEventListener("test",u,e),n.removeEventListener("test",u,e)}catch(r){}return t}();function ue(t,e){this.type=t,this.b=this.target=e,this.Kb=!0}function le(t,e){if(ue.call(this,t?t.type:""),this.relatedTarget=this.b=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.pointerId=0,this.pointerType="",this.a=null,t){var n=this.type=t.type,i=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:null;if(this.target=t.target||t.srcElement,this.b=e,e=t.relatedTarget){if(Gt){t:{try{qt(e.nodeName);var o=!0;break t}catch(s){}o=!1}o||(e=null)}}else"mouseover"==n?e=t.fromElement:"mouseout"==n&&(e=t.toElement);this.relatedTarget=e,i?(this.clientX=void 0!==i.clientX?i.clientX:i.pageX,this.clientY=void 0!==i.clientY?i.clientY:i.pageY,this.screenX=i.screenX||0,this.screenY=i.screenY||0):(this.clientX=void 0!==t.clientX?t.clientX:t.pageX,this.clientY=void 0!==t.clientY?t.clientY:t.pageY,this.screenX=t.screenX||0,this.screenY=t.screenY||0),this.button=t.button,this.key=t.key||"",this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.shiftKey=t.shiftKey,this.metaKey=t.metaKey,this.pointerId=t.pointerId||0,this.pointerType=r(t.pointerType)?t.pointerType:ce[t.pointerType]||"",this.a=t,t.defaultPrevented&&this.preventDefault()}}ue.prototype.preventDefault=function(){this.Kb=!1},E(le,ue);var ce=ie({2:"touch",3:"pen",4:"mouse"});le.prototype.preventDefault=function(){le.pb.preventDefault.call(this);var t=this.a;if(t.preventDefault)t.preventDefault();else if(t.returnValue=!1,se)try{(t.ctrlKey||112<=t.keyCode&&123>=t.keyCode)&&(t.keyCode=-1)}catch(e){}},le.prototype.f=function(){return this.a};var he="closure_listenable_"+(1e6*Math.random()|0),pe=0;function fe(t,e,n,r,i){this.listener=t,this.proxy=null,this.src=e,this.type=n,this.capture=!!r,this.Ma=i,this.key=++pe,this.oa=this.Ia=!1}function de(t){t.oa=!0,t.listener=null,t.proxy=null,t.src=null,t.Ma=null}function me(t){this.src=t,this.a={},this.b=0}function ye(t,e){var n=e.type;n in t.a&&j(t.a[n],e)&&(de(e),0==t.a[n].length&&(delete t.a[n],t.b--))}function ge(t,e,n,r){for(var i=0;i<t.length;++i){var o=t[i];if(!o.oa&&o.listener==e&&o.capture==!!n&&o.Ma==r)return i}return-1}me.prototype.add=function(t,e,n,r,i){var o=t.toString();(t=this.a[o])||(t=this.a[o]=[],this.b++);var s=ge(t,e,r,i);return-1<s?(e=t[s],n||(e.Ia=!1)):((e=new fe(e,this.src,o,!!r,i)).Ia=n,t.push(e)),e};var ve="closure_lm_"+(1e6*Math.random()|0),_e={};function be(t,e,n,r,i){if(r&&r.once)Ee(t,e,n,r,i);else if(h(e))for(var o=0;o<e.length;o++)be(t,e[o],n,r,i);else n=Ne(n),t&&t[he]?Re(t,e,n,d(r)?!!r.capture:!!r,i):we(t,e,n,!1,r,i)}function we(t,e,n,r,i,o){if(!e)throw Error("Invalid event type");var s=d(i)?!!i.capture:!!i,a=Ae(t);if(a||(t[ve]=a=new me(t)),!(n=a.add(e,n,r,s,o)).proxy)if(r=function(){var t=ke,e=oe?function(n){return t.call(e.src,e.listener,n)}:function(n){if(!(n=t.call(e.src,e.listener,n)))return n};return e}(),n.proxy=r,r.src=t,r.listener=n,t.addEventListener)ae||(i=s),void 0===i&&(i=!1),t.addEventListener(e.toString(),r,i);else if(t.attachEvent)t.attachEvent(Te(e.toString()),r);else{if(!t.addListener||!t.removeListener)throw Error("addEventListener and attachEvent are unavailable.");t.addListener(r)}}function Ee(t,e,n,r,i){if(h(e))for(var o=0;o<e.length;o++)Ee(t,e[o],n,r,i);else n=Ne(n),t&&t[he]?Pe(t,e,n,d(r)?!!r.capture:!!r,i):we(t,e,n,!0,r,i)}function Se(t,e,n,r,i){if(h(e))for(var o=0;o<e.length;o++)Se(t,e[o],n,r,i);else r=d(r)?!!r.capture:!!r,n=Ne(n),t&&t[he]?(t=t.o,(e=String(e).toString())in t.a&&-1<(n=ge(o=t.a[e],n,r,i))&&(de(o[n]),Array.prototype.splice.call(o,n,1),0==o.length&&(delete t.a[e],t.b--))):t&&(t=Ae(t))&&(e=t.a[e.toString()],t=-1,e&&(t=ge(e,n,r,i)),(n=-1<t?e[t]:null)&&Ce(n))}function Ce(t){if("number"!=typeof t&&t&&!t.oa){var e=t.src;if(e&&e[he])ye(e.o,t);else{var n=t.type,r=t.proxy;e.removeEventListener?e.removeEventListener(n,r,t.capture):e.detachEvent?e.detachEvent(Te(n),r):e.addListener&&e.removeListener&&e.removeListener(r),(n=Ae(e))?(ye(n,t),0==n.b&&(n.src=null,e[ve]=null)):de(t)}}}function Te(t){return t in _e?_e[t]:_e[t]="on"+t}function Ie(t,e,n,r){var i=!0;if((t=Ae(t))&&(e=t.a[e.toString()]))for(e=e.concat(),t=0;t<e.length;t++){var o=e[t];o&&o.capture==n&&!o.oa&&(o=xe(o,r),i=i&&!1!==o)}return i}function xe(t,e){var n=t.listener,r=t.Ma||t.src;return t.Ia&&Ce(t),n.call(r,e)}function ke(t,e){if(t.oa)return!0;if(!oe){if(!e)t:{e=["window","event"];for(var r=n,i=0;i<e.length;i++)if(null==(r=r[e[i]])){e=null;break t}e=r}if(e=new le(i=e,this),r=!0,!(0>i.keyCode||null!=i.returnValue)){t:{var o=!1;if(0==i.keyCode)try{i.keyCode=-1;break t}catch(a){o=!0}(o||null==i.returnValue)&&(i.returnValue=!0)}for(i=[],o=e.b;o;o=o.parentNode)i.push(o);for(t=t.type,o=i.length-1;0<=o;o--){e.b=i[o];var s=Ie(i[o],t,!0,e);r=r&&s}for(o=0;o<i.length;o++)e.b=i[o],s=Ie(i[o],t,!1,e),r=r&&s}return r}return xe(t,new le(e,this))}function Ae(t){return(t=t[ve])instanceof me?t:null}var Oe="__closure_events_fn_"+(1e9*Math.random()>>>0);function Ne(t){return f(t)?t:(t[Oe]||(t[Oe]=function(e){return t.handleEvent(e)}),t[Oe])}function De(){Ft.call(this),this.o=new me(this),this.Rb=this,this.Wa=null}function Re(t,e,n,r,i){t.o.add(String(e),n,!1,r,i)}function Pe(t,e,n,r,i){t.o.add(String(e),n,!0,r,i)}function Me(t,e,n,r){if(!(e=t.o.a[String(e)]))return!0;e=e.concat();for(var i=!0,o=0;o<e.length;++o){var s=e[o];if(s&&!s.oa&&s.capture==n){var a=s.listener,u=s.Ma||s.src;s.Ia&&ye(t.o,s),i=!1!==a.call(u,r)&&i}}return i&&0!=r.Kb}function Le(t,e,r){if(f(t))r&&(t=_(t,r));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=_(t.handleEvent,t)}return 2147483647<Number(e)?-1:n.setTimeout(t,e||0)}function Fe(t){var e=null;return new yt(function(n,r){-1==(e=Le(function(){n(void 0)},t))&&r(Error("Failed to schedule timer."))}).s(function(t){throw n.clearTimeout(e),t})}function je(t){if(t.S&&"function"==typeof t.S)return t.S();if(r(t))return t.split("");if(p(t)){for(var e=[],n=t.length,i=0;i<n;i++)e.push(t[i]);return e}for(i in e=[],n=0,t)e[n++]=t[i];return e}function Ue(t){if(t.U&&"function"==typeof t.U)return t.U();if(!t.S||"function"!=typeof t.S){if(p(t)||r(t)){var e=[];t=t.length;for(var n=0;n<t;n++)e.push(n);return e}for(var i in e=[],n=0,t)e[n++]=i;return e}}function Ve(t,e){this.b={},this.a=[],this.c=0;var n=arguments.length;if(1<n){if(n%2)throw Error("Uneven number of arguments");for(var r=0;r<n;r+=2)this.set(arguments[r],arguments[r+1])}else if(t)if(t instanceof Ve)for(n=t.U(),r=0;r<n.length;r++)this.set(n[r],t.get(n[r]));else for(r in t)this.set(r,t[r])}function qe(t){if(t.c!=t.a.length){for(var e=0,n=0;e<t.a.length;){var r=t.a[e];Be(t.b,r)&&(t.a[n++]=r),e++}t.a.length=n}if(t.c!=t.a.length){var i={};for(n=e=0;e<t.a.length;)Be(i,r=t.a[e])||(t.a[n++]=r,i[r]=1),e++;t.a.length=n}}function Be(t,e){return Object.prototype.hasOwnProperty.call(t,e)}E(De,Ft),De.prototype[he]=!0,De.prototype.addEventListener=function(t,e,n,r){be(this,t,e,n,r)},De.prototype.removeEventListener=function(t,e,n,r){Se(this,t,e,n,r)},De.prototype.dispatchEvent=function(t){var e,n=this.Wa;if(n)for(e=[];n;n=n.Wa)e.push(n);n=this.Rb;var i=t.type||t;if(r(t))t=new ue(t,n);else if(t instanceof ue)t.target=t.target||n;else{var o=t;ut(t=new ue(i,n),o)}if(o=!0,e)for(var s=e.length-1;0<=s;s--){var a=t.b=e[s];o=Me(a,i,!0,t)&&o}if(o=Me(a=t.b=n,i,!0,t)&&o,o=Me(a,i,!1,t)&&o,e)for(s=0;s<e.length;s++)o=Me(a=t.b=e[s],i,!1,t)&&o;return o},De.prototype.va=function(){if(De.pb.va.call(this),this.o){var t,e=this.o;for(t in e.a){for(var n=e.a[t],r=0;r<n.length;r++)de(n[r]);delete e.a[t],e.b--}}this.Wa=null},(t=Ve.prototype).S=function(){qe(this);for(var t=[],e=0;e<this.a.length;e++)t.push(this.b[this.a[e]]);return t},t.U=function(){return qe(this),this.a.concat()},t.clear=function(){this.b={},this.c=this.a.length=0},t.get=function(t,e){return Be(this.b,t)?this.b[t]:e},t.set=function(t,e){Be(this.b,t)||(this.c++,this.a.push(t)),this.b[t]=e},t.forEach=function(t,e){for(var n=this.U(),r=0;r<n.length;r++){var i=n[r],o=this.get(i);t.call(e,o,i,this)}};var He=/^(?:([^:\/?#.]+):)?(?:\/\/(?:([^\/?#]*)@)?([^\/#?]*?)(?::([0-9]+))?(?=[\/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;function ze(t,e){if(this.b=this.o=this.c="",this.i=null,this.h=this.g="",this.f=!1,t instanceof ze){this.f=void 0!==e?e:t.f,We(this,t.c),this.o=t.o,this.b=t.b,Qe(this,t.i),this.g=t.g,e=t.a;var n=new an;n.c=e.c,e.a&&(n.a=new Ve(e.a),n.b=e.b),Ke(this,n),this.h=t.h}else t&&(n=String(t).match(He))?(this.f=!!e,We(this,n[1]||"",!0),this.o=Ze(n[2]||""),this.b=Ze(n[3]||"",!0),Qe(this,n[4]),this.g=Ze(n[5]||"",!0),Ke(this,n[6]||"",!0),this.h=Ze(n[7]||"")):(this.f=!!e,this.a=new an(null,this.f))}function We(t,e,n){t.c=n?Ze(e,!0):e,t.c&&(t.c=t.c.replace(/:$/,""))}function Qe(t,e){if(e){if(e=Number(e),isNaN(e)||0>e)throw Error("Bad port number "+e);t.i=e}else t.i=null}function Ke(t,e,n){e instanceof an?(t.a=e,function(t,e){e&&!t.f&&(un(t),t.c=null,t.a.forEach(function(t,e){var n=e.toLowerCase();e!=n&&(cn(this,e),pn(this,n,t))},t)),t.f=e}(t.a,t.f)):(n||(e=$e(e,on)),t.a=new an(e,t.f))}function Ge(t,e,n){t.a.set(e,n)}function Ye(t,e){return t.a.get(e)}function Xe(t){return t instanceof ze?new ze(t):new ze(t,void 0)}function Je(t,e){var n=new ze(null,void 0);return We(n,"https"),t&&(n.b=t),e&&(n.g=e),n}function Ze(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function $e(t,e,n){return r(t)?(t=encodeURI(t).replace(e,tn),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function tn(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}ze.prototype.toString=function(){var t=[],e=this.c;e&&t.push($e(e,en,!0),":");var n=this.b;return(n||"file"==e)&&(t.push("//"),(e=this.o)&&t.push($e(e,en,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.i)&&t.push(":",String(n))),(n=this.g)&&(this.b&&"/"!=n.charAt(0)&&t.push("/"),t.push($e(n,"/"==n.charAt(0)?rn:nn,!0))),(n=this.a.toString())&&t.push("?",n),(n=this.h)&&t.push("#",$e(n,sn)),t.join("")};var en=/[#\/\?@]/g,nn=/[#\?:]/g,rn=/[#\?]/g,on=/[#\?@]/g,sn=/#/g;function an(t,e){this.b=this.a=null,this.c=t||null,this.f=!!e}function un(t){t.a||(t.a=new Ve,t.b=0,t.c&&function(t,e){if(t){t=t.split("&");for(var n=0;n<t.length;n++){var r=t[n].indexOf("="),i=null;if(0<=r){var o=t[n].substring(0,r);i=t[n].substring(r+1)}else o=t[n];e(o,i?decodeURIComponent(i.replace(/\+/g," ")):"")}}}(t.c,function(e,n){t.add(decodeURIComponent(e.replace(/\+/g," ")),n)}))}function ln(t){var e=Ue(t);if(void 0===e)throw Error("Keys are undefined");var n=new an(null,void 0);t=je(t);for(var r=0;r<e.length;r++){var i=e[r],o=t[r];h(o)?pn(n,i,o):n.add(i,o)}return n}function cn(t,e){un(t),e=fn(t,e),Be(t.a.b,e)&&(t.c=null,t.b-=t.a.get(e).length,Be((t=t.a).b,e)&&(delete t.b[e],t.c--,t.a.length>2*t.c&&qe(t)))}function hn(t,e){return un(t),e=fn(t,e),Be(t.a.b,e)}function pn(t,e,n){cn(t,e),0<n.length&&(t.c=null,t.a.set(fn(t,e),q(n)),t.b+=n.length)}function fn(t,e){return e=String(e),t.f&&(e=e.toLowerCase()),e}(t=an.prototype).add=function(t,e){un(this),this.c=null,t=fn(this,t);var n=this.a.get(t);return n||this.a.set(t,n=[]),n.push(e),this.b+=1,this},t.clear=function(){this.a=this.c=null,this.b=0},t.forEach=function(t,e){un(this),this.a.forEach(function(n,r){P(n,function(n){t.call(e,n,r,this)},this)},this)},t.U=function(){un(this);for(var t=this.a.S(),e=this.a.U(),n=[],r=0;r<e.length;r++)for(var i=t[r],o=0;o<i.length;o++)n.push(e[r]);return n},t.S=function(t){un(this);var e=[];if(r(t))hn(this,t)&&(e=V(e,this.a.get(fn(this,t))));else{t=this.a.S();for(var n=0;n<t.length;n++)e=V(e,t[n])}return e},t.set=function(t,e){return un(this),this.c=null,hn(this,t=fn(this,t))&&(this.b-=this.a.get(t).length),this.a.set(t,[e]),this.b+=1,this},t.get=function(t,e){return t&&0<(t=this.S(t)).length?String(t[0]):e},t.toString=function(){if(this.c)return this.c;if(!this.a)return"";for(var t=[],e=this.a.U(),n=0;n<e.length;n++){var r=e[n],i=encodeURIComponent(String(r));r=this.S(r);for(var o=0;o<r.length;o++){var s=i;""!==r[o]&&(s+="="+encodeURIComponent(String(r[o]))),t.push(s)}}return this.c=t.join("&")};var dn=!Wt||9<=Number(te);function mn(t,e){this.a=t===vn&&e||"",this.b=gn}function yn(t){return t instanceof mn&&t.constructor===mn&&t.b===gn?t.a:(I("expected object of type Const, got '"+t+"'"),"type_error:Const")}mn.prototype.na=!0,mn.prototype.ma=function(){return this.a},mn.prototype.toString=function(){return"Const{"+this.a+"}"};var gn={},vn={};function _n(){this.a="",this.b=Cn}function bn(t){return t instanceof _n&&t.constructor===_n&&t.b===Cn?t.a:(I("expected object of type TrustedResourceUrl, got '"+t+"' of type "+l(t)),"type_error:TrustedResourceUrl")}function wn(t,e){var n=yn(t);if(!Sn.test(n))throw Error("Invalid TrustedResourceUrl format: "+n);return function(t){var e=new _n;return e.a=t,e}(t=n.replace(En,function(t,r){if(!Object.prototype.hasOwnProperty.call(e,r))throw Error('Found marker, "'+r+'", in format string, "'+n+'", but no valid label mapping found in args: '+JSON.stringify(e));return(t=e[r])instanceof mn?yn(t):encodeURIComponent(String(t))}))}_n.prototype.na=!0,_n.prototype.ma=function(){return this.a},_n.prototype.toString=function(){return"TrustedResourceUrl{"+this.a+"}"};var En=/%{(\w+)}/g,Sn=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^\/\\]|[^:\/\\%]+\/|[^:\/\\%]*[?#]|about:blank#)/i,Cn={};function Tn(){this.a="",this.b=An}function In(t){return t instanceof Tn&&t.constructor===Tn&&t.b===An?t.a:(I("expected object of type SafeUrl, got '"+t+"' of type "+l(t)),"type_error:SafeUrl")}Tn.prototype.na=!0,Tn.prototype.ma=function(){return this.a},Tn.prototype.toString=function(){return"SafeUrl{"+this.a+"}"};var xn=/^(?:(?:https?|mailto|ftp):|[^:\/?#]*(?:[\/?#]|$))/i;function kn(t){return t instanceof Tn?t:(t="object"==typeof t&&t.na?t.ma():String(t),xn.test(t)||(t="about:invalid#zClosurez"),On(t))}var An={};function On(t){var e=new Tn;return e.a=t,e}function Nn(){this.a="",this.b=Dn}On("about:blank"),Nn.prototype.na=!0,Nn.prototype.ma=function(){return this.a},Nn.prototype.toString=function(){return"SafeHtml{"+this.a+"}"};var Dn={};function Rn(t){var e=new Nn;return e.a=t,e}function Pn(t){var e=document;return r(t)?e.getElementById(t):t}function Mn(t,e){nt(e,function(e,n){e&&"object"==typeof e&&e.na&&(e=e.ma()),"style"==n?t.style.cssText=e:"class"==n?t.className=e:"for"==n?t.htmlFor=e:Ln.hasOwnProperty(n)?t.setAttribute(Ln[n],e):0==n.lastIndexOf("aria-",0)||0==n.lastIndexOf("data-",0)?t.setAttribute(n,e):t[n]=e})}Rn("<!DOCTYPE html>"),Rn(""),Rn("<br>");var Ln={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};function Fn(t){if(t&&"number"==typeof t.length){if(d(t))return"function"==typeof t.item||"string"==typeof t.item;if(f(t))return"function"==typeof t.item}return!1}function jn(t){var e=[];return function t(e,n,r){if(null==n)r.push("null");else{if("object"==typeof n){if(h(n)){var i=n;n=i.length,r.push("[");for(var o="",s=0;s<n;s++)r.push(o),t(e,i[s],r),o=",";return void r.push("]")}if(!(n instanceof String||n instanceof Number||n instanceof Boolean)){for(i in r.push("{"),o="",n)Object.prototype.hasOwnProperty.call(n,i)&&"function"!=typeof(s=n[i])&&(r.push(o),Bn(i,r),r.push(":"),t(e,s,r),o=",");return void r.push("}")}n=n.valueOf()}switch(typeof n){case"string":Bn(n,r);break;case"number":r.push(isFinite(n)&&!isNaN(n)?String(n):"null");break;case"boolean":r.push(String(n));break;case"function":r.push("null");break;default:throw Error("Unknown type: "+typeof n)}}}(new Un,t,e),e.join("")}function Un(){}var Vn={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\u000b"},qn=/\uffff/.test("\uffff")?/[\\"\x00-\x1f\x7f-\uffff]/g:/[\\"\x00-\x1f\x7f-\xff]/g;function Bn(t,e){e.push('"',t.replace(qn,function(t){var e=Vn[t];return e||(e="\\u"+(65536|t.charCodeAt(0)).toString(16).substr(1),Vn[t]=e),e}),'"')}function Hn(){var t=ur();return Wt&&!!te&&11==te||/Edge\/\d+/.test(t)}function zn(){return n.window&&n.window.location.href||self&&self.location&&self.location.href||""}function Wn(t,e){e=e||n.window;var r="about:blank";t&&(r=In(kn(t))),e.location.href=r}function Qn(t){return!!((t=(t||ur()).toLowerCase()).match(/android/)||t.match(/webos/)||t.match(/iphone|ipad|ipod/)||t.match(/blackberry/)||t.match(/windows phone/)||t.match(/iemobile/))}function Kn(t){t=t||n.window;try{t.close()}catch(e){}}function Gn(t,e,n){var r=Math.floor(1e9*Math.random()).toString();e=e||500,n=n||600;var i=(window.screen.availHeight-n)/2,o=(window.screen.availWidth-e)/2;for(s in e={width:e,height:n,top:0<i?i:0,left:0<o?o:0,location:!0,resizable:!0,statusbar:!0,toolbar:!1},n=ur().toLowerCase(),r&&(e.target=r,J(n,"crios/")&&(e.target="_blank")),or(ur())==rr&&(t=t||"http://localhost",e.scrollbars=!0),n=t||"",(t=e)||(t={}),r=window,e=n instanceof Tn?n:kn(void 0!==n.href?n.href:String(n)),n=t.target||n.target,i=[],t)switch(s){case"width":case"height":case"top":case"left":i.push(s+"="+t[s]);break;case"target":case"noopener":case"noreferrer":break;default:i.push(s+"="+(t[s]?1:0))}var s=i.join(",");if((et("iPhone")&&!et("iPod")&&!et("iPad")||et("iPad")||et("iPod"))&&r.navigator&&r.navigator.standalone&&n&&"_self"!=n?(s=r.document.createElement("A"),e instanceof Tn||e instanceof Tn||(e="object"==typeof e&&e.na?e.ma():String(e),xn.test(e)||(e="about:invalid#zClosurez"),e=On(e)),s.href=In(e),s.setAttribute("target",n),t.noreferrer&&s.setAttribute("rel","noreferrer"),(t=document.createEvent("MouseEvent")).initMouseEvent("click",!0,!0,r,1),s.dispatchEvent(t),s={}):t.noreferrer?(s=r.open("",n,s),t=In(e),s&&(Kt&&J(t,";")&&(t="'"+t.replace(/'/g,"%27")+"'"),s.opener=null,t=Rn('<meta name="referrer" content="no-referrer"><meta http-equiv="refresh" content="0; url='+ct(t)+'">'),s.document.write(function(t){return t instanceof Nn&&t.constructor===Nn&&t.b===Dn?t.a:(I("expected object of type SafeHtml, got '"+t+"' of type "+l(t)),"type_error:SafeHtml")}(t)),s.document.close())):(s=r.open(In(e),n,s))&&t.noopener&&(s.opener=null),s)try{s.focus()}catch(a){}return s}var Yn=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Xn=/^[^@]+@[^@]+$/;function Jn(){var t=null;return new yt(function(e){"complete"==n.document.readyState?e():(t=function(){e()},Ee(window,"load",t))}).s(function(e){throw Se(window,"load",t),e})}function Zn(t){return t=t||ur(),!("file:"!==fr()||!t.toLowerCase().match(/iphone|ipad|ipod|android/))}function $n(){var t=n.window;try{return!(!t||t==t.top)}catch(e){return!1}}function tr(){return"object"!=typeof n.window&&"function"==typeof n.importScripts}function er(){return i.a.INTERNAL.hasOwnProperty("reactNative")?"ReactNative":i.a.INTERNAL.hasOwnProperty("node")?"Node":tr()?"Worker":"Browser"}function nr(){var t=er();return"ReactNative"===t||"Node"===t}var rr="Firefox",ir="Chrome";function or(t){var e=t.toLowerCase();return J(e,"opera/")||J(e,"opr/")||J(e,"opios/")?"Opera":J(e,"iemobile")?"IEMobile":J(e,"msie")||J(e,"trident/")?"IE":J(e,"edge/")?"Edge":J(e,"firefox/")?rr:J(e,"silk/")?"Silk":J(e,"blackberry")?"Blackberry":J(e,"webos")?"Webos":!J(e,"safari/")||J(e,"chrome/")||J(e,"crios/")||J(e,"android")?!J(e,"chrome/")&&!J(e,"crios/")||J(e,"edge/")?J(e,"android")?"Android":(t=t.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))&&2==t.length?t[1]:"Other":ir:"Safari"}var sr={Wc:"FirebaseCore-web",Yc:"FirebaseUI-web"};function ar(t,e){e=e||[];var n,r=[],i={};for(n in sr)i[sr[n]]=!0;for(n=0;n<e.length;n++)void 0!==i[e[n]]&&(delete i[e[n]],r.push(e[n]));return r.sort(),(e=r).length||(e=["FirebaseCore-web"]),"Browser"===(r=er())?r=or(i=ur()):"Worker"===r&&(r=or(i=ur())+"-"+r),r+"/JsCore/"+t+"/"+e.join(",")}function ur(){return n.navigator&&n.navigator.userAgent||""}function lr(t,e){t=t.split("."),e=e||n;for(var r=0;r<t.length&&"object"==typeof e&&null!=e;r++)e=e[t[r]];return r!=t.length&&(e=void 0),e}function cr(){try{var t=n.localStorage,e=vr();if(t)return t.setItem(e,"1"),t.removeItem(e),!Hn()||!!n.indexedDB}catch(r){return tr()&&!!n.indexedDB}return!1}function hr(){return(pr()||"chrome-extension:"===fr()||Zn())&&!nr()&&cr()&&!tr()}function pr(){return"http:"===fr()||"https:"===fr()}function fr(){return n.location&&n.location.protocol||null}function dr(t){return!Qn(t=t||ur())&&or(t)!=rr}function mr(t){return void 0===t?null:jn(t)}function yr(t){var e,n={};for(e in t)t.hasOwnProperty(e)&&null!=t[e]&&(n[e]=t[e]);return n}function gr(t){if(null!==t)return JSON.parse(t)}function vr(t){return t||Math.floor(1e9*Math.random()).toString()}function _r(t){return"Safari"!=or(t=t||ur())&&!t.toLowerCase().match(/iphone|ipad|ipod/)}function br(){var t=n.___jsl;if(t&&t.H)for(var e in t.H)if(t.H[e].r=t.H[e].r||[],t.H[e].L=t.H[e].L||[],t.H[e].r=t.H[e].L.concat(),t.CP)for(var r=0;r<t.CP.length;r++)t.CP[r]=null}function wr(t,e){if(t>e)throw Error("Short delay should be less than long delay!");this.a=t,this.c=e,t=ur(),e=er(),this.b=Qn(t)||"ReactNative"===e}function Er(){var t=n.document;return!t||void 0===t.visibilityState||"visible"==t.visibilityState}function Sr(t){try{var e=new Date(parseInt(t,10));if(!isNaN(e.getTime())&&!/[^0-9]/.test(t))return e.toUTCString()}catch(n){}return null}function Cr(){return!(!lr("fireauth.oauthhelper",n)&&!lr("fireauth.iframe",n))}wr.prototype.get=function(){var t=n.navigator;return!t||"boolean"!=typeof t.onLine||!pr()&&"chrome-extension:"!==fr()&&void 0===t.connection||t.onLine?this.b?this.c:this.a:Math.min(5e3,this.a)};var Tr,Ir={};function xr(t){Ir[t]||(Ir[t]=!0,"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(t))}try{var kr={};Object.defineProperty(kr,"abcd",{configurable:!0,enumerable:!0,value:1}),Object.defineProperty(kr,"abcd",{configurable:!0,enumerable:!0,value:2}),Tr=2==kr.abcd}catch(Ht){Tr=!1}function Ar(t,e,n){Tr?Object.defineProperty(t,e,{configurable:!0,enumerable:!0,value:n}):t[e]=n}function Or(t,e){if(e)for(var n in e)e.hasOwnProperty(n)&&Ar(t,n,e[n])}function Nr(t){var e={};return Or(e,t),e}function Dr(t){var e=t;if("object"==typeof t&&null!=t)for(var n in e="length"in t?[]:{},t)Ar(e,n,Dr(t[n]));return e}function Rr(t){var e={},n=t[Mr],r=t[Lr];if(!(t=t[Fr])||t!=Pr&&!n)throw Error("Invalid provider user info!");e[Ur]=r||null,e[jr]=n||null,Ar(this,qr,t),Ar(this,Vr,Dr(e))}var Pr="EMAIL_SIGNIN",Mr="email",Lr="newEmail",Fr="requestType",jr="email",Ur="fromEmail",Vr="data",qr="operation";function Br(t,e){this.code=zr+t,this.message=e||Wr[t]||""}function Hr(t){var e=t&&t.code;return e?new Br(e.substring(zr.length),t.message):null}E(Br,Error),Br.prototype.C=function(){return{code:this.code,message:this.message}},Br.prototype.toJSON=function(){return this.C()};var zr="auth/",Wr={"argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-already-in-use":"The email address is already in use by another account.","expired-action-code":"The action code has expired. ","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal error has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registed for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal error has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is malformed or has expired.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal error has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The OIDC ID token requires a valid unhashed nonce.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network error (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal error has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted.  Please whitelist the domain in the Firebase console.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","user-cancelled":"User did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled."};function Qr(t){var e=t[Jr];if(void 0===e)throw new Br("missing-continue-uri");if("string"!=typeof e||"string"==typeof e&&!e.length)throw new Br("invalid-continue-uri");this.h=e,this.b=this.a=null,this.g=!1;var n=t[Kr];if(n&&"object"==typeof n){e=n[ti];var r=n[Zr];if(n=n[$r],"string"==typeof e&&e.length){if(this.a=e,void 0!==r&&"boolean"!=typeof r)throw new Br("argument-error",Zr+" property must be a boolean when specified.");if(this.g=!!r,void 0!==n&&("string"!=typeof n||"string"==typeof n&&!n.length))throw new Br("argument-error",$r+" property must be a non empty string when specified.");this.b=n||null}else{if(void 0!==e)throw new Br("argument-error",ti+" property must be a non empty string when specified.");if(void 0!==r||void 0!==n)throw new Br("missing-android-pkg-name")}}else if(void 0!==n)throw new Br("argument-error",Kr+" property must be a non null object when specified.");if(this.f=null,(e=t[Xr])&&"object"==typeof e){if("string"==typeof(e=e[ei])&&e.length)this.f=e;else if(void 0!==e)throw new Br("argument-error",ei+" property must be a non empty string when specified.")}else if(void 0!==e)throw new Br("argument-error",Xr+" property must be a non null object when specified.");if(void 0!==(e=t[Yr])&&"boolean"!=typeof e)throw new Br("argument-error",Yr+" property must be a boolean when specified.");if(this.c=!!e,void 0!==(t=t[Gr])&&("string"!=typeof t||"string"==typeof t&&!t.length))throw new Br("argument-error",Gr+" property must be a non empty string when specified.");this.i=t||null}var Kr="android",Gr="dynamicLinkDomain",Yr="handleCodeInApp",Xr="iOS",Jr="url",Zr="installApp",$r="minimumVersion",ti="packageName",ei="bundleId";function ni(t){var e={};for(var n in e.continueUrl=t.h,e.canHandleCodeInApp=t.c,(e.androidPackageName=t.a)&&(e.androidMinimumVersion=t.b,e.androidInstallApp=t.g),e.iOSBundleId=t.f,e.dynamicLinkDomain=t.i,e)null===e[n]&&delete e[n];return e}var ri=null,ii=null;function oi(t){this.c=t.sub,w(),this.a=t.provider_id||t.firebase&&t.firebase.sign_in_provider||null,this.b=!!t.is_anonymous||"anonymous"==this.a}function si(t){return(t=ai(t))&&t.sub&&t.iss&&t.aud&&t.exp?new oi(t):null}function ai(t){if(!t)return null;if(3!=(t=t.split(".")).length)return null;for(var e=(4-(t=t[1]).length%4)%4,n=0;n<e;n++)t+=".";try{return JSON.parse(function(t){var e="";return function(t,e){function n(e){for(;r<t.length;){var n=t.charAt(r++),i=ii[n];if(null!=i)return i;if(!/^[\s\xa0]*$/.test(n))throw Error("Unknown base64 encoding at char: "+n)}return e}!function(){if(!ri){ri={},ii={};for(var t=0;65>t;t++)ri[t]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(t),ii[ri[t]]=t,62<=t&&(ii["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.".charAt(t)]=t)}}();for(var r=0;;){var i=n(-1),o=n(0),s=n(64),a=n(64);if(64===a&&-1===i)break;e(i<<2|o>>4),64!=s&&(e(o<<4&240|s>>2),64!=a&&e(s<<6&192|a))}}(t,function(t){e+=String.fromCharCode(t)}),e}(t))}catch(r){}return null}oi.prototype.f=function(){return this.b};var ui,li={bd:{bb:"https://www.googleapis.com/identitytoolkit/v3/relyingparty/",jb:"https://securetoken.googleapis.com/v1/token",id:"p"},dd:{bb:"https://staging-www.sandbox.googleapis.com/identitytoolkit/v3/relyingparty/",jb:"https://staging-securetoken.sandbox.googleapis.com/v1/token",id:"s"},ed:{bb:"https://www-googleapis-test.sandbox.google.com/identitytoolkit/v3/relyingparty/",jb:"https://test-securetoken.sandbox.googleapis.com/v1/token",id:"t"}};function ci(t){for(var e in li)if(li[e].id===t)return{firebaseEndpoint:(t=li[e]).bb,secureTokenEndpoint:t.jb};return null}ui=ci("__EID__")?"__EID__":void 0;var hi="oauth_consumer_key oauth_nonce oauth_signature oauth_signature_method oauth_timestamp oauth_token oauth_version".split(" "),pi=["client_id","response_type","scope","redirect_uri","state"],fi={Xc:{Na:"locale",Ba:500,Aa:600,Oa:"facebook.com",ib:pi},Zc:{Na:null,Ba:500,Aa:620,Oa:"github.com",ib:pi},$c:{Na:"hl",Ba:515,Aa:680,Oa:"google.com",ib:pi},fd:{Na:"lang",Ba:485,Aa:705,Oa:"twitter.com",ib:hi}};function di(t){for(var e in fi)if(fi[e].Oa==t)return fi[e];return null}function mi(t){var e={};e["facebook.com"]=bi,e["google.com"]=Ei,e["github.com"]=wi,e["twitter.com"]=Si;var n=t&&t[gi];try{if(n)return e[n]?new e[n](t):new _i(t);if(void 0!==t[yi])return new vi(t)}catch(r){}return null}var yi="idToken",gi="providerId";function vi(t){var e=t[gi];if(!e&&t[yi]){var n=si(t[yi]);n&&n.a&&(e=n.a)}if(!e)throw Error("Invalid additional user info!");"anonymous"!=e&&"custom"!=e||(e=null),n=!1,void 0!==t.isNewUser?n=!!t.isNewUser:"identitytoolkit#SignupNewUserResponse"===t.kind&&(n=!0),Ar(this,"providerId",e),Ar(this,"isNewUser",n)}function _i(t){vi.call(this,t),Ar(this,"profile",Dr((t=gr(t.rawUserInfo||"{}"))||{}))}function bi(t){if(_i.call(this,t),"facebook.com"!=this.providerId)throw Error("Invalid provider ID!")}function wi(t){if(_i.call(this,t),"github.com"!=this.providerId)throw Error("Invalid provider ID!");Ar(this,"username",this.profile&&this.profile.login||null)}function Ei(t){if(_i.call(this,t),"google.com"!=this.providerId)throw Error("Invalid provider ID!")}function Si(t){if(_i.call(this,t),"twitter.com"!=this.providerId)throw Error("Invalid provider ID!");Ar(this,"username",t.screenName||null)}function Ci(t){this.a=Xe(t)}function Ti(t){var e=Xe(t),n=Ye(e,"link"),r=Ye(Xe(n),"link");return e=Ye(e,"deep_link_id"),Ye(Xe(e),"link")||e||r||n||t}function Ii(t,e){return t.then(function(t){if(t[us]){var n=si(t[us]);if(!n||e!=n.c)throw new Br("user-mismatch");return t}throw new Br("user-mismatch")}).s(function(t){throw t&&t.code&&t.code==zr+"user-not-found"?new Br("user-mismatch"):t})}function xi(t,e){if(!e)throw new Br("internal-error","failed to construct a credential");this.a=e,Ar(this,"providerId",t),Ar(this,"signInMethod",t)}function ki(t){return{pendingToken:t.a,requestUri:"http://localhost"}}function Ai(t,e,n){if(this.a=null,e.idToken||e.accessToken)e.idToken&&Ar(this,"idToken",e.idToken),e.accessToken&&Ar(this,"accessToken",e.accessToken),e.nonce&&!e.pendingToken&&Ar(this,"nonce",e.nonce),e.pendingToken&&(this.a=e.pendingToken);else{if(!e.oauthToken||!e.oauthTokenSecret)throw new Br("internal-error","failed to construct a credential");Ar(this,"accessToken",e.oauthToken),Ar(this,"secret",e.oauthTokenSecret)}Ar(this,"providerId",t),Ar(this,"signInMethod",n)}function Oi(t){var e={};return t.idToken&&(e.id_token=t.idToken),t.accessToken&&(e.access_token=t.accessToken),t.secret&&(e.oauth_token_secret=t.secret),e.providerId=t.providerId,t.nonce&&!t.a&&(e.nonce=t.nonce),e={postBody:ln(e).toString(),requestUri:"http://localhost"},t.a&&(delete e.postBody,e.pendingToken=t.a),e}function Ni(t,e){this.Fc=e||[],Or(this,{providerId:t,isOAuthProvider:!0}),this.zb={},this.eb=(di(t)||{}).Na||null,this.ab=null}function Di(t){if("string"!=typeof t||0!=t.indexOf("saml."))throw new Br("argument-error",'SAML provider IDs must be prefixed with "saml."');Ni.call(this,t,[])}function Ri(t){Ni.call(this,t,pi),this.a=[]}function Pi(){Ri.call(this,"facebook.com")}function Mi(t){if(!t)throw new Br("argument-error","credential failed: expected 1 argument (the OAuth access token).");var e=t;return d(t)&&(e=t.accessToken),(new Pi).credential(null,e)}function Li(){Ri.call(this,"github.com")}function Fi(t){if(!t)throw new Br("argument-error","credential failed: expected 1 argument (the OAuth access token).");var e=t;return d(t)&&(e=t.accessToken),(new Li).credential(null,e)}function ji(){Ri.call(this,"google.com"),this.ua("profile")}function Ui(t,e){var n=t;return d(t)&&(n=t.idToken,e=t.accessToken),(new ji).credential(n,e)}function Vi(){Ni.call(this,"twitter.com",hi)}function qi(t,e){var n=t;if(d(n)||(n={oauthToken:t,oauthTokenSecret:e}),!n.oauthToken||!n.oauthTokenSecret)throw new Br("argument-error","credential failed: expected 2 arguments (the OAuth access token and secret).");return new Ai("twitter.com",n,"twitter.com")}function Bi(t,e,n){this.a=t,this.c=e,Ar(this,"providerId","password"),Ar(this,"signInMethod",n===Hi.EMAIL_LINK_SIGN_IN_METHOD?Hi.EMAIL_LINK_SIGN_IN_METHOD:Hi.EMAIL_PASSWORD_SIGN_IN_METHOD)}function Hi(){Or(this,{providerId:"password",isOAuthProvider:!1})}function zi(t,e){if(!(e=Wi(e)))throw new Br("argument-error","Invalid email link!");return new Bi(t,e,Hi.EMAIL_LINK_SIGN_IN_METHOD)}function Wi(t){var e=Ye((t=new Ci(t=Ti(t))).a,"oobCode")||null;return"signIn"===(Ye(t.a,"mode")||null)&&e?e:null}function Qi(t){if(!(t.Ua&&t.Ta||t.Fa&&t.$))throw new Br("internal-error");this.a=t,Ar(this,"providerId","phone"),Ar(this,"signInMethod","phone")}function Ki(t){return t.a.Fa&&t.a.$?{temporaryProof:t.a.Fa,phoneNumber:t.a.$}:{sessionInfo:t.a.Ua,code:t.a.Ta}}function Gi(t){try{this.a=t||i.a.auth()}catch(e){throw new Br("argument-error","Either an instance of firebase.auth.Auth must be passed as an argument to the firebase.auth.PhoneAuthProvider constructor, or the default firebase App instance must be initialized via firebase.initializeApp().")}Or(this,{providerId:"phone",isOAuthProvider:!1})}function Yi(t,e){if(!t)throw new Br("missing-verification-id");if(!e)throw new Br("missing-verification-code");return new Qi({Ua:t,Ta:e})}function Xi(t){if(t.temporaryProof&&t.phoneNumber)return new Qi({Fa:t.temporaryProof,$:t.phoneNumber});var e=t&&t.providerId;if(!e||"password"===e)return null;var n=t&&t.oauthAccessToken,r=t&&t.oauthTokenSecret,i=t&&t.nonce,o=t&&t.oauthIdToken,s=t&&t.pendingToken;try{switch(e){case"google.com":return Ui(o,n);case"facebook.com":return Mi(n);case"github.com":return Fi(n);case"twitter.com":return qi(n,r);default:return n||r||o||s?s?0==e.indexOf("saml.")?new xi(e,s):new Ai(e,{pendingToken:s,idToken:t.oauthIdToken,accessToken:t.oauthAccessToken},e):new Ri(e).credential(o,n,i):null}}catch(a){return null}}function Ji(t){if(!t.isOAuthProvider)throw new Br("invalid-oauth-provider")}function Zi(t,e,n,r,i,o){if(this.b=t,this.c=e||null,this.f=n||null,this.g=r||null,this.h=o||null,this.a=i||null,!this.f&&!this.a)throw new Br("invalid-auth-event");if(this.f&&this.a)throw new Br("invalid-auth-event");if(this.f&&!this.g)throw new Br("invalid-auth-event")}function $i(t){return(t=t||{}).type?new Zi(t.type,t.eventId,t.urlResponse,t.sessionId,t.error&&Hr(t.error),t.postBody):null}function to(){this.b=null,this.a=[]}E(_i,vi),E(bi,_i),E(wi,_i),E(Ei,_i),E(Si,_i),xi.prototype.la=function(t){return Is(t,ki(this))},xi.prototype.b=function(t,e){var n=ki(this);return n.idToken=e,xs(t,n)},xi.prototype.f=function(t,e){return Ii(ks(t,ki(this)),e)},xi.prototype.C=function(){return{providerId:this.providerId,signInMethod:this.signInMethod,pendingToken:this.a}},Ai.prototype.la=function(t){return Is(t,Oi(this))},Ai.prototype.b=function(t,e){var n=Oi(this);return n.idToken=e,xs(t,n)},Ai.prototype.f=function(t,e){return Ii(ks(t,Oi(this)),e)},Ai.prototype.C=function(){var t={providerId:this.providerId,signInMethod:this.signInMethod};return this.idToken&&(t.oauthIdToken=this.idToken),this.accessToken&&(t.oauthAccessToken=this.accessToken),this.secret&&(t.oauthTokenSecret=this.secret),this.nonce&&(t.nonce=this.nonce),this.a&&(t.pendingToken=this.a),t},Ni.prototype.Da=function(t){return this.zb=it(t),this},E(Di,Ni),E(Ri,Ni),Ri.prototype.ua=function(t){return F(this.a,t)||this.a.push(t),this},Ri.prototype.Fb=function(){return q(this.a)},Ri.prototype.credential=function(t,e,n){if(!t&&!e)throw new Br("argument-error","credential failed: must provide the ID token and/or the access token.");return new Ai(this.providerId,{idToken:t||null,accessToken:e||null,nonce:n||null},this.providerId)},E(Pi,Ri),Ar(Pi,"PROVIDER_ID","facebook.com"),Ar(Pi,"FACEBOOK_SIGN_IN_METHOD","facebook.com"),E(Li,Ri),Ar(Li,"PROVIDER_ID","github.com"),Ar(Li,"GITHUB_SIGN_IN_METHOD","github.com"),E(ji,Ri),Ar(ji,"PROVIDER_ID","google.com"),Ar(ji,"GOOGLE_SIGN_IN_METHOD","google.com"),E(Vi,Ni),Ar(Vi,"PROVIDER_ID","twitter.com"),Ar(Vi,"TWITTER_SIGN_IN_METHOD","twitter.com"),Bi.prototype.la=function(t){return this.signInMethod==Hi.EMAIL_LINK_SIGN_IN_METHOD?ra(t,Ls,{email:this.a,oobCode:this.c}):ra(t,$s,{email:this.a,password:this.c})},Bi.prototype.b=function(t,e){return this.signInMethod==Hi.EMAIL_LINK_SIGN_IN_METHOD?ra(t,Fs,{idToken:e,email:this.a,oobCode:this.c}):ra(t,Ks,{idToken:e,email:this.a,password:this.c})},Bi.prototype.f=function(t,e){return Ii(this.la(t),e)},Bi.prototype.C=function(){return{email:this.a,password:this.c,signInMethod:this.signInMethod}},Or(Hi,{PROVIDER_ID:"password"}),Or(Hi,{EMAIL_LINK_SIGN_IN_METHOD:"emailLink"}),Or(Hi,{EMAIL_PASSWORD_SIGN_IN_METHOD:"password"}),Qi.prototype.la=function(t){return t.Va(Ki(this))},Qi.prototype.b=function(t,e){var n=Ki(this);return n.idToken=e,ra(t,ea,n)},Qi.prototype.f=function(t,e){var n=Ki(this);return n.operation="REAUTH",Ii(t=ra(t,na,n),e)},Qi.prototype.C=function(){var t={providerId:"phone"};return this.a.Ua&&(t.verificationId=this.a.Ua),this.a.Ta&&(t.verificationCode=this.a.Ta),this.a.Fa&&(t.temporaryProof=this.a.Fa),this.a.$&&(t.phoneNumber=this.a.$),t},Gi.prototype.Va=function(t,e){var n=this.a.b;return St(e.verify()).then(function(i){if(!r(i))throw new Br("argument-error","An implementation of firebase.auth.ApplicationVerifier.prototype.verify() must return a firebase.Promise that resolves with a string.");switch(e.type){case"recaptcha":return function(t,e){return ra(n,Ws,e)}(0,{phoneNumber:t,recaptchaToken:i}).then(function(t){return"function"==typeof e.reset&&e.reset(),t},function(t){throw"function"==typeof e.reset&&e.reset(),t});default:throw new Br("argument-error",'Only firebase.auth.ApplicationVerifiers with type="recaptcha" are currently supported.')}})},Or(Gi,{PROVIDER_ID:"phone"}),Or(Gi,{PHONE_SIGN_IN_METHOD:"phone"}),Zi.prototype.C=function(){return{type:this.b,eventId:this.c,urlResponse:this.f,sessionId:this.g,postBody:this.h,error:this.a&&this.a.C()}};var eo,no=null;function ro(t){var e="unauthorized-domain",n=void 0,r=Xe(t);t=r.b,"chrome-extension"==(r=r.c)?n=lt("This chrome extension ID (chrome-extension://%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.",t):"http"==r||"https"==r?n=lt("This domain (%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.",t):e="operation-not-supported-in-this-environment",Br.call(this,e,n)}function io(t,e,n){Br.call(this,t,n),(t=e||{}).Ab&&Ar(this,"email",t.Ab),t.$&&Ar(this,"phoneNumber",t.$),t.credential&&Ar(this,"credential",t.credential)}function oo(t){if(t.code){var e=t.code||"";0==e.indexOf(zr)&&(e=e.substring(zr.length));var n={credential:Xi(t)};if(t.email)n.Ab=t.email;else if(t.phoneNumber)n.$=t.phoneNumber;else if(!n.credential)return new Br(e,t.message||void 0);return new io(e,n,t.message)}return null}function so(){}function ao(){}function uo(t){if(!t.f&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var e=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],n=0;n<e.length;n++){var r=e[n];try{return new ActiveXObject(r),t.f=r}catch(i){}}throw Error("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed")}return t.f}function lo(){}function co(){this.a=new XDomainRequest,this.readyState=0,this.onreadystatechange=null,this.responseType=this.responseText=this.response="",this.status=-1,this.statusText="",this.a.onload=_(this.fc,this),this.a.onerror=_(this.Gb,this),this.a.onprogress=_(this.gc,this),this.a.ontimeout=_(this.kc,this)}function ho(t,e){t.readyState=e,t.onreadystatechange&&t.onreadystatechange()}function po(t,e,n){this.reset(t,e,n,void 0,void 0)}function fo(t){this.f=t,this.b=this.c=this.a=null}function mo(t,e){this.name=t,this.value=e}to.prototype.subscribe=function(t){var e=this;this.a.push(t),this.b||(this.b=function(t){for(var n=0;n<e.a.length;n++)e.a[n](t)},"function"==typeof(t=lr("universalLinks.subscribe",n))&&t(null,this.b))},to.prototype.unsubscribe=function(t){U(this.a,function(e){return e==t})},E(ro,Br),E(io,Br),io.prototype.C=function(){var t={code:this.code,message:this.message};this.email&&(t.email=this.email),this.phoneNumber&&(t.phoneNumber=this.phoneNumber);var e=this.credential&&this.credential.C();return e&&ut(t,e),t},io.prototype.toJSON=function(){return this.C()},so.prototype.c=null,E(ao,so),ao.prototype.a=function(){var t=uo(this);return t?new ActiveXObject(t):new XMLHttpRequest},ao.prototype.b=function(){var t={};return uo(this)&&(t[0]=!0,t[1]=!0),t},eo=new ao,E(lo,so),lo.prototype.a=function(){var t=new XMLHttpRequest;if("withCredentials"in t)return t;if("undefined"!=typeof XDomainRequest)return new co;throw Error("Unsupported browser")},lo.prototype.b=function(){return{}},(t=co.prototype).open=function(t,e,n){if(null!=n&&!n)throw Error("Only async requests are supported.");this.a.open(t,e)},t.send=function(t){if(t){if("string"!=typeof t)throw Error("Only string data is supported");this.a.send(t)}else this.a.send()},t.abort=function(){this.a.abort()},t.setRequestHeader=function(){},t.getResponseHeader=function(t){return"content-type"==t.toLowerCase()?this.a.contentType:""},t.fc=function(){this.status=200,this.response=this.responseText=this.a.responseText,ho(this,4)},t.Gb=function(){this.status=500,this.response=this.responseText="",ho(this,4)},t.kc=function(){this.Gb()},t.gc=function(){this.status=200,ho(this,1)},t.getAllResponseHeaders=function(){return"content-type: "+this.a.contentType},po.prototype.a=null,po.prototype.reset=function(t,e,n,r,i){r||w(),delete this.a},mo.prototype.toString=function(){return this.name};var yo=new mo("SEVERE",1e3),go=new mo("WARNING",900),vo=new mo("CONFIG",700),_o=new mo("FINE",500);fo.prototype.log=function(t,e,n){if(t.value>=function t(e){return e.c?e.c:e.a?t(e.a):(I("Root logger has no level set."),null)}(this).value)for(f(e)&&(e=e()),t=new po(t,String(e),this.f),n&&(t.a=n),n=this;n;)n=n.a};var bo={},wo=null;function Eo(t){var e;if(wo||(wo=new fo(""),bo[""]=wo,wo.c=vo),!(e=bo[t])){e=new fo(t);var n=t.lastIndexOf("."),r=t.substr(n+1);(n=Eo(t.substr(0,n))).b||(n.b={}),n.b[r]=e,e.a=n,bo[t]=e}return e}function So(t,e){t&&t.log(_o,e,void 0)}function Co(t){this.f=t}function To(t){De.call(this),this.u=t,this.readyState=Io,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.i=new Headers,this.b=null,this.m="GET",this.g="",this.a=!1,this.h=Eo("goog.net.FetchXmlHttp"),this.l=this.c=this.f=null}E(Co,so),Co.prototype.a=function(){return new To(this.f)},Co.prototype.b=function(t){return function(){return t}}({}),E(To,De);var Io=0;function xo(t){t.c.read().then(t.ec.bind(t)).catch(t.La.bind(t))}function ko(t,e){e&&t.f&&(t.status=t.f.status,t.statusText=t.f.statusText),t.readyState=4,t.f=null,t.c=null,t.l=null,Ao(t)}function Ao(t){t.onreadystatechange&&t.onreadystatechange.call(t)}function Oo(t){De.call(this),this.headers=new Ve,this.D=t||null,this.c=!1,this.w=this.a=null,this.h=this.N=this.l="",this.f=this.I=this.i=this.G=!1,this.g=0,this.u=null,this.m=No,this.v=this.O=!1}(t=To.prototype).open=function(t,e){if(this.readyState!=Io)throw this.abort(),Error("Error reopening a connection");this.m=t,this.g=e,this.readyState=1,Ao(this)},t.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.a=!0;var e={headers:this.i,method:this.m,credentials:void 0,cache:void 0};t&&(e.body=t),this.u.fetch(new Request(this.g,e)).then(this.jc.bind(this),this.La.bind(this))},t.abort=function(){this.response=this.responseText="",this.i=new Headers,this.status=0,this.c&&this.c.cancel("Request was aborted."),1<=this.readyState&&this.a&&4!=this.readyState&&(this.a=!1,ko(this,!1)),this.readyState=Io},t.jc=function(t){this.a&&(this.f=t,this.b||(this.b=t.headers,this.readyState=2,Ao(this)),this.a&&(this.readyState=3,Ao(this),this.a&&("arraybuffer"===this.responseType?t.arrayBuffer().then(this.hc.bind(this),this.La.bind(this)):void 0!==n.ReadableStream&&"body"in t?(this.response=this.responseText="",this.c=t.body.getReader(),this.l=new TextDecoder,xo(this)):t.text().then(this.ic.bind(this),this.La.bind(this)))))},t.ec=function(t){if(this.a){var e=this.l.decode(t.value?t.value:new Uint8Array(0),{stream:!t.done});e&&(this.response=this.responseText+=e),t.done?ko(this,!0):Ao(this),3==this.readyState&&xo(this)}},t.ic=function(t){this.a&&(this.response=this.responseText=t,ko(this,!0))},t.hc=function(t){this.a&&(this.response=t,ko(this,!0))},t.La=function(t){var e=this.h;e&&e.log(go,"Failed to fetch url "+this.g,t instanceof Error?t:Error(t)),this.a&&ko(this,!0)},t.setRequestHeader=function(t,e){this.i.append(t,e)},t.getResponseHeader=function(t){return this.b?this.b.get(t.toLowerCase())||"":((t=this.h)&&t.log(go,"Attempting to get response header but no headers have been received for url: "+this.g,void 0),"")},t.getAllResponseHeaders=function(){if(!this.b){var t=this.h;return t&&t.log(go,"Attempting to get all response headers but no headers have been received for url: "+this.g,void 0),""}t=[];for(var e=this.b.entries(),n=e.next();!n.done;)t.push((n=n.value)[0]+": "+n[1]),n=e.next();return t.join("\r\n")},E(Oo,De);var No="";Oo.prototype.b=Eo("goog.net.XhrIo");var Do=/^https?$/i,Ro=["POST","PUT"];function Po(t){return"content-type"==t.toLowerCase()}function Mo(t,e){t.c=!1,t.a&&(t.f=!0,t.a.abort(),t.f=!1),t.h=e,Lo(t),jo(t)}function Lo(t){t.G||(t.G=!0,t.dispatchEvent("complete"),t.dispatchEvent("error"))}function Fo(t){if(t.c&&void 0!==e)if(t.w[1]&&4==Vo(t)&&2==qo(t))So(t.b,Bo(t,"Local request error detected and ignored"));else if(t.i&&4==Vo(t))Le(t.Jb,0,t);else if(t.dispatchEvent("readystatechange"),4==Vo(t)){So(t.b,Bo(t,"Request complete")),t.c=!1;try{var r,i=qo(t);t:switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var o=!0;break t;default:o=!1}if(!(r=o)){var s;if(s=0===i){var a=String(t.l).match(He)[1]||null;if(!a&&n.self&&n.self.location){var u=n.self.location.protocol;a=u.substr(0,u.length-1)}s=!Do.test(a?a.toLowerCase():"")}r=s}if(r)t.dispatchEvent("complete"),t.dispatchEvent("success");else{try{var l=2<Vo(t)?t.a.statusText:""}catch(c){So(t.b,"Can not get status: "+c.message),l=""}t.h=l+" ["+qo(t)+"]",Lo(t)}}finally{jo(t)}}}function jo(t,e){if(t.a){Uo(t);var n=t.a,r=t.w[0]?u:null;t.a=null,t.w=null,e||t.dispatchEvent("ready");try{n.onreadystatechange=r}catch(i){(t=t.b)&&t.log(yo,"Problem encountered resetting onreadystatechange: "+i.message,void 0)}}}function Uo(t){t.a&&t.v&&(t.a.ontimeout=null),t.u&&(n.clearTimeout(t.u),t.u=null)}function Vo(t){return t.a?t.a.readyState:0}function qo(t){try{return 2<Vo(t)?t.a.status:-1}catch(e){return-1}}function Bo(t,e){return e+" ["+t.N+" "+t.l+" "+qo(t)+"]"}function Ho(t){var e=ts;this.g=[],this.v=e,this.u=t||null,this.f=this.a=!1,this.c=void 0,this.l=this.w=this.i=!1,this.h=0,this.b=null,this.o=0}function zo(t,e,n){t.a=!0,t.c=n,t.f=!e,Go(t)}function Wo(t){if(t.a){if(!t.l)throw new Yo(t);t.l=!1}}function Qo(t,e,n,r){t.g.push([e,n,r]),t.a&&Go(t)}function Ko(t){return L(t.g,function(t){return f(t[1])})}function Go(t){if(t.h&&t.a&&Ko(t)){var e=t.h,r=Zo[e];r&&(n.clearTimeout(r.a),delete Zo[e]),t.h=0}t.b&&(t.b.o--,delete t.b),e=t.c;for(var i=r=!1;t.g.length&&!t.i;){var o=t.g.shift(),s=o[0],a=o[1];if(o=o[2],s=t.f?a:s)try{var u=s.call(o||t.u,e);void 0!==u&&(t.f=t.f&&(u==e||u instanceof Error),t.c=e=u),(S(e)||"function"==typeof n.Promise&&e instanceof n.Promise)&&(i=!0,t.i=!0)}catch(l){e=l,t.f=!0,Ko(t)||(r=!0)}}t.c=e,i&&(u=_(t.m,t,!0),i=_(t.m,t,!1),e instanceof Ho?(Qo(e,u,i),e.w=!0):e.then(u,i)),r&&(e=new Jo(e),Zo[e.a]=e,t.h=e.a)}function Yo(){C.call(this)}function Xo(){C.call(this)}function Jo(t){this.a=n.setTimeout(_(this.c,this),0),this.b=t}(t=Oo.prototype).Ga=function(){void 0!==e&&this.a&&(this.h="Timed out after "+this.g+"ms, aborting",So(this.b,Bo(this,this.h)),this.dispatchEvent("timeout"),this.abort(8))},t.abort=function(){this.a&&this.c&&(So(this.b,Bo(this,"Aborting")),this.c=!1,this.f=!0,this.a.abort(),this.f=!1,this.dispatchEvent("complete"),this.dispatchEvent("abort"),jo(this))},t.va=function(){this.a&&(this.c&&(this.c=!1,this.f=!0,this.a.abort(),this.f=!1),jo(this,!0)),Oo.pb.va.call(this)},t.Jb=function(){this.qa||(this.I||this.i||this.f?Fo(this):this.yc())},t.yc=function(){Fo(this)},t.getResponse=function(){try{if(!this.a)return null;if("response"in this.a)return this.a.response;switch(this.m){case No:case"text":return this.a.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in this.a)return this.a.mozResponseArrayBuffer}var t=this.b;return t&&t.log(yo,"Response type "+this.m+" is not supported on this browser",void 0),null}catch(e){return So(this.b,"Can not get response: "+e.message),null}},Ho.prototype.cancel=function(t){if(this.a)this.c instanceof Ho&&this.c.cancel();else{if(this.b){var e=this.b;delete this.b,t?e.cancel(t):(e.o--,0>=e.o&&e.cancel())}this.v?this.v.call(this.u,this):this.l=!0,this.a||(t=new Xo(this),Wo(this),zo(this,!1,t))}},Ho.prototype.m=function(t,e){this.i=!1,zo(this,t,e)},Ho.prototype.then=function(t,e,n){var r,i,o=new yt(function(t,e){r=t,i=e});return Qo(this,r,function(t){t instanceof Xo?o.cancel():i(t)}),o.then(t,e,n)},Ho.prototype.$goog_Thenable=!0,E(Yo,C),Yo.prototype.message="Deferred has already fired",Yo.prototype.name="AlreadyCalledError",E(Xo,C),Xo.prototype.message="Deferred was canceled",Xo.prototype.name="CanceledError",Jo.prototype.c=function(){throw delete Zo[this.a],this.b};var Zo={};function $o(t){var e={},r=e.document||document,i=bn(t),o=document.createElement("SCRIPT"),u={Lb:o,Ga:void 0},l=new Ho(u),c=null,h=null!=e.timeout?e.timeout:5e3;return 0<h&&(c=window.setTimeout(function(){es(o,!0);var t=new is(rs,"Timeout reached for loading script "+i);Wo(l),zo(l,!1,t)},h),u.Ga=c),o.onload=o.onreadystatechange=function(){o.readyState&&"loaded"!=o.readyState&&"complete"!=o.readyState||(es(o,e.hd||!1,c),Wo(l),zo(l,!0,null))},o.onerror=function(){es(o,!0,c);var t=new is(ns,"Error while loading script "+i);Wo(l),zo(l,!1,t)},ut(u=e.attributes||{},{type:"text/javascript",charset:"UTF-8"}),Mn(o,u),function(t,e){t.src=bn(e),null===a&&(a=(e=(e=n.document).querySelector&&e.querySelector("script[nonce]"))&&(e=e.nonce||e.getAttribute("nonce"))&&s.test(e)?e:""),(e=a)&&t.setAttribute("nonce",e)}(o,t),function(t){var e;return(e=(t||document).getElementsByTagName("HEAD"))&&0!=e.length?e[0]:t.documentElement}(r).appendChild(o),l}function ts(){if(this&&this.Lb){var t=this.Lb;t&&"SCRIPT"==t.tagName&&es(t,!0,this.Ga)}}function es(t,e,r){null!=r&&n.clearTimeout(r),t.onload=u,t.onerror=u,t.onreadystatechange=u,e&&window.setTimeout(function(){t&&t.parentNode&&t.parentNode.removeChild(t)},0)}var ns=0,rs=1;function is(t,e){var n="Jsloader error (code #"+t+")";e&&(n+=": "+e),C.call(this,n),this.code=t}function os(t){this.f=t}function ss(t,e,r){if(this.b=t,this.i=(t=e||{}).secureTokenEndpoint||"https://securetoken.googleapis.com/v1/token",this.o=t.secureTokenTimeout||ls,this.f=it(t.secureTokenHeaders||cs),this.g=t.firebaseEndpoint||"https://www.googleapis.com/identitytoolkit/v3/relyingparty/",this.h=t.firebaseTimeout||hs,this.a=it(t.firebaseHeaders||ps),r&&(this.a["X-Client-Version"]=r,this.f["X-Client-Version"]=r),r="Node"==er(),!(r=n.XMLHttpRequest||r&&i.a.INTERNAL.node&&i.a.INTERNAL.node.XMLHttpRequest)&&!tr())throw new Br("internal-error","The XMLHttpRequest compatibility library was not found.");this.c=void 0,this.c=tr()?new Co(self):nr()?new os(r):new lo}E(is,C),E(os,so),os.prototype.a=function(){return new this.f},os.prototype.b=function(){return{}};var as,us="idToken",ls=new wr(3e4,6e4),cs={"Content-Type":"application/x-www-form-urlencoded"},hs=new wr(3e4,6e4),ps={"Content-Type":"application/json"};function fs(t,e){e?t.a["X-Firebase-Locale"]=e:delete t.a["X-Firebase-Locale"]}function ds(t,e){e?(t.a["X-Client-Version"]=e,t.f["X-Client-Version"]=e):(delete t.a["X-Client-Version"],delete t.f["X-Client-Version"])}function ms(t,e,r,i,o,s,a){(function(){var t=ur();return!((t=or(t)!=ir?null:(t=t.match(/\sChrome\/(\d+)/i))&&2==t.length?parseInt(t[1],10):null)&&30>t||Wt&&te&&!(9<te))})()||tr()?t=_(t.m,t):(as||(as=new yt(function(t,e){!function(t,e){if(((window.gapi||{}).client||{}).request)t();else{n[gs]=function(){((window.gapi||{}).client||{}).request?t():e(Error("CORS_UNSUPPORTED"))};var r=wn(ys,{onload:gs});!function(t,e){Qo($o(r),null,e,void 0)}(0,function(){e(Error("CORS_UNSUPPORTED"))})}}(t,e)})),t=_(t.l,t)),t(e,r,i,o,s,a)}ss.prototype.m=function(t,e,i,o,s,a){if(tr()&&(void 0===n.fetch||void 0===n.Headers||void 0===n.Request))throw new Br("operation-not-supported-in-this-environment","fetch, Headers and Request native APIs or equivalent Polyfills must be available to support HTTP requests from a Worker environment.");var u=new Oo(this.c);if(a){u.g=Math.max(0,a);var l=setTimeout(function(){u.dispatchEvent("timeout")},a)}Re(u,"complete",function(){l&&clearTimeout(l);var t=null;try{t=JSON.parse(function(t){try{return t.a?t.a.responseText:""}catch(e){return So(t.b,"Can not get responseText: "+e.message),""}}(this))||null}catch(n){t=null}e&&e(t)}),Pe(u,"ready",function(){l&&clearTimeout(l),Vt(this)}),Pe(u,"timeout",function(){l&&clearTimeout(l),Vt(this),e&&e(null)}),function(t,e,i,o,s){if(t.a)throw Error("[goog.net.XhrIo] Object is active with another request="+t.l+"; newUri="+e);i=i?i.toUpperCase():"GET",t.l=e,t.h="",t.N=i,t.G=!1,t.c=!0,t.a=t.D?t.D.a():eo.a(),t.w=function(t){return t.c||(t.c=t.b())}(t.D?t.D:eo),t.a.onreadystatechange=_(t.Jb,t);try{So(t.b,Bo(t,"Opening Xhr")),t.I=!0,t.a.open(i,String(e),!0),t.I=!1}catch(u){return So(t.b,Bo(t,"Error opening Xhr: "+u.message)),void Mo(t,u)}e=o||"";var a=new Ve(t.headers);s&&function(t,e){if(t.forEach&&"function"==typeof t.forEach)t.forEach(e,void 0);else if(p(t)||r(t))P(t,e,void 0);else for(var n=Ue(t),i=je(t),o=i.length,s=0;s<o;s++)e.call(void 0,i[s],n&&n[s],t)}(s,function(t,e){a.set(e,t)}),s=function(t){t:{for(var e=Po,n=t.length,i=r(t)?t.split(""):t,o=0;o<n;o++)if(o in i&&e.call(void 0,i[o],o,t)){e=o;break t}e=-1}return 0>e?null:r(t)?t.charAt(e):t[e]}(a.U()),o=n.FormData&&e instanceof n.FormData,!F(Ro,i)||s||o||a.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),a.forEach(function(t,e){this.a.setRequestHeader(e,t)},t),t.m&&(t.a.responseType=t.m),"withCredentials"in t.a&&t.a.withCredentials!==t.O&&(t.a.withCredentials=t.O);try{Uo(t),0<t.g&&(t.v=function(t){return Wt&&ne(9)&&"number"==typeof t.timeout&&void 0!==t.ontimeout}(t.a),So(t.b,Bo(t,"Will abort after "+t.g+"ms if incomplete, xhr2 "+t.v)),t.v?(t.a.timeout=t.g,t.a.ontimeout=_(t.Ga,t)):t.u=Le(t.Ga,t.g,t)),So(t.b,Bo(t,"Sending request")),t.i=!0,t.a.send(e),t.i=!1}catch(u){So(t.b,Bo(t,"Send error: "+u.message)),Mo(t,u)}}(u,t,i,o,s)};var ys=new mn(vn,"https://apis.google.com/js/client.js?onload=%{onload}"),gs="__fcb"+Math.floor(1e6*Math.random()).toString();function vs(t){if(!r(t=t.email)||!Xn.test(t))throw new Br("invalid-email")}function _s(t){"email"in t&&vs(t)}function bs(t){if(!t[us])throw new Br("internal-error")}function ws(t){if(t.phoneNumber||t.temporaryProof){if(!t.phoneNumber||!t.temporaryProof)throw new Br("internal-error")}else{if(!t.sessionInfo)throw new Br("missing-verification-id");if(!t.code)throw new Br("missing-verification-code")}}ss.prototype.l=function(t,e,n,r,i){var o=this;as.then(function(){window.gapi.client.setApiKey(o.b);var s=window.gapi.auth.getToken();window.gapi.auth.setToken(null),window.gapi.client.request({path:t,method:n,body:r,headers:i,authType:"none",callback:function(t){window.gapi.auth.setToken(s),e&&e(t)}})}).s(function(t){e&&e({error:{message:t&&t.message||"CORS_UNSUPPORTED"}})})},ss.prototype.Ra=function(){return ra(this,Gs,{})},ss.prototype.qb=function(t,e){return ra(this,Qs,{idToken:t,email:e})},ss.prototype.rb=function(t,e){return ra(this,Ks,{idToken:t,password:e})};var Es={displayName:"DISPLAY_NAME",photoUrl:"PHOTO_URL"};function Ss(t){if(!t.requestUri||!t.sessionId&&!t.postBody&&!t.pendingToken)throw new Br("internal-error")}function Cs(t,e){return e.oauthIdToken&&e.providerId&&0==e.providerId.indexOf("oidc.")&&!e.pendingToken&&(t.sessionId?e.nonce=t.sessionId:t.postBody&&hn(t=new an(t.postBody),"nonce")&&(e.nonce=t.get("nonce"))),e}function Ts(t){var e=null;if(t.needConfirmation?(t.code="account-exists-with-different-credential",e=oo(t)):"FEDERATED_USER_ID_ALREADY_LINKED"==t.errorMessage?(t.code="credential-already-in-use",e=oo(t)):"EMAIL_EXISTS"==t.errorMessage?(t.code="email-already-in-use",e=oo(t)):t.errorMessage&&(e=ia(t.errorMessage)),e)throw e;if(!t[us])throw new Br("internal-error")}function Is(t,e){return e.returnIdpCredential=!0,ra(t,Ys,e)}function xs(t,e){return e.returnIdpCredential=!0,ra(t,Js,e)}function ks(t,e){return e.returnIdpCredential=!0,e.autoCreate=!1,ra(t,Xs,e)}function As(t){if(!t.oobCode)throw new Br("invalid-action-code")}(t=ss.prototype).sb=function(t,e){var n={idToken:t},r=[];return nt(Es,function(t,i){var o=e[i];null===o?r.push(t):i in e&&(n[i]=o)}),r.length&&(n.deleteAttribute=r),ra(this,Qs,n)},t.lb=function(t,e){return ut(t={requestType:"PASSWORD_RESET",email:t},e),ra(this,qs,t)},t.mb=function(t,e){return ut(t={requestType:"EMAIL_SIGNIN",email:t},e),ra(this,Us,t)},t.kb=function(t,e){return ut(t={requestType:"VERIFY_EMAIL",idToken:t},e),ra(this,Vs,t)},t.Va=function(t){return ra(this,ta,t)},t.$a=function(t,e){return ra(this,zs,{oobCode:t,newPassword:e})},t.Ja=function(t){return ra(this,Ns,{oobCode:t})},t.Xa=function(t){return ra(this,Os,{oobCode:t})};var Os={endpoint:"setAccountInfo",B:As,da:"email"},Ns={endpoint:"resetPassword",B:As,J:function(t){var e=t.requestType;if(!e||!t.email&&"EMAIL_SIGNIN"!=e)throw new Br("internal-error")}},Ds={endpoint:"signupNewUser",B:function(t){if(vs(t),!t.password)throw new Br("weak-password")},J:bs,R:!0},Rs={endpoint:"createAuthUri"},Ps={endpoint:"deleteAccount",T:["idToken"]},Ms={endpoint:"setAccountInfo",T:["idToken","deleteProvider"],B:function(t){if(!h(t.deleteProvider))throw new Br("internal-error")}},Ls={endpoint:"emailLinkSignin",T:["email","oobCode"],B:vs,J:bs,R:!0},Fs={endpoint:"emailLinkSignin",T:["idToken","email","oobCode"],B:vs,J:bs,R:!0},js={endpoint:"getAccountInfo"},Us={endpoint:"getOobConfirmationCode",T:["requestType"],B:function(t){if("EMAIL_SIGNIN"!=t.requestType)throw new Br("internal-error");vs(t)},da:"email"},Vs={endpoint:"getOobConfirmationCode",T:["idToken","requestType"],B:function(t){if("VERIFY_EMAIL"!=t.requestType)throw new Br("internal-error")},da:"email"},qs={endpoint:"getOobConfirmationCode",T:["requestType"],B:function(t){if("PASSWORD_RESET"!=t.requestType)throw new Br("internal-error");vs(t)},da:"email"},Bs={vb:!0,endpoint:"getProjectConfig",Ib:"GET"},Hs={vb:!0,endpoint:"getRecaptchaParam",Ib:"GET",J:function(t){if(!t.recaptchaSiteKey)throw new Br("internal-error")}},zs={endpoint:"resetPassword",B:As,da:"email"},Ws={endpoint:"sendVerificationCode",T:["phoneNumber","recaptchaToken"],da:"sessionInfo"},Qs={endpoint:"setAccountInfo",T:["idToken"],B:_s,R:!0},Ks={endpoint:"setAccountInfo",T:["idToken"],B:function(t){if(_s(t),!t.password)throw new Br("weak-password")},J:bs,R:!0},Gs={endpoint:"signupNewUser",J:bs,R:!0},Ys={endpoint:"verifyAssertion",B:Ss,Pa:Cs,J:Ts,R:!0},Xs={endpoint:"verifyAssertion",B:Ss,Pa:Cs,J:function(t){if(t.errorMessage&&"USER_NOT_FOUND"==t.errorMessage)throw new Br("user-not-found");if(t.errorMessage)throw ia(t.errorMessage);if(!t[us])throw new Br("internal-error")},R:!0},Js={endpoint:"verifyAssertion",B:function(t){if(Ss(t),!t.idToken)throw new Br("internal-error")},Pa:Cs,J:Ts,R:!0},Zs={endpoint:"verifyCustomToken",B:function(t){if(!t.token)throw new Br("invalid-custom-token")},J:bs,R:!0},$s={endpoint:"verifyPassword",B:function(t){if(vs(t),!t.password)throw new Br("wrong-password")},J:bs,R:!0},ta={endpoint:"verifyPhoneNumber",B:ws,J:bs},ea={endpoint:"verifyPhoneNumber",B:function(t){if(!t.idToken)throw new Br("internal-error");ws(t)},J:function(t){if(t.temporaryProof)throw t.code="credential-already-in-use",oo(t);bs(t)}},na={Xb:{USER_NOT_FOUND:"user-not-found"},endpoint:"verifyPhoneNumber",B:ws,J:bs};function ra(t,e,n){if(!function(t,e){if(!e||!e.length)return!0;if(!t)return!1;for(var n=0;n<e.length;n++){var r=t[e[n]];if(null==r||""===r)return!1}return!0}(n,e.T))return Ct(new Br("internal-error"));var r,i=e.Ib||"POST";return St(n).then(e.B).then(function(){return e.R&&(n.returnSecureToken=!0),function(t,e,n,r,i,o){var s=Xe(t.g+e);Ge(s,"key",t.b),o&&Ge(s,"cb",w().toString());var a="GET"==n;if(a)for(var u in r)r.hasOwnProperty(u)&&Ge(s,u,r[u]);return new yt(function(e,o){ms(t,s.toString(),function(t){t?t.error?o(oa(t,i||{})):e(t):o(new Br("network-request-failed"))},n,a?void 0:jn(yr(r)),t.a,t.h.get())})}(t,e.endpoint,i,n,e.Xb,e.vb||!1)}).then(function(t){return r=t,e.Pa?e.Pa(n,r):r}).then(e.J).then(function(){if(!e.da)return r;if(!(e.da in r))throw new Br("internal-error");return r[e.da]})}function ia(t){return oa({error:{errors:[{message:t}],code:400,message:t}})}function oa(t,e){var n=(t.error&&t.error.errors&&t.error.errors[0]||{}).reason||"",r={keyInvalid:"invalid-api-key",ipRefererBlocked:"app-not-authorized"};if(n=r[n]?new Br(r[n]):null)return n;for(var i in n=t.error&&t.error.message||"",ut(r={INVALID_CUSTOM_TOKEN:"invalid-custom-token",CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_EMAIL:"invalid-email",INVALID_PASSWORD:"wrong-password",USER_DISABLED:"user-disabled",MISSING_PASSWORD:"internal-error",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_OR_INVALID_NONCE:"missing-or-invalid-nonce",INVALID_MESSAGE_PAYLOAD:"invalid-message-payload",INVALID_RECIPIENT_EMAIL:"invalid-recipient-email",INVALID_SENDER:"invalid-sender",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",INVALID_PROVIDER_ID:"invalid-provider-id",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",CORS_UNSUPPORTED:"cors-unsupported",DYNAMIC_LINK_NOT_ACTIVATED:"dynamic-link-not-activated",INVALID_APP_ID:"invalid-app-id",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",WEAK_PASSWORD:"weak-password",OPERATION_NOT_ALLOWED:"operation-not-allowed",USER_CANCELLED:"user-cancelled",CAPTCHA_CHECK_FAILED:"captcha-check-failed",INVALID_APP_CREDENTIAL:"invalid-app-credential",INVALID_CODE:"invalid-verification-code",INVALID_PHONE_NUMBER:"invalid-phone-number",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_APP_CREDENTIAL:"missing-app-credential",MISSING_CODE:"missing-verification-code",MISSING_PHONE_NUMBER:"missing-phone-number",MISSING_SESSION_INFO:"missing-verification-id",QUOTA_EXCEEDED:"quota-exceeded",SESSION_EXPIRED:"code-expired",REJECTED_CREDENTIAL:"rejected-credential",INVALID_CONTINUE_URI:"invalid-continue-uri",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",MISSING_IOS_BUNDLE_ID:"missing-ios-bundle-id",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_DYNAMIC_LINK_DOMAIN:"invalid-dynamic-link-domain",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",INVALID_CERT_HASH:"invalid-cert-hash"},e||{}),e=(e=n.match(/^[^\s]+\s*:\s*(.*)$/))&&1<e.length?e[1]:void 0,r)if(0===n.indexOf(i))return new Br(r[i],e);return!e&&t&&(e=mr(t)),new Br("internal-error",e)}function sa(t){this.b=t,this.a=null,this.gb=function(t){return(ca||(ca=new yt(function(t,e){function r(){br(),lr("gapi.load")("gapi.iframes",{callback:t,ontimeout:function(){br(),e(Error("Network Error"))},timeout:ua.get()})}if(lr("gapi.iframes.Iframe"))t();else if(lr("gapi.load"))r();else{var i="__iframefcb"+Math.floor(1e6*Math.random()).toString();n[i]=function(){lr("gapi.load")?r():e(Error("Network Error"))},St($o(i=wn(aa,{onload:i}))).s(function(){e(Error("Network Error"))})}}).s(function(t){throw ca=null,t}))).then(function(){return new yt(function(e,n){lr("gapi.iframes.getContext")().open({where:document.body,url:t.b,messageHandlersFilter:lr("gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER"),attributes:{style:{position:"absolute",top:"-100px",width:"1px",height:"1px"}},dontclear:!0},function(r){function i(){clearTimeout(o),e()}t.a=r,t.a.restyle({setHideOnLeave:!1});var o=setTimeout(function(){n(Error("Network Error"))},la.get());r.ping(i).then(i,function(){n(Error("Network Error"))})})})})}(this)}var aa=new mn(vn,"https://apis.google.com/js/api.js?onload=%{onload}"),ua=new wr(3e4,6e4),la=new wr(5e3,15e3),ca=null;function ha(t,e,n){this.i=t,this.g=e,this.h=n,this.f=null,this.a=Je(this.i,"/__/auth/iframe"),Ge(this.a,"apiKey",this.g),Ge(this.a,"appName",this.h),this.b=null,this.c=[]}function pa(t,e,n,r,i){this.m=t,this.l=e,this.c=n,this.o=r,this.h=this.g=this.i=null,this.a=i,this.f=null}function fa(t){try{return i.a.app(t).auth().ya()}catch(e){return[]}}function da(t,e,n,r,i){this.l=t,this.f=e,this.b=n,this.c=r||null,this.h=i||null,this.m=this.u=this.v=null,this.g=[],this.o=this.a=null}function ma(t){var e=zn();return function(t){return ra(t,Bs,{}).then(function(t){return t.authorizedDomains||[]})}(t).then(function(t){t:{var n=Xe(e),r=n.c;n=n.b;for(var i=0;i<t.length;i++){var o=t[i],s=n,a=r;if(0==o.indexOf("chrome-extension://")?s=Xe(o).b==s&&"chrome-extension"==a:"http"!=a&&"https"!=a?s=!1:Yn.test(o)?s=s==o:(o=o.split(".").join("\\."),s=new RegExp("^(.+\\."+o+"|"+o+")$","i").test(s)),s){t=!0;break t}}t=!1}if(!t)throw new ro(zn())})}function ya(t){return t.o?t.o:(t.o=Jn().then(function(){if(!t.u){var e=t.c,n=t.h,r=fa(t.b),i=new ha(t.l,t.f,t.b);i.f=e,i.b=n,i.c=q(r||[]),t.u=i.toString()}t.i=new sa(t.u),function(t){if(!t.i)throw Error("IfcHandler must be initialized!");!function(t,e){t.gb.then(function(){t.a.register("authEvent",e,lr("gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER"))})}(t.i,function(e){var n={};if(e&&e.authEvent){var r=!1;for(e=$i(e.authEvent),n=0;n<t.g.length;n++)r=t.g[n](e)||r;return(n={}).status=r?"ACK":"ERROR",St(n)}return n.status="ERROR",St(n)})}(t)}),t.o)}function ga(t){return t.m||(t.v=t.c?ar(t.c,fa(t.b)):null,t.m=new ss(t.f,ci(t.h),t.v)),t.m}function va(t,e,n,r,i,o,s,a,u,l){return(t=new pa(t,e,n,r,i)).i=o,t.g=s,t.h=a,t.b=it(u||null),t.f=l,t.toString()}function _a(t){if(this.a=t||i.a.INTERNAL.reactNative&&i.a.INTERNAL.reactNative.AsyncStorage,!this.a)throw new Br("internal-error","The React Native compatibility library was not found.");this.type="asyncStorage"}function ba(t){this.b=t,this.a={},this.c=_(this.f,this)}ha.prototype.toString=function(){return this.f?Ge(this.a,"v",this.f):cn(this.a.a,"v"),this.b?Ge(this.a,"eid",this.b):cn(this.a.a,"eid"),this.c.length?Ge(this.a,"fw",this.c.join(",")):cn(this.a.a,"fw"),this.a.toString()},pa.prototype.toString=function(){var t=Je(this.m,"/__/auth/handler");if(Ge(t,"apiKey",this.l),Ge(t,"appName",this.c),Ge(t,"authType",this.o),this.a.isOAuthProvider){var e=this.a;try{var n=i.a.app(this.c).auth().ea()}catch(u){n=null}for(var r in e.ab=n,Ge(t,"providerId",this.a.providerId),n=yr((e=this.a).zb))n[r]=n[r].toString();r=e.Fc,n=it(n);for(var o=0;o<r.length;o++){var s=r[o];s in n&&delete n[s]}e.eb&&e.ab&&!n[e.eb]&&(n[e.eb]=e.ab),rt(n)||Ge(t,"customParameters",mr(n))}if("function"==typeof this.a.Fb&&(e=this.a.Fb()).length&&Ge(t,"scopes",e.join(",")),this.i?Ge(t,"redirectUrl",this.i):cn(t.a,"redirectUrl"),this.g?Ge(t,"eventId",this.g):cn(t.a,"eventId"),this.h?Ge(t,"v",this.h):cn(t.a,"v"),this.b)for(var a in this.b)this.b.hasOwnProperty(a)&&!Ye(t,a)&&Ge(t,a,this.b[a]);return this.f?Ge(t,"eid",this.f):cn(t.a,"eid"),(a=fa(this.c)).length&&Ge(t,"fw",a.join(",")),t.toString()},(t=da.prototype).Ea=function(t,e,n){var r=new Br("popup-closed-by-user"),i=new Br("web-storage-unsupported"),o=this,s=!1;return this.ga().then(function(){(function(t){var e={type:"webStorageSupport"};return ya(t).then(function(){return function(t,e){return t.gb.then(function(){return new yt(function(n){t.a.send(e.type,e,n,lr("gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER"))})})}(t.i,e)}).then(function(t){if(t&&t.length&&void 0!==t[0].webStorageSupport)return t[0].webStorageSupport;throw Error()})})(o).then(function(n){n||(t&&Kn(t),e(i),s=!0)})}).s(function(){}).then(function(){if(!s)return function(t){return new yt(function(e){return function n(){Fe(2e3).then(function(){if(t&&!t.closed)return n();e()})}()})}(t)}).then(function(){if(!s)return Fe(n).then(function(){e(r)})})},t.Mb=function(){var t=ur();return!dr(t)&&!_r(t)},t.Hb=function(){return!1},t.Db=function(t,e,n,r,i,o,s){if(!t)return Ct(new Br("popup-blocked"));if(s&&!dr())return this.ga().s(function(e){Kn(t),i(e)}),r(),St();this.a||(this.a=ma(ga(this)));var a=this;return this.a.then(function(){var e=a.ga().s(function(e){throw Kn(t),i(e),e});return r(),e}).then(function(){Ji(n),s||Wn(va(a.l,a.f,a.b,e,n,null,o,a.c,void 0,a.h),t)}).s(function(t){throw"auth/network-request-failed"==t.code&&(a.a=null),t})},t.Ca=function(t,e,n){this.a||(this.a=ma(ga(this)));var r=this;return this.a.then(function(){Ji(e),Wn(va(r.l,r.f,r.b,t,e,zn(),n,r.c,void 0,r.h))}).s(function(t){throw"auth/network-request-failed"==t.code&&(r.a=null),t})},t.ga=function(){var t=this;return ya(this).then(function(){return t.i.gb}).s(function(){throw t.a=null,new Br("network-request-failed")})},t.Qb=function(){return!0},t.wa=function(t){this.g.push(t)},t.Ka=function(t){U(this.g,function(e){return e==t})},(t=_a.prototype).get=function(t){return St(this.a.getItem(t)).then(function(t){return t&&gr(t)})},t.set=function(t,e){return St(this.a.setItem(t,mr(e)))},t.P=function(t){return St(this.a.removeItem(t))},t.Y=function(){},t.ca=function(){};var wa,Ea=[];function Sa(t){this.a=t}function Ca(t){this.c=t,this.b=!1,this.a=[]}function Ta(t,e,n,r){var i,o,s,a,u=n||{},l=null;if(t.b)return Ct(Error("connection_unavailable"));var c=r?800:50,h="undefined"!=typeof MessageChannel?new MessageChannel:null;return new yt(function(n,r){h?(i=Math.floor(Math.random()*Math.pow(10,20)).toString(),h.port1.start(),s=setTimeout(function(){r(Error("unsupported_event"))},c),t.a.push(l={messageChannel:h,onMessage:o=function(t){t.data.eventId===i&&("ack"===t.data.status?(clearTimeout(s),a=setTimeout(function(){r(Error("timeout"))},3e3)):"done"===t.data.status?(clearTimeout(a),void 0!==t.data.response?n(t.data.response):r(Error("unknown_error"))):(clearTimeout(s),clearTimeout(a),r(Error("invalid_response"))))}}),h.port1.addEventListener("message",o),t.c.postMessage({eventType:e,eventId:i,data:u},[h.port2])):r(Error("connection_unavailable"))}).then(function(e){return Ia(t,l),e}).s(function(e){throw Ia(t,l),e})}function Ia(t,e){if(e){var n=e.messageChannel;n&&(n.port1.removeEventListener("message",e.onMessage),n.port1.close()),U(t.a,function(t){return t==e})}}function xa(){if(!Aa())throw new Br("web-storage-unsupported");this.c={},this.a=[],this.b=0,this.l=n.indexedDB,this.type="indexedDB",this.g=this.o=this.f=this.i=null,this.u=!1,this.h=null;var t=this;tr()&&self?(this.o=function(){var t=tr()?self:null;if(P(Ea,function(n){n.b==t&&(e=n)}),!e){var e=new ba(t);Ea.push(e)}return e}(),this.o.subscribe("keyChanged",function(e,n){return Pa(t).then(function(e){return 0<e.length&&P(t.a,function(t){t(e)}),{keyProcessed:F(e,n.key)}})}),this.o.subscribe("ping",function(){return St(["keyChanged"])})):function(){var t=n.navigator;return t&&t.serviceWorker?St().then(function(){return t.serviceWorker.ready}).then(function(t){return t.active||null}).s(function(){return null}):St(null)}().then(function(e){(t.h=e)&&(t.g=new Ca(new Sa(e)),Ta(t.g,"ping",null,!0).then(function(e){e[0].fulfilled&&F(e[0].value,"keyChanged")&&(t.u=!0)}).s(function(){}))})}function ka(t){return t.m||(t.m=function t(e){return new yt(function(n,r){var i=e.l.open("firebaseLocalStorageDb",1);i.onerror=function(t){try{t.preventDefault()}catch(e){}r(Error(t.target.error))},i.onupgradeneeded=function(t){t=t.target.result;try{t.createObjectStore("firebaseLocalStorage",{keyPath:"fbase_key"})}catch(e){r(e)}},i.onsuccess=function(i){(i=i.target.result).objectStoreNames.contains("firebaseLocalStorage")?n(i):function(t){return new yt(function(e,n){var r=t.l.deleteDatabase("firebaseLocalStorageDb");r.onsuccess=function(){e()},r.onerror=function(t){n(Error(t.target.error))}})}(e).then(function(){return t(e)}).then(function(t){n(t)}).s(function(t){r(t)})}})}(t)),t.m}function Aa(){try{return!!n.indexedDB}catch(Ht){return!1}}function Oa(t){return t.objectStore("firebaseLocalStorage")}function Na(t,e){return t.transaction(["firebaseLocalStorage"],e?"readwrite":"readonly")}function Da(t){return new yt(function(e,n){t.onsuccess=function(t){t&&t.target?e(t.target.result):e()},t.onerror=function(t){n(t.target.error)}})}function Ra(t,e){return t.g&&t.h&&function(){var t=n.navigator;return t&&t.serviceWorker&&t.serviceWorker.controller||null}()===t.h?Ta(t.g,"keyChanged",{key:e},t.u).then(function(){}).s(function(){}):St()}function Pa(t){return ka(t).then(function(t){var e=Oa(Na(t,!1));return e.getAll?Da(e.getAll()):new yt(function(t,n){var r=[],i=e.openCursor();i.onsuccess=function(e){(e=e.target.result)?(r.push(e.value),e.continue()):t(r)},i.onerror=function(t){n(t.target.error)}})}).then(function(e){var n={},r=[];if(0==t.b){for(r=0;r<e.length;r++)n[e[r].fbase_key]=e[r].value;r=function t(e,n){var r,i=[];for(r in e)r in n?typeof e[r]!=typeof n[r]?i.push(r):"object"==typeof e[r]&&null!=e[r]&&null!=n[r]?0<t(e[r],n[r]).length&&i.push(r):e[r]!==n[r]&&i.push(r):i.push(r);for(r in n)r in e||i.push(r);return i}(t.c,n),t.c=n}return r})}function Ma(t){t.i&&t.i.cancel("STOP_EVENT"),t.f&&(clearTimeout(t.f),t.f=null)}function La(t){var e=this,n=null;this.a=[],this.type="indexedDB",this.c=t,this.b=St().then(function(){if(Aa()){var t=vr(),r="__sak"+t;return wa||(wa=new xa),(n=wa).set(r,t).then(function(){return n.get(r)}).then(function(e){if(e!==t)throw Error("indexedDB not supported!");return n.P(r)}).then(function(){return n}).s(function(){return e.c})}return e.c}).then(function(t){return e.type=t.type,t.Y(function(t){P(e.a,function(e){e(t)})}),t})}function Fa(){this.a={},this.type="inMemory"}function ja(){if(!function(){var t="Node"==er();if(!(t=Ua()||t&&i.a.INTERNAL.node&&i.a.INTERNAL.node.localStorage))return!1;try{return t.setItem("__sak","1"),t.removeItem("__sak"),!0}catch(e){return!1}}()){if("Node"==er())throw new Br("internal-error","The LocalStorage compatibility library was not found.");throw new Br("web-storage-unsupported")}this.a=Ua()||i.a.INTERNAL.node.localStorage,this.type="localStorage"}function Ua(){try{var t=n.localStorage,e=vr();return t&&(t.setItem(e,"1"),t.removeItem(e)),t}catch(r){return null}}function Va(){this.type="nullStorage"}function qa(){if(!function(){var t="Node"==er();if(!(t=Ba()||t&&i.a.INTERNAL.node&&i.a.INTERNAL.node.sessionStorage))return!1;try{return t.setItem("__sak","1"),t.removeItem("__sak"),!0}catch(e){return!1}}()){if("Node"==er())throw new Br("internal-error","The SessionStorage compatibility library was not found.");throw new Br("web-storage-unsupported")}this.a=Ba()||i.a.INTERNAL.node.sessionStorage,this.type="sessionStorage"}function Ba(){try{var t=n.sessionStorage,e=vr();return t&&(t.setItem(e,"1"),t.removeItem(e)),t}catch(r){return null}}function Ha(){var t={};t.Browser=Qa,t.Node=Ka,t.ReactNative=Ga,t.Worker=Ya,this.a=t[er()]}ba.prototype.f=function(t){var e=t.data.eventType,n=t.data.eventId,r=this.a[e];if(r&&0<r.length){t.ports[0].postMessage({status:"ack",eventId:n,eventType:e,response:null});var i=[];P(r,function(e){i.push(St().then(function(){return e(t.origin,t.data.data)}))}),It(i).then(function(r){var i=[];P(r,function(t){i.push({fulfilled:t.Eb,value:t.value,reason:t.reason?t.reason.message:void 0})}),P(i,function(t){for(var e in t)void 0===t[e]&&delete t[e]}),t.ports[0].postMessage({status:"done",eventId:n,eventType:e,response:i})})}},ba.prototype.subscribe=function(t,e){rt(this.a)&&this.b.addEventListener("message",this.c),void 0===this.a[t]&&(this.a[t]=[]),this.a[t].push(e)},ba.prototype.unsubscribe=function(t,e){void 0!==this.a[t]&&e?(U(this.a[t],function(t){return t==e}),0==this.a[t].length&&delete this.a[t]):e||delete this.a[t],rt(this.a)&&this.b.removeEventListener("message",this.c)},Sa.prototype.postMessage=function(t,e){this.a.postMessage(t,e)},Ca.prototype.close=function(){for(;0<this.a.length;)Ia(this,this.a[0]);this.b=!0},(t=xa.prototype).set=function(t,e){var n,r=!1,i=this;return ka(this).then(function(e){return Da((e=Oa(Na(n=e,!0))).get(t))}).then(function(o){var s=Oa(Na(n,!0));return o?(o.value=e,Da(s.put(o))):(i.b++,r=!0,(o={}).fbase_key=t,o.value=e,Da(s.add(o)))}).then(function(){return i.c[t]=e,Ra(i,t)}).ia(function(){r&&i.b--})},t.get=function(t){return ka(this).then(function(e){return Da(Oa(Na(e,!1)).get(t))}).then(function(t){return t&&t.value})},t.P=function(t){var e=!1,n=this;return ka(this).then(function(r){return e=!0,n.b++,Da(Oa(Na(r,!0)).delete(t))}).then(function(){return delete n.c[t],Ra(n,t)}).ia(function(){e&&n.b--})},t.Y=function(t){0==this.a.length&&function(t){Ma(t),function e(){t.f=setTimeout(function(){t.i=Pa(t).then(function(e){0<e.length&&P(t.a,function(t){t(e)})}).then(function(){e()}).s(function(t){"STOP_EVENT"!=t.message&&e()})},800)}()}(this),this.a.push(t)},t.ca=function(t){U(this.a,function(e){return e==t}),0==this.a.length&&Ma(this)},(t=La.prototype).get=function(t){return this.b.then(function(e){return e.get(t)})},t.set=function(t,e){return this.b.then(function(n){return n.set(t,e)})},t.P=function(t){return this.b.then(function(e){return e.P(t)})},t.Y=function(t){this.a.push(t)},t.ca=function(t){U(this.a,function(e){return e==t})},(t=Fa.prototype).get=function(t){return St(this.a[t])},t.set=function(t,e){return this.a[t]=e,St()},t.P=function(t){return delete this.a[t],St()},t.Y=function(){},t.ca=function(){},(t=ja.prototype).get=function(t){var e=this;return St().then(function(){return gr(e.a.getItem(t))})},t.set=function(t,e){var n=this;return St().then(function(){var r=mr(e);null===r?n.P(t):n.a.setItem(t,r)})},t.P=function(t){var e=this;return St().then(function(){e.a.removeItem(t)})},t.Y=function(t){n.window&&be(n.window,"storage",t)},t.ca=function(t){n.window&&Se(n.window,"storage",t)},(t=Va.prototype).get=function(){return St(null)},t.set=function(){return St()},t.P=function(){return St()},t.Y=function(){},t.ca=function(){},(t=qa.prototype).get=function(t){var e=this;return St().then(function(){return gr(e.a.getItem(t))})},t.set=function(t,e){var n=this;return St().then(function(){var r=mr(e);null===r?n.P(t):n.a.setItem(t,r)})},t.P=function(t){var e=this;return St().then(function(){e.a.removeItem(t)})},t.Y=function(){},t.ca=function(){};var za,Wa,Qa={A:ja,Sa:qa},Ka={A:ja,Sa:qa},Ga={A:_a,Sa:Va},Ya={A:ja,Sa:Va},Xa={ad:"local",NONE:"none",cd:"session"};function Ja(){var t=!(_r(ur())||!$n()),e=dr(),r=cr();this.m=t,this.h=e,this.o=r,this.a={},za||(za=new Ha),t=za;try{this.g=!Hn()&&Cr()||!n.indexedDB?new t.a.A:new La(tr()?new Fa:new t.a.A)}catch(i){this.g=new Fa,this.h=!0}try{this.i=new t.a.Sa}catch(i){this.i=new Fa}this.l=new Fa,this.f=_(this.Pb,this),this.b={}}function Za(){return Wa||(Wa=new Ja),Wa}function $a(t,e){switch(e){case"session":return t.i;case"none":return t.l;default:return t.g}}function tu(t,e){return"firebase:"+t.name+(e?":"+e:"")}function eu(t,e,n){return n=tu(e,n),"local"==e.A&&(t.b[n]=null),$a(t,e.A).P(n)}function nu(t){t.c&&(clearInterval(t.c),t.c=null)}function ru(t){this.a=t,this.b=Za()}(t=Ja.prototype).get=function(t,e){return $a(this,t.A).get(tu(t,e))},t.set=function(t,e,n){var r=tu(t,n),i=this,o=$a(this,t.A);return o.set(r,e).then(function(){return o.get(r)}).then(function(e){"local"==t.A&&(i.b[r]=e)})},t.addListener=function(t,e,r){t=tu(t,e),this.o&&(this.b[t]=n.localStorage.getItem(t)),rt(this.a)&&($a(this,"local").Y(this.f),this.h||(Hn()||!Cr())&&n.indexedDB||!this.o||function(t){nu(t),t.c=setInterval(function(){for(var e in t.a){var r=n.localStorage.getItem(e),i=t.b[e];r!=i&&(t.b[e]=r,r=new le({type:"storage",key:e,target:window,oldValue:i,newValue:r,a:!0}),t.Pb(r))}},1e3)}(this)),this.a[t]||(this.a[t]=[]),this.a[t].push(r)},t.removeListener=function(t,e,n){t=tu(t,e),this.a[t]&&(U(this.a[t],function(t){return t==n}),0==this.a[t].length&&delete this.a[t]),rt(this.a)&&($a(this,"local").ca(this.f),nu(this))},t.Pb=function(t){if(t&&t.f){var e=t.a.key;if(null==e)for(var r in this.a){var i=this.b[r];void 0===i&&(i=null);var o=n.localStorage.getItem(r);o!==i&&(this.b[r]=o,this.Ya(r))}else if(0==e.indexOf("firebase:")&&this.a[e]){if(void 0!==t.a.a?$a(this,"local").ca(this.f):nu(this),this.m)if(r=n.localStorage.getItem(e),(i=t.a.newValue)!==r)null!==i?n.localStorage.setItem(e,i):n.localStorage.removeItem(e);else if(this.b[e]===i&&void 0===t.a.a)return;var s=this;r=function(){void 0===t.a.a&&s.b[e]===n.localStorage.getItem(e)||(s.b[e]=n.localStorage.getItem(e),s.Ya(e))},Wt&&te&&10==te&&n.localStorage.getItem(e)!==t.a.newValue&&t.a.newValue!==t.a.oldValue?setTimeout(r,10):r()}}else P(t,_(this.Ya,this))},t.Ya=function(t){this.a[t]&&P(this.a[t],function(t){t()})};var iu,ou={name:"authEvent",A:"local"};function su(){this.a=Za()}function au(t,e){this.b=uu,this.f=n.Uint8Array?new Uint8Array(this.b):Array(this.b),this.g=this.c=0,this.a=[],this.i=t,this.h=e,this.o=n.Int32Array?new Int32Array(64):Array(64),void 0!==iu||(iu=n.Int32Array?new Int32Array(mu):mu),this.reset()}E(au,function(){this.b=-1});for(var uu=64,lu=uu-1,cu=[],hu=0;hu<lu;hu++)cu[hu]=0;var pu=V(128,cu);function fu(t){for(var e=t.f,n=t.o,r=0,i=0;i<e.length;)n[r++]=e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3],i=4*r;for(e=16;64>e;e++){var o=(0|n[e-16])+(((i=0|n[e-15])>>>7|i<<25)^(i>>>18|i<<14)^i>>>3)|0,s=(0|n[e-7])+(((r=0|n[e-2])>>>17|r<<15)^(r>>>19|r<<13)^r>>>10)|0;n[e]=o+s|0}r=0|t.a[0],i=0|t.a[1];var a=0|t.a[2],u=0|t.a[3],l=0|t.a[4],c=0|t.a[5],h=0|t.a[6];for(o=0|t.a[7],e=0;64>e;e++){var p=((r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10))+(r&i^r&a^i&a)|0;s=(o=o+((l>>>6|l<<26)^(l>>>11|l<<21)^(l>>>25|l<<7))|0)+((s=(s=l&c^~l&h)+(0|iu[e])|0)+(0|n[e])|0)|0,o=h,h=c,c=l,l=u+s|0,u=a,a=i,i=r,r=s+p|0}t.a[0]=t.a[0]+r|0,t.a[1]=t.a[1]+i|0,t.a[2]=t.a[2]+a|0,t.a[3]=t.a[3]+u|0,t.a[4]=t.a[4]+l|0,t.a[5]=t.a[5]+c|0,t.a[6]=t.a[6]+h|0,t.a[7]=t.a[7]+o|0}function du(t,e,n){void 0===n&&(n=e.length);var i=0,o=t.c;if(r(e))for(;i<n;)t.f[o++]=e.charCodeAt(i++),o==t.b&&(fu(t),o=0);else{if(!p(e))throw Error("message must be string or array");for(;i<n;){var s=e[i++];if(!("number"==typeof s&&0<=s&&255>=s&&s==(0|s)))throw Error("message must be a byte array");t.f[o++]=s,o==t.b&&(fu(t),o=0)}}t.c=o,t.g+=n}au.prototype.reset=function(){this.g=this.c=0,this.a=n.Int32Array?new Int32Array(this.h):q(this.h)};var mu=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function yu(){au.call(this,8,gu)}E(yu,au);var gu=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];function vu(t,e,n,r,i){this.l=t,this.i=e,this.o=n,this.m=r||null,this.u=i||null,this.h=e+":"+n,this.v=new su,this.g=new ru(this.h),this.f=null,this.b=[],this.a=this.c=null}function _u(t){return new Br("invalid-cordova-configuration",t)}function bu(t,e){for(var n=0;n<t.b.length;n++)try{t.b[n](e)}catch(r){}}function wu(t){return t.f||(t.f=t.ga().then(function(){return new yt(function(e){t.wa(function n(r){return e(r),t.Ka(n),!1}),function(t){function e(e){i=!0,o&&o.cancel(),Eu(t).then(function(n){var i=r;if(n&&e&&e.url){var o=null;-1!=(i=Ti(e.url)).indexOf("/__/auth/callback")&&(o=(o="object"==typeof(o=gr(Ye(o=Xe(i),"firebaseError")||null))?Hr(o):null)?new Zi(n.b,n.c,null,null,o):new Zi(n.b,n.c,i,n.g)),i=o||r}bu(t,i)})}var r=new Zi("unknown",null,null,null,new Br("no-auth-event")),i=!1,o=Fe(500).then(function(){return Eu(t).then(function(){i||bu(t,r)})}),s=n.handleOpenURL;n.handleOpenURL=function(t){if(0==t.toLowerCase().indexOf(lr("BuildInfo.packageName",n).toLowerCase()+"://")&&e({url:t}),"function"==typeof s)try{s(t)}catch(r){console.error(r)}},no||(no=new to),no.subscribe(e)}(t)})})),t.f}function Eu(t){var e=null;return function(t){return t.b.get(ou,t.a).then(function(t){return $i(t)})}(t.g).then(function(n){return e=n,eu((n=t.g).b,ou,n.a)}).then(function(){return e})}function Su(t){this.a=t,this.b=Za()}(t=vu.prototype).ga=function(){return this.za?this.za:this.za=(Zn(void 0)?Jn().then(function(){return new yt(function(t,e){var r=n.document,i=setTimeout(function(){e(Error("Cordova framework is not ready."))},1e3);r.addEventListener("deviceready",function(){clearTimeout(i),t()},!1)})}):Ct(Error("Cordova must run in an Android or iOS file scheme."))).then(function(){if("function"!=typeof lr("universalLinks.subscribe",n))throw _u("cordova-universal-links-plugin-fix is not installed");if(void 0===lr("BuildInfo.packageName",n))throw _u("cordova-plugin-buildinfo is not installed");if("function"!=typeof lr("cordova.plugins.browsertab.openUrl",n))throw _u("cordova-plugin-browsertab is not installed");if("function"!=typeof lr("cordova.InAppBrowser.open",n))throw _u("cordova-plugin-inappbrowser is not installed")},function(){throw new Br("cordova-not-ready")})},t.Ea=function(t,e){return e(new Br("operation-not-supported-in-this-environment")),St()},t.Db=function(){return Ct(new Br("operation-not-supported-in-this-environment"))},t.Qb=function(){return!1},t.Mb=function(){return!0},t.Hb=function(){return!0},t.Ca=function(t,e,r){if(this.c)return Ct(new Br("redirect-operation-pending"));var i=this,o=n.document,s=null,a=null,u=null,l=null;return this.c=St().then(function(){return Ji(e),wu(i)}).then(function(){return function(t,e,r,i){var o=function(){for(var t=20,e=[];0<t;)e.push("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(Math.floor(62*Math.random()))),t--;return e.join("")}(),s=new Zi(e,i,null,o,new Br("no-auth-event")),a=lr("BuildInfo.packageName",n);if("string"!=typeof a)throw new Br("invalid-cordova-configuration");var u=lr("BuildInfo.displayName",n),l={};if(ur().toLowerCase().match(/iphone|ipad|ipod/))l.ibi=a;else{if(!ur().toLowerCase().match(/android/))return Ct(new Br("operation-not-supported-in-this-environment"));l.apn=a}u&&(l.appDisplayName=u),o=function(t){var e=new yu;du(e,t),t=[];var n=8*e.g;du(e,pu,56>e.c?56-e.c:e.b-(e.c-56));for(var r=63;56<=r;r--)e.f[r]=255&n,n/=256;for(fu(e),r=n=0;r<e.i;r++)for(var i=24;0<=i;i-=8)t[n++]=e.a[r]>>i&255;return function(t){return M(t,function(t){return 1<(t=t.toString(16)).length?t:"0"+t}).join("")}(t)}(o),l.sessionId=o;var c=va(t.l,t.i,t.o,e,r,null,i,t.m,l,t.u);return t.ga().then(function(){var e=t.h;return t.v.a.set(ou,s.C(),e)}).then(function(){var e=lr("cordova.plugins.browsertab.isAvailable",n);if("function"!=typeof e)throw new Br("invalid-cordova-configuration");var r=null;e(function(e){if(e){if("function"!=typeof(r=lr("cordova.plugins.browsertab.openUrl",n)))throw new Br("invalid-cordova-configuration");r(c)}else{if("function"!=typeof(r=lr("cordova.InAppBrowser.open",n)))throw new Br("invalid-cordova-configuration");e=!(!(e=ur()).match(/(iPad|iPhone|iPod).*OS 7_\d/i)&&!e.match(/(iPad|iPhone|iPod).*OS 8_\d/i)),t.a=r(c,e?"_blank":"_system","location=yes")}})})}(i,t,e,r)}).then(function(){return new yt(function(t,e){a=function(){var e=lr("cordova.plugins.browsertab.close",n);return t(),"function"==typeof e&&e(),i.a&&"function"==typeof i.a.close&&(i.a.close(),i.a=null),!1},i.wa(a),l=function(){Er()&&u()},o.addEventListener("resume",u=function(){s||(s=Fe(2e3).then(function(){e(new Br("redirect-cancelled-by-user"))}))},!1),ur().toLowerCase().match(/android/)||o.addEventListener("visibilitychange",l,!1)}).s(function(t){return Eu(i).then(function(){throw t})})}).ia(function(){u&&o.removeEventListener("resume",u,!1),l&&o.removeEventListener("visibilitychange",l,!1),s&&s.cancel(),a&&i.Ka(a),i.c=null})},t.wa=function(t){this.b.push(t),wu(this).s(function(e){"auth/invalid-cordova-configuration"===e.code&&(e=new Zi("unknown",null,null,null,new Br("no-auth-event")),t(e))})},t.Ka=function(t){U(this.b,function(e){return e==t})};var Cu={name:"pendingRedirect",A:"session"};function Tu(t){return eu(t.b,Cu,t.a)}function Iu(t,e,n){this.u=t,this.o=e,this.l=n,this.h=[],this.f=!1,this.i=_(this.cb,this),this.b=new Lu,this.m=new Vu,this.g=new Su(this.o+":"+this.l),this.c={},this.c.unknown=this.b,this.c.signInViaRedirect=this.b,this.c.linkViaRedirect=this.b,this.c.reauthViaRedirect=this.b,this.c.signInViaPopup=this.m,this.c.linkViaPopup=this.m,this.c.reauthViaPopup=this.m,this.a=xu(this.u,this.o,this.l,ui)}function xu(t,e,n,r){var o=i.a.SDK_VERSION||null;return Zn()?new vu(t,e,n,o,r):new da(t,e,n,o,r)}function ku(t){t.f||(t.f=!0,t.a.wa(t.i));var e=t.a;return t.a.ga().s(function(n){throw t.a==e&&t.reset(),n})}function Au(t){t.a.Mb()&&ku(t).s(function(e){var n=new Zi("unknown",null,null,null,new Br("operation-not-supported-in-this-environment"));Ru(e)&&t.cb(n)}),t.a.Hb()||Fu(t.b)}(t=Iu.prototype).reset=function(){this.f=!1,this.a.Ka(this.i),this.a=xu(this.u,this.o,this.l)},t.Za=function(){this.b.Za()},t.subscribe=function(t){if(F(this.h,t)||this.h.push(t),!this.f){var e=this;(function(t){return t.b.get(Cu,t.a).then(function(t){return"pending"==t})})(this.g).then(function(t){t?Tu(e.g).then(function(){ku(e).s(function(t){var n=new Zi("unknown",null,null,null,new Br("operation-not-supported-in-this-environment"));Ru(t)&&e.cb(n)})}):Au(e)}).s(function(){Au(e)})}},t.unsubscribe=function(t){U(this.h,function(e){return e==t})},t.cb=function(t){if(!t)throw new Br("invalid-auth-event");for(var e=!1,n=0;n<this.h.length;n++){var r=this.h[n];if(r.wb(t.b,t.c)){(e=this.c[t.b])&&e.h(t,r),e=!0;break}}return Fu(this.b),e};var Ou=new wr(2e3,1e4),Nu=new wr(3e4,6e4);function Du(t,e,n,r,i,o){return t.a.Db(e,n,r,function(){t.f||(t.f=!0,t.a.wa(t.i))},function(){t.reset()},i,o)}function Ru(t){return!(!t||"auth/cordova-not-ready"!=t.code)}Iu.prototype.fa=function(){return this.b.fa()},Iu.prototype.Ca=function(t,e,n){var r,i=this;return function(t){return t.b.set(Cu,"pending",t.a)}(this.g).then(function(){return i.a.Ca(t,e,n).s(function(t){if(Ru(t))throw new Br("operation-not-supported-in-this-environment");return r=t,Tu(i.g).then(function(){throw r})}).then(function(){return i.a.Qb()?new yt(function(){}):Tu(i.g).then(function(){return i.fa()}).then(function(){}).s(function(){})})})},Iu.prototype.Ea=function(t,e,n,r){return this.a.Ea(n,function(n){t.ha(e,null,n,r)},Ou.get())};var Pu={};function Mu(t,e,n){var r=e+":"+n;return Pu[r]||(Pu[r]=new Iu(t,e,n)),Pu[r]}function Lu(){this.b=null,this.f=[],this.c=[],this.a=null,this.i=this.g=!1}function Fu(t){t.g||(t.g=!0,Uu(t,!1,null,null))}function ju(t,e){if(t.b=function(){return St(e)},t.f.length)for(var n=0;n<t.f.length;n++)t.f[n](e)}function Uu(t,e,n,r){e?r?function(t,e){if(t.b=function(){return Ct(e)},t.c.length)for(var n=0;n<t.c.length;n++)t.c[n](e)}(t,r):ju(t,n):ju(t,{user:null}),t.f=[],t.c=[]}function Vu(){}function qu(){this.tb=!1,Object.defineProperty(this,"appVerificationDisabled",{get:function(){return this.tb},set:function(t){this.tb=t},enumerable:!1})}function Bu(t,e){this.a=e,Ar(this,"verificationId",t)}function Hu(t,e,n,r){return new Gi(t).Va(e,n).then(function(t){return new Bu(t,r)})}function zu(t){var e=ai(t);if(!(e&&e.exp&&e.auth_time&&e.iat))throw new Br("internal-error","An internal error occurred. The token obtained by Firebase appears to be malformed. Please retry the operation.");Or(this,{token:t,expirationTime:Sr(1e3*e.exp),authTime:Sr(1e3*e.auth_time),issuedAtTime:Sr(1e3*e.iat),signInProvider:e.firebase&&e.firebase.sign_in_provider?e.firebase.sign_in_provider:null,claims:e})}function Wu(t,e,n){if(this.h=t,this.i=e,this.g=n,this.c=3e4,this.f=96e4,this.b=null,this.a=this.c,this.f<this.c)throw Error("Proactive refresh lower bound greater than upper bound!")}function Qu(t){this.f=t,this.b=this.a=null,this.c=0}function Ku(t,e){var n=e[us],r=e.refreshToken;e=Gu(e.expiresIn),t.b=n,t.c=e,t.a=r}function Gu(t){return w()+1e3*parseInt(t,10)}function Yu(t,e){this.a=t||null,this.b=e||null,Or(this,{lastSignInTime:Sr(e||null),creationTime:Sr(t||null)})}function Xu(t,e,n,r,i,o){Or(this,{uid:t,displayName:r||null,photoURL:i||null,email:n||null,phoneNumber:o||null,providerId:e})}function Ju(t,e){for(var n in ue.call(this,t),e)this[n]=e[n]}function Zu(t,e,n){this.G=[],this.l=t.apiKey,this.m=t.appName,this.u=t.authDomain||null,t=i.a.SDK_VERSION?ar(i.a.SDK_VERSION):null,this.b=new ss(this.l,ci(ui),t),this.h=new Qu(this.b),ol(this,e[us]),Ku(this.h,e),Ar(this,"refreshToken",this.h.a),ul(this,n||{}),De.call(this),this.I=!1,this.u&&hr()&&(this.a=Mu(this.u,this.l,this.m)),this.N=[],this.i=null,this.w=function(t){return new Wu(function(){return t.F(!0)},function(t){return!(!t||"auth/network-request-failed"!=t.code)},function(){var e=t.h.c-w()-3e5;return 0<e?e:0})}(this),this.V=_(this.Ha,this);var r=this;this.ka=null,this.ta=function(t){r.pa(t.g)},this.X=null,this.O=[],this.sa=function(t){tl(r,t.c)},this.W=null}function $u(t,e){t.X&&Se(t.X,"languageCodeChanged",t.ta),(t.X=e)&&be(e,"languageCodeChanged",t.ta)}function tl(t,e){t.O=e,ds(t.b,i.a.SDK_VERSION?ar(i.a.SDK_VERSION,t.O):null)}function el(t,e){t.W&&Se(t.W,"frameworkChanged",t.sa),(t.W=e)&&be(e,"frameworkChanged",t.sa)}function nl(t){try{return i.a.app(t.m).auth()}catch(e){throw new Br("internal-error","No firebase.auth.Auth instance is available for the Firebase App '"+t.m+"'!")}}function rl(t){t.D||t.w.b||(t.w.start(),Se(t,"tokenChanged",t.V),be(t,"tokenChanged",t.V))}function il(t){Se(t,"tokenChanged",t.V),t.w.stop()}function ol(t,e){t.ra=e,Ar(t,"_lat",e)}function sl(t){for(var e=[],n=0;n<t.N.length;n++)e.push(t.N[n](t));return It(e).then(function(){return t})}function al(t){t.a&&!t.I&&(t.I=!0,t.a.subscribe(t))}function ul(t,e){Or(t,{uid:e.uid,displayName:e.displayName||null,photoURL:e.photoURL||null,email:e.email||null,emailVerified:e.emailVerified||!1,phoneNumber:e.phoneNumber||null,isAnonymous:e.isAnonymous||!1,metadata:new Yu(e.createdAt,e.lastLoginAt),providerData:[]})}function ll(){}function cl(t){return St().then(function(){if(t.D)throw new Br("app-deleted")})}function hl(t){return M(t.providerData,function(t){return t.providerId})}function pl(t,e){e&&(fl(t,e.providerId),t.providerData.push(e))}function fl(t,e){U(t.providerData,function(t){return t.providerId==e})}function dl(t,e,n){("uid"!=e||n)&&t.hasOwnProperty(e)&&Ar(t,e,n)}function ml(t,e){t!=e&&(Or(t,{uid:e.uid,displayName:e.displayName,photoURL:e.photoURL,email:e.email,emailVerified:e.emailVerified,phoneNumber:e.phoneNumber,isAnonymous:e.isAnonymous,providerData:[]}),Ar(t,"metadata",e.metadata?function(t){return new Yu(t.a,t.b)}(e.metadata):new Yu),P(e.providerData,function(e){pl(t,e)}),function(t,e){t.b=e.b,t.a=e.a,t.c=e.c}(t.h,e.h),Ar(t,"refreshToken",t.h.a))}function yl(t){return t.F().then(function(e){var n=t.isAnonymous;return function(t,e){return ra(t.b,js,{idToken:e}).then(_(t.zc,t))}(t,e).then(function(){return n||dl(t,"isAnonymous",!1),e})})}function gl(t,e){e[us]&&t.ra!=e[us]&&(Ku(t.h,e),t.dispatchEvent(new Ju("tokenChanged")),ol(t,e[us]),dl(t,"refreshToken",t.h.a))}function vl(t,e){return yl(t).then(function(){if(F(hl(t),e))return sl(t).then(function(){throw new Br("provider-already-linked")})})}function _l(t,e,n){return Nr({user:t,credential:Xi(e),additionalUserInfo:e=mi(e),operationType:n})}function bl(t,e){return gl(t,e),t.reload().then(function(){return t})}function wl(t,e,n,r,o){if(!hr())return Ct(new Br("operation-not-supported-in-this-environment"));if(t.i&&!o)return Ct(t.i);var s=di(n.providerId),a=vr(t.uid+":::"),u=null;(!dr()||$n())&&t.u&&n.isOAuthProvider&&(u=va(t.u,t.l,t.m,e,n,null,a,i.a.SDK_VERSION||null));var l=Gn(u,s&&s.Ba,s&&s.Aa);return r=r().then(function(){if(Sl(t),!o)return t.F().then(function(){})}).then(function(){return Du(t.a,l,e,n,a,!!u)}).then(function(){return new yt(function(n,r){t.ha(e,null,new Br("cancelled-popup-request"),t.g||null),t.f=n,t.v=r,t.g=a,t.c=t.a.Ea(t,e,l,a)})}).then(function(t){return l&&Kn(l),t?Nr(t):null}).s(function(t){throw l&&Kn(l),t}),Cl(t,r,o)}function El(t,e,n,r,i){if(!hr())return Ct(new Br("operation-not-supported-in-this-environment"));if(t.i&&!i)return Ct(t.i);var o=null,s=vr(t.uid+":::");return r=r().then(function(){if(Sl(t),!i)return t.F().then(function(){})}).then(function(){return t.aa=s,sl(t)}).then(function(e){return t.ba&&(e=(e=t.ba).b.set(xl,t.C(),e.a)),e}).then(function(){return t.a.Ca(e,n,s)}).s(function(e){if(o=e,t.ba)return kl(t.ba);throw o}).then(function(){if(o)throw o}),Cl(t,r,i)}function Sl(t){if(!t.a||!t.I){if(t.a&&!t.I)throw new Br("internal-error");throw new Br("auth-domain-config-required")}}function Cl(t,e,n){var r=function(t,e,n){return t.i&&!n?(e.cancel(),Ct(t.i)):e.s(function(e){throw!e||"auth/user-disabled"!=e.code&&"auth/user-token-expired"!=e.code||(t.i||t.dispatchEvent(new Ju("userInvalidated")),t.i=e),e})}(t,e,n);return t.G.push(r),r.ia(function(){j(t.G,r)}),r}function Tl(t){if(!t.apiKey)return null;var e={apiKey:t.apiKey,authDomain:t.authDomain,appName:t.appName},n={};if(!(t.stsTokenManager&&t.stsTokenManager.accessToken&&t.stsTokenManager.expirationTime))return null;n[us]=t.stsTokenManager.accessToken,n.refreshToken=t.stsTokenManager.refreshToken||null,n.expiresIn=(t.stsTokenManager.expirationTime-w())/1e3;var r=new Zu(e,n,t);return t.providerData&&P(t.providerData,function(t){t&&pl(r,Nr(t))}),t.redirectEventId&&(r.aa=t.redirectEventId),r}function Il(t){this.a=t,this.b=Za()}Lu.prototype.reset=function(){this.b=null,this.a&&(this.a.cancel(),this.a=null)},Lu.prototype.h=function(t,e){if(t){this.reset(),this.g=!0;var n=t.b,r=t.c,i=t.a&&"auth/web-storage-unsupported"==t.a.code,o=t.a&&"auth/operation-not-supported-in-this-environment"==t.a.code;this.i=!(!i&&!o),"unknown"!=n||i||o?t.a?(Uu(this,!0,null,t.a),St()):e.xa(n,r)?function(t,e,n){n=n.xa(e.b,e.c);var r=e.f,i=e.g,o=e.h,s=!!e.b.match(/Redirect$/);n(r,i,o).then(function(e){Uu(t,s,e,null)}).s(function(e){Uu(t,s,null,e)})}(this,t,e):Ct(new Br("invalid-auth-event")):(Uu(this,!1,null,null),St())}else Ct(new Br("invalid-auth-event"))},Lu.prototype.Za=function(){this.g&&!this.i&&Uu(this,!1,null,null)},Lu.prototype.fa=function(){var t=this;return new yt(function(e,n){t.b?t.b().then(e,n):(t.f.push(e),t.c.push(n),function(t){var e=new Br("timeout");t.a&&t.a.cancel(),t.a=Fe(Nu.get()).then(function(){t.b||(t.g=!0,Uu(t,!0,null,e))})}(t))})},Vu.prototype.h=function(t,e){if(t){var n=t.b,r=t.c;t.a?(e.ha(t.b,null,t.a,t.c),St()):e.xa(n,r)?function(t,e){var n=t.c,r=t.b;e.xa(r,n)(t.f,t.g,t.h).then(function(t){e.ha(r,t,null,n)}).s(function(t){e.ha(r,null,t,n)})}(t,e):Ct(new Br("invalid-auth-event"))}else Ct(new Br("invalid-auth-event"))},Bu.prototype.confirm=function(t){return t=Yi(this.verificationId,t),this.a(t)},Wu.prototype.start=function(){this.a=this.c,function t(e,r){e.stop(),e.b=Fe(function(t,e){return e?(t.a=t.c,t.g()):(e=t.a,t.a*=2,t.a>t.f&&(t.a=t.f),e)}(e,r)).then(function(){return t=n.document,e=null,Er()||!t?St():new yt(function(n){e=function(){Er()&&(t.removeEventListener("visibilitychange",e,!1),n())},t.addEventListener("visibilitychange",e,!1)}).s(function(n){throw t.removeEventListener("visibilitychange",e,!1),n});var t,e}).then(function(){return e.h()}).then(function(){t(e,!0)}).s(function(n){e.i(n)&&t(e,!1)})}(this,!0)},Wu.prototype.stop=function(){this.b&&(this.b.cancel(),this.b=null)},Qu.prototype.C=function(){return{apiKey:this.f.b,refreshToken:this.a,accessToken:this.b,expirationTime:this.c}},Qu.prototype.getToken=function(t){return t=!!t,this.b&&!this.a?Ct(new Br("user-token-expired")):t||!this.b||w()>this.c-3e4?this.a?function(t,e){return function(t,e){return new yt(function(n,r){"refresh_token"==e.grant_type&&e.refresh_token||"authorization_code"==e.grant_type&&e.code?ms(t,t.i+"?key="+encodeURIComponent(t.b),function(t){t?t.error?r(oa(t)):t.access_token&&t.refresh_token?n(t):r(new Br("internal-error")):r(new Br("network-request-failed"))},"POST",ln(e).toString(),t.f,t.o.get()):r(new Br("internal-error"))})}(t.f,e).then(function(e){return t.b=e.access_token,t.c=Gu(e.expires_in),t.a=e.refresh_token,{accessToken:t.b,expirationTime:t.c,refreshToken:t.a}}).s(function(e){throw"auth/user-token-expired"==e.code&&(t.a=null),e})}(this,{grant_type:"refresh_token",refresh_token:this.a}):St(null):St({accessToken:this.b,expirationTime:this.c,refreshToken:this.a})},Yu.prototype.C=function(){return{lastLoginAt:this.b,createdAt:this.a}},E(Ju,ue),E(Zu,De),Zu.prototype.pa=function(t){this.ka=t,fs(this.b,t)},Zu.prototype.ea=function(){return this.ka},Zu.prototype.ya=function(){return q(this.O)},Zu.prototype.Ha=function(){this.w.b&&(this.w.stop(),this.w.start())},Ar(Zu.prototype,"providerId","firebase"),(t=Zu.prototype).reload=function(){var t=this;return Cl(this,cl(this).then(function(){return yl(t).then(function(){return sl(t)}).then(ll)}))},t.dc=function(t){return this.F(t).then(function(t){return new zu(t)})},t.F=function(t){var e=this;return Cl(this,cl(this).then(function(){return e.h.getToken(t)}).then(function(t){if(!t)throw new Br("internal-error");return t.accessToken!=e.ra&&(ol(e,t.accessToken),e.dispatchEvent(new Ju("tokenChanged"))),dl(e,"refreshToken",t.refreshToken),t.accessToken}))},t.zc=function(t){if(!(t=t.users)||!t.length)throw new Br("internal-error");ul(this,{uid:(t=t[0]).localId,displayName:t.displayName,photoURL:t.photoUrl,email:t.email,emailVerified:!!t.emailVerified,phoneNumber:t.phoneNumber,lastLoginAt:t.lastLoginAt,createdAt:t.createdAt});for(var e=function(t){return(t=t.providerUserInfo)&&t.length?M(t,function(t){return new Xu(t.rawId,t.providerId,t.email,t.displayName,t.photoUrl,t.phoneNumber)}):[]}(t),n=0;n<e.length;n++)pl(this,e[n]);dl(this,"isAnonymous",!(this.email&&t.passwordHash||this.providerData&&this.providerData.length))},t.hb=function(t){var e=this,n=null;return Cl(this,t.f(this.b,this.uid).then(function(t){return gl(e,t),n=_l(e,t,"reauthenticate"),e.i=null,e.reload()}).then(function(){return n}),!0)},t.Ac=function(t){return xr("firebase.User.prototype.reauthenticateWithCredential is deprecated. Please use firebase.User.prototype.reauthenticateAndRetrieveDataWithCredential instead."),this.hb(t).then(function(){})},t.fb=function(t){var e=this,n=null;return Cl(this,vl(this,t.providerId).then(function(){return e.F()}).then(function(n){return t.b(e.b,n)}).then(function(t){return n=_l(e,t,"link"),bl(e,t)}).then(function(){return n}))},t.rc=function(t){return xr("firebase.User.prototype.linkWithCredential is deprecated. Please use firebase.User.prototype.linkAndRetrieveDataWithCredential instead."),this.fb(t).then(function(t){return t.user})},t.sc=function(t,e){var n=this;return Cl(this,vl(this,"phone").then(function(){return Hu(nl(n),t,e,_(n.fb,n))}))},t.Bc=function(t,e){var n=this;return Cl(this,St().then(function(){return Hu(nl(n),t,e,_(n.hb,n))}),!0)},t.qb=function(t){var e=this;return Cl(this,this.F().then(function(n){return e.b.qb(n,t)}).then(function(t){return gl(e,t),e.reload()}))},t.Tc=function(t){var e=this;return Cl(this,this.F().then(function(n){return t.b(e.b,n)}).then(function(t){return gl(e,t),e.reload()}))},t.rb=function(t){var e=this;return Cl(this,this.F().then(function(n){return e.b.rb(n,t)}).then(function(t){return gl(e,t),e.reload()}))},t.sb=function(t){if(void 0===t.displayName&&void 0===t.photoURL)return cl(this);var e=this;return Cl(this,this.F().then(function(n){return e.b.sb(n,{displayName:t.displayName,photoUrl:t.photoURL})}).then(function(t){return gl(e,t),dl(e,"displayName",t.displayName||null),dl(e,"photoURL",t.photoUrl||null),P(e.providerData,function(t){"password"===t.providerId&&(Ar(t,"displayName",e.displayName),Ar(t,"photoURL",e.photoURL))}),sl(e)}).then(ll))},t.Rc=function(t){var e=this;return Cl(this,yl(this).then(function(n){return F(hl(e),t)?function(t,e,n){return ra(t,Ms,{idToken:e,deleteProvider:n})}(e.b,n,[t]).then(function(t){var n={};return P(t.providerUserInfo||[],function(t){n[t.providerId]=!0}),P(hl(e),function(t){n[t]||fl(e,t)}),n[Gi.PROVIDER_ID]||Ar(e,"phoneNumber",null),sl(e)}):sl(e).then(function(){throw new Br("no-such-provider")})}))},t.delete=function(){var t=this;return Cl(this,this.F().then(function(e){return ra(t.b,Ps,{idToken:e})}).then(function(){t.dispatchEvent(new Ju("userDeleted"))})).then(function(){for(var e=0;e<t.G.length;e++)t.G[e].cancel("app-deleted");$u(t,null),el(t,null),t.G=[],t.D=!0,il(t),Ar(t,"refreshToken",null),t.a&&t.a.unsubscribe(t)})},t.wb=function(t,e){return!!("linkViaPopup"==t&&(this.g||null)==e&&this.f||"reauthViaPopup"==t&&(this.g||null)==e&&this.f||"linkViaRedirect"==t&&(this.aa||null)==e||"reauthViaRedirect"==t&&(this.aa||null)==e)},t.ha=function(t,e,n,r){"linkViaPopup"!=t&&"reauthViaPopup"!=t||r!=(this.g||null)||(n&&this.v?this.v(n):e&&!n&&this.f&&this.f(e),this.c&&(this.c.cancel(),this.c=null),delete this.f,delete this.v)},t.xa=function(t,e){return"linkViaPopup"==t&&e==(this.g||null)?_(this.Bb,this):"reauthViaPopup"==t&&e==(this.g||null)?_(this.Cb,this):"linkViaRedirect"==t&&(this.aa||null)==e?_(this.Bb,this):"reauthViaRedirect"==t&&(this.aa||null)==e?_(this.Cb,this):null},t.tc=function(t){var e=this;return wl(this,"linkViaPopup",t,function(){return vl(e,t.providerId).then(function(){return sl(e)})},!1)},t.Cc=function(t){return wl(this,"reauthViaPopup",t,function(){return St()},!0)},t.uc=function(t){var e=this;return El(this,"linkViaRedirect",t,function(){return vl(e,t.providerId)},!1)},t.Dc=function(t){return El(this,"reauthViaRedirect",t,function(){return St()},!0)},t.Bb=function(t,e,n){var r=this;this.c&&(this.c.cancel(),this.c=null);var i=null;return Cl(this,this.F().then(function(i){return xs(r.b,{requestUri:t,postBody:n,sessionId:e,idToken:i})}).then(function(t){return i=_l(r,t,"link"),bl(r,t)}).then(function(){return i}))},t.Cb=function(t,e,n){var r=this;this.c&&(this.c.cancel(),this.c=null);var i=null;return Cl(this,St().then(function(){return Ii(ks(r.b,{requestUri:t,sessionId:e,postBody:n}),r.uid)}).then(function(t){return i=_l(r,t,"reauthenticate"),gl(r,t),r.i=null,r.reload()}).then(function(){return i}),!0)},t.kb=function(t){var e=this,n=null;return Cl(this,this.F().then(function(e){return n=e,void 0===t||rt(t)?{}:ni(new Qr(t))}).then(function(t){return e.b.kb(n,t)}).then(function(t){if(e.email!=t)return e.reload()}).then(function(){}))},t.toJSON=function(){return this.C()},t.C=function(){var t={uid:this.uid,displayName:this.displayName,photoURL:this.photoURL,email:this.email,emailVerified:this.emailVerified,phoneNumber:this.phoneNumber,isAnonymous:this.isAnonymous,providerData:[],apiKey:this.l,appName:this.m,authDomain:this.u,stsTokenManager:this.h.C(),redirectEventId:this.aa||null};return this.metadata&&ut(t,this.metadata.C()),P(this.providerData,function(e){t.providerData.push(function(t){var e,n={};for(e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}(e))}),t};var xl={name:"redirectUser",A:"session"};function kl(t){return eu(t.b,xl,t.a)}function Al(t){this.a=t,this.b=Za(),this.c=null,this.f=function(t){var e=Dl("local"),r=Dl("session"),i=Dl("none");return function(t,e,r){var i=tu(e,r),o=$a(t,e.A);return t.get(e,r).then(function(s){var a=null;try{a=gr(n.localStorage.getItem(i))}catch(u){}if(a&&!s)return n.localStorage.removeItem(i),t.set(e,a,r);a&&s&&"localStorage"!=o.type&&n.localStorage.removeItem(i)})}(t.b,e,t.a).then(function(){return t.b.get(r,t.a)}).then(function(n){return n?r:t.b.get(i,t.a).then(function(n){return n?i:t.b.get(e,t.a).then(function(n){return n?e:t.b.get(Nl,t.a).then(function(t){return t?Dl(t):e})})})}).then(function(e){return t.c=e,Ol(t,e.A)}).s(function(){t.c||(t.c=e)})}(this),this.b.addListener(Dl("local"),this.a,_(this.g,this))}function Ol(t,e){var n,r=[];for(n in Xa)Xa[n]!==e&&r.push(eu(t.b,Dl(Xa[n]),t.a));return r.push(eu(t.b,Nl,t.a)),function(t){return new yt(function(e,n){var r=t.length,i=[];if(r)for(var o=function(t,n){r--,i[t]=n,0==r&&e(i)},s=function(t){n(t)},a=0;a<t.length;a++)Tt(t[a],b(o,a),s);else e(i)})}(r)}Al.prototype.g=function(){var t=this,e=Dl("local");Ll(this,function(){return St().then(function(){return t.c&&"local"!=t.c.A?t.b.get(e,t.a):null}).then(function(n){if(n)return Ol(t,"local").then(function(){t.c=e})})})};var Nl={name:"persistence",A:"session"};function Dl(t){return{name:"authUser",A:t}}function Rl(t,e){return Ll(t,function(){return t.b.set(t.c,e.C(),t.a)})}function Pl(t){return Ll(t,function(){return eu(t.b,t.c,t.a)})}function Ml(t,e){return Ll(t,function(){return t.b.get(t.c,t.a).then(function(t){return t&&e&&(t.authDomain=e),Tl(t||{})})})}function Ll(t,e){return t.f=t.f.then(e,e),t.f}function Fl(t){if(this.l=!1,Ar(this,"settings",new qu),Ar(this,"app",t),!zl(this).options||!zl(this).options.apiKey)throw new Br("invalid-api-key");t=i.a.SDK_VERSION?ar(i.a.SDK_VERSION):null,this.b=new ss(zl(this).options&&zl(this).options.apiKey,ci(ui),t),this.N=[],this.m=[],this.I=[],this.Tb=i.a.INTERNAL.createSubscribe(_(this.oc,this)),this.O=void 0,this.Ub=i.a.INTERNAL.createSubscribe(_(this.pc,this)),Bl(this,null),this.h=new Al(zl(this).options.apiKey+":"+zl(this).name),this.w=new Il(zl(this).options.apiKey+":"+zl(this).name),this.V=Gl(this,function(t){var e=zl(t).options.authDomain,n=function(t){var e=function(t,e){return t.b.get(xl,t.a).then(function(t){return t&&e&&(t.authDomain=e),Tl(t||{})})}(t.w,zl(t).options.authDomain).then(function(e){return(t.D=e)&&(e.ba=t.w),kl(t.w)});return Gl(t,e)}(t).then(function(){return Ml(t.h,e)}).then(function(e){return e?(e.ba=t.w,t.D&&(t.D.aa||null)==(e.aa||null)?e:e.reload().then(function(){return Rl(t.h,e).then(function(){return e})}).s(function(n){return"auth/network-request-failed"==n.code?e:Pl(t.h)})):null}).then(function(e){Bl(t,e||null)});return Gl(t,n)}(this)),this.i=Gl(this,function(t){return t.V.then(function(){return t.fa()}).s(function(){}).then(function(){if(!t.l)return t.ka()}).s(function(){}).then(function(){if(!t.l){t.X=!0;var e=t.h;e.b.addListener(Dl("local"),e.a,t.ka)}})}(this)),this.X=!1,this.ka=_(this.Oc,this),this.Ha=_(this.Z,this),this.ra=_(this.bc,this),this.sa=_(this.mc,this),this.ta=_(this.nc,this),function(t){var e=zl(t).options.authDomain,n=zl(t).options.apiKey;e&&hr()&&(t.Sb=t.V.then(function(){if(!t.l){if(t.a=Mu(e,n,zl(t).name),t.a.subscribe(t),Wl(t)&&al(Wl(t)),t.D){al(t.D);var r=t.D;r.pa(t.ea()),$u(r,t),tl(r=t.D,t.G),el(r,t),t.D=null}return t.a}}))}(this),this.INTERNAL={},this.INTERNAL.delete=_(this.delete,this),this.INTERNAL.logFramework=_(this.vc,this),this.u=0,De.call(this),function(t){Object.defineProperty(t,"lc",{get:function(){return this.ea()},set:function(t){this.pa(t)},enumerable:!1}),t.W=null}(this),this.G=[]}function jl(t){ue.call(this,"languageCodeChanged"),this.g=t}function Ul(t){ue.call(this,"frameworkChanged"),this.c=t}function Vl(t){return t.Sb||Ct(new Br("auth-domain-config-required"))}function ql(t,e){var n={};return n.apiKey=zl(t).options.apiKey,n.authDomain=zl(t).options.authDomain,n.appName=zl(t).name,t.V.then(function(){return function(t,e,n,r){var i=new Zu(t,e);return n&&(i.ba=n),r&&tl(i,r),i.reload().then(function(){return i})}(n,e,t.w,t.ya())}).then(function(e){return Wl(t)&&e.uid==Wl(t).uid?(ml(Wl(t),e),t.Z(e)):(Bl(t,e),al(e),t.Z(e))}).then(function(){Kl(t)})}function Bl(t,e){Wl(t)&&(function(t,e){U(t.N,function(t){return t==e})}(Wl(t),t.Ha),Se(Wl(t),"tokenChanged",t.ra),Se(Wl(t),"userDeleted",t.sa),Se(Wl(t),"userInvalidated",t.ta),il(Wl(t))),e&&(e.N.push(t.Ha),be(e,"tokenChanged",t.ra),be(e,"userDeleted",t.sa),be(e,"userInvalidated",t.ta),0<t.u&&rl(e)),Ar(t,"currentUser",e),e&&(e.pa(t.ea()),$u(e,t),tl(e,t.G),el(e,t))}function Hl(t,e){var n=null,r=null;return Gl(t,e.then(function(e){return n=Xi(e),r=mi(e),ql(t,e)}).then(function(){return Nr({user:Wl(t),credential:n,additionalUserInfo:r,operationType:"signIn"})}))}function zl(t){return t.app}function Wl(t){return t.currentUser}function Ql(t){return Wl(t)&&Wl(t)._lat||null}function Kl(t){if(t.X){for(var e=0;e<t.m.length;e++)t.m[e]&&t.m[e](Ql(t));if(t.O!==t.getUid()&&t.I.length)for(t.O=t.getUid(),e=0;e<t.I.length;e++)t.I[e]&&t.I[e](Ql(t))}}function Gl(t,e){return t.N.push(e),e.ia(function(){j(t.N,e)}),e}function Yl(){}function Xl(){this.a={},this.b=1e12}Al.prototype.nb=function(t){var e=null,n=this;return function(t){var e=new Br("invalid-persistence-type"),n=new Br("unsupported-persistence-type");t:{for(r in Xa)if(Xa[r]==t){var r=!0;break t}r=!1}if(!r||"string"!=typeof t)throw e;switch(er()){case"ReactNative":if("session"===t)throw n;break;case"Node":if("none"!==t)throw n;break;default:if(!cr()&&"none"!==t)throw n}}(t),Ll(this,function(){return t!=n.c.A?n.b.get(n.c,n.a).then(function(r){return e=r,Ol(n,t)}).then(function(){if(n.c=Dl(t),e)return n.b.set(n.c,e,n.a)}):St()})},E(Fl,De),E(jl,ue),E(Ul,ue),(t=Fl.prototype).nb=function(t){return Gl(this,t=this.h.nb(t))},t.pa=function(t){this.W===t||this.l||(this.W=t,fs(this.b,this.W),this.dispatchEvent(new jl(this.ea())))},t.ea=function(){return this.W},t.Uc=function(){var t=n.navigator;this.pa(t&&(t.languages&&t.languages[0]||t.language||t.userLanguage)||null)},t.vc=function(t){this.G.push(t),ds(this.b,i.a.SDK_VERSION?ar(i.a.SDK_VERSION,this.G):null),this.dispatchEvent(new Ul(this.G))},t.ya=function(){return q(this.G)},t.toJSON=function(){return{apiKey:zl(this).options.apiKey,authDomain:zl(this).options.authDomain,appName:zl(this).name,currentUser:Wl(this)&&Wl(this).C()}},t.wb=function(t,e){switch(t){case"unknown":case"signInViaRedirect":return!0;case"signInViaPopup":return this.g==e&&!!this.f;default:return!1}},t.ha=function(t,e,n,r){"signInViaPopup"==t&&this.g==r&&(n&&this.v?this.v(n):e&&!n&&this.f&&this.f(e),this.c&&(this.c.cancel(),this.c=null),delete this.f,delete this.v)},t.xa=function(t,e){return"signInViaRedirect"==t||"signInViaPopup"==t&&this.g==e&&this.f?_(this.ac,this):null},t.ac=function(t,e,n){var r=this;t={requestUri:t,postBody:n,sessionId:e},this.c&&(this.c.cancel(),this.c=null);var i=null,o=null,s=Is(r.b,t).then(function(t){return i=Xi(t),o=mi(t),t});return Gl(this,t=r.V.then(function(){return s}).then(function(t){return ql(r,t)}).then(function(){return Nr({user:Wl(r),credential:i,additionalUserInfo:o,operationType:"signIn"})}))},t.Mc=function(t){if(!hr())return Ct(new Br("operation-not-supported-in-this-environment"));var e=this,n=di(t.providerId),r=vr(),o=null;(!dr()||$n())&&zl(this).options.authDomain&&t.isOAuthProvider&&(o=va(zl(this).options.authDomain,zl(this).options.apiKey,zl(this).name,"signInViaPopup",t,null,r,i.a.SDK_VERSION||null));var s=Gn(o,n&&n.Ba,n&&n.Aa);return Gl(this,n=Vl(this).then(function(e){return Du(e,s,"signInViaPopup",t,r,!!o)}).then(function(){return new yt(function(t,n){e.ha("signInViaPopup",null,new Br("cancelled-popup-request"),e.g),e.f=t,e.v=n,e.g=r,e.c=e.a.Ea(e,"signInViaPopup",s,r)})}).then(function(t){return s&&Kn(s),t?Nr(t):null}).s(function(t){throw s&&Kn(s),t}))},t.Nc=function(t){if(!hr())return Ct(new Br("operation-not-supported-in-this-environment"));var e=this;return Gl(this,Vl(this).then(function(){return Ll(t=e.h,function(){return t.b.set(Nl,t.c.A,t.a)});var t}).then(function(){return e.a.Ca("signInViaRedirect",t)}))},t.fa=function(){if(!hr())return Ct(new Br("operation-not-supported-in-this-environment"));var t=this;return Gl(this,Vl(this).then(function(){return t.a.fa()}).then(function(t){return t?Nr(t):null}))},t.Sc=function(t){if(!t)return Ct(new Br("null-user"));var e=this,n={};n.apiKey=zl(this).options.apiKey,n.authDomain=zl(this).options.authDomain,n.appName=zl(this).name;var r=function(t,e,n,r){e=e||{apiKey:t.l,authDomain:t.u,appName:t.m};var i=t.h,o={};return o[us]=i.b,o.refreshToken=i.a,o.expiresIn=(i.c-w())/1e3,e=new Zu(e,o),n&&(e.ba=n),r&&tl(e,r),ml(e,t),e}(t,n,e.w,e.ya());return Gl(this,this.i.then(function(){if(zl(e).options.apiKey!=t.l)return r.reload()}).then(function(){return Wl(e)&&t.uid==Wl(e).uid?(ml(Wl(e),t),e.Z(t)):(Bl(e,r),al(r),e.Z(r))}).then(function(){Kl(e)}))},t.ob=function(){var t=this;return Gl(this,this.i.then(function(){return Wl(t)?(Bl(t,null),Pl(t.h).then(function(){Kl(t)})):St()}))},t.Oc=function(){var t=this;return Ml(this.h,zl(this).options.authDomain).then(function(e){if(!t.l){var n;if(n=Wl(t)&&e){n=Wl(t).uid;var r=e.uid;n=null!=n&&""!==n&&null!=r&&""!==r&&n==r}if(n)return ml(Wl(t),e),Wl(t).F();(Wl(t)||e)&&(Bl(t,e),e&&(al(e),e.ba=t.w),t.a&&t.a.subscribe(t),Kl(t))}})},t.Z=function(t){return Rl(this.h,t)},t.bc=function(){Kl(this),this.Z(Wl(this))},t.mc=function(){this.ob()},t.nc=function(){this.ob()},t.oc=function(t){var e=this;this.addAuthTokenListener(function(){t.next(Wl(e))})},t.pc=function(t){var e=this;!function(t,e){t.I.push(e),Gl(t,t.i.then(function(){!t.l&&F(t.I,e)&&t.O!==t.getUid()&&(t.O=t.getUid(),e(Ql(t)))}))}(this,function(){t.next(Wl(e))})},t.xc=function(t,e,n){var r=this;return this.X&&i.a.Promise.resolve().then(function(){f(t)?t(Wl(r)):f(t.next)&&t.next(Wl(r))}),this.Tb(t,e,n)},t.wc=function(t,e,n){var r=this;return this.X&&i.a.Promise.resolve().then(function(){r.O=r.getUid(),f(t)?t(Wl(r)):f(t.next)&&t.next(Wl(r))}),this.Ub(t,e,n)},t.cc=function(t){var e=this;return Gl(this,this.i.then(function(){return Wl(e)?Wl(e).F(t).then(function(t){return{accessToken:t}}):null}))},t.Nb=function(t){var e=this;return this.i.then(function(){return Hl(e,ra(e.b,Zs,{token:t}))}).then(function(t){var n=t.user;return dl(n,"isAnonymous",!1),e.Z(n),t})},t.Gc=function(t){return xr("firebase.auth.Auth.prototype.signInAndRetrieveDataWithCustomToken is deprecated. Please use firebase.auth.Auth.prototype.signInWithCustomToken instead."),this.Nb(t)},t.Hc=function(t,e){return xr("firebase.auth.Auth.prototype.signInAndRetrieveDataWithEmailAndPassword is deprecated. Please use firebase.auth.Auth.prototype.signInWithEmailAndPassword instead."),this.Ob(t,e)},t.Ob=function(t,e){var n=this;return this.i.then(function(){return Hl(n,ra(n.b,$s,{email:t,password:e}))})},t.yb=function(t,e){var n=this;return this.i.then(function(){return Hl(n,ra(n.b,Ds,{email:t,password:e}))})},t.Wb=function(t,e){return xr("firebase.auth.Auth.prototype.createUserAndRetrieveDataWithEmailAndPassword is deprecated. Please use firebase.auth.Auth.prototype.createUserWithEmailAndPassword instead."),this.yb(t,e)},t.Jc=function(t){return xr("firebase.auth.Auth.prototype.signInWithCredential is deprecated. Please use firebase.auth.Auth.prototype.signInAndRetrieveDataWithCredential instead."),this.Qa(t).then(function(t){return t.user})},t.Qa=function(t){var e=this;return this.i.then(function(){return Hl(e,t.la(e.b))})},t.Ra=function(){var t=this;return this.i.then(function(){var e=Wl(t);if(e&&e.isAnonymous){var n=Nr({providerId:null,isNewUser:!1});return Nr({user:e,credential:null,additionalUserInfo:n,operationType:"signIn"})}return Hl(t,t.b.Ra()).then(function(e){var n=e.user;return dl(n,"isAnonymous",!0),t.Z(n),e})})},t.Ic=function(){return xr("firebase.auth.Auth.prototype.signInAnonymouslyAndRetrieveData is deprecated. Please use firebase.auth.Auth.prototype.signInAnonymously instead."),this.Ra()},t.getUid=function(){return Wl(this)&&Wl(this).uid||null},t.Vb=function(t){this.addAuthTokenListener(t),this.u++,0<this.u&&Wl(this)&&rl(Wl(this))},t.Ec=function(t){var e=this;P(this.m,function(n){n==t&&e.u--}),0>this.u&&(this.u=0),0==this.u&&Wl(this)&&il(Wl(this)),this.removeAuthTokenListener(t)},t.addAuthTokenListener=function(t){var e=this;this.m.push(t),Gl(this,this.i.then(function(){e.l||F(e.m,t)&&t(Ql(e))}))},t.removeAuthTokenListener=function(t){U(this.m,function(e){return e==t})},t.delete=function(){this.l=!0;for(var t=0;t<this.N.length;t++)this.N[t].cancel("app-deleted");return this.N=[],this.h&&(t=this.h).b.removeListener(Dl("local"),t.a,this.ka),this.a&&(this.a.unsubscribe(this),this.a.Za()),i.a.Promise.resolve()},t.Zb=function(t){return xr("firebase.auth.Auth.prototype.fetchProvidersForEmail is deprecated. Please use firebase.auth.Auth.prototype.fetchSignInMethodsForEmail instead."),Gl(this,function(t,e){return ra(t,Rs,{identifier:e,continueUri:pr()?zn():"http://localhost"}).then(function(t){return t.allProviders||[]})}(this.b,t))},t.$b=function(t){return Gl(this,function(t,e){return ra(t,Rs,{identifier:e,continueUri:pr()?zn():"http://localhost"}).then(function(t){return t.signinMethods||[]})}(this.b,t))},t.qc=function(t){return!!Wi(t)},t.mb=function(t,e){var n=this;return Gl(this,St().then(function(){var t=new Qr(e);if(!t.c)throw new Br("argument-error",Yr+" must be true when sending sign in link to email");return ni(t)}).then(function(e){return n.b.mb(t,e)}).then(function(){}))},t.Vc=function(t){return this.Ja(t).then(function(t){return t.data.email})},t.$a=function(t,e){return Gl(this,this.b.$a(t,e).then(function(){}))},t.Ja=function(t){return Gl(this,this.b.Ja(t).then(function(t){return new Rr(t)}))},t.Xa=function(t){return Gl(this,this.b.Xa(t).then(function(){}))},t.lb=function(t,e){var n=this;return Gl(this,St().then(function(){return void 0===e||rt(e)?{}:ni(new Qr(e))}).then(function(e){return n.b.lb(t,e)}).then(function(){}))},t.Lc=function(t,e){return Gl(this,Hu(this,t,e,_(this.Qa,this)))},t.Kc=function(t,e){var n=this;return Gl(this,St().then(function(){var r=zi(t,e||zn());return n.Qa(r)}))},Yl.prototype.render=function(){},Yl.prototype.reset=function(){},Yl.prototype.getResponse=function(){},Yl.prototype.execute=function(){};var Jl=null;function Zl(t,e){return(e=$l(e))&&t.a[e]||null}function $l(t){return(t=void 0===t?1e12:t)?t.toString():null}function tc(t,e){this.g=!1,this.c=e,this.a=this.b=null,this.h="invisible"!==this.c.size,this.f=Pn(t);var n=this;this.i=function(){n.execute()},this.h?this.execute():be(this.f,"click",this.i)}function ec(t){if(t.g)throw Error("reCAPTCHA mock was already deleted!")}function nc(){}Xl.prototype.render=function(t,e){return this.a[this.b.toString()]=new tc(t,e),this.b++},Xl.prototype.reset=function(t){var e=Zl(this,t);t=$l(t),e&&t&&(e.delete(),delete this.a[t])},Xl.prototype.getResponse=function(t){return(t=Zl(this,t))?t.getResponse():null},Xl.prototype.execute=function(t){(t=Zl(this,t))&&t.execute()},tc.prototype.getResponse=function(){return ec(this),this.b},tc.prototype.execute=function(){ec(this);var t=this;this.a||(this.a=setTimeout(function(){t.b=function(){for(var t=50,e=[];0<t;)e.push("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(Math.floor(62*Math.random()))),t--;return e.join("")}();var e=t.c.callback,n=t.c["expired-callback"];if(e)try{e(t.b)}catch(r){}t.a=setTimeout(function(){if(t.a=null,t.b=null,n)try{n()}catch(r){}t.h&&t.execute()},6e4)},500))},tc.prototype.delete=function(){ec(this),this.g=!0,clearTimeout(this.a),this.a=null,Se(this.f,"click",this.i)},nc.prototype.g=function(){return Jl||(Jl=new Xl),St(Jl)},nc.prototype.c=function(){};var rc=null;function ic(){this.b=n.grecaptcha?1/0:0,this.f=null,this.a="__rcb"+Math.floor(1e6*Math.random()).toString()}var oc=new mn(vn,"https://www.google.com/recaptcha/api.js?onload=%{onload}&render=explicit&hl=%{hl}"),sc=new wr(3e4,6e4);ic.prototype.g=function(t){var e=this;return new yt(function(r,i){var o=setTimeout(function(){i(new Br("network-request-failed"))},sc.get());!n.grecaptcha||t!==e.f&&!e.b?(n[e.a]=function(){if(n.grecaptcha){e.f=t;var s=n.grecaptcha.render;n.grecaptcha.render=function(t,n){return t=s(t,n),e.b++,t},clearTimeout(o),r(n.grecaptcha)}else clearTimeout(o),i(new Br("internal-error"));delete n[e.a]},St($o(wn(oc,{onload:e.a,hl:t||""}))).s(function(){clearTimeout(o),i(new Br("internal-error","Unable to load external reCAPTCHA dependencies!"))})):(clearTimeout(o),r(n.grecaptcha))})},ic.prototype.c=function(){this.b--};var ac=null;function uc(t,e,r,i,o,s,a){if(Ar(this,"type","recaptcha"),this.c=this.f=null,this.D=!1,this.l=e,this.g=null,a?(rc||(rc=new nc),a=rc):(ac||(ac=new ic),a=ac),this.m=a,this.a=r||{theme:"light",type:"image"},this.h=[],this.a[hc])throw new Br("argument-error","sitekey should not be provided for reCAPTCHA as one is automatically provisioned for the current project.");if(this.i="invisible"===this.a[pc],!n.document)throw new Br("operation-not-supported-in-this-environment","RecaptchaVerifier is only supported in a browser HTTP/HTTPS environment with DOM support.");if(!Pn(e)||!this.i&&Pn(e).hasChildNodes())throw new Br("argument-error","reCAPTCHA container is either not found or already contains inner elements!");this.u=new ss(t,s||null,o||null),this.v=i||function(){return null};var u=this;this.o=[];var l=this.a[lc];this.a[lc]=function(t){if(fc(u,t),"function"==typeof l)l(t);else if("string"==typeof l){var e=lr(l,n);"function"==typeof e&&e(t)}};var c=this.a[cc];this.a[cc]=function(){if(fc(u,null),"function"==typeof c)c();else if("string"==typeof c){var t=lr(c,n);"function"==typeof t&&t()}}}var lc="callback",cc="expired-callback",hc="sitekey",pc="size";function fc(t,e){for(var n=0;n<t.o.length;n++)try{t.o[n](e)}catch(r){}}function dc(t,e){return t.h.push(e),e.ia(function(){j(t.h,e)}),e}function mc(t){if(t.D)throw new Br("internal-error","RecaptchaVerifier instance has been destroyed.")}function yc(t,e,n){var r=!1;try{this.b=n||i.a.app()}catch(a){throw new Br("argument-error","No firebase.app.App instance is currently initialized.")}if(!this.b.options||!this.b.options.apiKey)throw new Br("invalid-api-key");n=this.b.options.apiKey;var o=this,s=null;try{s=this.b.auth().ya()}catch(a){}try{r=this.b.auth().settings.appVerificationDisabledForTesting}catch(a){}s=i.a.SDK_VERSION?ar(i.a.SDK_VERSION,s):null,uc.call(this,n,t,e,function(){try{var t=o.b.auth().ea()}catch(e){t=null}return t},s,ci(ui),r)}function gc(t,e,n,r){t:{n=Array.prototype.slice.call(n);for(var i=0,o=!1,s=0;s<e.length;s++)if(e[s].optional)o=!0;else{if(o)throw new Br("internal-error","Argument validator encountered a required argument after an optional argument.");i++}if(o=e.length,n.length<i||o<n.length)r="Expected "+(i==o?1==i?"1 argument":i+" arguments":i+"-"+o+" arguments")+" but got "+n.length+".";else{for(i=0;i<n.length;i++)if(o=e[i].optional&&void 0===n[i],!e[i].M(n[i])&&!o){if(e=e[i],0>i||i>=vc.length)throw new Br("internal-error","Argument validator received an unsupported number of arguments.");n=vc[i],r=(r?"":n+" argument ")+(e.name?'"'+e.name+'" ':"")+"must be "+e.K+".";break t}r=null}}if(r)throw new Br("argument-error",t+" failed: "+r)}(t=uc.prototype).za=function(){var t=this;return this.f?this.f:this.f=dc(this,St().then(function(){if(pr()&&!tr())return Jn();throw new Br("operation-not-supported-in-this-environment","RecaptchaVerifier is only supported in a browser HTTP/HTTPS environment.")}).then(function(){return t.m.g(t.v())}).then(function(e){return t.g=e,ra(t.u,Hs,{})}).then(function(e){t.a[hc]=e.recaptchaSiteKey}).s(function(e){throw t.f=null,e}))},t.render=function(){mc(this);var t=this;return dc(this,this.za().then(function(){if(null===t.c){var e=t.l;if(!t.i){var n=Pn(e);e=function(t,e,n){var i=arguments,o=document,s=String(i[0]),a=i[1];if(!dn&&a&&(a.name||a.type)){if(s=["<",s],a.name&&s.push(' name="',ct(a.name),'"'),a.type){s.push(' type="',ct(a.type),'"');var u={};ut(u,a),delete u.type,a=u}s.push(">"),s=s.join("")}return s=o.createElement(s),a&&(r(a)?s.className=a:h(a)?s.className=a.join(" "):Mn(s,a)),2<i.length&&function(t,e,n){function i(n){n&&e.appendChild(r(n)?t.createTextNode(n):n)}for(var o=2;o<n.length;o++){var s=n[o];!p(s)||d(s)&&0<s.nodeType?i(s):P(Fn(s)?q(s):s,i)}}(o,s,i),s}("DIV"),n.appendChild(e)}t.c=t.g.render(e,t.a)}return t.c}))},t.verify=function(){mc(this);var t=this;return dc(this,this.render().then(function(e){return new yt(function(n){var r=t.g.getResponse(e);if(r)n(r);else{var i=function(e){e&&(function(t,e){U(t.o,function(t){return t==e})}(t,i),n(e))};t.o.push(i),t.i&&t.g.execute(t.c)}})}))},t.reset=function(){mc(this),null!==this.c&&this.g.reset(this.c)},t.clear=function(){mc(this),this.D=!0,this.m.c();for(var t=0;t<this.h.length;t++)this.h[t].cancel("RecaptchaVerifier instance has been destroyed.");if(!this.i){t=Pn(this.l);for(var e;e=t.firstChild;)t.removeChild(e)}},E(yc,uc);var vc="First Second Third Fourth Fifth Sixth Seventh Eighth Ninth".split(" ");function _c(t,e){return{name:t||"",K:"a valid string",optional:!!e,M:r}}function bc(t,e){return{name:t||"",K:"a boolean",optional:!!e,M:o}}function wc(t,e){return{name:t||"",K:"a valid object",optional:!!e,M:d}}function Ec(t,e){return{name:t||"",K:"a function",optional:!!e,M:f}}function Sc(t,e){return{name:t||"",K:"null",optional:!!e,M:c}}function Cc(t){return{name:t?t+"Credential":"credential",K:t?"a valid "+t+" credential":"a valid credential",optional:!1,M:function(e){return!!e&&!(!e.la||t&&e.providerId!==t)}}}function Tc(){return{name:"applicationVerifier",K:"an implementation of firebase.auth.ApplicationVerifier",optional:!1,M:function(t){return!!(t&&r(t.type)&&f(t.verify))}}}function Ic(t,e,n,r){return{name:n||"",K:t.K+" or "+e.K,optional:!!r,M:function(n){return t.M(n)||e.M(n)}}}function xc(t,e){for(var n in e){var r=e[n].name;t[r]=Oc(r,t[n],e[n].j)}}function kc(t,e){for(var n in e){var r=e[n].name;r!==n&&Object.defineProperty(t,r,{get:b(function(t){return this[t]},n),set:b(function(t,e,n,r){gc(t,[n],[r],!0),this[e]=r},r,n,e[n].ub),enumerable:!0})}}function Ac(t,e,n,r){t[e]=Oc(e,n,r)}function Oc(t,e,n){function r(){var t=Array.prototype.slice.call(arguments);return gc(o,n,t),e.apply(this,t)}if(!n)return e;var i,o=function(t){return(t=t.split("."))[t.length-1]}(t);for(i in e)r[i]=e[i];for(i in e.prototype)r.prototype[i]=e.prototype[i];return r}xc(Fl.prototype,{Xa:{name:"applyActionCode",j:[_c("code")]},Ja:{name:"checkActionCode",j:[_c("code")]},$a:{name:"confirmPasswordReset",j:[_c("code"),_c("newPassword")]},yb:{name:"createUserWithEmailAndPassword",j:[_c("email"),_c("password")]},Wb:{name:"createUserAndRetrieveDataWithEmailAndPassword",j:[_c("email"),_c("password")]},Zb:{name:"fetchProvidersForEmail",j:[_c("email")]},$b:{name:"fetchSignInMethodsForEmail",j:[_c("email")]},fa:{name:"getRedirectResult",j:[]},qc:{name:"isSignInWithEmailLink",j:[_c("emailLink")]},wc:{name:"onAuthStateChanged",j:[Ic(wc(),Ec(),"nextOrObserver"),Ec("opt_error",!0),Ec("opt_completed",!0)]},xc:{name:"onIdTokenChanged",j:[Ic(wc(),Ec(),"nextOrObserver"),Ec("opt_error",!0),Ec("opt_completed",!0)]},lb:{name:"sendPasswordResetEmail",j:[_c("email"),Ic(wc("opt_actionCodeSettings",!0),Sc(null,!0),"opt_actionCodeSettings",!0)]},mb:{name:"sendSignInLinkToEmail",j:[_c("email"),wc("actionCodeSettings")]},nb:{name:"setPersistence",j:[_c("persistence")]},Qa:{name:"signInAndRetrieveDataWithCredential",j:[Cc()]},Ra:{name:"signInAnonymously",j:[]},Ic:{name:"signInAnonymouslyAndRetrieveData",j:[]},Jc:{name:"signInWithCredential",j:[Cc()]},Nb:{name:"signInWithCustomToken",j:[_c("token")]},Gc:{name:"signInAndRetrieveDataWithCustomToken",j:[_c("token")]},Ob:{name:"signInWithEmailAndPassword",j:[_c("email"),_c("password")]},Kc:{name:"signInWithEmailLink",j:[_c("email"),_c("emailLink",!0)]},Hc:{name:"signInAndRetrieveDataWithEmailAndPassword",j:[_c("email"),_c("password")]},Lc:{name:"signInWithPhoneNumber",j:[_c("phoneNumber"),Tc()]},Mc:{name:"signInWithPopup",j:[{name:"authProvider",K:"a valid Auth provider",optional:!1,M:function(t){return!!(t&&t.providerId&&t.hasOwnProperty&&t.hasOwnProperty("isOAuthProvider"))}}]},Nc:{name:"signInWithRedirect",j:[{name:"authProvider",K:"a valid Auth provider",optional:!1,M:function(t){return!!(t&&t.providerId&&t.hasOwnProperty&&t.hasOwnProperty("isOAuthProvider"))}}]},Sc:{name:"updateCurrentUser",j:[Ic({name:"user",K:"an instance of Firebase User",optional:!1,M:function(t){return!!(t&&t instanceof Zu)}},Sc(),"user")]},ob:{name:"signOut",j:[]},toJSON:{name:"toJSON",j:[_c(null,!0)]},Uc:{name:"useDeviceLanguage",j:[]},Vc:{name:"verifyPasswordResetCode",j:[_c("code")]}}),kc(Fl.prototype,{lc:{name:"languageCode",ub:Ic(_c(),Sc(),"languageCode")}}),(Fl.Persistence=Xa).LOCAL="local",Fl.Persistence.SESSION="session",Fl.Persistence.NONE="none",xc(Zu.prototype,{delete:{name:"delete",j:[]},dc:{name:"getIdTokenResult",j:[bc("opt_forceRefresh",!0)]},F:{name:"getIdToken",j:[bc("opt_forceRefresh",!0)]},fb:{name:"linkAndRetrieveDataWithCredential",j:[Cc()]},rc:{name:"linkWithCredential",j:[Cc()]},sc:{name:"linkWithPhoneNumber",j:[_c("phoneNumber"),Tc()]},tc:{name:"linkWithPopup",j:[{name:"authProvider",K:"a valid Auth provider",optional:!1,M:function(t){return!!(t&&t.providerId&&t.hasOwnProperty&&t.hasOwnProperty("isOAuthProvider"))}}]},uc:{name:"linkWithRedirect",j:[{name:"authProvider",K:"a valid Auth provider",optional:!1,M:function(t){return!!(t&&t.providerId&&t.hasOwnProperty&&t.hasOwnProperty("isOAuthProvider"))}}]},hb:{name:"reauthenticateAndRetrieveDataWithCredential",j:[Cc()]},Ac:{name:"reauthenticateWithCredential",j:[Cc()]},Bc:{name:"reauthenticateWithPhoneNumber",j:[_c("phoneNumber"),Tc()]},Cc:{name:"reauthenticateWithPopup",j:[{name:"authProvider",K:"a valid Auth provider",optional:!1,M:function(t){return!!(t&&t.providerId&&t.hasOwnProperty&&t.hasOwnProperty("isOAuthProvider"))}}]},Dc:{name:"reauthenticateWithRedirect",j:[{name:"authProvider",K:"a valid Auth provider",optional:!1,M:function(t){return!!(t&&t.providerId&&t.hasOwnProperty&&t.hasOwnProperty("isOAuthProvider"))}}]},reload:{name:"reload",j:[]},kb:{name:"sendEmailVerification",j:[Ic(wc("opt_actionCodeSettings",!0),Sc(null,!0),"opt_actionCodeSettings",!0)]},toJSON:{name:"toJSON",j:[_c(null,!0)]},Rc:{name:"unlink",j:[_c("provider")]},qb:{name:"updateEmail",j:[_c("email")]},rb:{name:"updatePassword",j:[_c("password")]},Tc:{name:"updatePhoneNumber",j:[Cc("phone")]},sb:{name:"updateProfile",j:[wc("profile")]}}),xc(Xl.prototype,{execute:{name:"execute"},render:{name:"render"},reset:{name:"reset"},getResponse:{name:"getResponse"}}),xc(Yl.prototype,{execute:{name:"execute"},render:{name:"render"},reset:{name:"reset"},getResponse:{name:"getResponse"}}),xc(yt.prototype,{ia:{name:"finally"},s:{name:"catch"},then:{name:"then"}}),kc(qu.prototype,{appVerificationDisabled:{name:"appVerificationDisabledForTesting",ub:bc("appVerificationDisabledForTesting")}}),xc(Bu.prototype,{confirm:{name:"confirm",j:[_c("verificationCode")]}}),Ac(Hi,"credential",function(t,e){return new Bi(t,e)},[_c("email"),_c("password")]),xc(Pi.prototype,{ua:{name:"addScope",j:[_c("scope")]},Da:{name:"setCustomParameters",j:[wc("customOAuthParameters")]}}),Ac(Pi,"credential",Mi,[Ic(_c(),wc(),"token")]),Ac(Hi,"credentialWithLink",zi,[_c("email"),_c("emailLink")]),xc(Li.prototype,{ua:{name:"addScope",j:[_c("scope")]},Da:{name:"setCustomParameters",j:[wc("customOAuthParameters")]}}),Ac(Li,"credential",Fi,[Ic(_c(),wc(),"token")]),xc(ji.prototype,{ua:{name:"addScope",j:[_c("scope")]},Da:{name:"setCustomParameters",j:[wc("customOAuthParameters")]}}),Ac(ji,"credential",Ui,[Ic(_c(),Ic(wc(),Sc()),"idToken"),Ic(_c(),Sc(),"accessToken",!0)]),xc(Vi.prototype,{Da:{name:"setCustomParameters",j:[wc("customOAuthParameters")]}}),Ac(Vi,"credential",qi,[Ic(_c(),wc(),"token"),_c("secret",!0)]),xc(Ri.prototype,{ua:{name:"addScope",j:[_c("scope")]},credential:{name:"credential",j:[Ic(_c(),Sc(),"idToken",!0),Ic(_c(),Sc(),"accessToken",!0),Ic(_c(),Sc(),"nonce",!0)]},Da:{name:"setCustomParameters",j:[wc("customOAuthParameters")]}}),Ac(Gi,"credential",Yi,[_c("verificationId"),_c("verificationCode")]),xc(Gi.prototype,{Va:{name:"verifyPhoneNumber",j:[_c("phoneNumber"),Tc()]}}),xc(Br.prototype,{toJSON:{name:"toJSON",j:[_c(null,!0)]}}),xc(io.prototype,{toJSON:{name:"toJSON",j:[_c(null,!0)]}}),xc(ro.prototype,{toJSON:{name:"toJSON",j:[_c(null,!0)]}}),xc(yc.prototype,{clear:{name:"clear",j:[]},render:{name:"render",j:[]},verify:{name:"verify",j:[]}}),function(){if(void 0===i.a||!i.a.INTERNAL||!i.a.INTERNAL.registerService)throw Error("Cannot find the firebase namespace; be sure to include firebase-app.js before this library.");var t={Auth:Fl,Error:Br};Ac(t,"EmailAuthProvider",Hi,[]),Ac(t,"FacebookAuthProvider",Pi,[]),Ac(t,"GithubAuthProvider",Li,[]),Ac(t,"GoogleAuthProvider",ji,[]),Ac(t,"TwitterAuthProvider",Vi,[]),Ac(t,"OAuthProvider",Ri,[_c("providerId")]),Ac(t,"SAMLAuthProvider",Di,[_c("providerId")]),Ac(t,"PhoneAuthProvider",Gi,[{name:"auth",K:"an instance of Firebase Auth",optional:!0,M:function(t){return!!(t&&t instanceof Fl)}}]),Ac(t,"RecaptchaVerifier",yc,[Ic(_c(),{name:"",K:"an HTML element",optional:!1,M:function(t){return!!(t&&t instanceof Element)}},"recaptchaContainer"),wc("recaptchaParameters",!0),{name:"app",K:"an instance of Firebase App",optional:!0,M:function(t){return!!(t&&t instanceof i.a.app.App)}}]),i.a.INTERNAL.registerService("auth",function(t,e){return e({INTERNAL:{getUid:_((t=new Fl(t)).getUid,t),getToken:_(t.cc,t),addAuthTokenListener:_(t.Vb,t),removeAuthTokenListener:_(t.Ec,t)}}),t},t,function(t,e){if("create"===t)try{e.auth()}catch(n){}}),i.a.INTERNAL.extendNamespace({User:Zu})}()}).apply("undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},tuBy:function(t,e,n){n("WBJg"),t.exports=n("vLVD")("String","repeat")},tzov:function(t,e,n){var r=n("bcPd"),i=n("JzIs"),o=n("o9j8"),s=n("rs5h"),a=n("JIMt"),u=n("qBi7")("IE_PROTO"),l=function(){},c=function(){var t,e=a("iframe"),n=o.length;for(e.style.display="none",s.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),c=t.F;n--;)delete c.prototype[o[n]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(l.prototype=r(t),n=new l,l.prototype=null,n[u]=t):n=c(),void 0===e?n:i(n,e)},n("vcTx")[u]=!0},uLJa:function(t,e,n){n("q94Q")("toStringTag")},"uiB+":function(t,e,n){n("q94Q")("isConcatSpreadable")},uzDk:function(t,e,n){n("4mOR"),t.exports=n("vLVD")("Array","findIndex")},vLVD:function(t,e,n){var r=n("ysHE"),i=n("JpPu"),o=Function.call;t.exports=function(t,e,n){return i(o,r[t].prototype[e],n)}},vQkR:function(t,e,n){var r=n("JpPu"),i=n("t5mC"),o=n("SAp2"),s=n("H6ty"),a=n("rhCS");t.exports=function(t,e){var n=1==t,u=2==t,l=3==t,c=4==t,h=6==t,p=5==t||h,f=e||a;return function(e,a,d){for(var m,y,g=o(e),v=i(g),_=r(a,d,3),b=s(v.length),w=0,E=n?f(e,b):u?f(e,0):void 0;b>w;w++)if((p||w in v)&&(y=_(m=v[w],w,g),t))if(n)E[w]=y;else if(y)switch(t){case 3:return!0;case 5:return m;case 6:return w;case 2:E.push(m)}else if(c)return!1;return h?-1:l||c?c:E}}},"vb+c":function(t,e,n){n("S4gH")(Math,"Math",!0)},vcTx:function(t,e){t.exports={}},"wBs/":function(t,e,n){var r=n("TIpl"),i=n("2Hee");t.exports=n("lb/b")?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},wj3C:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n("zVF4"),i=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o="[DEFAULT]",s=[],a=function(){function t(t,e,n){this.firebase_=n,this.isDeleted_=!1,this.services_={},this.name_=e.name,this._automaticDataCollectionEnabled=e.automaticDataCollectionEnabled||!1,this.options_=r.deepCopy(t),this.INTERNAL={getUid:function(){return null},getToken:function(){return Promise.resolve(null)},addAuthTokenListener:function(t){s.push(t),setTimeout(function(){return t(null)},0)},removeAuthTokenListener:function(t){s=s.filter(function(e){return e!==t})}}}return Object.defineProperty(t.prototype,"automaticDataCollectionEnabled",{get:function(){return this.checkDestroyed_(),this._automaticDataCollectionEnabled},set:function(t){this.checkDestroyed_(),this._automaticDataCollectionEnabled=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this.checkDestroyed_(),this.name_},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"options",{get:function(){return this.checkDestroyed_(),this.options_},enumerable:!0,configurable:!0}),t.prototype.delete=function(){var t=this;return new Promise(function(e){t.checkDestroyed_(),e()}).then(function(){t.firebase_.INTERNAL.removeApp(t.name_);var e=[];return Object.keys(t.services_).forEach(function(n){Object.keys(t.services_[n]).forEach(function(r){e.push(t.services_[n][r])})}),Promise.all(e.map(function(t){return t.INTERNAL.delete()}))}).then(function(){t.isDeleted_=!0,t.services_={}})},t.prototype._getService=function(t,e){if(void 0===e&&(e=o),this.checkDestroyed_(),this.services_[t]||(this.services_[t]={}),!this.services_[t][e]){var n=e!==o?e:void 0,r=this.firebase_.INTERNAL.factories[t](this,this.extendApp.bind(this),n);this.services_[t][e]=r}return this.services_[t][e]},t.prototype.extendApp=function(t){var e=this;r.deepExtend(this,t),t.INTERNAL&&t.INTERNAL.addAuthTokenListener&&(s.forEach(function(t){e.INTERNAL.addAuthTokenListener(t)}),s=[])},t.prototype.checkDestroyed_=function(){this.isDeleted_&&u("app-deleted",{name:this.name_})},t}();function u(t,e){throw l.create(t,e)}a.prototype.name&&a.prototype.options||a.prototype.delete||console.log("dc");var l=new r.ErrorFactory("app","Firebase",{"no-app":"No Firebase App '{$name}' has been created - call Firebase App.initializeApp()","bad-app-name":"Illegal App name: '{$name}","duplicate-app":"Firebase App named '{$name}' already exists","app-deleted":"Firebase App named '{$name}' already deleted","duplicate-service":"Firebase service named '{$name}' already registered","sa-not-supported":"Initializing the Firebase SDK with a service account is only allowed in a Node.js environment. On client devices, you should instead initialize the SDK with an api key and auth domain","invalid-app-argument":"firebase.{$name}() takes either no argument or a Firebase App instance."}),c=!1;try{c="[object process]"===Object.prototype.toString.call(global.process)}catch(p){}c&&console.warn('\nWarning: This is a browser-targeted Firebase bundle but it appears it is being\nrun in a Node environment.  If running in a Node environment, make sure you\nare using the bundle specified by the "main" field in package.json.\n\nIf you are using Webpack, you can specify "main" as the first item in\n"resolve.mainFields":\nhttps://webpack.js.org/configuration/resolve/#resolvemainfields\n\nIf using Rollup, use the rollup-plugin-node-resolve plugin and set "module"\nto false and "main" to true:\nhttps://github.com/rollup/rollup-plugin-node-resolve\n');var h=function t(){var e={},n={},s={},l={__esModule:!0,initializeApp:function(t,n){void 0===n&&(n={}),("object"!=typeof n||null===n)&&(n={name:n});var r=n;void 0===r.name&&(r.name=o);var s=r.name;"string"==typeof s&&s||u("bad-app-name",{name:s+""}),i(e,s)&&u("duplicate-app",{name:s});var c=new a(t,r,l);return e[s]=c,p(c,"create"),c},app:c,apps:null,Promise:Promise,SDK_VERSION:"5.9.3",INTERNAL:{registerService:function(t,e,i,o,p){n[t]&&u("duplicate-service",{name:t}),n[t]=e,o&&(s[t]=o,h().forEach(function(t){o("create",t)}));var f=function(e){return void 0===e&&(e=c()),"function"!=typeof e[t]&&u("invalid-app-argument",{name:t}),e[t]()};return void 0!==i&&r.deepExtend(f,i),l[t]=f,a.prototype[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return this._getService.bind(this,t).apply(this,p?e:[])},f},createFirebaseNamespace:t,extendNamespace:function(t){r.deepExtend(l,t)},createSubscribe:r.createSubscribe,ErrorFactory:r.ErrorFactory,removeApp:function(t){p(e[t],"delete"),delete e[t]},factories:n,useAsService:f,Promise:Promise,deepExtend:r.deepExtend}};function c(t){return i(e,t=t||o)||u("no-app",{name:t}),e[t]}function h(){return Object.keys(e).map(function(t){return e[t]})}function p(t,e){Object.keys(n).forEach(function(n){var r=f(0,n);null!==r&&s[r]&&s[r](e,t)})}function f(t,e){return"serverAuth"===e?null:e}return r.patchProperty(l,"default",l),Object.defineProperty(l,"apps",{get:h}),r.patchProperty(c,"App",a),l}();e.firebase=h,e.default=h},x7I3:function(t,e,n){"use strict";n.r(e),n.d(e,"createWebChannelTransport",function(){return Qe}),n.d(e,"ErrorCode",function(){return Ke}),n.d(e,"EventType",function(){return Ge}),n.d(e,"WebChannel",function(){return Ye}),n.d(e,"XhrIo",function(){return Xe});var r,i="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},o=o||{},s=i;function a(t){return"string"==typeof t}function u(t,e){t=t.split("."),e=e||s;for(var n=0;n<t.length;n++)if(null==(e=e[t[n]]))return null;return e}function l(){}function c(t){var e=typeof t;if("object"==e){if(!t)return"null";if(t instanceof Array)return"array";if(t instanceof Object)return e;var n=Object.prototype.toString.call(t);if("[object Window]"==n)return"object";if("[object Array]"==n||"number"==typeof t.length&&void 0!==t.splice&&void 0!==t.propertyIsEnumerable&&!t.propertyIsEnumerable("splice"))return"array";if("[object Function]"==n||void 0!==t.call&&void 0!==t.propertyIsEnumerable&&!t.propertyIsEnumerable("call"))return"function"}else if("function"==e&&void 0===t.call)return"object";return e}function h(t){return"array"==c(t)}function p(t){var e=c(t);return"array"==e||"object"==e&&"number"==typeof t.length}function f(t){var e=typeof t;return"object"==e&&null!=t||"function"==e}var d="closure_uid_"+(1e9*Math.random()>>>0),m=0;function y(t,e,n){return t.call.apply(t.bind,arguments)}function g(t,e,n){if(!t)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var n=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(n,r),t.apply(e,n)}}return function(){return t.apply(e,arguments)}}function v(t,e,n){return(v=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?y:g).apply(null,arguments)}function _(t,e){var n=Array.prototype.slice.call(arguments,1);return function(){var e=n.slice();return e.push.apply(e,arguments),t.apply(this,e)}}var b=Date.now||function(){return+new Date};function w(t,e){function n(){}n.prototype=e.prototype,t.S=e.prototype,t.prototype=new n,t.prototype.constructor=t,t.re=function(t,n,r){for(var i=Array(arguments.length-2),o=2;o<arguments.length;o++)i[o-2]=arguments[o];return e.prototype[n].apply(t,i)}}function E(){this.i=this.i,this.j=this.j}E.prototype.i=!1,E.prototype.La=function(){!this.i&&(this.i=!0,this.G(),0)&&(this[d]||(this[d]=++m))},E.prototype.G=function(){if(this.j)for(;this.j.length;)this.j.shift()()};var S=Array.prototype.indexOf?function(t,e){return Array.prototype.indexOf.call(t,e,void 0)}:function(t,e){if(a(t))return a(e)&&1==e.length?t.indexOf(e,0):-1;for(var n=0;n<t.length;n++)if(n in t&&t[n]===e)return n;return-1},C=Array.prototype.forEach?function(t,e,n){Array.prototype.forEach.call(t,e,n)}:function(t,e,n){for(var r=t.length,i=a(t)?t.split(""):t,o=0;o<r;o++)o in i&&e.call(n,i[o],o,t)};function T(t){return Array.prototype.concat.apply([],arguments)}function I(t){var e=t.length;if(0<e){for(var n=Array(e),r=0;r<e;r++)n[r]=t[r];return n}return[]}function x(t){return/^[\s\xa0]*$/.test(t)}var k,A=String.prototype.trim?function(t){return t.trim()}:function(t){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(t)[1]};function O(t,e){return-1!=t.indexOf(e)}function N(t,e){return t<e?-1:t>e?1:0}t:{var D=s.navigator;if(D){var R=D.userAgent;if(R){k=R;break t}}k=""}function P(t,e,n){for(var r in t)e.call(n,t[r],r,t)}function M(t){var e,n={};for(e in t)n[e]=t[e];return n}var L="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function F(t,e){for(var n,r,i=1;i<arguments.length;i++){for(n in r=arguments[i])t[n]=r[n];for(var o=0;o<L.length;o++)n=L[o],Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}}function j(t){return j[" "](t),t}j[" "]=l;var U,V,q=O(k,"Opera"),B=O(k,"Trident")||O(k,"MSIE"),H=O(k,"Edge"),z=H||B,W=O(k,"Gecko")&&!(O(k.toLowerCase(),"webkit")&&!O(k,"Edge"))&&!(O(k,"Trident")||O(k,"MSIE"))&&!O(k,"Edge"),Q=O(k.toLowerCase(),"webkit")&&!O(k,"Edge");function K(){var t=s.document;return t?t.documentMode:void 0}t:{var G="",Y=(V=k,W?/rv:([^\);]+)(\)|;)/.exec(V):H?/Edge\/([\d\.]+)/.exec(V):B?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(V):Q?/WebKit\/(\S+)/.exec(V):q?/(?:Version)[ \/]?(\S+)/.exec(V):void 0);if(Y&&(G=Y?Y[1]:""),B){var X=K();if(null!=X&&X>parseFloat(G)){U=String(X);break t}}U=G}var J,Z={};function $(t){return function(t,e){var n=Z;return Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=e()}(t,function(){for(var e=0,n=A(String(U)).split("."),r=A(String(t)).split("."),i=Math.max(n.length,r.length),o=0;0==e&&o<i;o++){var s=n[o]||"",a=r[o]||"";do{if(s=/(\d*)(\D*)(.*)/.exec(s)||["","","",""],a=/(\d*)(\D*)(.*)/.exec(a)||["","","",""],0==s[0].length&&0==a[0].length)break;e=N(0==s[1].length?0:parseInt(s[1],10),0==a[1].length?0:parseInt(a[1],10))||N(0==s[2].length,0==a[2].length)||N(s[2],a[2]),s=s[3],a=a[3]}while(0==e)}return 0<=e})}var tt=s.document;J=tt&&B?K()||("CSS1Compat"==tt.compatMode?parseInt(U,10):5):void 0;var et=!B||9<=Number(J),nt=B&&!$("9"),rt=function(){if(!s.addEventListener||!Object.defineProperty)return!1;var t=!1,e=Object.defineProperty({},"passive",{get:function(){t=!0}});try{s.addEventListener("test",l,e),s.removeEventListener("test",l,e)}catch(n){}return t}();function it(t,e){this.type=t,this.a=this.target=e,this.b=!1,this.hc=!0}function ot(t,e){it.call(this,t?t.type:""),this.relatedTarget=this.a=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.pointerId=0,this.pointerType="",this.f=null,t&&this.g(t,e)}it.prototype.c=function(){this.hc=!1},w(ot,it);var st={2:"touch",3:"pen",4:"mouse"};ot.prototype.g=function(t,e){var n=this.type=t.type,r=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:null;if(this.target=t.target||t.srcElement,this.a=e,e=t.relatedTarget){if(W){t:{try{j(e.nodeName);var i=!0;break t}catch(o){}i=!1}i||(e=null)}}else"mouseover"==n?e=t.fromElement:"mouseout"==n&&(e=t.toElement);this.relatedTarget=e,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==t.clientX?t.clientX:t.pageX,this.clientY=void 0!==t.clientY?t.clientY:t.pageY,this.screenX=t.screenX||0,this.screenY=t.screenY||0),this.button=t.button,this.key=t.key||"",this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.shiftKey=t.shiftKey,this.metaKey=t.metaKey,this.pointerId=t.pointerId||0,this.pointerType=a(t.pointerType)?t.pointerType:st[t.pointerType]||"",this.f=t,t.defaultPrevented&&this.c()},ot.prototype.c=function(){ot.S.c.call(this);var t=this.f;if(t.preventDefault)t.preventDefault();else if(t.returnValue=!1,nt)try{(t.ctrlKey||112<=t.keyCode&&123>=t.keyCode)&&(t.keyCode=-1)}catch(e){}};var at="closure_listenable_"+(1e6*Math.random()|0),ut=0;function lt(t,e,n,r,i){this.listener=t,this.proxy=null,this.src=e,this.type=n,this.capture=!!r,this.ya=i,this.key=++ut,this.ja=this.oa=!1}function ct(t){this.src=t,this.a={},this.b=0}function ht(t,e,n,r){for(var i=0;i<t.length;++i){var o=t[i];if(!o.ja&&o.listener==e&&o.capture==!!n&&o.ya==r)return i}return-1}lt.prototype.a=function(){this.ja=!0,this.ya=this.src=this.proxy=this.listener=null},(r=ct.prototype).add=function(t,e,n,r,i){var o=t.toString();(t=this.a[o])||(t=this.a[o]=[],this.b++);var s=ht(t,e,r,i);return-1<s?(e=t[s],n||(e.oa=!1)):((e=new lt(e,this.src,o,!!r,i)).oa=n,t.push(e)),e},r.Sc=function(t,e,n,r){if((t=t.toString())in this.a){var i=this.a[t];-1<(e=ht(i,e,n,r))&&(i[e].a(),Array.prototype.splice.call(i,e,1),0==i.length&&(delete this.a[t],this.b--))}},r.fc=function(t){var e=t.type;if(e in this.a){var n,r=this.a[e],i=S(r,t);(n=0<=i)&&Array.prototype.splice.call(r,i,1),n&&(t.a(),0==this.a[e].length&&(delete this.a[e],this.b--))}},r.Tc=function(){var t;for(t in this.a){for(var e=this.a[t],n=0;n<e.length;n++)e[n].a();delete this.a[t],this.b--}},r.Rc=function(t,e,n,r){var i=-1;return(t=this.a[t.toString()])&&(i=ht(t,e,n,r)),-1<i?t[i]:null};var pt="closure_lm_"+(1e6*Math.random()|0),ft={};function dt(t,e,n,r,i){if(r&&r.once)return function t(e,n,r,i,o){if(h(n)){for(var s=0;s<n.length;s++)t(e,n[s],r,i,o);return null}return r=wt(r),e&&e[at]?e.Mb(n,r,f(i)?!!i.capture:!!i,o):mt(e,n,r,!0,i,o)}(t,e,n,r,i);if(h(e)){for(var o=0;o<e.length;o++)dt(t,e[o],n,r,i);return null}return n=wt(n),t&&t[at]?t.Lb(e,n,f(r)?!!r.capture:!!r,i):mt(t,e,n,!1,r,i)}function mt(t,e,n,r,i,o){if(!e)throw Error("Invalid event type");var s=f(i)?!!i.capture:!!i;if(s&&!et)return null;var a=_t(t);if(a||(t[pt]=a=new ct(t)),(n=a.add(e,n,r,s,o)).proxy)return n;if(r=function(){var t=vt,e=et?function(n){return t.call(e.src,e.listener,n)}:function(n){if(!(n=t.call(e.src,e.listener,n)))return n};return e}(),n.proxy=r,r.src=t,r.listener=n,t.addEventListener)rt||(i=s),void 0===i&&(i=!1),t.addEventListener(e.toString(),r,i);else if(t.attachEvent)t.attachEvent(gt(e.toString()),r);else{if(!t.addListener||!t.removeListener)throw Error("addEventListener and attachEvent are unavailable.");t.addListener(r)}return n}function yt(t){if("number"!=typeof t&&t&&!t.ja){var e=t.src;if(e&&e[at])e.nc(t);else{var n=t.type,r=t.proxy;e.removeEventListener?e.removeEventListener(n,r,t.capture):e.detachEvent?e.detachEvent(gt(n),r):e.addListener&&e.removeListener&&e.removeListener(r),(n=_t(e))?(n.fc(t),0==n.b&&(n.src=null,e[pt]=null)):t.a()}}}function gt(t){return t in ft?ft[t]:ft[t]="on"+t}function vt(t,e){return!!t.ja||function(t,e){var n=t.listener,r=t.ya||t.src;return t.oa&&yt(t),n.call(r,e)}(t,et?new ot(e,this):e=new ot(e||u("window.event"),this))}function _t(t){return(t=t[pt])instanceof ct?t:null}var bt="__closure_events_fn_"+(1e9*Math.random()>>>0);function wt(t){return"function"==c(t)?t:(t[bt]||(t[bt]=function(e){return t.handleEvent(e)}),t[bt])}function Et(){E.call(this),this.c=new ct(this),this.K=this,this.F=null}w(Et,E),Et.prototype[at]=!0,(r=Et.prototype).addEventListener=function(t,e,n,r){dt(this,t,e,n,r)},r.removeEventListener=function(t,e,n,r){!function t(e,n,r,i,o){if(h(n))for(var s=0;s<n.length;s++)t(e,n[s],r,i,o);else i=f(i)?!!i.capture:!!i,r=wt(r),e&&e[at]?e.Qc(n,r,i,o):e&&(e=_t(e))&&(n=e.Rc(n,r,i,o))&&yt(n)}(this,t,e,n,r)},r.dispatchEvent=function(t){var e,n=this.F;if(n)for(e=[];n;n=n.F)e.push(n);n=this.K;var r=t.type||t;if(a(t))t=new it(t,n);else if(t instanceof it)t.target=t.target||n;else{var i=t;F(t=new it(r,n),i)}if(i=!0,e)for(var o=e.length-1;!t.b&&0<=o;o--){var s=t.a=e[o];i=s.ua(r,!0,t)&&i}if(t.b||(i=(s=t.a=n).ua(r,!0,t)&&i,t.b||(i=s.ua(r,!1,t)&&i)),e)for(o=0;!t.b&&o<e.length;o++)i=(s=t.a=e[o]).ua(r,!1,t)&&i;return i},r.G=function(){Et.S.G.call(this),this.Id(),this.F=null},r.Lb=function(t,e,n,r){return this.c.add(String(t),e,!1,n,r)},r.Mb=function(t,e,n,r){return this.c.add(String(t),e,!0,n,r)},r.Qc=function(t,e,n,r){this.c.Sc(String(t),e,n,r)},r.nc=function(t){this.c.fc(t)},r.Id=function(){this.c&&this.c.Tc()},r.ua=function(t,e,n){if(!(t=this.c.a[String(t)]))return!0;t=t.concat();for(var r=!0,i=0;i<t.length;++i){var o=t[i];if(o&&!o.ja&&o.capture==e){var s=o.listener,a=o.ya||o.src;o.oa&&this.nc(o),r=!1!==s.call(a,n)&&r}}return r&&0!=n.hc};var St=s.JSON.stringify;function Ct(t,e){this.g=100,this.c=t,this.h=e,this.b=0,this.a=null}function Tt(){this.b=this.a=null}Ct.prototype.get=function(){if(0<this.b){this.b--;var t=this.a;this.a=t.next,t.next=null}else t=this.c();return t},Ct.prototype.f=function(t){this.h(t),this.b<this.g&&(this.b++,t.next=this.a,this.a=t)};var It,xt=new Ct(function(){return new kt},function(t){t.reset()});function kt(){this.next=this.b=this.a=null}function At(t){s.setTimeout(function(){throw t},0)}Tt.prototype.add=function(t,e){var n=this.c();n.set(t,e),this.b?this.b.next=n:this.a=n,this.b=n},Tt.prototype.f=function(){var t=null;return this.a&&(t=this.a,this.a=this.a.next,this.a||(this.b=null),t.next=null),t},Tt.prototype.g=function(t){xt.f(t)},Tt.prototype.c=function(){return xt.get()},kt.prototype.set=function(t,e){this.a=t,this.b=e,this.next=null},kt.prototype.reset=function(){this.next=this.b=this.a=null};var Ot=!1,Nt=new Tt;function Dt(){for(var t;t=Nt.f();){try{t.a.call(t.b)}catch(e){At(e)}Nt.g(t)}Ot=!1}function Rt(t,e){Et.call(this),this.b=t||1,this.a=e||s,this.f=v(this.$d,this),this.g=b()}function Pt(t,e,n){if("function"==c(t))n&&(t=v(t,n));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=v(t.handleEvent,t)}return 2147483647<Number(e)?-1:s.setTimeout(t,e||0)}function Mt(t,e,n){E.call(this),this.f=null!=n?v(t,n):t,this.c=e,this.b=v(this.Cd,this),this.a=[]}function Lt(t){E.call(this),this.b=t,this.a={}}w(Rt,Et),(r=Rt.prototype).wa=!1,r.P=null,r.$d=function(){if(this.wa){var t=b()-this.g;0<t&&t<.8*this.b?this.P=this.a.setTimeout(this.f,this.b-t):(this.P&&(this.a.clearTimeout(this.P),this.P=null),this.Gc(),this.wa&&(this.Na(),this.start()))}},r.Gc=function(){this.dispatchEvent("tick")},r.start=function(){this.wa=!0,this.P||(this.P=this.a.setTimeout(this.f,this.b),this.g=b())},r.Na=function(){this.wa=!1,this.P&&(this.a.clearTimeout(this.P),this.P=null)},r.G=function(){Rt.S.G.call(this),this.Na(),delete this.a},w(Mt,E),(r=Mt.prototype).Ca=!1,r.ec=0,r.ba=null,r.Hc=function(t){this.a=arguments,this.ba||this.ec?this.Ca=!0:this.yb()},r.Pc=function(){this.ba&&(s.clearTimeout(this.ba),this.ba=null,this.Ca=!1,this.a=[])},r.G=function(){Mt.S.G.call(this),this.Pc()},r.Cd=function(){this.ba=null,this.Ca&&!this.ec&&(this.Ca=!1,this.yb())},r.yb=function(){this.ba=Pt(this.b,this.c),this.f.apply(null,this.a)},w(Lt,E);var Ft=[];function jt(){}(r=Lt.prototype).Jb=function(t,e,n){this.wd(t,e,n)},r.wd=function(t,e,n){h(e)||(e&&(Ft[0]=e.toString()),e=Ft);for(var r=0;r<e.length;r++){var i=dt(t,e[r],n||this.handleEvent,!1,this.b||this);if(!i)break;this.a[i.key]=i}},r.Kb=function(){P(this.a,function(t,e){this.a.hasOwnProperty(e)&&yt(t)},this),this.a={}},r.G=function(){Lt.S.G.call(this),this.Kb()},r.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var Ut=new Et;function Vt(t){it.call(this,"serverreachability",t)}function qt(t){Ut.dispatchEvent(new Vt(Ut,t))}function Bt(t){it.call(this,"statevent",t)}function Ht(t){Ut.dispatchEvent(new Bt(Ut,t))}function zt(t){it.call(this,"timingevent",t)}function Wt(t,e){if("function"!=c(t))throw Error("Fn must not be null and must be a function");return s.setTimeout(function(){t()},e)}w(Vt,it),w(Bt,it),w(zt,it);var Qt={NO_ERROR:0,ae:1,he:2,ge:3,de:4,fe:5,ie:6,qc:7,TIMEOUT:8,le:9},Kt={ce:"complete",pe:"success",rc:"error",qc:"abort",ne:"ready",oe:"readystatechange",TIMEOUT:"timeout",je:"incrementaldata",me:"progress",ee:"downloadprogress",qe:"uploadprogress"};function Gt(){}function Yt(){}Gt.prototype.a=null,Gt.prototype.c=function(){return this.a||(this.a={})};var Xt,Jt={OPEN:"a",be:"b",rc:"c",ke:"d"};function Zt(){it.call(this,"d")}function $t(){it.call(this,"c")}function te(){}function ee(t,e,n){this.g=t,this.da=e,this.ca=n||1,this.I=new Lt(this),this.L=ne,this.T=new Rt(t=z?125:void 0),this.J=null,this.b=!1,this.i=this.C=this.f=this.F=this.u=this.U=this.h=null,this.j=[],this.a=null,this.A=0,this.c=this.v=null,this.o=-1,this.l=!1,this.K=0,this.B=null,this.s=this.Y=this.H=!1}w(Zt,it),w($t,it),w(te,Gt),te.prototype.b=function(){return new XMLHttpRequest},Xt=new te;var ne=45e3,re={},ie={};function oe(t,e){if(t.forEach&&"function"==typeof t.forEach)t.forEach(e,void 0);else if(p(t)||a(t))C(t,e,void 0);else{if(t.O&&"function"==typeof t.O)var n=t.O();else if(t.D&&"function"==typeof t.D)n=void 0;else if(p(t)||a(t)){n=[];for(var r=t.length,i=0;i<r;i++)n.push(i)}else for(i in n=[],r=0,t)n[r++]=i;i=(r=function(t){if(t.D&&"function"==typeof t.D)return t.D();if(a(t))return t.split("");if(p(t)){for(var e=[],n=t.length,r=0;r<n;r++)e.push(t[r]);return e}for(r in e=[],n=0,t)e[n++]=t[r];return e}(t)).length;for(var o=0;o<i;o++)e.call(void 0,r[o],n&&n[o],t)}}function se(t,e){this.b={},this.a=[],this.c=0;var n=arguments.length;if(1<n){if(n%2)throw Error("Uneven number of arguments");for(var r=0;r<n;r+=2)this.set(arguments[r],arguments[r+1])}else t&&this.fd(t)}function ae(t,e){return Object.prototype.hasOwnProperty.call(t,e)}(r=ee.prototype).ha=function(t){this.J=t},r.setTimeout=function(t){this.L=t},r.Xc=function(t){this.K=t},r.Qd=function(t){this.j=t},r.cb=function(t,e){this.F=1,this.f=t.N().za(),this.i=e,this.H=!0,this.ic(null)},r.bb=function(t,e,n){this.F=1,this.f=t.N().za(),this.i=null,this.H=e,this.ic(n)},r.ic=function(t){this.u=b(),this.fa(),this.C=this.f.N(),this.C.Aa("t",this.ca),this.A=0,this.a=this.g.sa(this.g.Da()?t:null),0<this.K&&(this.B=new Mt(v(this.oc,this,this.a),this.K)),this.I.Jb(this.a,"readystatechange",this.Hd),t=this.J?M(this.J):{},this.i?(this.v||(this.v="POST"),t["Content-Type"]="application/x-www-form-urlencoded",this.a.xa(this.C,this.v,this.i,t)):(this.v="GET",this.a.xa(this.C,this.v,null,t)),qt(1)},r.Hd=function(t){t=t.target;var e=this.B;e&&3==t.W()?e.Hc():this.oc(t)},r.oc=function(t){try{t==this.a&&this.Ed()}catch(e){}},r.Ed=function(){var t=this.a.W(),e=this.a.Db(),n=this.a.aa();if(!(3>t||3==t&&!z&&!this.a.va()))if(this.l||4!=t||7==e||qt(8==e||0>=n?3:2),this.pa(),this.o=n=this.a.aa(),e=this.a.va(),this.b=200==n){if(this.Td()){if(!(n=this.Kc()))return this.b=!1,this.c=3,Ht(12),this.Z(),void this.ta();this.s=!0,this.Wa(n)}this.H?(this.vb(t,e),z&&this.b&&3==t&&this.Yd()):this.Wa(e),4==t&&this.Z(),this.b&&!this.l&&(4==t?this.g.Va(this):(this.b=!1,this.fa()))}else 400==n&&0<e.indexOf("Unknown SID")?(this.c=3,Ht(12)):(this.c=0,Ht(13)),this.Z(),this.ta()},r.Td=function(){return this.Y&&!this.s},r.Kc=function(){if(this.a){var t=this.a.ga("X-HTTP-Initial-Response");if(t&&!x(t))return t}return null},r.Md=function(){this.Y=!0},r.vb=function(t,e){for(var n=!0;!this.l&&this.A<e.length;){var r=this.Lc(e);if(r==ie){4==t&&(this.c=4,Ht(14),n=!1);break}if(r==re){this.c=4,Ht(15),n=!1;break}this.Wa(r)}4==t&&0==e.length&&(this.c=1,Ht(16),n=!1),this.b=this.b&&n,n||(this.Z(),this.ta())},r.Gd=function(){if(this.a){var t=this.a.W(),e=this.a.va();this.A<e.length&&(this.pa(),this.vb(t,e),this.b&&4!=t&&this.fa())}},r.Yd=function(){this.I.Jb(this.T,"tick",this.Gd),this.T.start()},r.Lc=function(t){var e=this.A,n=t.indexOf("\n",e);return-1==n?ie:(e=Number(t.substring(e,n)),isNaN(e)?re:(n+=1)+e>t.length?ie:(t=t.substr(n,e),this.A=n+e,t))},r.Ld=function(t){this.F=2,this.f=t.N().za(),t=!1,s.navigator&&s.navigator.sendBeacon&&(t=s.navigator.sendBeacon(this.f.toString(),"")),!t&&s.Image&&((new Image).src=this.f,t=!0),t||(this.a=this.g.sa(null),this.a.xa(this.f)),this.u=b(),this.fa()},r.cancel=function(){this.l=!0,this.Z()},r.Kd=function(t){t&&this.setTimeout(t),this.h&&(this.pa(),this.fa())},r.fa=function(){this.U=b()+this.L,this.mc(this.L)},r.mc=function(t){if(null!=this.h)throw Error("WatchDog timer not null");this.h=Wt(v(this.Dd,this),t)},r.pa=function(){this.h&&(s.clearTimeout(this.h),this.h=null)},r.Dd=function(){this.h=null;var t=b();0<=t-this.U?this.md():this.mc(this.U-t)},r.md=function(){2!=this.F&&(qt(3),Ht(17)),this.Z(),this.c=2,this.ta()},r.ta=function(){this.g.Tb()||this.l||this.g.Va(this)},r.Z=function(){this.pa();var t=this.B;t&&"function"==typeof t.La&&t.La(),this.B=null,this.T.Na(),this.I.Kb(),this.a&&(t=this.a,this.a=null,t.abort(),t.La())},r.Wa=function(t){try{this.g.bc(this,t),qt(4)}catch(e){}},(r=se.prototype).D=function(){this.Ka();for(var t=[],e=0;e<this.a.length;e++)t.push(this.b[this.a[e]]);return t},r.O=function(){return this.Ka(),this.a.concat()},r.Ra=function(t){return ae(this.b,t)},r.hd=function(){return 0==this.c},r.gd=function(){this.b={},this.c=this.a.length=0},r.Qb=function(t){ae(this.b,t)&&(delete this.b[t],this.c--,this.a.length>2*this.c&&this.Ka())},r.Ka=function(){if(this.c!=this.a.length){for(var t=0,e=0;t<this.a.length;){var n=this.a[t];ae(this.b,n)&&(this.a[e++]=n),t++}this.a.length=e}if(this.c!=this.a.length){var r={};for(e=t=0;t<this.a.length;)ae(r,n=this.a[t])||(this.a[e++]=n,r[n]=1),t++;this.a.length=e}},r.get=function(t,e){return ae(this.b,t)?this.b[t]:e},r.set=function(t,e){ae(this.b,t)||(this.c++,this.a.push(t)),this.b[t]=e},r.fd=function(t){if(t instanceof se)for(var e=t.O(),n=0;n<e.length;n++)this.set(e[n],t.get(e[n]));else for(e in t)this.set(e,t[e])},r.forEach=function(t,e){for(var n=this.O(),r=0;r<n.length;r++){var i=n[r],o=this.get(i);t.call(e,o,i,this)}},r.Pb=function(){return new se(this)};var ue=/^(?:([^:\/?#.]+):)?(?:\/\/(?:([^\/?#]*)@)?([^\/#?]*?)(?::([0-9]+))?(?=[\/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;function le(t,e){var n;this.c=this.i=this.b="",this.h=null,this.j=this.g="",this.f=this.l=!1,t instanceof le?(this.f=void 0!==e?e:t.f,this.ma(t.b),this.$a(t.i),this.ka(t.c),this.la(t.h),this.Ba(t.g),this.Za(t.a.Gb()),this.Ya(t.j)):t&&(n=String(t).match(ue))?(this.f=!!e,this.ma(n[1]||"",!0),this.$a(n[2]||"",!0),this.ka(n[3]||"",!0),this.la(n[4]),this.Ba(n[5]||"",!0),this.Za(n[6]||"",!0),this.Ya(n[7]||"",!0)):(this.f=!!e,this.a=new ve(null,this.f))}function ce(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function he(t,e,n){return a(t)?(t=encodeURI(t).replace(e,pe),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function pe(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}(r=le.prototype).toString=function(){var t=[],e=this.b;e&&t.push(he(e,fe,!0),":");var n=this.c;return(n||"file"==e)&&(t.push("//"),(e=this.i)&&t.push(he(e,fe,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.h)&&t.push(":",String(n))),(n=this.g)&&(this.Sa()&&"/"!=n.charAt(0)&&t.push("/"),t.push(he(n,"/"==n.charAt(0)?me:de,!0))),(n=this.Ic())&&t.push("?",n),(n=this.j)&&t.push("#",he(n,ge)),t.join("")},r.resolve=function(t){var e=this.N(),n=t.qd();n?e.ma(t.b):n=t.rd(),n?e.$a(t.i):n=t.Sa(),n?e.ka(t.c):n=t.od();var r=t.g;if(n)e.la(t.h);else if(n=t.Sb()){if("/"!=r.charAt(0))if(this.Sa()&&!this.Sb())r="/"+r;else{var i=e.g.lastIndexOf("/");-1!=i&&(r=e.g.substr(0,i+1)+r)}if(".."==(i=r)||"."==i)r="";else if(O(i,"./")||O(i,"/.")){r=0==i.lastIndexOf("/",0),i=i.split("/");for(var o=[],s=0;s<i.length;){var a=i[s++];"."==a?r&&s==i.length&&o.push(""):".."==a?((1<o.length||1==o.length&&""!=o[0])&&o.pop(),r&&s==i.length&&o.push("")):(o.push(a),r=!0)}r=o.join("/")}else r=i}return n?e.Ba(r):n=t.pd(),n?e.Za(t.a.Gb()):n=t.nd(),n&&e.Ya(t.j),e},r.N=function(){return new le(this)},r.ma=function(t,e){this.M(),(this.b=e?ce(t,!0):t)&&(this.b=this.b.replace(/:$/,""))},r.qd=function(){return!!this.b},r.$a=function(t,e){this.M(),this.i=e?ce(t):t},r.rd=function(){return!!this.i},r.ka=function(t,e){this.M(),this.c=e?ce(t,!0):t},r.Sa=function(){return!!this.c},r.la=function(t){if(this.M(),t){if(t=Number(t),isNaN(t)||0>t)throw Error("Bad port number "+t);this.h=t}else this.h=null},r.od=function(){return null!=this.h},r.Ba=function(t,e){this.M(),this.g=e?ce(t,!0):t},r.Sb=function(){return!!this.g},r.pd=function(){return""!==this.a.toString()},r.Za=function(t,e){this.M(),t instanceof ve?(this.a=t,this.a.Oc(this.f)):(e||(t=he(t,ye)),this.a=new ve(t,this.f))},r.Ic=function(){return this.a.toString()},r.m=function(t,e){this.M(),this.a.set(t,e)},r.Aa=function(t,e){this.M(),h(e)||(e=[String(e)]),this.a.lc(t,e)},r.Ya=function(t,e){this.M(),this.j=e?ce(t):t},r.nd=function(){return!!this.j},r.za=function(){return this.M(),this.m("zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^b()).toString(36)),this},r.M=function(){if(this.l)throw Error("Tried to modify a read-only Uri")};var fe=/[#\/\?@]/g,de=/[#\?:]/g,me=/[#\?]/g,ye=/[#\?@]/g,ge=/#/g;function ve(t,e){this.b=this.a=null,this.c=t||null,this.f=!!e}function _e(t){this.a=t,this.b=this.h=null,this.g=!1,this.i=null,this.c=-1,this.l=this.f=null}function be(){this.a=this.b=null}function we(){this.a=new se}function Ee(t){var e=typeof t;return"object"==e&&t||"function"==e?"o"+(t[d]||(t[d]=++m)):e.charAt(0)+t}function Se(t,e){this.a=t,this.b=e}function Ce(t){this.g=t||Te,t=s.PerformanceNavigationTiming?0<(t=s.performance.getEntriesByType("navigation")).length&&("hq"==t[0].nextHopProtocol||"h2"==t[0].nextHopProtocol):!!(s.Ja&&s.Ja.Vb&&s.Ja.Vb()&&s.Ja.Vb().te),this.f=t?this.g:1,this.a=null,1<this.f&&(this.a=new we),this.b=null,this.c=[]}(r=ve.prototype).V=function(){if(!this.a&&(this.a=new se,this.b=0,this.c)){var t=this;!function(t,e){if(t){t=t.split("&");for(var n=0;n<t.length;n++){var r=t[n].indexOf("="),i=null;if(0<=r){var o=t[n].substring(0,r);i=t[n].substring(r+1)}else o=t[n];e(o,i?decodeURIComponent(i.replace(/\+/g," ")):"")}}}(this.c,function(e,n){t.add(decodeURIComponent(e.replace(/\+/g," ")),n)})}},r.add=function(t,e){this.V(),this.ia(),t=this.$(t);var n=this.a.get(t);return n||this.a.set(t,n=[]),n.push(e),this.b+=1,this},r.Ib=function(t){this.V(),t=this.$(t),this.a.Ra(t)&&(this.ia(),this.b-=this.a.get(t).length,this.a.Qb(t))},r.Hb=function(t){return this.V(),t=this.$(t),this.a.Ra(t)},r.forEach=function(t,e){this.V(),this.a.forEach(function(n,r){C(n,function(n){t.call(e,n,r,this)},this)},this)},r.O=function(){this.V();for(var t=this.a.D(),e=this.a.O(),n=[],r=0;r<e.length;r++)for(var i=t[r],o=0;o<i.length;o++)n.push(e[r]);return n},r.D=function(t){this.V();var e=[];if(a(t))this.Hb(t)&&(e=T(e,this.a.get(this.$(t))));else{t=this.a.D();for(var n=0;n<t.length;n++)e=T(e,t[n])}return e},r.set=function(t,e){return this.V(),this.ia(),t=this.$(t),this.Hb(t)&&(this.b-=this.a.get(t).length),this.a.set(t,[e]),this.b+=1,this},r.get=function(t,e){return t&&0<(t=this.D(t)).length?String(t[0]):e},r.lc=function(t,e){this.Ib(t),0<e.length&&(this.ia(),this.a.set(this.$(t),I(e)),this.b+=e.length)},r.toString=function(){if(this.c)return this.c;if(!this.a)return"";for(var t=[],e=this.a.O(),n=0;n<e.length;n++){var r=e[n],i=encodeURIComponent(String(r));r=this.D(r);for(var o=0;o<r.length;o++){var s=i;""!==r[o]&&(s+="="+encodeURIComponent(String(r[o]))),t.push(s)}}return this.c=t.join("&")},r.ia=function(){this.c=null},r.Gb=function(){var t=new ve;return t.c=this.c,this.a&&(t.a=this.a.Pb(),t.b=this.b),t},r.$=function(t){return t=String(t),this.f&&(t=t.toLowerCase()),t},r.Oc=function(t){t&&!this.f&&(this.V(),this.ia(),this.a.forEach(function(t,e){var n=e.toLowerCase();e!=n&&(this.Ib(e),this.lc(n,t))},this)),this.f=t},w(function(){},function(){}),(r=_e.prototype).R=null,r.Wc=function(t){this.h=t},r.Vc=function(t){this.i=t,t=this.a.Cb(this.i),Ht(3);var e=this.a.H.b;null!=e?(this.f=this.a.Oa(e[0]),this.R=1,this.rb()):(t.Aa("MODE","init"),!this.a.o&&this.a.j&&t.Aa("X-HTTP-Session-Id",this.a.j),this.b=new ee(this,void 0,void 0),this.b.ha(this.h),this.b.bb(t,!1,null),this.R=0)},r.rb=function(){var t=this.a.H.a;if(null!=t)Ht(4),t?(Ht(10),this.a.na(this,!1)):(Ht(11),this.a.na(this,!0));else{this.b=new ee(this,void 0,void 0),this.b.ha(this.h),t=this.a.Bb(this.f,this.i),Ht(4),t.Aa("TYPE","xmlhttp");var e=this.a.j,n=this.a.Fa;e&&n&&t.m(e,n),this.b.bb(t,!1,this.f)}},r.sa=function(t){return this.a.sa(t)},r.abort=function(){this.b&&(this.b.cancel(),this.b=null),this.c=-1},r.Tb=function(){return!1},r.bc=function(t,e){if(this.c=t.o,0==this.R)if(this.Uc(t),e){try{var n=this.a.U.a(e)}catch(r){return void this.a.ab(this)}this.f=this.a.Oa(n[0])}else this.a.ab(this);else 1==this.R&&(this.g?Ht(6):"11111"==e?(Ht(5),this.g=!0,this.Ac()&&(this.c=200,this.b.cancel(),Ht(11),this.a.na(this,!0))):(Ht(7),this.g=!1))},r.Va=function(){this.c=this.b.o,this.b.b?0==this.R?(this.R=1,this.rb()):1==this.R&&(this.g?(Ht(11),this.a.na(this,!0)):(Ht(10),this.a.na(this,!1))):(0==this.R?Ht(8):1==this.R&&Ht(9),this.a.ab(this))},r.Uc=function(t){if(!this.a.o&&(t=t.a)){var e=t.ga("X-Client-Wire-Protocol");this.l=e||null,this.a.j&&(t=t.ga("X-HTTP-Session-Id"))&&this.a.kc(t)}},r.Da=function(){return this.a.Da()},r.Pa=function(){return this.a.Pa()},r.Ac=function(){return!B||10<=Number(J)},(r=we.prototype).add=function(t){this.a.set(Ee(t),t)},r.ed=function(t){this.a.Qb(Ee(t))},r.jd=function(){this.a.gd()},r.Rb=function(){return this.a.hd()},r.Ob=function(t){return this.a.Ra(Ee(t))},r.D=function(){return this.a.D()};var Te=10;function Ie(){this.b=this.a=void 0}function xe(){this.f=new Ie}function ke(t,e,n,r,i){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,i(r)}catch(o){}}(r=Ce.prototype).kb=function(t){!this.a&&(O(t,"spdy")||O(t,"quic")||O(t,"h2"))&&(this.f=this.g,this.a=new we,this.b&&(this.Ha(this.b),this.b=null))},r.Ub=function(){return!!this.b||!!this.a&&this.a.a.c>=this.f},r.Mc=function(){return this.b?1:this.a?this.a.a.c:0},r.Ta=function(t){return this.b?this.b==t:!!this.a&&this.a.Ob(t)},r.Ha=function(t){this.a?this.a.add(t):this.b=t},r.gc=function(t){this.b&&this.b==t?this.b=null:this.a&&this.a.Ob(t)&&this.a.ed(t)},r.cancel=function(){this.c=this.Xb(),this.b?(this.b.cancel(),this.b=null):this.a&&!this.a.Rb()&&(C(this.a.D(),function(t){t.cancel()}),this.a.jd())},r.Xb=function(){if(null!=this.b)return this.c.concat(this.b.j);if(null!=this.a&&!this.a.Rb()){var t=this.c;return C(this.a.D(),function(e){t=t.concat(e.j)}),t}return I(this.c)},r.wc=function(t){this.c=this.c.concat(t)},r.Bc=function(){this.c.length=0},Ie.prototype.stringify=function(t){return s.JSON.stringify(t,this.a)},Ie.prototype.parse=function(t){return s.JSON.parse(t,this.b)},xe.prototype.b=function(t,e,n){var r=n||"";try{oe(t,function(t,n){var i=t;f(t)&&(i=St(t)),e.push(r+n+"="+encodeURIComponent(i))})}catch(i){throw e.push(r+"type="+encodeURIComponent("_badmap")),i}},xe.prototype.c=function(t,e,n){for(var r=-1;;){var i=["count="+e];-1==r?0<e?i.push("ofs="+(r=t[0].a)):r=0:i.push("ofs="+r);for(var o=!0,s=0;s<e;s++){var a=t[s].a,u=t[s].b;if(0>(a-=r))r=Math.max(0,t[s].a-100),o=!1;else try{this.b(u,i,"req"+a+"_")}catch(l){n&&n(u)}}if(o)return i.join("&")}},xe.prototype.a=function(t){return this.f.parse(t)};var Ae=s.JSON.parse;function Oe(t){Et.call(this),this.headers=new se,this.l=t||null,this.b=!1,this.v=this.a=null,this.C="",this.h=0,this.f="",this.g=this.B=this.o=this.A=!1,this.u=0,this.s=null,this.J=Ne,this.H=this.L=this.I=!1}w(Oe,Et);var Ne="",De=/^https?$/i,Re=["POST","PUT"];function Pe(t){return"content-type"==t.toLowerCase()}function Me(t,e){return{type:e,lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}function Le(t,e,n){t:{for(r in n){var r=!1;break t}r=!0}if(r)return t;if(n=function(t){var e="";return P(n,function(t,n){e+=n,e+=":",e+=t,e+="\r\n"}),e}(),a(t)){if(e=encodeURIComponent(String(e)),e+=n=null!=n?"="+encodeURIComponent(String(n)):""){if(0>(n=t.indexOf("#"))&&(n=t.length),0>(r=t.indexOf("?"))||r>n){r=n;var i=""}else i=t.substring(r+1,n);n=(t=[t.substr(0,r),i,t.substr(n)])[1],t[1]=e?n?n+"&"+e:e:n,t=t[0]+(t[1]?"?"+t[1]:"")+t[2]}return t}return t.m(e,n),t}function Fe(t){this.gb=22,this.g=[],this.H=new be,this.da=this.fb=this.C=this.Ea=this.a=this.Fa=this.j=this.ca=this.f=this.J=this.h=null,this.sc=!0,this.zc=this.L=0,this.uc=!!u("internalChannelParams.failFast",t),this.Ga=this.v=this.s=this.l=this.i=this.b=null,this.eb=!0,this.B=this.jb=this.K=-1,this.Y=this.u=this.A=0,this.tc=u("internalChannelParams.baseRetryDelayMs",t)||5e3,this.Fc=u("internalChannelParams.retryDelaySeedMs",t)||1e4,this.pc=u("internalChannelParams.forwardChannelMaxRetries",t)||2,this.ib=u("internalChannelParams.forwardChannelRequestTimeoutMs",t)||2e4,this.xc=t&&t.ue||void 0,this.F=void 0,this.vc=0,this.T=t&&t.supportsCrossDomainXhr||!1,this.I="",this.c=new Ce(t&&t.concurrentRequestLimit),this.U=new xe,this.o=!t||void 0===t.backgroundChannelTest||t.backgroundChannelTest,(this.hb=t&&t.fastHandshake||!1)&&!this.o&&(this.o=!0),t&&t.se&&(this.eb=!1)}function je(){}function Ue(){if(B&&!(10<=Number(J)))throw Error("Environmental error: no available transport.")}function Ve(t,e){Et.call(this),this.a=new Fe(e),this.g=t,this.o=e&&e.testUrl?e.testUrl:function(t){for(var e=arguments[0],n=1;n<arguments.length;n++){var r,i=arguments[n];0==i.lastIndexOf("/",0)?e=i:((r=""==e)||(r=0<=(r=e.length-1)&&e.indexOf("/",r)==r),e+=r?i:"/"+i)}return e}(this.g,"test"),this.b=e&&e.messageUrlParams||null,t=e&&e.messageHeaders||null,e&&e.clientProtocolHeaderRequired&&(t?t["X-Client-Protocol"]="webchannel":t={"X-Client-Protocol":"webchannel"}),this.a.cd(t),t=e&&e.initMessageHeaders||null,e&&e.messageContentType&&(t?t["X-WebChannel-Content-Type"]=e.messageContentType:t={"X-WebChannel-Content-Type":e.messageContentType}),e&&e.tb&&(t?t["X-WebChannel-Client-Profile"]=e.tb:t={"X-WebChannel-Client-Profile":e.tb}),this.a.Pd(t),(t=e&&e.httpHeadersOverwriteParam)&&!x(t)&&this.a.Nd(t),this.l=e&&e.supportsCrossDomainXhr||!1,this.h=e&&e.sendRawJson||!1,(e=e&&e.httpSessionIdParam)&&!x(e)&&(this.a.Od(e),null!==(t=this.b)&&e in t&&e in(t=this.b)&&delete t[e]),this.f=new He(this)}function qe(t){Zt.call(this);var e=t.__sm__;if(e){t:{for(var n in e){t=n;break t}t=void 0}(this.f=t)?(t=this.f,this.data=null!==e&&t in e?e[t]:void 0):this.data=e}else this.data=t}function Be(){$t.call(this),this.status=1}function He(t){this.a=t}(r=Oe.prototype).Sd=function(t){this.I=t},r.xa=function(t,e,n,r){if(this.a)throw Error("[goog.net.XhrIo] Object is active with another request="+this.C+"; newUri="+t);e=e?e.toUpperCase():"GET",this.C=t,this.f="",this.h=0,this.A=!1,this.b=!0,this.a=this.Ec(),this.v=this.l?this.l.c():Xt.c(),this.a.onreadystatechange=v(this.ac,this),this.L&&"onprogress"in this.a&&(this.a.onprogress=v(function(t){this.Zb(t,!0)},this),this.a.upload&&(this.a.upload.onprogress=v(this.Zb,this)));try{this.B=!0,this.a.open(e,String(t),!0),this.B=!1}catch(o){return void this.Ab(o)}t=n||"";var i=this.headers.Pb();r&&oe(r,function(t,e){i.set(e,t)}),r=function(t){t:{for(var e=Pe,n=t.length,r=a(t)?t.split(""):t,i=0;i<n;i++)if(i in r&&e.call(void 0,r[i],i,t)){e=i;break t}e=-1}return 0>e?null:a(t)?t.charAt(e):t[e]}(i.O()),n=s.FormData&&t instanceof s.FormData,!(0<=S(Re,e))||r||n||i.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),i.forEach(function(t,e){this.a.setRequestHeader(e,t)},this),this.J&&(this.a.responseType=this.J),"withCredentials"in this.a&&this.a.withCredentials!==this.I&&(this.a.withCredentials=this.I);try{this.sb(),0<this.u&&((this.H=function(t){return B&&$(9)&&"number"==typeof t.timeout&&void 0!==t.ontimeout}(this.a))?(this.a.timeout=this.u,this.a.ontimeout=v(this.Nb,this)):this.s=Pt(this.Nb,this.u,this)),this.o=!0,this.a.send(t),this.o=!1}catch(o){this.Ab(o)}},r.Ec=function(){return this.l?this.l.b():Xt.b()},r.Nb=function(){void 0!==o&&this.a&&(this.f="Timed out after "+this.u+"ms, aborting",this.h=8,this.dispatchEvent("timeout"),this.abort(8))},r.Ab=function(t){this.b=!1,this.a&&(this.g=!0,this.a.abort(),this.g=!1),this.f=t,this.h=5,this.xb(),this.qa()},r.xb=function(){this.A||(this.A=!0,this.dispatchEvent("complete"),this.dispatchEvent("error"))},r.abort=function(t){this.a&&this.b&&(this.b=!1,this.g=!0,this.a.abort(),this.g=!1,this.h=t||7,this.dispatchEvent("complete"),this.dispatchEvent("abort"),this.qa())},r.G=function(){this.a&&(this.b&&(this.b=!1,this.g=!0,this.a.abort(),this.g=!1),this.qa(!0)),Oe.S.G.call(this)},r.ac=function(){this.i||(this.B||this.o||this.g?this.$b():this.Bd())},r.Bd=function(){this.$b()},r.$b=function(){if(this.b&&void 0!==o&&(!this.v[1]||4!=this.W()||2!=this.aa()))if(this.o&&4==this.W())Pt(this.ac,0,this);else if(this.dispatchEvent("readystatechange"),this.td()){this.b=!1;try{this.vd()?(this.dispatchEvent("complete"),this.dispatchEvent("success")):(this.h=6,this.f=this.Fb()+" ["+this.aa()+"]",this.xb())}finally{this.qa()}}},r.Zb=function(t,e){this.dispatchEvent(Me(t,"progress")),this.dispatchEvent(Me(t,e?"downloadprogress":"uploadprogress"))},r.qa=function(t){if(this.a){this.sb();var e=this.a,n=this.v[0]?l:null;this.v=this.a=null,t||this.dispatchEvent("ready");try{e.onreadystatechange=n}catch(r){}}},r.sb=function(){this.a&&this.H&&(this.a.ontimeout=null),this.s&&(s.clearTimeout(this.s),this.s=null)},r.td=function(){return 4==this.W()},r.vd=function(){var t=this.aa();t:switch(t){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var e=!0;break t;default:e=!1}return e||0===t&&!this.ud()},r.ud=function(){var t=String(this.C).match(ue)[1]||null;return!t&&s.self&&s.self.location&&(t=(t=s.self.location.protocol).substr(0,t.length-1)),De.test(t?t.toLowerCase():"")},r.W=function(){return this.a?this.a.readyState:0},r.aa=function(){try{return 2<this.W()?this.a.status:-1}catch(V){return-1}},r.Fb=function(){try{return 2<this.W()?this.a.statusText:""}catch(V){return""}},r.va=function(){try{return this.a?this.a.responseText:""}catch(V){return""}},r.Nc=function(t){if(this.a){var e=this.a.responseText;return t&&0==e.indexOf(t)&&(e=e.substring(t.length)),Ae(e)}},r.ga=function(t){return this.a?this.a.getResponseHeader(t):null},r.Db=function(){return this.h},r.dd=function(){return a(this.f)?this.f:String(this.f)},(r=Fe.prototype).qb=8,r.w=1,r.bd=function(t,e,n){Ht(0),this.Ea=e,this.ca=n||{},this.o&&(this.H.b=[],this.H.a=!1),this.Dc(t)},r.Qa=function(){if(this.lb(),3==this.w){var t=this.L++,e=this.C.N();e.m("SID",this.I),e.m("RID",t),e.m("TYPE","terminate"),this.ea(e),new ee(this,t,void 0).Ld(e)}this.Yb()},r.Dc=function(t){this.v=new _e(this),null===this.f&&this.v.Wc(this.h);var e=t;this.f&&this.h&&(e=Le(t,this.f,this.h)),this.v.Vc(e)},r.Cc=function(){this.C=this.Cb(this.Ea),this.Ma()},r.lb=function(){this.v&&(this.v.abort(),this.v=null),this.a&&(this.a.cancel(),this.a=null),this.l&&(s.clearTimeout(this.l),this.l=null),this.ra(),this.c.cancel(),this.i&&(s.clearTimeout(this.i),this.i=null)},r.cd=function(t){this.h=t},r.Pd=function(t){this.J=t},r.Nd=function(t){this.f=t},r.Od=function(t){this.j=t},r.kc=function(t){this.Fa=t},r.Rd=function(){this.T=!0},r.jc=function(t){this.b=t},r.sd=function(){return!this.Ga},r.Xa=function(t){this.g.push(new Se(this.zc++,t)),3==this.w&&this.Ma()},r.Jc=function(){return this.uc?0:this.pc},r.Tb=function(){return 0==this.w},r.Ma=function(){this.c.Ub()||this.i||(this.i=Wt(v(this.dc,this),0),this.A=0)},r.xd=function(t){return!(this.c.Mc()>=this.c.f-(this.i?1:0)||(this.i?(this.g=t.j.concat(this.g),0):1==this.w||2==this.w||this.A>=this.Jc()||(this.i=Wt(v(this.dc,this,t),this.Eb(this.A)),this.A++,0)))},r.dc=function(t){this.i=null,this.Xd(t)},r.Xd=function(t){1==this.w?t||(this.Fd(),this.w=2):3==this.w&&(t?this.Wb(t):0==this.g.length||this.c.Ub()||this.Wb())},r.Fd=function(){this.L=Math.floor(1e5*Math.random());var t=this.L++,e=new ee(this,t,void 0),n=this.h;this.J&&(n?F(n=M(n),this.J):n=this.J),null===this.f&&e.ha(n);var r=this.wb(e),i=this.C.N();i.m("RID",t),0<this.gb&&i.m("CVER",this.gb),this.o&&this.j&&i.m("X-HTTP-Session-Id",this.j),this.ea(i),this.f&&n&&Le(i,this.f,n),this.c.Ha(e),this.hb?(i.m("$req",r),i.m("SID","null"),e.Md(),e.cb(i,null)):e.cb(i,r)},r.Wb=function(t){var e;e=t?t.da:this.L++;var n=this.C.N();n.m("SID",this.I),n.m("RID",e),n.m("AID",this.K),this.ea(n),this.f&&this.h&&Le(n,this.f,this.h),e=new ee(this,e,this.A+1),null===this.f&&e.ha(this.h),t&&this.Jd(t),t=this.wb(e),e.setTimeout(Math.round(.5*this.ib)+Math.round(.5*this.ib*Math.random())),this.c.Ha(e),e.cb(n,t)},r.ea=function(t){this.b&&oe({},function(e,n){t.m(n,e)})},r.wb=function(t){var e=Math.min(this.g.length,1e3),n=this.b?v(this.b.yc,this.b,this):null;return n=this.U.c(this.g,e,n),t.Qd(this.g.splice(0,e)),n},r.Jd=function(t){this.g=t.j.concat(this.g)},r.zb=function(){if(!this.a&&!this.l){this.Y=1;var t=this.cc;It||function(){var t=s.Promise.resolve(void 0);It=function(){t.then(Dt)}}(),Ot||(It(),Ot=!0),Nt.add(t,this),this.u=0}},r.Ua=function(){return!(this.a||this.l||3<=this.u||(this.Y++,this.l=Wt(v(this.cc,this),this.Eb(this.u)),this.u++,0))},r.cc=function(){this.l=null,this.Vd()},r.Vd=function(){this.a=new ee(this,"rpc",this.Y),null===this.f&&this.a.ha(this.h),this.a.Xc(this.vc);var t=this.fb.N();t.m("RID","rpc"),t.m("SID",this.I),t.m("CI",this.Ga?"0":"1"),t.m("AID",this.K),this.ea(t),t.m("TYPE","xmlhttp"),this.f&&this.h&&Le(t,this.f,this.h),this.F&&this.a.setTimeout(this.F),this.a.bb(t,!0,this.da)},r.na=function(t,e){var n=t.l;n&&this.c.kb(n),this.Ga=this.eb&&e,this.B=t.c,this.Cc()},r.ab=function(t){this.B=t.c,this.X(2)},r.bc=function(t,e){if(0!=this.w&&(this.a==t||this.c.Ta(t)))if(this.B=t.o,!t.s&&this.c.Ta(t)&&3==this.w){try{var n=this.U.a(e)}catch(r){n=null}h(n)&&3==n.length?this.ld(n,t):this.X(11)}else(t.s||this.a==t)&&this.ra(),x(e)||(n=this.U.a(e),this.Ad(n,t))},r.ld=function(t,e){0==t[0]?this.kd(e):(this.jb=t[1],0<this.jb-this.K&&this.Ud(t[2])&&!this.s&&(this.s=Wt(v(this.yd,this),6e3)))},r.kd=function(t){if(!this.l){if(this.a){if(!(this.a.u+3e3<t.u))return;this.ra(),this.a.cancel(),this.a=null}this.Ua(),Ht(18)}},r.Ud=function(t){return 37500>t&&!this.sd()&&0==this.u},r.Oa=function(t){return this.sc?this.b?this.b.$c(t):t:null},r.yd=function(){null!=this.s&&(this.s=null,this.a.cancel(),this.a=null,this.Ua(),Ht(19))},r.ra=function(){null!=this.s&&(s.clearTimeout(this.s),this.s=null)},r.Va=function(t){var e=null;if(this.a==t){this.ra(),this.a=null;var n=2}else{if(!this.c.Ta(t))return;e=t.j,this.c.gc(t),n=1}if(this.B=t.o,0!=this.w)if(t.b)1==n?(n=b()-t.u,Ut.dispatchEvent(new zt(Ut,t.i?t.i.length:0,n,this.A)),this.Ma()):this.zb();else{var r=t.c;if(3==r||0==r&&0<this.B||!(1==n&&this.xd(t)||2==n&&this.Ua()))switch(e&&0<e.length&&this.c.wc(e),r){case 1:this.X(5);break;case 4:this.X(10);break;case 3:this.X(6);break;default:this.X(2)}}},r.Eb=function(t){var e=this.tc+Math.floor(Math.random()*this.Fc);return this.Pa()||(e*=2),e*t},r.ad=function(t){if(this.o&&(t=t.a)){var e=t.ga("X-Client-Wire-Protocol");e&&this.c.kb(e),this.j&&(t=t.ga("X-HTTP-Session-Id"))&&(this.kc(t),this.C.m(this.j,t))}},r.Ad=function(t,e){for(var n=this.b&&this.b.Ia?[]:null,r=0;r<t.length;r++){var i=t[r];if(this.K=i[0],i=i[1],2==this.w)if("c"==i[0]){this.I=i[1],this.da=this.Oa(i[2]);var o=i[3];null!=o&&(this.qb=o),null!=(i=i[5])&&"number"==typeof i&&0<i&&(this.F=1.5*i),this.ad(e),this.w=3,this.b&&this.b.pb(),this.Wd(e)}else"stop"!=i[0]&&"close"!=i[0]||this.X(7);else 3==this.w&&("stop"==i[0]||"close"==i[0]?(n&&0!=n.length&&(this.b.Ia(this,n),n.length=0),"stop"==i[0]?this.X(7):this.Qa()):"noop"!=i[0]&&(n?n.push(i):this.b&&this.b.ob(i)),this.u=0)}n&&0!=n.length&&this.b.Ia(this,n)},r.Wd=function(t){this.fb=this.Bb(this.da,this.Ea),t.s?(this.c.gc(t),t.Kd(this.F),this.a=t):this.zb()},r.X=function(t){if(2==t){var e=null;this.b&&(e=null);var n=v(this.Zd,this);e||(e=new le("//www.google.com/images/cleardot.gif"),s.location&&"http"==s.location.protocol||e.ma("https"),e.za()),function(t,e){var n=new jt,r=new Image;r.onload=_(ke,n,r,"TestLoadImage: loaded",!0,e),r.onerror=_(ke,n,r,"TestLoadImage: error",!1,e),r.onabort=_(ke,n,r,"TestLoadImage: abort",!1,e),r.ontimeout=_(ke,n,r,"TestLoadImage: timeout",!1,e),s.setTimeout(function(){r.ontimeout&&r.ontimeout()},1e4),r.src=t}(e.toString(),n)}else Ht(2);this.zd(t)},r.Zd=function(t){Ht(t?2:1)},r.zd=function(t){this.w=0,this.b&&this.b.nb(t),this.Yb(),this.lb()},r.Yb=function(){this.w=0,this.B=-1,this.b&&(0==this.c.Xb().length&&0==this.g.length||(this.c.Bc(),I(this.g),this.g.length=0),this.b.mb())},r.Cb=function(t){return this.ub(null,t)},r.Bb=function(t,e){return this.ub(this.Da()?t:null,e)},r.ub=function(t,e){var n=function(t){return t instanceof le?t.N():new le(t,void 0)}(e);if(""!=n.c)t&&n.ka(t+"."+n.c),n.la(n.h);else{var r=s.location;n=function(t,e,n,r){var i=new le(null,void 0);return t&&i.ma(t),e&&i.ka(e),n&&i.la(n),r&&i.Ba(r),i}(r.protocol,t?t+"."+r.hostname:r.hostname,+r.port,e)}return this.ca&&P(this.ca,function(t,e){n.m(e,t)}),e=this.Fa,(t=this.j)&&e&&n.m(t,e),n.m("VER",this.qb),this.ea(n),n},r.sa=function(t){if(t&&!this.T)throw Error("Can't create secondary domain capable XhrIo object.");return(t=new Oe(this.xc)).Sd(this.T),t},r.Pa=function(){return!!this.b&&!0},r.Da=function(){return this.T},(r=je.prototype).Ia=null,r.pb=function(){},r.ob=function(){},r.nb=function(){},r.mb=function(){},r.yc=function(){},r.$c=function(t){return t},Ue.prototype.a=function(t,e){return new Ve(t,e)},w(Ve,Et),(r=Ve.prototype).addEventListener=function(t,e,n,r){Ve.S.addEventListener.call(this,t,e,n,r)},r.removeEventListener=function(t,e,n,r){Ve.S.removeEventListener.call(this,t,e,n,r)},r.Yc=function(){this.a.jc(this.f),this.l&&this.a.Rd(),this.a.bd(this.o,this.g,this.b||void 0)},r.close=function(){this.a.Qa()},r.Zc=function(t){if(a(t)){var e={};e.__data__=t,this.a.Xa(e)}else this.h?((e={}).__data__=St(t),this.a.Xa(e)):this.a.Xa(t)},r.G=function(){this.a.jc(null),delete this.f,this.a.Qa(),delete this.a,Ve.S.G.call(this)},w(qe,Zt),w(Be,$t),w(He,je),He.prototype.pb=function(){this.a.dispatchEvent("a")},He.prototype.ob=function(t){this.a.dispatchEvent(new qe(t))},He.prototype.nb=function(t){this.a.dispatchEvent(new Be(t))},He.prototype.mb=function(){this.a.dispatchEvent("b")};var ze=_(function(t,e){function n(){}n.prototype=t.prototype;var r=new n;return t.apply(r,Array.prototype.slice.call(arguments,1)),r},Ue);Ue.prototype.createWebChannel=Ue.prototype.a,Ve.prototype.send=Ve.prototype.Zc,Ve.prototype.open=Ve.prototype.Yc,Ve.prototype.close=Ve.prototype.close,Qt.NO_ERROR=0,Qt.TIMEOUT=8,Qt.HTTP_ERROR=6,Kt.COMPLETE="complete",Yt.EventType=Jt,Jt.OPEN="a",Jt.CLOSE="b",Jt.ERROR="c",Jt.MESSAGE="d",Et.prototype.listen=Et.prototype.Lb,Oe.prototype.listenOnce=Oe.prototype.Mb,Oe.prototype.getLastError=Oe.prototype.dd,Oe.prototype.getLastErrorCode=Oe.prototype.Db,Oe.prototype.getStatus=Oe.prototype.aa,Oe.prototype.getStatusText=Oe.prototype.Fb,Oe.prototype.getResponseJson=Oe.prototype.Nc,Oe.prototype.getResponseText=Oe.prototype.va,Oe.prototype.send=Oe.prototype.xa;var We={createWebChannelTransport:ze,ErrorCode:Qt,EventType:Kt,WebChannel:Yt,XhrIo:Oe},Qe=We.createWebChannelTransport,Ke=We.ErrorCode,Ge=We.EventType,Ye=We.WebChannel,Xe=We.XhrIo;e.default=We},y2cN:function(t,e,n){t.exports=n("HefZ"),n("9UdO"),n("FoKB"),n("QURa")},yC6l:function(t,e,n){n("Ksdp"),t.exports=n("4Ea8").Object.assign},yLV6:function(t,e,n){var r;!function(i,o,s,a){"use strict";var u,l=["","webkit","Moz","MS","ms","o"],c=o.createElement("div"),h="function",p=Math.round,f=Math.abs,d=Date.now;function m(t,e,n){return setTimeout(E(t,n),e)}function y(t,e,n){return!!Array.isArray(t)&&(g(t,n[e],n),!0)}function g(t,e,n){var r;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==a)for(r=0;r<t.length;)e.call(n,t[r],r,t),r++;else for(r in t)t.hasOwnProperty(r)&&e.call(n,t[r],r,t)}function v(t,e,n){var r="DEPRECATED METHOD: "+e+"\n"+n+" AT \n";return function(){var e=new Error("get-stack-trace"),n=e&&e.stack?e.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=i.console&&(i.console.warn||i.console.log);return o&&o.call(i.console,r,n),t.apply(this,arguments)}}u="function"!=typeof Object.assign?function(t){if(t===a||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n<arguments.length;n++){var r=arguments[n];if(r!==a&&null!==r)for(var i in r)r.hasOwnProperty(i)&&(e[i]=r[i])}return e}:Object.assign;var _=v(function(t,e,n){for(var r=Object.keys(e),i=0;i<r.length;)(!n||n&&t[r[i]]===a)&&(t[r[i]]=e[r[i]]),i++;return t},"extend","Use `assign`."),b=v(function(t,e){return _(t,e,!0)},"merge","Use `assign`.");function w(t,e,n){var r,i=e.prototype;(r=t.prototype=Object.create(i)).constructor=t,r._super=i,n&&u(r,n)}function E(t,e){return function(){return t.apply(e,arguments)}}function S(t,e){return typeof t==h?t.apply(e&&e[0]||a,e):t}function C(t,e){return t===a?e:t}function T(t,e,n){g(A(e),function(e){t.addEventListener(e,n,!1)})}function I(t,e,n){g(A(e),function(e){t.removeEventListener(e,n,!1)})}function x(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function k(t,e){return t.indexOf(e)>-1}function A(t){return t.trim().split(/\s+/g)}function O(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var r=0;r<t.length;){if(n&&t[r][n]==e||!n&&t[r]===e)return r;r++}return-1}function N(t){return Array.prototype.slice.call(t,0)}function D(t,e,n){for(var r=[],i=[],o=0;o<t.length;){var s=e?t[o][e]:t[o];O(i,s)<0&&r.push(t[o]),i[o]=s,o++}return n&&(r=e?r.sort(function(t,n){return t[e]>n[e]}):r.sort()),r}function R(t,e){for(var n,r,i=e[0].toUpperCase()+e.slice(1),o=0;o<l.length;){if((r=(n=l[o])?n+i:e)in t)return r;o++}return a}var P=1;function M(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||i}var L="ontouchstart"in i,F=R(i,"PointerEvent")!==a,j=L&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),U=25,V=1,q=4,B=8,H=1,z=2,W=4,Q=8,K=16,G=z|W,Y=Q|K,X=G|Y,J=["x","y"],Z=["clientX","clientY"];function $(t,e){var n=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){S(t.options.enable,[t])&&n.handler(e)},this.init()}function tt(t,e,n){var r=n.pointers.length,i=n.changedPointers.length,o=e&V&&r-i==0,s=e&(q|B)&&r-i==0;n.isFirst=!!o,n.isFinal=!!s,o&&(t.session={}),n.eventType=e,function(t,e){var n=t.session,r=e.pointers,i=r.length;n.firstInput||(n.firstInput=et(e)),i>1&&!n.firstMultiple?n.firstMultiple=et(e):1===i&&(n.firstMultiple=!1);var o=n.firstInput,s=n.firstMultiple,u=s?s.center:o.center,l=e.center=nt(r);e.timeStamp=d(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=st(u,l),e.distance=ot(u,l),function(t,e){var n=e.center,r=t.offsetDelta||{},i=t.prevDelta||{},o=t.prevInput||{};e.eventType!==V&&o.eventType!==q||(i=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},r=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=i.x+(n.x-r.x),e.deltaY=i.y+(n.y-r.y)}(n,e),e.offsetDirection=it(e.deltaX,e.deltaY);var c,h,p=rt(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=p.x,e.overallVelocityY=p.y,e.overallVelocity=f(p.x)>f(p.y)?p.x:p.y,e.scale=s?(c=s.pointers,ot((h=r)[0],h[1],Z)/ot(c[0],c[1],Z)):1,e.rotation=s?function(t,e){return st(r[1],r[0],Z)+st(t[1],t[0],Z)}(s.pointers):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,function(t,e){var n,r,i,o,s=t.lastInterval||e,u=e.timeStamp-s.timeStamp;if(e.eventType!=B&&(u>U||s.velocity===a)){var l=e.deltaX-s.deltaX,c=e.deltaY-s.deltaY,h=rt(u,l,c);r=h.x,i=h.y,n=f(h.x)>f(h.y)?h.x:h.y,o=it(l,c),t.lastInterval=e}else n=s.velocity,r=s.velocityX,i=s.velocityY,o=s.direction;e.velocity=n,e.velocityX=r,e.velocityY=i,e.direction=o}(n,e);var m=t.element;x(e.srcEvent.target,m)&&(m=e.srcEvent.target),e.target=m}(t,n),t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function et(t){for(var e=[],n=0;n<t.pointers.length;)e[n]={clientX:p(t.pointers[n].clientX),clientY:p(t.pointers[n].clientY)},n++;return{timeStamp:d(),pointers:e,center:nt(e),deltaX:t.deltaX,deltaY:t.deltaY}}function nt(t){var e=t.length;if(1===e)return{x:p(t[0].clientX),y:p(t[0].clientY)};for(var n=0,r=0,i=0;i<e;)n+=t[i].clientX,r+=t[i].clientY,i++;return{x:p(n/e),y:p(r/e)}}function rt(t,e,n){return{x:e/t||0,y:n/t||0}}function it(t,e){return t===e?H:f(t)>=f(e)?t<0?z:W:e<0?Q:K}function ot(t,e,n){n||(n=J);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return Math.sqrt(r*r+i*i)}function st(t,e,n){return n||(n=J),180*Math.atan2(e[n[1]]-t[n[1]],e[n[0]]-t[n[0]])/Math.PI}$.prototype={handler:function(){},init:function(){this.evEl&&T(this.element,this.evEl,this.domHandler),this.evTarget&&T(this.target,this.evTarget,this.domHandler),this.evWin&&T(M(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&I(this.element,this.evEl,this.domHandler),this.evTarget&&I(this.target,this.evTarget,this.domHandler),this.evWin&&I(M(this.element),this.evWin,this.domHandler)}};var at={mousedown:V,mousemove:2,mouseup:q},ut="mousedown",lt="mousemove mouseup";function ct(){this.evEl=ut,this.evWin=lt,this.pressed=!1,$.apply(this,arguments)}w(ct,$,{handler:function(t){var e=at[t.type];e&V&&0===t.button&&(this.pressed=!0),2&e&&1!==t.which&&(e=q),this.pressed&&(e&q&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:"mouse",srcEvent:t}))}});var ht={pointerdown:V,pointermove:2,pointerup:q,pointercancel:B,pointerout:B},pt={2:"touch",3:"pen",4:"mouse",5:"kinect"},ft="pointerdown",dt="pointermove pointerup pointercancel";function mt(){this.evEl=ft,this.evWin=dt,$.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}i.MSPointerEvent&&!i.PointerEvent&&(ft="MSPointerDown",dt="MSPointerMove MSPointerUp MSPointerCancel"),w(mt,$,{handler:function(t){var e=this.store,n=!1,r=t.type.toLowerCase().replace("ms",""),i=ht[r],o=pt[t.pointerType]||t.pointerType,s="touch"==o,a=O(e,t.pointerId,"pointerId");i&V&&(0===t.button||s)?a<0&&(e.push(t),a=e.length-1):i&(q|B)&&(n=!0),a<0||(e[a]=t,this.callback(this.manager,i,{pointers:e,changedPointers:[t],pointerType:o,srcEvent:t}),n&&e.splice(a,1))}});var yt={touchstart:V,touchmove:2,touchend:q,touchcancel:B},gt="touchstart",vt="touchstart touchmove touchend touchcancel";function _t(){this.evTarget=gt,this.evWin=vt,this.started=!1,$.apply(this,arguments)}w(_t,$,{handler:function(t){var e=yt[t.type];if(e===V&&(this.started=!0),this.started){var n=(function(t,e){var n=N(t.touches),r=N(t.changedTouches);return e&(q|B)&&(n=D(n.concat(r),"identifier",!0)),[n,r]}).call(this,t,e);e&(q|B)&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:"touch",srcEvent:t})}}});var bt={touchstart:V,touchmove:2,touchend:q,touchcancel:B},wt="touchstart touchmove touchend touchcancel";function Et(){this.evTarget=wt,this.targetIds={},$.apply(this,arguments)}w(Et,$,{handler:function(t){var e=bt[t.type],n=(function(t,e){var n=N(t.touches),r=this.targetIds;if(e&(2|V)&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,s=N(t.changedTouches),a=[],u=this.target;if(o=n.filter(function(t){return x(t.target,u)}),e===V)for(i=0;i<o.length;)r[o[i].identifier]=!0,i++;for(i=0;i<s.length;)r[s[i].identifier]&&a.push(s[i]),e&(q|B)&&delete r[s[i].identifier],i++;return a.length?[D(o.concat(a),"identifier",!0),a]:void 0}).call(this,t,e);n&&this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:"touch",srcEvent:t})}});var St=2500;function Ct(){$.apply(this,arguments);var t=E(this.handler,this);this.touch=new Et(this.manager,t),this.mouse=new ct(this.manager,t),this.primaryTouch=null,this.lastTouches=[]}function Tt(t){var e=t.changedPointers[0];if(e.identifier===this.primaryTouch){var n={x:e.clientX,y:e.clientY};this.lastTouches.push(n);var r=this.lastTouches;setTimeout(function(){var t=r.indexOf(n);t>-1&&r.splice(t,1)},St)}}w(Ct,$,{handler:function(t,e,n){var r="mouse"==n.pointerType;if(!(r&&n.sourceCapabilities&&n.sourceCapabilities.firesTouchEvents)){if("touch"==n.pointerType)(function(t,e){t&V?(this.primaryTouch=e.changedPointers[0].identifier,Tt.call(this,e)):t&(q|B)&&Tt.call(this,e)}).call(this,e,n);else if(r&&(function(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,r=0;r<this.lastTouches.length;r++){var i=this.lastTouches[r],o=Math.abs(e-i.x),s=Math.abs(n-i.y);if(o<=25&&s<=25)return!0}return!1}).call(this,n))return;this.callback(t,e,n)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var It=R(c.style,"touchAction"),xt=It!==a,kt=function(){if(!xt)return!1;var t={},e=i.CSS&&i.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(n){t[n]=!e||i.CSS.supports("touch-action",n)}),t}();function At(t,e){this.manager=t,this.set(e)}At.prototype={set:function(t){"compute"==t&&(t=this.compute()),xt&&this.manager.element.style&&kt[t]&&(this.manager.element.style[It]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return g(this.manager.recognizers,function(e){S(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),function(t){if(k(t,"none"))return"none";var e=k(t,"pan-x"),n=k(t,"pan-y");return e&&n?"none":e||n?e?"pan-x":"pan-y":k(t,"manipulation")?"manipulation":"auto"}(t.join(" "))},preventDefaults:function(t){var e=t.srcEvent,n=t.offsetDirection;if(this.manager.session.prevented)e.preventDefault();else{var r=this.actions,i=k(r,"none")&&!kt.none,o=k(r,"pan-y")&&!kt["pan-y"],s=k(r,"pan-x")&&!kt["pan-x"];if(i&&1===t.pointers.length&&t.distance<2&&t.deltaTime<250)return;if(!s||!o)return i||o&&n&G||s&&n&Y?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var Ot=1,Nt=2,Dt=4,Rt=8,Pt=Rt,Mt=16;function Lt(t){this.options=u({},this.defaults,t||{}),this.id=P++,this.manager=null,this.options.enable=C(this.options.enable,!0),this.state=Ot,this.simultaneous={},this.requireFail=[]}function Ft(t){return t&Mt?"cancel":t&Rt?"end":t&Dt?"move":t&Nt?"start":""}function jt(t){return t==K?"down":t==Q?"up":t==z?"left":t==W?"right":""}function Ut(t,e){var n=e.manager;return n?n.get(t):t}function Vt(){Lt.apply(this,arguments)}function qt(){Vt.apply(this,arguments),this.pX=null,this.pY=null}function Bt(){Vt.apply(this,arguments)}function Ht(){Lt.apply(this,arguments),this._timer=null,this._input=null}function zt(){Vt.apply(this,arguments)}function Wt(){Vt.apply(this,arguments)}function Qt(){Lt.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function Kt(t,e){return(e=e||{}).recognizers=C(e.recognizers,Kt.defaults.preset),new Gt(t,e)}function Gt(t,e){var n;this.options=u({},Kt.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=new((n=this).options.inputClass||(F?mt:j?Et:L?Ct:ct))(n,tt),this.touchAction=new At(this,this.options.touchAction),Yt(this,!0),g(this.options.recognizers,function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])},this)}function Yt(t,e){var n,r=t.element;r.style&&(g(t.options.cssProps,function(i,o){n=R(r.style,o),e?(t.oldCssProps[n]=r.style[n],r.style[n]=i):r.style[n]=t.oldCssProps[n]||""}),e||(t.oldCssProps={}))}Lt.prototype={defaults:{},set:function(t){return u(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(y(t,"recognizeWith",this))return this;var e=this.simultaneous;return e[(t=Ut(t,this)).id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return y(t,"dropRecognizeWith",this)?this:(t=Ut(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(y(t,"requireFailure",this))return this;var e=this.requireFail;return-1===O(e,t=Ut(t,this))&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(y(t,"dropRequireFailure",this))return this;t=Ut(t,this);var e=O(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){var e=this,n=this.state;function r(n){e.manager.emit(n,t)}n<Rt&&r(e.options.event+Ft(n)),r(e.options.event),t.additionalEvent&&r(t.additionalEvent),n>=Rt&&r(e.options.event+Ft(n))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(32|Ot)))return!1;t++}return!0},recognize:function(t){var e=u({},t);if(!S(this.options.enable,[this,e]))return this.reset(),void(this.state=32);this.state&(Pt|Mt|32)&&(this.state=Ot),this.state=this.process(e),this.state&(Nt|Dt|Rt|Mt)&&this.tryEmit(e)},process:function(t){},getTouchAction:function(){},reset:function(){}},w(Vt,Lt,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,n=t.eventType,r=e&(Nt|Dt),i=this.attrTest(t);return r&&(n&B||!i)?e|Mt:r||i?n&q?e|Rt:e&Nt?e|Dt:Nt:32}}),w(qt,Vt,{defaults:{event:"pan",threshold:10,pointers:1,direction:X},getTouchAction:function(){var t=this.options.direction,e=[];return t&G&&e.push("pan-y"),t&Y&&e.push("pan-x"),e},directionTest:function(t){var e=this.options,n=!0,r=t.distance,i=t.direction,o=t.deltaX,s=t.deltaY;return i&e.direction||(e.direction&G?(i=0===o?H:o<0?z:W,n=o!=this.pX,r=Math.abs(t.deltaX)):(i=0===s?H:s<0?Q:K,n=s!=this.pY,r=Math.abs(t.deltaY))),t.direction=i,n&&r>e.threshold&&i&e.direction},attrTest:function(t){return Vt.prototype.attrTest.call(this,t)&&(this.state&Nt||!(this.state&Nt)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=jt(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),w(Bt,Vt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return["none"]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&Nt)},emit:function(t){1!==t.scale&&(t.additionalEvent=this.options.event+(t.scale<1?"in":"out")),this._super.emit.call(this,t)}}),w(Ht,Lt,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return["auto"]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance<e.threshold,i=t.deltaTime>e.time;if(this._input=t,!r||!n||t.eventType&(q|B)&&!i)this.reset();else if(t.eventType&V)this.reset(),this._timer=m(function(){this.state=Pt,this.tryEmit()},e.time,this);else if(t.eventType&q)return Pt;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===Pt&&(t&&t.eventType&q?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=d(),this.manager.emit(this.options.event,this._input)))}}),w(zt,Vt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return["none"]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&Nt)}}),w(Wt,Vt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:G|Y,pointers:1},getTouchAction:function(){return qt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(G|Y)?e=t.overallVelocity:n&G?e=t.overallVelocityX:n&Y&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&f(e)>this.options.velocity&&t.eventType&q},emit:function(t){var e=jt(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),w(Qt,Lt,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return["manipulation"]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance<e.threshold,i=t.deltaTime<e.time;if(this.reset(),t.eventType&V&&0===this.count)return this.failTimeout();if(r&&i&&n){if(t.eventType!=q)return this.failTimeout();var o=!this.pTime||t.timeStamp-this.pTime<e.interval,s=!this.pCenter||ot(this.pCenter,t.center)<e.posThreshold;if(this.pTime=t.timeStamp,this.pCenter=t.center,s&&o?this.count+=1:this.count=1,this._input=t,0==this.count%e.taps)return this.hasRequireFailures()?(this._timer=m(function(){this.state=Pt,this.tryEmit()},e.interval,this),Nt):Pt}return 32},failTimeout:function(){return this._timer=m(function(){this.state=32},this.options.interval,this),32},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==Pt&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),Kt.VERSION="2.0.7",Kt.defaults={domEvents:!1,touchAction:"compute",enable:!0,inputTarget:null,inputClass:null,preset:[[zt,{enable:!1}],[Bt,{enable:!1},["rotate"]],[Wt,{direction:G}],[qt,{direction:G},["swipe"]],[Qt],[Qt,{event:"doubletap",taps:2},["tap"]],[Ht]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},Gt.prototype={set:function(t){return u(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?2:1},recognize:function(t){var e=this.session;if(!e.stopped){var n;this.touchAction.preventDefaults(t);var r=this.recognizers,i=e.curRecognizer;(!i||i&&i.state&Pt)&&(i=e.curRecognizer=null);for(var o=0;o<r.length;)n=r[o],2===e.stopped||i&&n!=i&&!n.canRecognizeWith(i)?n.reset():n.recognize(t),!i&&n.state&(Nt|Dt|Rt)&&(i=e.curRecognizer=n),o++}},get:function(t){if(t instanceof Lt)return t;for(var e=this.recognizers,n=0;n<e.length;n++)if(e[n].options.event==t)return e[n];return null},add:function(t){if(y(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(y(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,n=O(e,t);-1!==n&&(e.splice(n,1),this.touchAction.update())}return this},on:function(t,e){if(t!==a&&e!==a){var n=this.handlers;return g(A(t),function(t){n[t]=n[t]||[],n[t].push(e)}),this}},off:function(t,e){if(t!==a){var n=this.handlers;return g(A(t),function(t){e?n[t]&&n[t].splice(O(n[t],e),1):delete n[t]}),this}},emit:function(t,e){this.options.domEvents&&function(t,e){var n=o.createEvent("Event");n.initEvent(t,!0,!0),n.gesture=e,e.target.dispatchEvent(n)}(t,e);var n=this.handlers[t]&&this.handlers[t].slice();if(n&&n.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var r=0;r<n.length;)n[r](e),r++}},destroy:function(){this.element&&Yt(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},u(Kt,{INPUT_START:V,INPUT_MOVE:2,INPUT_END:q,INPUT_CANCEL:B,STATE_POSSIBLE:Ot,STATE_BEGAN:Nt,STATE_CHANGED:Dt,STATE_ENDED:Rt,STATE_RECOGNIZED:Pt,STATE_CANCELLED:Mt,STATE_FAILED:32,DIRECTION_NONE:H,DIRECTION_LEFT:z,DIRECTION_RIGHT:W,DIRECTION_UP:Q,DIRECTION_DOWN:K,DIRECTION_HORIZONTAL:G,DIRECTION_VERTICAL:Y,DIRECTION_ALL:X,Manager:Gt,Input:$,TouchAction:At,TouchInput:Et,MouseInput:ct,PointerEventInput:mt,TouchMouseInput:Ct,SingleTouchInput:_t,Recognizer:Lt,AttrRecognizer:Vt,Tap:Qt,Pan:qt,Swipe:Wt,Pinch:Bt,Rotate:zt,Press:Ht,on:T,off:I,each:g,merge:b,extend:_,assign:u,inherit:w,bindFn:E,prefixed:R}),(void 0!==i?i:"undefined"!=typeof self?self:{}).Hammer=Kt,(r=(function(){return Kt}).call(e,n,e,t))===a||(t.exports=r)}(window,document)},ySdl:function(t,e,n){var r=n("3Gxb"),i=n("fw2a"),o=n("bcPd"),s=n("ysHE").Reflect;t.exports=s&&s.ownKeys||function(t){var e=r.f(o(t)),n=i.f;return n?e.concat(n(t)):e}},ysHE:function(t,e){t.exports="object"==typeof window&&window&&window.Math==Math?window:"object"==typeof self&&self&&self.Math==Math?self:Function("return this")()},z5Af:function(t,e,n){t.exports=n("yC6l")},z5ME:function(t,e,n){var r=n("aXXJ")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(i){}}return!1}},zUnb:function(t,e,n){"use strict";n.r(e),n("yLV6");var r=n("mrSG"),i=Array.isArray||function(t){return t&&"number"==typeof t.length};function o(t){return null!=t&&"object"==typeof t}function s(t){return"function"==typeof t}var a,u={e:{}};function l(){try{return a.apply(this,arguments)}catch(t){return u.e=t,u}}function c(t){return a=t,l}function h(t){return Error.call(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map(function(t,e){return e+1+") "+t.toString()}).join("\n  "):"",this.name="UnsubscriptionError",this.errors=t,this}h.prototype=Object.create(Error.prototype);var p=h,f=function(){function t(t){this.closed=!1,this._parent=null,this._parents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}var e;return t.prototype.unsubscribe=function(){var t,e=!1;if(!this.closed){var n=this._parent,r=this._parents,a=this._unsubscribe,l=this._subscriptions;this.closed=!0,this._parent=null,this._parents=null,this._subscriptions=null;for(var h=-1,f=r?r.length:0;n;)n.remove(this),n=++h<f&&r[h]||null;if(s(a)&&c(a).call(this)===u&&(e=!0,t=t||(u.e instanceof p?d(u.e.errors):[u.e])),i(l))for(h=-1,f=l.length;++h<f;){var m=l[h];if(o(m)&&c(m.unsubscribe).call(m)===u){e=!0,t=t||[];var y=u.e;y instanceof p?t=t.concat(d(y.errors)):t.push(y)}}if(e)throw new p(t)}},t.prototype.add=function(e){if(!e||e===t.EMPTY)return t.EMPTY;if(e===this)return this;var n=e;switch(typeof e){case"function":n=new t(e);case"object":if(n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if("function"!=typeof n._addParent){var r=n;(n=new t)._subscriptions=[r]}break;default:throw new Error("unrecognized teardown "+e+" added to Subscription.")}return(this._subscriptions||(this._subscriptions=[])).push(n),n._addParent(this),n},t.prototype.remove=function(t){var e=this._subscriptions;if(e){var n=e.indexOf(t);-1!==n&&e.splice(n,1)}},t.prototype._addParent=function(t){var e=this._parent,n=this._parents;e&&e!==t?n?-1===n.indexOf(t)&&n.push(t):this._parents=[t]:this._parent=t},t.EMPTY=((e=new t).closed=!0,e),t}();function d(t){return t.reduce(function(t,e){return t.concat(e instanceof p?e.errors:e)},[])}var m=!1,y={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){m=t},get useDeprecatedSynchronousErrorHandling(){return m}};function g(t){setTimeout(function(){throw t})}var v={closed:!0,next:function(t){},error:function(t){if(y.useDeprecatedSynchronousErrorHandling)throw t;g(t)},complete:function(){}},_="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random(),b=function(t){function e(n,r,i){var o=t.call(this)||this;switch(o.syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,o._parentSubscription=null,arguments.length){case 0:o.destination=v;break;case 1:if(!n){o.destination=v;break}if("object"==typeof n){n instanceof e?(o.syncErrorThrowable=n.syncErrorThrowable,o.destination=n,n.add(o)):(o.syncErrorThrowable=!0,o.destination=new w(o,n));break}default:o.syncErrorThrowable=!0,o.destination=new w(o,n,r,i)}return o}return r.__extends(e,t),e.prototype[_]=function(){return this},e.create=function(t,n,r){var i=new e(t,n,r);return i.syncErrorThrowable=!1,i},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this))},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},e.prototype._unsubscribeAndRecycle=function(){var t=this._parent,e=this._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=t,this._parents=e,this._parentSubscription=null,this},e}(f),w=function(t){function e(e,n,r,i){var o,a=t.call(this)||this;a._parentSubscriber=e;var u=a;return s(n)?o=n:n&&(o=n.next,r=n.error,i=n.complete,n!==v&&(s((u=Object.create(n)).unsubscribe)&&a.add(u.unsubscribe.bind(u)),u.unsubscribe=a.unsubscribe.bind(a))),a._context=u,a._next=o,a._error=r,a._complete=i,a}return r.__extends(e,t),e.prototype.next=function(t){if(!this.isStopped&&this._next){var e=this._parentSubscriber;y.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}},e.prototype.error=function(t){if(!this.isStopped){var e=this._parentSubscriber,n=y.useDeprecatedSynchronousErrorHandling;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):g(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;g(t)}}},e.prototype.complete=function(){var t=this;if(!this.isStopped){var e=this._parentSubscriber;if(this._complete){var n=function(){return t._complete.call(t._context)};y.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},e.prototype.__tryOrUnsub=function(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),y.useDeprecatedSynchronousErrorHandling)throw n;g(n)}},e.prototype.__tryOrSetError=function(t,e,n){if(!y.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,n)}catch(r){return y.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=r,t.syncErrorThrown=!0,!0):(g(r),!0)}return!1},e.prototype._unsubscribe=function(){var t=this._parentSubscriber;this._context=null,this._parentSubscriber=null,t.unsubscribe()},e}(b),E="function"==typeof Symbol&&Symbol.observable||"@@observable";function S(){}function C(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return T(t)}function T(t){return t?1===t.length?t[0]:function(e){return t.reduce(function(t,e){return e(t)},e)}:S}var I=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var r=this.operator,i=function(t,e,n){if(t){if(t instanceof b)return t;if(t[_])return t[_]()}return t||e||n?new b(t,e,n):new b(v)}(t,e,n);if(r?r.call(i,this.source):i.add(this.source||y.useDeprecatedSynchronousErrorHandling&&!i.syncErrorThrowable?this._subscribe(i):this._trySubscribe(i)),y.useDeprecatedSynchronousErrorHandling&&i.syncErrorThrowable&&(i.syncErrorThrowable=!1,i.syncErrorThrown))throw i.syncErrorValue;return i},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){y.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){var e=t.destination;if(t.closed||t.isStopped)return!1;t=e&&e instanceof b?e:null}return!0}(t)?t.error(e):console.warn(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=x(e))(function(e,r){var i;i=n.subscribe(function(e){try{t(e)}catch(n){r(n),i&&i.unsubscribe()}},r,e)})},t.prototype._subscribe=function(t){var e=this.source;return e&&e.subscribe(t)},t.prototype[E]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return 0===t.length?this:T(t)(this)},t.prototype.toPromise=function(t){var e=this;return new(t=x(t))(function(t,n){var r;e.subscribe(function(t){return r=t},function(t){return n(t)},function(){return t(r)})})},t.create=function(e){return new t(e)},t}();function x(t){if(t||(t=y.Promise||Promise),!t)throw new Error("no Promise impl found");return t}function k(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}k.prototype=Object.create(Error.prototype);var A=k,O=function(t){function e(e,n){var r=t.call(this)||this;return r.subject=e,r.subscriber=n,r.closed=!1,r}return r.__extends(e,t),e.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var t=this.subject,e=t.observers;if(this.subject=null,e&&0!==e.length&&!t.isStopped&&!t.closed){var n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}},e}(f),N=function(t){function e(e){var n=t.call(this,e)||this;return n.destination=e,n}return r.__extends(e,t),e}(b),D=function(t){function e(){var e=t.call(this)||this;return e.observers=[],e.closed=!1,e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return r.__extends(e,t),e.prototype[_]=function(){return new N(this)},e.prototype.lift=function(t){var e=new R(this,this);return e.operator=t,e},e.prototype.next=function(t){if(this.closed)throw new A;if(!this.isStopped)for(var e=this.observers,n=e.length,r=e.slice(),i=0;i<n;i++)r[i].next(t)},e.prototype.error=function(t){if(this.closed)throw new A;this.hasError=!0,this.thrownError=t,this.isStopped=!0;for(var e=this.observers,n=e.length,r=e.slice(),i=0;i<n;i++)r[i].error(t);this.observers.length=0},e.prototype.complete=function(){if(this.closed)throw new A;this.isStopped=!0;for(var t=this.observers,e=t.length,n=t.slice(),r=0;r<e;r++)n[r].complete();this.observers.length=0},e.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},e.prototype._trySubscribe=function(e){if(this.closed)throw new A;return t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){if(this.closed)throw new A;return this.hasError?(t.error(this.thrownError),f.EMPTY):this.isStopped?(t.complete(),f.EMPTY):(this.observers.push(t),new O(this,t))},e.prototype.asObservable=function(){var t=new I;return t.source=this,t},e.create=function(t,e){return new R(t,e)},e}(I),R=function(t){function e(e,n){var r=t.call(this)||this;return r.destination=e,r.source=n,r}return r.__extends(e,t),e.prototype.next=function(t){var e=this.destination;e&&e.next&&e.next(t)},e.prototype.error=function(t){var e=this.destination;e&&e.error&&this.destination.error(t)},e.prototype.complete=function(){var t=this.destination;t&&t.complete&&this.destination.complete()},e.prototype._subscribe=function(t){return this.source?this.source.subscribe(t):f.EMPTY},e}(D);function P(t){return t&&"function"==typeof t.schedule}var M=function(t){function e(e,n,r){var i=t.call(this)||this;return i.parent=e,i.outerValue=n,i.outerIndex=r,i.index=0,i}return r.__extends(e,t),e.prototype._next=function(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)},e.prototype._error=function(t){this.parent.notifyError(t,this),this.unsubscribe()},e.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},e}(b),L=function(t){return function(e){for(var n=0,r=t.length;n<r&&!e.closed;n++)e.next(t[n]);e.closed||e.complete()}},F=function(t){return function(e){return t.then(function(t){e.closed||(e.next(t),e.complete())},function(t){return e.error(t)}).then(null,g),e}};function j(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}var U=j(),V=function(t){return function(e){for(var n=t[U]();;){var r=n.next();if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return"function"==typeof n.return&&e.add(function(){n.return&&n.return()}),e}},q=function(t){return function(e){var n=t[E]();if("function"!=typeof n.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return n.subscribe(e)}},B=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t};function H(t){return t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}var z=function(t){if(t instanceof I)return function(e){return t._isScalar?(e.next(t.value),void e.complete()):t.subscribe(e)};if(t&&"function"==typeof t[E])return q(t);if(B(t))return L(t);if(H(t))return F(t);if(t&&"function"==typeof t[U])return V(t);var e=o(t)?"an invalid object":"'"+t+"'";throw new TypeError("You provided "+e+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")};function W(t,e,n,r,i){if(void 0===i&&(i=new M(t,n,r)),!i.closed)return z(e)(i)}var Q=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e.prototype.notifyNext=function(t,e,n,r,i){this.destination.next(e)},e.prototype.notifyError=function(t,e){this.destination.error(t)},e.prototype.notifyComplete=function(t){this.destination.complete()},e}(b);function K(t,e){return function(n){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new G(t,e))}}var G=function(){function t(t,e){this.project=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new Y(t,this.project,this.thisArg))},t}(),Y=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.project=n,i.count=0,i.thisArg=r||i,i}return r.__extends(e,t),e.prototype._next=function(t){var e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)},e}(b);function X(t,e){return new I(e?function(n){var r=new f,i=0;return r.add(e.schedule(function(){i!==t.length?(n.next(t[i++]),n.closed||r.add(this.schedule())):n.complete()})),r}:L(t))}function J(t,e){if(!e)return t instanceof I?t:new I(z(t));if(null!=t){if(function(t){return t&&"function"==typeof t[E]}(t))return function(t,e){return new I(e?function(n){var r=new f;return r.add(e.schedule(function(){var i=t[E]();r.add(i.subscribe({next:function(t){r.add(e.schedule(function(){return n.next(t)}))},error:function(t){r.add(e.schedule(function(){return n.error(t)}))},complete:function(){r.add(e.schedule(function(){return n.complete()}))}}))})),r}:q(t))}(t,e);if(H(t))return function(t,e){return new I(e?function(n){var r=new f;return r.add(e.schedule(function(){return t.then(function(t){r.add(e.schedule(function(){n.next(t),r.add(e.schedule(function(){return n.complete()}))}))},function(t){r.add(e.schedule(function(){return n.error(t)}))})})),r}:F(t))}(t,e);if(B(t))return X(t,e);if(function(t){return t&&"function"==typeof t[U]}(t)||"string"==typeof t)return function(t,e){if(!t)throw new Error("Iterable cannot be null");return new I(e?function(n){var r,i=new f;return i.add(function(){r&&"function"==typeof r.return&&r.return()}),i.add(e.schedule(function(){r=t[U](),i.add(e.schedule(function(){if(!n.closed){var t,e;try{var i=r.next();t=i.value,e=i.done}catch(o){return void n.error(o)}e?n.complete():(n.next(t),this.schedule())}}))})),i}:V(t))}(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}function Z(t,e,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"function"==typeof e?function(r){return r.pipe(Z(function(n,r){return J(t(n,r)).pipe(K(function(t,i){return e(n,t,r,i)}))},n))}:("number"==typeof e&&(n=e),function(e){return e.lift(new $(t,n))})}var $=function(){function t(t,e){void 0===e&&(e=Number.POSITIVE_INFINITY),this.project=t,this.concurrent=e}return t.prototype.call=function(t,e){return e.subscribe(new tt(t,this.project,this.concurrent))},t}(),tt=function(t){function e(e,n,r){void 0===r&&(r=Number.POSITIVE_INFINITY);var i=t.call(this,e)||this;return i.project=n,i.concurrent=r,i.hasCompleted=!1,i.buffer=[],i.active=0,i.index=0,i}return r.__extends(e,t),e.prototype._next=function(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)},e.prototype._tryNext=function(t){var e,n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this.active++,this._innerSub(e,t,n)},e.prototype._innerSub=function(t,e,n){var r=new M(this,void 0,void 0);this.destination.add(r),W(this,t,e,n,r)},e.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()},e.prototype.notifyNext=function(t,e,n,r,i){this.destination.next(e)},e.prototype.notifyComplete=function(t){var e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(Q);function et(t){return t}function nt(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),Z(et,t)}function rt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=Number.POSITIVE_INFINITY,r=null,i=t[t.length-1];return P(i)?(r=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof i&&(n=t.pop()),null===r&&1===t.length&&t[0]instanceof I?t[0]:nt(n)(X(t,r))}function it(){return function(t){return t.lift(new ot(t))}}var ot=function(){function t(t){this.connectable=t}return t.prototype.call=function(t,e){var n=this.connectable;n._refCount++;var r=new st(t,n),i=e.subscribe(r);return r.closed||(r.connection=n.connect()),i},t}(),st=function(t){function e(e,n){var r=t.call(this,e)||this;return r.connectable=n,r}return r.__extends(e,t),e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._refCount;if(e<=0)this.connection=null;else if(t._refCount=e-1,e>1)this.connection=null;else{var n=this.connection,r=t._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},e}(b),at=function(t){function e(e,n){var r=t.call(this)||this;return r.source=e,r.subjectFactory=n,r._refCount=0,r._isComplete=!1,r}return r.__extends(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var t=this._connection;return t||(this._isComplete=!1,(t=this._connection=new f).add(this.source.subscribe(new lt(this.getSubject(),this))),t.closed?(this._connection=null,t=f.EMPTY):this._connection=t),t},e.prototype.refCount=function(){return it()(this)},e}(I).prototype,ut={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:at._subscribe},_isComplete:{value:at._isComplete,writable:!0},getSubject:{value:at.getSubject},connect:{value:at.connect},refCount:{value:at.refCount}},lt=function(t){function e(e,n){var r=t.call(this,e)||this;return r.connectable=n,r}return r.__extends(e,t),e.prototype._error=function(e){this._unsubscribe(),t.prototype._error.call(this,e)},e.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}},e}(N);function ct(){return new D}function ht(){return function(t){return it()((e=ct,function(t){var n;n="function"==typeof e?e:function(){return e};var r=Object.create(t,ut);return r.source=t,r.subjectFactory=n,r})(t));var e}}function pt(t){for(var e in t)if(t[e]===pt)return e;throw Error("Could not find renamed property on target object.")}function ft(t,e){for(var n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n])}var dt=pt({ngInjectableDef:pt}),mt=pt({ngBaseDef:pt});function yt(t){return{providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function gt(t){return t&&t.hasOwnProperty(dt)?t[dt]:null}var vt=function(){function t(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.ngInjectableDef=void 0!==e?yt({providedIn:e.providedIn||"root",factory:e.factory}):void 0}return t.prototype.toString=function(){return"InjectionToken "+this._desc},t}(),_t="__parameters__",bt="__prop__metadata__";function wt(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(t){var i=t.apply(void 0,Object(r.__spread)(e));for(var o in i)this[o]=i[o]}}}function Et(t,e,n){var i=wt(e);function o(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(this instanceof o)return i.apply(this,e),this;var s=new((t=o).bind.apply(t,Object(r.__spread)([void 0],e)));return a.annotation=s,a;function a(t,e,n){for(var r=t.hasOwnProperty(_t)?t[_t]:Object.defineProperty(t,_t,{value:[]})[_t];r.length<=n;)r.push(null);return(r[n]=r[n]||[]).push(s),t}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o}function St(t,e,n,i){var o=wt(e);function s(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(this instanceof s)return o.apply(this,e),this;var a=new((t=s).bind.apply(t,Object(r.__spread)([void 0],e)));return function(t,n){var o=t.constructor,s=o.hasOwnProperty(bt)?o[bt]:Object.defineProperty(o,bt,{value:{}})[bt];s[n]=s.hasOwnProperty(n)&&s[n]||[],s[n].unshift(a),i&&i.apply(void 0,Object(r.__spread)([t,n],e))}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s}var Ct=new vt("AnalyzeForEntryComponents"),Tt="undefined"!=typeof window&&window,It="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,xt="undefined"!=typeof global&&global||Tt||It,kt=Promise.resolve(0),At=null;function Ot(){if(!At){var t=xt.Symbol;if(t&&t.iterator)At=t.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),n=0;n<e.length;++n){var r=e[n];"entries"!==r&&"size"!==r&&Map.prototype[r]===Map.prototype.entries&&(At=r)}}return At}function Nt(t){"undefined"==typeof Zone?kt.then(function(){t&&t.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",t)}function Dt(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}function Rt(t){if("string"==typeof t)return t;if(t instanceof Array)return"["+t.map(Rt).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return""+t.overriddenName;if(t.name)return""+t.name;var e=t.toString();if(null==e)return""+e;var n=e.indexOf("\n");return-1===n?e:e.substring(0,n)}var Pt=pt({__forward_ref__:pt});function Mt(t){return t.__forward_ref__=Mt,t.toString=function(){return Rt(this())},t}function Lt(t){var e=t;return"function"==typeof e&&e.hasOwnProperty(Pt)&&e.__forward_ref__===Mt?e():t}var Ft,jt=function(t){return t[t.Emulated=0]="Emulated",t[t.Native=1]="Native",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom",t}({}),Ut=Et("Inject",function(t){return{token:t}}),Vt=Et("Optional"),qt=Et("Self"),Bt=Et("SkipSelf"),Ht=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}({}),zt=void 0;function Wt(t){var e=zt;return zt=t,e}function Qt(t,e){return void 0===e&&(e=Ht.Default),(Ft||function(t,e){if(void 0===e&&(e=Ht.Default),void 0===zt)throw new Error("inject() must be called from an injection context");return null===zt?function(t,e,n){var r=gt(t);if(r&&"root"==r.providedIn)return void 0===r.value?r.value=r.factory():r.value;if(n&Ht.Optional)return null;throw new Error("Injector: NOT_FOUND ["+Rt(t)+"]")}(t,0,e):zt.get(t,e&Ht.Optional?null:void 0,e)})(t,e)}var Kt=/([A-Z])/g;function Gt(t){try{return null!=t?t.toString().slice(0,30):t}catch(e){return"[ERROR] Exception while trying to serialize the value"}}function Yt(t,e){var n=Zt(t),r=Zt(e);return n&&r?function(t,e,n){for(var r=t[Ot()](),i=e[Ot()]();;){var o=r.next(),s=i.next();if(o.done&&s.done)return!0;if(o.done||s.done)return!1;if(!n(o.value,s.value))return!1}}(t,e,Yt):!(n||!t||"object"!=typeof t&&"function"!=typeof t||r||!e||"object"!=typeof e&&"function"!=typeof e)||Dt(t,e)}var Xt=function(){function t(t){this.wrapped=t}return t.wrap=function(e){return new t(e)},t.unwrap=function(e){return t.isWrapped(e)?e.wrapped:e},t.isWrapped=function(e){return e instanceof t},t}(),Jt=function(){function t(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}return t.prototype.isFirstChange=function(){return this.firstChange},t}();function Zt(t){return!!$t(t)&&(Array.isArray(t)||!(t instanceof Map)&&Ot()in t)}function $t(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function te(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e]}var ee="__source",ne=new Object,re=new vt("INJECTOR"),ie=function(){function t(){}return t.prototype.get=function(t,e){if(void 0===e&&(e=ne),e===ne)throw new Error("NullInjectorError: No provider for "+Rt(t)+"!");return e},t}(),oe=function(){function t(){}return t.create=function(t,e){return Array.isArray(t)?new me(t,e):new me(t.providers,t.parent,t.name||null)},t.THROW_IF_NOT_FOUND=ne,t.NULL=new ie,t.ngInjectableDef=yt({providedIn:"any",factory:function(){return Qt(re)}}),t.__NG_ELEMENT_ID__=function(){return se()},t}(),se=te,ae=function(t){return t},ue=[],le=ae,ce=function(){return Array.prototype.slice.call(arguments)},he=pt({provide:String,useValue:pt}),pe=oe.NULL,fe=/\n/gm,de="\u0275",me=function(){function t(t,e,n){void 0===e&&(e=pe),void 0===n&&(n=null),this.parent=e,this.source=n;var r=this._records=new Map;r.set(oe,{token:oe,fn:ae,deps:ue,value:this,useNew:!1}),r.set(re,{token:re,fn:ae,deps:ue,value:this,useNew:!1}),function t(e,n){if(n)if((n=Lt(n))instanceof Array)for(var r=0;r<n.length;r++)t(e,n[r]);else{if("function"==typeof n)throw ve("Function/Class not supported",n);if(!n||"object"!=typeof n||!n.provide)throw ve("Unexpected provider",n);var i=Lt(n.provide),o=function(t){var e=function(t){var e=ue,n=t.deps;if(n&&n.length){e=[];for(var r=0;r<n.length;r++){var i=6;if((u=Lt(n[r]))instanceof Array)for(var o=0,s=u;o<s.length;o++){var a=s[o];a instanceof Vt||a==Vt?i|=1:a instanceof Bt||a==Bt?i&=-3:a instanceof qt||a==qt?i&=-5:u=a instanceof Ut?a.token:Lt(a)}e.push({token:u,options:i})}}else if(t.useExisting){var u;e=[{token:u=Lt(t.useExisting),options:6}]}else if(!(n||he in t))throw ve("'deps' required",t);return e}(t),n=ae,r=ue,i=!1,o=Lt(t.provide);if(he in t)r=t.useValue;else if(t.useFactory)n=t.useFactory;else if(t.useExisting);else if(t.useClass)i=!0,n=Lt(t.useClass);else{if("function"!=typeof o)throw ve("StaticProvider does not have [useValue|useFactory|useExisting|useClass] or [provide] is not newable",t);i=!0,n=o}return{deps:e,fn:n,useNew:i,value:r}}(n);if(!0===n.multi){var s=e.get(i);if(s){if(s.fn!==ce)throw ye(i)}else e.set(i,s={token:n.provide,deps:[],useNew:!1,fn:ce,value:ue});s.deps.push({token:i=n,options:6})}var a=e.get(i);if(a&&a.fn==ce)throw ye(i);e.set(i,o)}}(r,t)}return t.prototype.get=function(t,e,n){void 0===n&&(n=Ht.Default);var i=this._records.get(t);try{return function t(e,n,i,o,s,a){try{return function(e,n,i,o,s,a){var u,l;if(!n||a&Ht.SkipSelf)a&Ht.Self||(l=o.get(e,s,Ht.Default));else{if((l=n.value)==le)throw Error(de+"Circular dependency");if(l===ue){n.value=le;var c=n.useNew,h=n.fn,p=n.deps,f=ue;if(p.length){f=[];for(var d=0;d<p.length;d++){var m=p[d],y=m.options,g=2&y?i.get(m.token):void 0;f.push(t(m.token,g,i,g||4&y?o:pe,1&y?null:oe.THROW_IF_NOT_FOUND,Ht.Default))}}n.value=l=c?new((u=h).bind.apply(u,Object(r.__spread)([void 0],f))):h.apply(void 0,f)}}return l}(e,n,i,o,s,a)}catch(u){throw u instanceof Error||(u=new Error(u)),(u.ngTempTokenPath=u.ngTempTokenPath||[]).unshift(e),n&&n.value==le&&(n.value=ue),u}}(t,i,this._records,this.parent,e,n)}catch(s){var o=s.ngTempTokenPath;throw t[ee]&&o.unshift(t[ee]),s.message=ge("\n"+s.message,o,this.source),s.ngTokenPath=o,s.ngTempTokenPath=null,s}},t.prototype.toString=function(){var t=[];return this._records.forEach(function(e,n){return t.push(Rt(n))}),"StaticInjector["+t.join(", ")+"]"},t}();function ye(t){return ve("Cannot mix multi providers and regular providers",t)}function ge(t,e,n){void 0===n&&(n=null),t=t&&"\n"===t.charAt(0)&&t.charAt(1)==de?t.substr(2):t;var r=Rt(e);if(e instanceof Array)r=e.map(Rt).join(" -> ");else if("object"==typeof e){var i=[];for(var o in e)if(e.hasOwnProperty(o)){var s=e[o];i.push(o+":"+("string"==typeof s?JSON.stringify(s):Rt(s)))}r="{"+i.join(", ")+"}"}return"StaticInjectorError"+(n?"("+n+")":"")+"["+r+"]: "+t.replace(fe,"\n  ")}function ve(t,e){return new Error(ge(t,e))}var _e=new vt("The presence of this token marks an injector as being the root injector."),be=function(){return function(){}}(),we=function(){return function(){}}();function Ee(t){var e=Error("No component factory found for "+Rt(t)+". Did you add it to @NgModule.entryComponents?");return e[Se]=t,e}var Se="ngComponent",Ce=function(){function t(){}return t.prototype.resolveComponentFactory=function(t){throw Ee(t)},t}(),Te=function(){function t(){}return t.NULL=new Ce,t}(),Ie=function(){function t(t,e,n){this._parent=e,this._ngModule=n,this._factories=new Map;for(var r=0;r<t.length;r++){var i=t[r];this._factories.set(i.componentType,i)}}return t.prototype.resolveComponentFactory=function(t){var e=this._factories.get(t);if(!e&&this._parent&&(e=this._parent.resolveComponentFactory(t)),!e)throw Ee(t);return new xe(e,this._ngModule)},t}(),xe=function(t){function e(e,n){var r=t.call(this)||this;return r.factory=e,r.ngModule=n,r.selector=e.selector,r.componentType=e.componentType,r.ngContentSelectors=e.ngContentSelectors,r.inputs=e.inputs,r.outputs=e.outputs,r}return Object(r.__extends)(e,t),e.prototype.create=function(t,e,n,r){return this.factory.create(t,e,n,r||this.ngModule)},e}(we),ke=function(){return function(){}}(),Ae=function(){return function(){}}(),Oe=function(){function t(t){this.nativeElement=t}return t.__NG_ELEMENT_ID__=function(){return Ne(t)},t}(),Ne=te,De=function(){return function(){}}(),Re=function(){return function(){}}(),Pe=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}({}),Me=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return Le()},t}(),Le=te,Fe=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}({}),je=function(){return function(){}}(),Ue=new(function(){return function(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}())("7.2.12"),Ve=!0,qe=!1;function Be(){return qe=!0,Ve}var He=function(){function t(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),this.inertBodyElement=this.inertDocument.body,null==this.inertBodyElement){var e=this.inertDocument.createElement("html");this.inertDocument.appendChild(e),this.inertBodyElement=this.inertDocument.createElement("body"),e.appendChild(this.inertBodyElement)}this.inertBodyElement.innerHTML='<svg><g onload="this.parentNode.remove()"></g></svg>',!this.inertBodyElement.querySelector||this.inertBodyElement.querySelector("svg")?(this.inertBodyElement.innerHTML='<svg><p><style><img src="</style><img src=x onerror=alert(1)//">',this.getInertBodyElement=this.inertBodyElement.querySelector&&this.inertBodyElement.querySelector("svg img")&&function(){try{return!!window.DOMParser}catch(t){return!1}}()?this.getInertBodyElement_DOMParser:this.getInertBodyElement_InertDocument):this.getInertBodyElement=this.getInertBodyElement_XHR}return t.prototype.getInertBodyElement_XHR=function(t){t="<body><remove></remove>"+t+"</body>";try{t=encodeURI(t)}catch(r){return null}var e=new XMLHttpRequest;e.responseType="document",e.open("GET","data:text/html;charset=utf-8,"+t,!1),e.send(void 0);var n=e.response.body;return n.removeChild(n.firstChild),n},t.prototype.getInertBodyElement_DOMParser=function(t){t="<body><remove></remove>"+t+"</body>";try{var e=(new window.DOMParser).parseFromString(t,"text/html").body;return e.removeChild(e.firstChild),e}catch(n){return null}},t.prototype.getInertBodyElement_InertDocument=function(t){var e=this.inertDocument.createElement("template");return"content"in e?(e.innerHTML=t,e):(this.inertBodyElement.innerHTML=t,this.defaultDoc.documentMode&&this.stripCustomNsAttrs(this.inertBodyElement),this.inertBodyElement)},t.prototype.stripCustomNsAttrs=function(t){for(var e=t.attributes,n=e.length-1;0<n;n--){var r=e.item(n).name;"xmlns:ns1"!==r&&0!==r.indexOf("ns1:")||t.removeAttribute(r)}for(var i=t.firstChild;i;)i.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(i),i=i.nextSibling},t}(),ze=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,We=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;function Qe(t){return(t=String(t)).match(ze)||t.match(We)?t:(Be()&&console.warn("WARNING: sanitizing unsafe URL value "+t+" (see http://g.co/ng/security#xss)"),"unsafe:"+t)}function Ke(t){var e,n,i={};try{for(var o=Object(r.__values)(t.split(",")),s=o.next();!s.done;s=o.next())i[s.value]=!0}catch(a){e={error:a}}finally{try{s&&!s.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}return i}function Ge(){for(var t,e,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var o={};try{for(var s=Object(r.__values)(n),a=s.next();!a.done;a=s.next()){var u=a.value;for(var l in u)u.hasOwnProperty(l)&&(o[l]=!0)}}catch(c){t={error:c}}finally{try{a&&!a.done&&(e=s.return)&&e.call(s)}finally{if(t)throw t.error}}return o}var Ye,Xe=Ke("area,br,col,hr,img,wbr"),Je=Ke("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Ze=Ke("rp,rt"),$e=Ge(Ze,Je),tn=Ge(Xe,Ge(Je,Ke("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),Ge(Ze,Ke("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),$e),en=Ke("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),nn=Ke("srcset"),rn=Ge(en,nn,Ke("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width")),on=Ke("script,style,template"),sn=function(){function t(){this.sanitizedSomething=!1,this.buf=[]}return t.prototype.sanitizeChildren=function(t){for(var e=t.firstChild,n=!0;e;)if(e.nodeType===Node.ELEMENT_NODE?n=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,n&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);var r=this.checkClobberedElement(e,e.nextSibling);if(r){e=r;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")},t.prototype.startElement=function(t){var e,n=t.nodeName.toLowerCase();if(!tn.hasOwnProperty(n))return this.sanitizedSomething=!0,!on.hasOwnProperty(n);this.buf.push("<"),this.buf.push(n);for(var r=t.attributes,i=0;i<r.length;i++){var o=r.item(i),s=o.name,a=s.toLowerCase();if(rn.hasOwnProperty(a)){var u=o.value;en[a]&&(u=Qe(u)),nn[a]&&(e=u,u=(e=String(e)).split(",").map(function(t){return Qe(t.trim())}).join(", ")),this.buf.push(" ",s,'="',ln(u),'"')}else this.sanitizedSomething=!0}return this.buf.push(">"),!0},t.prototype.endElement=function(t){var e=t.nodeName.toLowerCase();tn.hasOwnProperty(e)&&!Xe.hasOwnProperty(e)&&(this.buf.push("</"),this.buf.push(e),this.buf.push(">"))},t.prototype.chars=function(t){this.buf.push(ln(t))},t.prototype.checkClobberedElement=function(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},t}(),an=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,un=/([^\#-~ |!])/g;function ln(t){return t.replace(/&/g,"&amp;").replace(an,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(un,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function cn(t){return"content"in t&&function(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var hn=function(t){function e(e){void 0===e&&(e=!1);var n=t.call(this)||this;return n.__isAsync=e,n}return Object(r.__extends)(e,t),e.prototype.emit=function(e){t.prototype.next.call(this,e)},e.prototype.subscribe=function(e,n,r){var i,o=function(t){return null},s=function(){return null};e&&"object"==typeof e?(i=this.__isAsync?function(t){setTimeout(function(){return e.next(t)})}:function(t){e.next(t)},e.error&&(o=this.__isAsync?function(t){setTimeout(function(){return e.error(t)})}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout(function(){return e.complete()})}:function(){e.complete()})):(i=this.__isAsync?function(t){setTimeout(function(){return e(t)})}:function(t){e(t)},n&&(o=this.__isAsync?function(t){setTimeout(function(){return n(t)})}:function(t){n(t)}),r&&(s=this.__isAsync?function(){setTimeout(function(){return r()})}:function(){r()}));var a=t.prototype.subscribe.call(this,i,o,s);return e instanceof f&&e.add(a),a},e}(D),pn=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return fn(t,Oe)},t}(),fn=te,dn=new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:calc|attr))\\([-0-9.%, #a-zA-Z]+\\))$","g"),mn=/^url\(([^)]+)\)$/,yn=function(){return function(){}}(),gn=St("Input",function(t){return{bindingPropertyName:t}},void 0,function(t){return function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=t.constructor;i.hasOwnProperty(mt)||function(t){var e=t.constructor,n=e.ngBaseDef,r=e.ngBaseDef={inputs:{},outputs:{},declaredInputs:{}};n&&(ft(r.inputs,n.inputs),ft(r.outputs,n.outputs),ft(r.declaredInputs,n.declaredInputs))}(t),(function(t){return t.inputs||{}}(i.ngBaseDef))[e]=n[0]}}()),vn=St("HostBinding",function(t){return{hostPropertyName:t}}),_n="ngDebugContext",bn="ngOriginalError",wn="ngErrorLogger";function En(t){return t[_n]}function Sn(t){return t[bn]}function Cn(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];t.error.apply(t,Object(r.__spread)(e))}var Tn=function(){function t(){this._console=console}return t.prototype.handleError=function(t){var e=this._findOriginalError(t),n=this._findContext(t),r=function(t){return t[wn]||Cn}(t);r(this._console,"ERROR",t),e&&r(this._console,"ORIGINAL ERROR",e),n&&r(this._console,"ERROR CONTEXT",n)},t.prototype._findContext=function(t){return t?En(t)?En(t):this._findContext(Sn(t)):null},t.prototype._findOriginalError=function(t){for(var e=Sn(t);e&&Sn(e);)e=Sn(e);return e},t}();function In(t){return!!t&&"function"==typeof t.then}function xn(t){return!!t&&"function"==typeof t.subscribe}var kn=new vt("Application Initializer"),An=function(){function t(t){var e=this;this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise(function(t,n){e.resolve=t,e.reject=n})}return t.prototype.runInitializers=function(){var t=this;if(!this.initialized){var e=[],n=function(){t.done=!0,t.resolve()};if(this.appInits)for(var r=0;r<this.appInits.length;r++){var i=this.appInits[r]();In(i)&&e.push(i)}Promise.all(e).then(function(){n()}).catch(function(e){t.reject(e)}),0===e.length&&n(),this.initialized=!0}},t}(),On=new vt("AppId");function Nn(){return""+Dn()+Dn()+Dn()}function Dn(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var Rn=new vt("Platform Initializer"),Pn=new vt("Platform ID"),Mn=new vt("appBootstrapListener"),Ln=function(){function t(){}return t.prototype.log=function(t){console.log(t)},t.prototype.warn=function(t){console.warn(t)},t}();function Fn(){throw new Error("Runtime compiler is not loaded")}var jn,Un,Vn=Fn,qn=Fn,Bn=Fn,Hn=Fn,zn=function(){function t(){this.compileModuleSync=Vn,this.compileModuleAsync=qn,this.compileModuleAndAllComponentsSync=Bn,this.compileModuleAndAllComponentsAsync=Hn}return t.prototype.clearCache=function(){},t.prototype.clearCacheFor=function(t){},t.prototype.getModuleId=function(t){},t}(),Wn=function(){return function(){}}();function Qn(){var t=xt.wtf;return!(!t||!(jn=t.trace)||(Un=jn.events,0))}var Kn=Qn();function Gn(t,e){return null}var Yn=Kn?function(t,e){return void 0===e&&(e=null),Un.createScope(t,e)}:function(t,e){return Gn},Xn=Kn?function(t,e){return jn.leaveScope(t,e),e}:function(t,e){return e},Jn=function(){function t(t){var e,n=t.enableLongStackTrace,r=void 0!==n&&n;if(this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new hn(!1),this.onMicrotaskEmpty=new hn(!1),this.onStable=new hn(!1),this.onError=new hn(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),r&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),(e=this)._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:function(t,n,r,i,o,s){try{return er(e),t.invokeTask(r,i,o,s)}finally{nr(e)}},onInvoke:function(t,n,r,i,o,s,a){try{return er(e),t.invoke(r,i,o,s,a)}finally{nr(e)}},onHasTask:function(t,n,r,i){t.hasTask(r,i),n===r&&("microTask"==i.change?(e.hasPendingMicrotasks=i.microTask,tr(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:function(t,n,r,i){return t.handleError(r,i),e.runOutsideAngular(function(){return e.onError.emit(i)}),!1}})}return t.isInAngularZone=function(){return!0===Zone.current.get("isAngularZone")},t.assertInAngularZone=function(){if(!t.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")},t.assertNotInAngularZone=function(){if(t.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")},t.prototype.run=function(t,e,n){return this._inner.run(t,e,n)},t.prototype.runTask=function(t,e,n,r){var i=this._inner,o=i.scheduleEventTask("NgZoneEvent: "+r,t,$n,Zn,Zn);try{return i.runTask(o,e,n)}finally{i.cancelTask(o)}},t.prototype.runGuarded=function(t,e,n){return this._inner.runGuarded(t,e,n)},t.prototype.runOutsideAngular=function(t){return this._outer.run(t)},t}();function Zn(){}var $n={};function tr(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(function(){return t.onStable.emit(null)})}finally{t.isStable=!0}}}function er(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function nr(t){t._nesting--,tr(t)}var rr,ir=function(){function t(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new hn,this.onMicrotaskEmpty=new hn,this.onStable=new hn,this.onError=new hn}return t.prototype.run=function(t){return t()},t.prototype.runGuarded=function(t){return t()},t.prototype.runOutsideAngular=function(t){return t()},t.prototype.runTask=function(t){return t()},t}(),or=function(){function t(t){var e=this;this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(function(){e.taskTrackingZone="undefined"==typeof Zone?null:Zone.current.get("TaskTrackingZone")})}return t.prototype._watchAngularEvents=function(){var t=this;this._ngZone.onUnstable.subscribe({next:function(){t._didWork=!0,t._isZoneStable=!1}}),this._ngZone.runOutsideAngular(function(){t._ngZone.onStable.subscribe({next:function(){Jn.assertNotInAngularZone(),Nt(function(){t._isZoneStable=!0,t._runCallbacksIfReady()})}})})},t.prototype.increasePendingRequestCount=function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount},t.prototype.decreasePendingRequestCount=function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount},t.prototype.isStable=function(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks},t.prototype._runCallbacksIfReady=function(){var t=this;if(this.isStable())Nt(function(){for(;0!==t._callbacks.length;){var e=t._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(t._didWork)}t._didWork=!1});else{var e=this.getPendingTasks();this._callbacks=this._callbacks.filter(function(t){return!t.updateCb||!t.updateCb(e)||(clearTimeout(t.timeoutId),!1)}),this._didWork=!0}},t.prototype.getPendingTasks=function(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(function(t){return{source:t.source,creationLocation:t.creationLocation,data:t.data}}):[]},t.prototype.addCallback=function(t,e,n){var r=this,i=-1;e&&e>0&&(i=setTimeout(function(){r._callbacks=r._callbacks.filter(function(t){return t.timeoutId!==i}),t(r._didWork,r.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:i,updateCb:n})},t.prototype.whenStable=function(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()},t.prototype.getPendingRequestCount=function(){return this._pendingCount},t.prototype.findProviders=function(t,e,n){return[]},t}(),sr=function(){function t(){this._applications=new Map,ar.addToWindow(this)}return t.prototype.registerApplication=function(t,e){this._applications.set(t,e)},t.prototype.unregisterApplication=function(t){this._applications.delete(t)},t.prototype.unregisterAllApplications=function(){this._applications.clear()},t.prototype.getTestability=function(t){return this._applications.get(t)||null},t.prototype.getAllTestabilities=function(){return Array.from(this._applications.values())},t.prototype.getAllRootElements=function(){return Array.from(this._applications.keys())},t.prototype.findTestabilityInTree=function(t,e){return void 0===e&&(e=!0),ar.findTestabilityInTree(this,t,e)},Object(r.__decorate)([Object(r.__metadata)("design:paramtypes",[])],t)}(),ar=new(function(){function t(){}return t.prototype.addToWindow=function(t){},t.prototype.findTestabilityInTree=function(t,e,n){return null},t}()),ur=new vt("AllowMultipleToken"),lr=function(){return function(t,e){this.name=t,this.token=e}}();function cr(t,e,n){void 0===n&&(n=[]);var r="Platform: "+e,i=new vt(r);return function(e){void 0===e&&(e=[]);var o=hr();if(!o||o.injector.get(ur,!1))if(t)t(n.concat(e).concat({provide:i,useValue:!0}));else{var s=n.concat(e).concat({provide:i,useValue:!0});!function(t){if(rr&&!rr.destroyed&&!rr.injector.get(ur,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");rr=t.get(pr);var e=t.get(Rn,null);e&&e.forEach(function(t){return t()})}(oe.create({providers:s,name:r}))}return function(t){var e=hr();if(!e)throw new Error("No platform exists!");if(!e.injector.get(t,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return e}(i)}}function hr(){return rr&&!rr.destroyed?rr:null}var pr=function(){function t(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return t.prototype.bootstrapModuleFactory=function(t,e){var n,r=this,i="noop"===(n=e?e.ngZone:void 0)?new ir:("zone.js"===n?void 0:n)||new Jn({enableLongStackTrace:Be()}),o=[{provide:Jn,useValue:i}];return i.run(function(){var e=oe.create({providers:o,parent:r.injector,name:t.moduleType.name}),n=t.create(e),s=n.injector.get(Tn,null);if(!s)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return n.onDestroy(function(){return mr(r._modules,n)}),i.runOutsideAngular(function(){return i.onError.subscribe({next:function(t){s.handleError(t)}})}),function(t,e,i){try{var o=((s=n.injector.get(An)).runInitializers(),s.donePromise.then(function(){return r._moduleDoBootstrap(n),n}));return In(o)?o.catch(function(n){throw e.runOutsideAngular(function(){return t.handleError(n)}),n}):o}catch(a){throw e.runOutsideAngular(function(){return t.handleError(a)}),a}var s}(s,i)})},t.prototype.bootstrapModule=function(t,e){var n=this;void 0===e&&(e=[]);var r=fr({},e);return function(t,e,n){return t.get(Wn).createCompiler([e]).compileModuleAsync(n)}(this.injector,r,t).then(function(t){return n.bootstrapModuleFactory(t,r)})},t.prototype._moduleDoBootstrap=function(t){var e=t.injector.get(dr);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(function(t){return e.bootstrap(t)});else{if(!t.instance.ngDoBootstrap)throw new Error("The module "+Rt(t.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');t.instance.ngDoBootstrap(e)}this._modules.push(t)},t.prototype.onDestroy=function(t){this._destroyListeners.push(t)},Object.defineProperty(t.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(function(t){return t.destroy()}),this._destroyListeners.forEach(function(t){return t()}),this._destroyed=!0},Object.defineProperty(t.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),t}();function fr(t,e){return Array.isArray(e)?e.reduce(fr,t):Object(r.__assign)({},t,e)}var dr=function(){function t(t,e,n,r,i,o){var s=this;this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=r,this._componentFactoryResolver=i,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Be(),this._zone.onMicrotaskEmpty.subscribe({next:function(){s._zone.run(function(){s.tick()})}});var a=new I(function(t){s._stable=s._zone.isStable&&!s._zone.hasPendingMacrotasks&&!s._zone.hasPendingMicrotasks,s._zone.runOutsideAngular(function(){t.next(s._stable),t.complete()})}),u=new I(function(t){var e;s._zone.runOutsideAngular(function(){e=s._zone.onStable.subscribe(function(){Jn.assertNotInAngularZone(),Nt(function(){s._stable||s._zone.hasPendingMacrotasks||s._zone.hasPendingMicrotasks||(s._stable=!0,t.next(!0))})})});var n=s._zone.onUnstable.subscribe(function(){Jn.assertInAngularZone(),s._stable&&(s._stable=!1,s._zone.runOutsideAngular(function(){t.next(!1)}))});return function(){e.unsubscribe(),n.unsubscribe()}});this.isStable=rt(a,u.pipe(ht()))}var e;return e=t,t.prototype.bootstrap=function(t,e){var n,r=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");n=t instanceof we?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);var i=n instanceof xe?null:this._injector.get(ke),o=n.create(oe.NULL,[],e||n.selector,i);o.onDestroy(function(){r._unloadComponent(o)});var s=o.injector.get(or,null);return s&&o.injector.get(sr).registerApplication(o.location.nativeElement,s),this._loadComponent(o),Be()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),o},t.prototype.tick=function(){var t=this;if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");var n=e._tickScope();try{this._runningTick=!0,this._views.forEach(function(t){return t.detectChanges()}),this._enforceNoNewChanges&&this._views.forEach(function(t){return t.checkNoChanges()})}catch(r){this._zone.runOutsideAngular(function(){return t._exceptionHandler.handleError(r)})}finally{this._runningTick=!1,Xn(n)}},t.prototype.attachView=function(t){var e=t;this._views.push(e),e.attachToAppRef(this)},t.prototype.detachView=function(t){var e=t;mr(this._views,e),e.detachFromAppRef()},t.prototype._loadComponent=function(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(Mn,[]).concat(this._bootstrapListeners).forEach(function(e){return e(t)})},t.prototype._unloadComponent=function(t){this.detachView(t.hostView),mr(this.components,t)},t.prototype.ngOnDestroy=function(){this._views.slice().forEach(function(t){return t.destroy()})},Object.defineProperty(t.prototype,"viewCount",{get:function(){return this._views.length},enumerable:!0,configurable:!0}),t._tickScope=Yn("ApplicationRef#tick()"),t}();function mr(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}var yr=function(){function t(){this.dirty=!0,this._results=[],this.changes=new hn,this.length=0}return t.prototype.map=function(t){return this._results.map(t)},t.prototype.filter=function(t){return this._results.filter(t)},t.prototype.find=function(t){return this._results.find(t)},t.prototype.reduce=function(t,e){return this._results.reduce(t,e)},t.prototype.forEach=function(t){this._results.forEach(t)},t.prototype.some=function(t){return this._results.some(t)},t.prototype.toArray=function(){return this._results.slice()},t.prototype[Ot()]=function(){return this._results[Ot()]()},t.prototype.toString=function(){return this._results.toString()},t.prototype.reset=function(t){this._results=function t(e){return e.reduce(function(e,n){var r=Array.isArray(n)?t(n):n;return e.concat(r)},[])}(t),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]},t.prototype.notifyOnChanges=function(){this.changes.emit(this)},t.prototype.setDirty=function(){this.dirty=!0},t.prototype.destroy=function(){this.changes.complete(),this.changes.unsubscribe()},t}(),gr=function(){return function(){}}(),vr={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},_r=function(){function t(t,e){this._compiler=t,this._config=e||vr}return t.prototype.load=function(t){return this._compiler instanceof zn?this.loadFactory(t):this.loadAndCompile(t)},t.prototype.loadAndCompile=function(t){var e=this,i=Object(r.__read)(t.split("#"),2),o=i[0],s=i[1];return void 0===s&&(s="default"),n("crnd")(o).then(function(t){return t[s]}).then(function(t){return br(t,o,s)}).then(function(t){return e._compiler.compileModuleAsync(t)})},t.prototype.loadFactory=function(t){var e=Object(r.__read)(t.split("#"),2),i=e[0],o=e[1],s="NgFactory";return void 0===o&&(o="default",s=""),n("crnd")(this._config.factoryPathPrefix+i+this._config.factoryPathSuffix).then(function(t){return t[o+s]}).then(function(t){return br(t,i,o)})},t}();function br(t,e,n){if(!t)throw new Error("Cannot find '"+n+"' in '"+e+"'");return t}var wr=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return Er(t,Oe)},t}(),Er=te,Sr=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return Cr()},t}(),Cr=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e]},Tr=function(){return function(t,e){this.name=t,this.callback=e}}(),Ir=function(){function t(t,e,n){this.listeners=[],this.parent=null,this._debugContext=n,this.nativeNode=t,e&&e instanceof xr&&e.addChild(this)}return Object.defineProperty(t.prototype,"injector",{get:function(){return this._debugContext.injector},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentInstance",{get:function(){return this._debugContext.component},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this._debugContext.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"references",{get:function(){return this._debugContext.references},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"providerTokens",{get:function(){return this._debugContext.providerTokens},enumerable:!0,configurable:!0}),t}(),xr=function(t){function e(e,n,r){var i=t.call(this,e,n,r)||this;return i.properties={},i.attributes={},i.classes={},i.styles={},i.childNodes=[],i.nativeElement=e,i}return Object(r.__extends)(e,t),e.prototype.addChild=function(t){t&&(this.childNodes.push(t),t.parent=this)},e.prototype.removeChild=function(t){var e=this.childNodes.indexOf(t);-1!==e&&(t.parent=null,this.childNodes.splice(e,1))},e.prototype.insertChildrenAfter=function(t,e){var n,i=this,o=this.childNodes.indexOf(t);-1!==o&&((n=this.childNodes).splice.apply(n,Object(r.__spread)([o+1,0],e)),e.forEach(function(e){e.parent&&e.parent.removeChild(e),t.parent=i}))},e.prototype.insertBefore=function(t,e){var n=this.childNodes.indexOf(t);-1===n?this.addChild(e):(e.parent&&e.parent.removeChild(e),e.parent=this,this.childNodes.splice(n,0,e))},e.prototype.query=function(t){return this.queryAll(t)[0]||null},e.prototype.queryAll=function(t){var e=[];return function t(e,n,r){e.childNodes.forEach(function(e){e instanceof xr&&(n(e)&&r.push(e),t(e,n,r))})}(this,t,e),e},e.prototype.queryAllNodes=function(t){var e=[];return function t(e,n,r){e instanceof xr&&e.childNodes.forEach(function(e){n(e)&&r.push(e),e instanceof xr&&t(e,n,r)})}(this,t,e),e},Object.defineProperty(e.prototype,"children",{get:function(){return this.childNodes.filter(function(t){return t instanceof e})},enumerable:!0,configurable:!0}),e.prototype.triggerEventHandler=function(t,e){this.listeners.forEach(function(n){n.name==t&&n.callback(e)})},e}(Ir),kr=new Map,Ar=function(t){return kr.get(t)||null};function Or(t){kr.set(t.nativeNode,t)}var Nr=function(){function t(){}return t.prototype.supports=function(t){return Zt(t)},t.prototype.create=function(t){return new Rr(t)},t}(),Dr=function(t,e){return e},Rr=function(){function t(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||Dr}return t.prototype.forEachItem=function(t){var e;for(e=this._itHead;null!==e;e=e._next)t(e)},t.prototype.forEachOperation=function(t){for(var e=this._itHead,n=this._removalsHead,r=0,i=null;e||n;){var o=!n||e&&e.currentIndex<Fr(n,r,i)?e:n,s=Fr(o,r,i),a=o.currentIndex;if(o===n)r--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)r++;else{i||(i=[]);var u=s-r,l=a-r;if(u!=l){for(var c=0;c<u;c++){var h=c<i.length?i[c]:i[c]=0,p=h+c;l<=p&&p<u&&(i[c]=h+1)}i[o.previousIndex]=l-u}}s!==a&&t(o,s,a)}},t.prototype.forEachPreviousItem=function(t){var e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)},t.prototype.forEachAddedItem=function(t){var e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)},t.prototype.forEachMovedItem=function(t){var e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)},t.prototype.forEachRemovedItem=function(t){var e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)},t.prototype.forEachIdentityChange=function(t){var e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)},t.prototype.diff=function(t){if(null==t&&(t=[]),!Zt(t))throw new Error("Error trying to diff '"+Rt(t)+"'. Only arrays and iterables are allowed");return this.check(t)?this:null},t.prototype.onDestroy=function(){},t.prototype.check=function(t){var e=this;this._reset();var n,r,i,o=this._itHead,s=!1;if(Array.isArray(t)){this.length=t.length;for(var a=0;a<this.length;a++)i=this._trackByFn(a,r=t[a]),null!==o&&Dt(o.trackById,i)?(s&&(o=this._verifyReinsertion(o,r,i,a)),Dt(o.item,r)||this._addIdentityChange(o,r)):(o=this._mismatch(o,r,i,a),s=!0),o=o._next}else n=0,function(t,e){if(Array.isArray(t))for(var n=0;n<t.length;n++)e(t[n]);else for(var r=t[Ot()](),i=void 0;!(i=r.next()).done;)e(i.value)}(t,function(t){i=e._trackByFn(n,t),null!==o&&Dt(o.trackById,i)?(s&&(o=e._verifyReinsertion(o,t,i,n)),Dt(o.item,t)||e._addIdentityChange(o,t)):(o=e._mismatch(o,t,i,n),s=!0),o=o._next,n++}),this.length=n;return this._truncate(o),this.collection=t,this.isDirty},Object.defineProperty(t.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead},enumerable:!0,configurable:!0}),t.prototype._reset=function(){if(this.isDirty){var t=void 0,e=void 0;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=e)t.previousIndex=t.currentIndex,e=t._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}},t.prototype._mismatch=function(t,e,n,r){var i;return null===t?i=this._itTail:(i=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,r))?(Dt(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,i,r)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Dt(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,i,r)):t=this._addAfter(new Pr(e,n),i,r),t},t.prototype._verifyReinsertion=function(t,e,n,r){var i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==i?t=this._reinsertAfter(i,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t},t.prototype._truncate=function(t){for(;null!==t;){var 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)},t.prototype._reinsertAfter=function(t,e,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);var r=t._prevRemoved,i=t._nextRemoved;return null===r?this._removalsHead=i:r._nextRemoved=i,null===i?this._removalsTail=r:i._prevRemoved=r,this._insertAfter(t,e,n),this._addToMoves(t,n),t},t.prototype._moveAfter=function(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t},t.prototype._addAfter=function(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t},t.prototype._insertAfter=function(t,e,n){var 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 Lr),this._linkedRecords.put(t),t.currentIndex=n,t},t.prototype._remove=function(t){return this._addToRemovals(this._unlink(t))},t.prototype._unlink=function(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);var e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t},t.prototype._addToMoves=function(t,e){return t.previousIndex===e?t:(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t,t)},t.prototype._addToRemovals=function(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Lr),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},t.prototype._addIdentityChange=function(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t},t}(),Pr=function(){return function(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}}(),Mr=function(){function t(){this._head=null,this._tail=null}return t.prototype.add=function(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)},t.prototype.get=function(t,e){var n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Dt(n.trackById,t))return n;return null},t.prototype.remove=function(t){var e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head},t}(),Lr=function(){function t(){this.map=new Map}return t.prototype.put=function(t){var e=t.trackById,n=this.map.get(e);n||(n=new Mr,this.map.set(e,n)),n.add(t)},t.prototype.get=function(t,e){var n=this.map.get(t);return n?n.get(t,e):null},t.prototype.remove=function(t){var e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t},Object.defineProperty(t.prototype,"isEmpty",{get:function(){return 0===this.map.size},enumerable:!0,configurable:!0}),t.prototype.clear=function(){this.map.clear()},t}();function Fr(t,e,n){var r=t.previousIndex;if(null===r)return r;var i=0;return n&&r<n.length&&(i=n[r]),r+e+i}var jr=function(){function t(){}return t.prototype.supports=function(t){return t instanceof Map||$t(t)},t.prototype.create=function(){return new Ur},t}(),Ur=function(){function t(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return Object.defineProperty(t.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead},enumerable:!0,configurable:!0}),t.prototype.forEachItem=function(t){var e;for(e=this._mapHead;null!==e;e=e._next)t(e)},t.prototype.forEachPreviousItem=function(t){var e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)},t.prototype.forEachChangedItem=function(t){var e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)},t.prototype.forEachAddedItem=function(t){var e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)},t.prototype.forEachRemovedItem=function(t){var e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)},t.prototype.diff=function(t){if(t){if(!(t instanceof Map||$t(t)))throw new Error("Error trying to diff '"+Rt(t)+"'. Only maps and objects are allowed")}else t=new Map;return this.check(t)?this:null},t.prototype.onDestroy=function(){},t.prototype.check=function(t){var e=this;this._reset();var n=this._mapHead;if(this._appendAfter=null,this._forEach(t,function(t,r){if(n&&n.key===r)e._maybeAddToChanges(n,t),e._appendAfter=n,n=n._next;else{var i=e._getOrCreateRecordForKey(r,t);n=e._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(var r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty},t.prototype._insertBeforeOrAppend=function(t,e){if(t){var n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._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},t.prototype._getOrCreateRecordForKey=function(t,e){if(this._records.has(t)){var n=this._records.get(t);this._maybeAddToChanges(n,e);var r=n._prev,i=n._next;return r&&(r._next=i),i&&(i._prev=r),n._next=null,n._prev=null,n}var o=new Vr(t);return this._records.set(t,o),o.currentValue=e,this._addToAdditions(o),o},t.prototype._reset=function(){if(this.isDirty){var t=void 0;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}},t.prototype._maybeAddToChanges=function(t,e){Dt(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))},t.prototype._addToAdditions=function(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)},t.prototype._addToChanges=function(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)},t.prototype._forEach=function(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(function(n){return e(t[n],n)})},t}(),Vr=function(){return function(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}}(),qr=function(){function t(t){this.factories=t}return t.create=function(e,n){if(null!=n){var r=n.factories.slice();e=e.concat(r)}return new t(e)},t.extend=function(e){return{provide:t,useFactory:function(n){if(!n)throw new Error("Cannot extend IterableDiffers without a parent injector");return t.create(e,n)},deps:[[t,new Bt,new Vt]]}},t.prototype.find=function(t){var e,n=this.factories.find(function(e){return e.supports(t)});if(null!=n)return n;throw new Error("Cannot find a differ supporting object '"+t+"' of type '"+((e=t).name||typeof e)+"'")},t.ngInjectableDef=yt({providedIn:"root",factory:function(){return new t([new Nr])}}),t}(),Br=function(){function t(t){this.factories=t}return t.create=function(e,n){if(n){var r=n.factories.slice();e=e.concat(r)}return new t(e)},t.extend=function(e){return{provide:t,useFactory:function(n){if(!n)throw new Error("Cannot extend KeyValueDiffers without a parent injector");return t.create(e,n)},deps:[[t,new Bt,new Vt]]}},t.prototype.find=function(t){var e=this.factories.find(function(e){return e.supports(t)});if(e)return e;throw new Error("Cannot find a differ supporting object '"+t+"'")},t.ngInjectableDef=yt({providedIn:"root",factory:function(){return new t([new jr])}}),t}(),Hr=[new jr],zr=new qr([new Nr]),Wr=new Br(Hr),Qr=cr(null,"core",[{provide:Pn,useValue:"unknown"},{provide:pr,deps:[oe]},{provide:sr,deps:[]},{provide:Ln,deps:[]}]),Kr=new vt("LocaleId");function Gr(){return zr}function Yr(){return Wr}function Xr(t){return t||"en-US"}var Jr=function(){return function(t){}}();function Zr(t,e,n){var r=t.state,i=1792&r;return i===e?(t.state=-1793&r|n,t.initIndex=-1,!0):i===n}function $r(t,e,n){return(1792&t.state)===e&&t.initIndex<=n&&(t.initIndex=n+1,!0)}function ti(t,e){return t.nodes[e]}function ei(t,e){return t.nodes[e]}function ni(t,e){return t.nodes[e]}function ri(t,e){return t.nodes[e]}function ii(t,e){return t.nodes[e]}var oi={setCurrentNode:void 0,createRootView:void 0,createEmbeddedView:void 0,createComponentView:void 0,createNgModuleRef:void 0,overrideProvider:void 0,overrideComponentView:void 0,clearOverrides:void 0,checkAndUpdateView:void 0,checkNoChangesView:void 0,destroyView:void 0,resolveDep:void 0,createDebugContext:void 0,handleEvent:void 0,updateDirectives:void 0,updateRenderer:void 0,dirtyParentQueries:void 0};function si(t,e,n,r){var i="ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '"+e+"'. Current value: '"+n+"'.";return r&&(i+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?"),function(t,e){var n=new Error(t);return ai(n,e),n}(i,t)}function ai(t,e){t[_n]=e,t[wn]=e.logError.bind(e)}function ui(t){return new Error("ViewDestroyedError: Attempt to use a destroyed view: "+t)}var li=function(){},ci=new Map;function hi(t){var e=ci.get(t);return e||(e=Rt(t)+"_"+ci.size,ci.set(t,e)),e}function pi(t,e,n,r){if(Xt.isWrapped(r)){r=Xt.unwrap(r);var i=t.def.nodes[e].bindingIndex+n,o=Xt.unwrap(t.oldValues[i]);t.oldValues[i]=new Xt(o)}return r}var fi="$$undefined",di="$$empty";function mi(t){return{id:fi,styles:t.styles,encapsulation:t.encapsulation,data:t.data}}var yi=0;function gi(t,e,n,r){return!(!(2&t.state)&&Dt(t.oldValues[e.bindingIndex+n],r))}function vi(t,e,n,r){return!!gi(t,e,n,r)&&(t.oldValues[e.bindingIndex+n]=r,!0)}function _i(t,e,n,r){var i=t.oldValues[e.bindingIndex+n];if(1&t.state||!Yt(i,r)){var o=e.bindings[n].name;throw si(oi.createDebugContext(t,e.nodeIndex),o+": "+i,o+": "+r,0!=(1&t.state))}}function bi(t){for(var e=t;e;)2&e.def.flags&&(e.state|=8),e=e.viewContainerParent||e.parent}function wi(t,e){for(var n=t;n&&n!==e;)n.state|=64,n=n.viewContainerParent||n.parent}function Ei(t,e,n,r){try{return bi(33554432&t.def.nodes[e].flags?ei(t,e).componentView:t),oi.handleEvent(t,e,n,r)}catch(i){t.root.errorHandler.handleError(i)}}function Si(t){return t.parent?ei(t.parent,t.parentNodeDef.nodeIndex):null}function Ci(t){return t.parent?t.parentNodeDef.parent:null}function Ti(t,e){switch(201347067&e.flags){case 1:return ei(t,e.nodeIndex).renderElement;case 2:return ti(t,e.nodeIndex).renderText}}function Ii(t){return!!t.parent&&!!(32768&t.parentNodeDef.flags)}function xi(t){return!(!t.parent||32768&t.parentNodeDef.flags)}function ki(t){return 1<<t%32}function Ai(t){var e={},n=0,i={};return t&&t.forEach(function(t){var o=Object(r.__read)(t,2),s=o[0],a=o[1];"number"==typeof s?(e[s]=a,n|=ki(s)):i[s]=a}),{matchedQueries:e,references:i,matchedQueryIds:n}}function Oi(t,e){return t.map(function(t){var n,i,o;return Array.isArray(t)?(o=(n=Object(r.__read)(t,2))[0],i=n[1]):(o=0,i=t),i&&("function"==typeof i||"object"==typeof i)&&e&&Object.defineProperty(i,ee,{value:e,configurable:!0}),{flags:o,token:i,tokenKey:hi(i)}})}function Ni(t,e,n){var r=n.renderParent;return r?0==(1&r.flags)||0==(33554432&r.flags)||r.element.componentRendererType&&r.element.componentRendererType.encapsulation===jt.Native?ei(t,n.renderParent.nodeIndex).renderElement:void 0:e}var Di=new WeakMap;function Ri(t){var e=Di.get(t);return e||((e=t(function(){return li})).factory=t,Di.set(t,e)),e}function Pi(t,e,n,r,i){3===e&&(n=t.renderer.parentNode(Ti(t,t.def.lastRenderRootNode))),Mi(t,e,0,t.def.nodes.length-1,n,r,i)}function Mi(t,e,n,r,i,o,s){for(var a=n;a<=r;a++){var u=t.def.nodes[a];11&u.flags&&Fi(t,u,e,i,o,s),a+=u.childCount}}function Li(t,e,n,r,i,o){for(var s=t;s&&!Ii(s);)s=s.parent;for(var a=s.parent,u=Ci(s),l=u.nodeIndex+u.childCount,c=u.nodeIndex+1;c<=l;c++){var h=a.def.nodes[c];h.ngContentIndex===e&&Fi(a,h,n,r,i,o),c+=h.childCount}if(!a.parent){var p=t.root.projectableNodes[e];if(p)for(c=0;c<p.length;c++)ji(t,p[c],n,r,i,o)}}function Fi(t,e,n,r,i,o){if(8&e.flags)Li(t,e.ngContent.index,n,r,i,o);else{var s=Ti(t,e);if(3===n&&33554432&e.flags&&48&e.bindingFlags?(16&e.bindingFlags&&ji(t,s,n,r,i,o),32&e.bindingFlags&&ji(ei(t,e.nodeIndex).componentView,s,n,r,i,o)):ji(t,s,n,r,i,o),16777216&e.flags)for(var a=ei(t,e.nodeIndex).viewContainer._embeddedViews,u=0;u<a.length;u++)Pi(a[u],n,r,i,o);1&e.flags&&!e.element.name&&Mi(t,n,e.nodeIndex+1,e.nodeIndex+e.childCount,r,i,o)}}function ji(t,e,n,r,i,o){var s=t.renderer;switch(n){case 1:s.appendChild(r,e);break;case 2:s.insertBefore(r,e,i);break;case 3:s.removeChild(r,e);break;case 0:o.push(e)}}var Ui=/^:([^:]+):(.+)$/;function Vi(t){if(":"===t[0]){var e=t.match(Ui);return[e[1],e[2]]}return["",t]}function qi(t){for(var e=0,n=0;n<t.length;n++)e|=t[n].flags;return e}function Bi(t,e,n,r,i,o){t|=1;var s=Ai(e);return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,checkIndex:-1,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:s.matchedQueries,matchedQueryIds:s.matchedQueryIds,references:s.references,ngContentIndex:n,childCount:r,bindings:[],bindingFlags:0,outputs:[],element:{ns:null,name:null,attrs:null,template:o?Ri(o):null,componentProvider:null,componentView:null,componentRendererType:null,publicProviders:null,allProviders:null,handleEvent:i||li},provider:null,text:null,query:null,ngContent:null}}function Hi(t,e,n,i,o,s,a,u,l,c,h,p){var f;void 0===a&&(a=[]),c||(c=li);var d=Ai(n),m=d.matchedQueries,y=d.references,g=d.matchedQueryIds,v=null,_=null;s&&(v=(f=Object(r.__read)(Vi(s),2))[0],_=f[1]),u=u||[];for(var b=new Array(u.length),w=0;w<u.length;w++){var E=Object(r.__read)(u[w],3),S=E[0],C=E[1],T=E[2],I=Object(r.__read)(Vi(C),2),x=I[0],k=I[1],A=void 0,O=void 0;switch(15&S){case 4:O=T;break;case 1:case 8:A=T}b[w]={flags:S,ns:x,name:k,nonMinifiedName:k,securityContext:A,suffix:O}}l=l||[];var N=new Array(l.length);for(w=0;w<l.length;w++){var D=Object(r.__read)(l[w],2);N[w]={type:0,target:D[0],eventName:D[1],propName:null}}var R=(a=a||[]).map(function(t){var e=Object(r.__read)(t,2),n=e[0],i=e[1],o=Object(r.__read)(Vi(n),2);return[o[0],o[1],i]});return p=function(t){if(t&&t.id===fi){var e=null!=t.encapsulation&&t.encapsulation!==jt.None||t.styles.length||Object.keys(t.data).length;t.id=e?"c"+yi++:di}return t&&t.id===di&&(t=null),t||null}(p),h&&(e|=33554432),{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:t,flags:e|=1,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:m,matchedQueryIds:g,references:y,ngContentIndex:i,childCount:o,bindings:b,bindingFlags:qi(b),outputs:N,element:{ns:v,name:_,attrs:R,template:null,componentProvider:null,componentView:h||null,componentRendererType:p,publicProviders:null,allProviders:null,handleEvent:c||li},provider:null,text:null,query:null,ngContent:null}}function zi(t,e,n){var i,o=n.element,s=t.root.selectorOrNode,a=t.renderer;if(t.parent||!s){i=o.name?a.createElement(o.name,o.ns):a.createComment("");var u=Ni(t,e,n);u&&a.appendChild(u,i)}else i=a.selectRootElement(s,!!o.componentRendererType&&o.componentRendererType.encapsulation===jt.ShadowDom);if(o.attrs)for(var l=0;l<o.attrs.length;l++){var c=Object(r.__read)(o.attrs[l],3);a.setAttribute(i,c[1],c[2],c[0])}return i}function Wi(t,e,n,r){for(var i=0;i<n.outputs.length;i++){var o=n.outputs[i],s=Qi(t,n.nodeIndex,(h=o.eventName,(c=o.target)?c+":"+h:h)),a=o.target,u=t;"component"===o.target&&(a=null,u=e);var l=u.renderer.listen(a||r,o.eventName,s);t.disposables[n.outputIndex+i]=l}var c,h}function Qi(t,e,n){return function(r){return Ei(t,e,n,r)}}function Ki(t,e,n,r){if(!vi(t,e,n,r))return!1;var i=e.bindings[n],o=ei(t,e.nodeIndex),s=o.renderElement,a=i.name;switch(15&i.flags){case 1:!function(t,e,n,r,i,o){var s=e.securityContext,a=s?t.root.sanitizer.sanitize(s,o):o;a=null!=a?a.toString():null;var u=t.renderer;null!=o?u.setAttribute(n,i,a,r):u.removeAttribute(n,i,r)}(t,i,s,i.ns,a,r);break;case 2:!function(t,e,n,r){var i=t.renderer;r?i.addClass(e,n):i.removeClass(e,n)}(t,s,a,r);break;case 4:!function(t,e,n,r,i){var o=t.root.sanitizer.sanitize(Fe.STYLE,i);if(null!=o){o=o.toString();var s=e.suffix;null!=s&&(o+=s)}else o=null;var a=t.renderer;null!=o?a.setStyle(n,r,o):a.removeStyle(n,r)}(t,i,s,a,r);break;case 8:!function(t,e,n,r,i){var o=e.securityContext,s=o?t.root.sanitizer.sanitize(o,i):i;t.renderer.setProperty(n,r,s)}(33554432&e.flags&&32&i.flags?o.componentView:t,i,s,a,r)}return!0}var Gi=new Object,Yi=hi(oe),Xi=hi(re),Ji=hi(ke);function Zi(t,e,n,r){return n=Lt(n),{index:-1,deps:Oi(r,Rt(e)),flags:t,token:e,value:n}}function $i(t,e,n){void 0===n&&(n=oe.THROW_IF_NOT_FOUND);var r,i,o=Wt(t);try{if(8&e.flags)return e.token;if(2&e.flags&&(n=null),1&e.flags)return t._parent.get(e.token,n);var s=e.tokenKey;switch(s){case Yi:case Xi:case Ji:return t}var a,u=t._def.providersByKey[s];if(u){var l=t._providers[u.index];return void 0===l&&(l=t._providers[u.index]=to(t,u)),l===Gi?void 0:l}if((a=gt(e.token))&&(r=t,null!=(i=a).providedIn&&(function(t,e){return t._def.modules.indexOf(i.providedIn)>-1}(r)||"root"===i.providedIn&&r._def.isRoot))){var c=t._providers.length;return t._def.providersByKey[e.tokenKey]={flags:5120,value:a.factory,deps:[],index:c,token:e.token},t._providers[c]=Gi,t._providers[c]=to(t,t._def.providersByKey[e.tokenKey])}return 4&e.flags?n:t._parent.get(e.token,n)}finally{Wt(o)}}function to(t,e){var n;switch(201347067&e.flags){case 512:n=function(t,e,n){var i=n.length;switch(i){case 0:return new e;case 1:return new e($i(t,n[0]));case 2:return new e($i(t,n[0]),$i(t,n[1]));case 3:return new e($i(t,n[0]),$i(t,n[1]),$i(t,n[2]));default:for(var o=new Array(i),s=0;s<i;s++)o[s]=$i(t,n[s]);return new(e.bind.apply(e,Object(r.__spread)([void 0],o)))}}(t,e.value,e.deps);break;case 1024:n=function(t,e,n){var i=n.length;switch(i){case 0:return e();case 1:return e($i(t,n[0]));case 2:return e($i(t,n[0]),$i(t,n[1]));case 3:return e($i(t,n[0]),$i(t,n[1]),$i(t,n[2]));default:for(var o=Array(i),s=0;s<i;s++)o[s]=$i(t,n[s]);return e.apply(void 0,Object(r.__spread)(o))}}(t,e.value,e.deps);break;case 2048:n=$i(t,e.deps[0]);break;case 256:n=e.value}return n===Gi||null==n||"object"!=typeof n||131072&e.flags||"function"!=typeof n.ngOnDestroy||(e.flags|=131072),void 0===n?Gi:n}function eo(t,e){var n=t.viewContainer._embeddedViews;if((null==e||e>=n.length)&&(e=n.length-1),e<0)return null;var r=n[e];return r.viewContainerParent=null,oo(n,e),oi.dirtyParentQueries(r),ro(r),r}function no(t,e,n){var r=e?Ti(e,e.def.lastRenderRootNode):t.renderElement,i=n.renderer.parentNode(r),o=n.renderer.nextSibling(r);Pi(n,2,i,o,void 0)}function ro(t){Pi(t,3,null,null,void 0)}function io(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function oo(t,e){e>=t.length-1?t.pop():t.splice(e,1)}var so=new Object;function ao(t,e,n,r,i,o){return new uo(t,e,n,r,i,o)}var uo=function(t){function e(e,n,r,i,o,s){var a=t.call(this)||this;return a.selector=e,a.componentType=n,a._inputs=i,a._outputs=o,a.ngContentSelectors=s,a.viewDefFactory=r,a}return Object(r.__extends)(e,t),Object.defineProperty(e.prototype,"inputs",{get:function(){var t=[],e=this._inputs;for(var n in e)t.push({propName:n,templateName:e[n]});return t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputs",{get:function(){var t=[];for(var e in this._outputs)t.push({propName:e,templateName:this._outputs[e]});return t},enumerable:!0,configurable:!0}),e.prototype.create=function(t,e,n,r){if(!r)throw new Error("ngModule should be provided");var i=Ri(this.viewDefFactory),o=i.nodes[0].element.componentProvider.nodeIndex,s=oi.createRootView(t,e||[],n,i,r,so),a=ni(s,o).instance;return n&&s.renderer.setAttribute(ei(s,0).renderElement,"ng-version",Ue.full),new lo(s,new fo(s),a)},e}(we),lo=function(t){function e(e,n,r){var i=t.call(this)||this;return i._view=e,i._viewRef=n,i._component=r,i._elDef=i._view.def.nodes[0],i.hostView=n,i.changeDetectorRef=n,i.instance=r,i}return Object(r.__extends)(e,t),Object.defineProperty(e.prototype,"location",{get:function(){return new Oe(ei(this._view,this._elDef.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return new vo(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentType",{get:function(){return this._component.constructor},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this._viewRef.destroy()},e.prototype.onDestroy=function(t){this._viewRef.onDestroy(t)},e}(be);function co(t,e,n){return new ho(t,e,n)}var ho=function(){function t(t,e,n){this._view=t,this._elDef=e,this._data=n,this._embeddedViews=[]}return Object.defineProperty(t.prototype,"element",{get:function(){return new Oe(this._data.renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return new vo(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parentInjector",{get:function(){for(var t=this._view,e=this._elDef.parent;!e&&t;)e=Ci(t),t=t.parent;return t?new vo(t,e):new vo(this._view,null)},enumerable:!0,configurable:!0}),t.prototype.clear=function(){for(var t=this._embeddedViews.length-1;t>=0;t--){var e=eo(this._data,t);oi.destroyView(e)}},t.prototype.get=function(t){var e=this._embeddedViews[t];if(e){var n=new fo(e);return n.attachToViewContainerRef(this),n}return null},Object.defineProperty(t.prototype,"length",{get:function(){return this._embeddedViews.length},enumerable:!0,configurable:!0}),t.prototype.createEmbeddedView=function(t,e,n){var r=t.createEmbeddedView(e||{});return this.insert(r,n),r},t.prototype.createComponent=function(t,e,n,r,i){var o=n||this.parentInjector;i||t instanceof xe||(i=o.get(ke));var s=t.create(o,r,void 0,i);return this.insert(s.hostView,e),s},t.prototype.insert=function(t,e){if(t.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");var n,r,i,o,s=t;return o=(n=this._data).viewContainer._embeddedViews,null==(r=e)&&(r=o.length),(i=s._view).viewContainerParent=this._view,io(o,r,i),function(t,e){var n=Si(e);if(n&&n!==t&&!(16&e.state)){e.state|=16;var r=n.template._projectedViews;r||(r=n.template._projectedViews=[]),r.push(e),function(t,n){if(!(4&n.flags)){e.parent.def.nodeFlags|=4,n.flags|=4;for(var r=n.parent;r;)r.childFlags|=4,r=r.parent}}(0,e.parentNodeDef)}}(n,i),oi.dirtyParentQueries(i),no(n,r>0?o[r-1]:null,i),s.attachToViewContainerRef(this),t},t.prototype.move=function(t,e){if(t.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");var n,r,i,o,s,a=this._embeddedViews.indexOf(t._view);return i=e,s=(o=(n=this._data).viewContainer._embeddedViews)[r=a],oo(o,r),null==i&&(i=o.length),io(o,i,s),oi.dirtyParentQueries(s),ro(s),no(n,i>0?o[i-1]:null,s),t},t.prototype.indexOf=function(t){return this._embeddedViews.indexOf(t._view)},t.prototype.remove=function(t){var e=eo(this._data,t);e&&oi.destroyView(e)},t.prototype.detach=function(t){var e=eo(this._data,t);return e?new fo(e):null},t}();function po(t){return new fo(t)}var fo=function(){function t(t){this._view=t,this._viewContainerRef=null,this._appRef=null}return Object.defineProperty(t.prototype,"rootNodes",{get:function(){return Pi(this._view,0,void 0,void 0,t=[]),t;var t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"destroyed",{get:function(){return 0!=(128&this._view.state)},enumerable:!0,configurable:!0}),t.prototype.markForCheck=function(){bi(this._view)},t.prototype.detach=function(){this._view.state&=-5},t.prototype.detectChanges=function(){var t=this._view.root.rendererFactory;t.begin&&t.begin();try{oi.checkAndUpdateView(this._view)}finally{t.end&&t.end()}},t.prototype.checkNoChanges=function(){oi.checkNoChangesView(this._view)},t.prototype.reattach=function(){this._view.state|=4},t.prototype.onDestroy=function(t){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(t)},t.prototype.destroy=function(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),oi.destroyView(this._view)},t.prototype.detachFromAppRef=function(){this._appRef=null,ro(this._view),oi.dirtyParentQueries(this._view)},t.prototype.attachToAppRef=function(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t},t.prototype.attachToViewContainerRef=function(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t},t}();function mo(t,e){return new yo(t,e)}var yo=function(t){function e(e,n){var r=t.call(this)||this;return r._parentView=e,r._def=n,r}return Object(r.__extends)(e,t),e.prototype.createEmbeddedView=function(t){return new fo(oi.createEmbeddedView(this._parentView,this._def,this._def.element.template,t))},Object.defineProperty(e.prototype,"elementRef",{get:function(){return new Oe(ei(this._parentView,this._def.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),e}(pn);function go(t,e){return new vo(t,e)}var vo=function(){function t(t,e){this.view=t,this.elDef=e}return t.prototype.get=function(t,e){return void 0===e&&(e=oe.THROW_IF_NOT_FOUND),oi.resolveDep(this.view,this.elDef,!!this.elDef&&0!=(33554432&this.elDef.flags),{flags:0,token:t,tokenKey:hi(t)},e)},t}();function _o(t,e){var n=t.def.nodes[e];if(1&n.flags){var r=ei(t,n.nodeIndex);return n.element.template?r.template:r.renderElement}if(2&n.flags)return ti(t,n.nodeIndex).renderText;if(20240&n.flags)return ni(t,n.nodeIndex).instance;throw new Error("Illegal state: read nodeValue for node index "+e)}function bo(t){return new wo(t.renderer)}var wo=function(){function t(t){this.delegate=t}return t.prototype.selectRootElement=function(t){return this.delegate.selectRootElement(t)},t.prototype.createElement=function(t,e){var n=Object(r.__read)(Vi(e),2),i=this.delegate.createElement(n[1],n[0]);return t&&this.delegate.appendChild(t,i),i},t.prototype.createViewRoot=function(t){return t},t.prototype.createTemplateAnchor=function(t){var e=this.delegate.createComment("");return t&&this.delegate.appendChild(t,e),e},t.prototype.createText=function(t,e){var n=this.delegate.createText(e);return t&&this.delegate.appendChild(t,n),n},t.prototype.projectNodes=function(t,e){for(var n=0;n<e.length;n++)this.delegate.appendChild(t,e[n])},t.prototype.attachViewAfter=function(t,e){for(var n=this.delegate.parentNode(t),r=this.delegate.nextSibling(t),i=0;i<e.length;i++)this.delegate.insertBefore(n,e[i],r)},t.prototype.detachView=function(t){for(var e=0;e<t.length;e++){var n=t[e],r=this.delegate.parentNode(n);this.delegate.removeChild(r,n)}},t.prototype.destroyView=function(t,e){for(var n=0;n<e.length;n++)this.delegate.destroyNode(e[n])},t.prototype.listen=function(t,e,n){return this.delegate.listen(t,e,n)},t.prototype.listenGlobal=function(t,e,n){return this.delegate.listen(t,e,n)},t.prototype.setElementProperty=function(t,e,n){this.delegate.setProperty(t,e,n)},t.prototype.setElementAttribute=function(t,e,n){var i=Object(r.__read)(Vi(e),2),o=i[0],s=i[1];null!=n?this.delegate.setAttribute(t,s,n,o):this.delegate.removeAttribute(t,s,o)},t.prototype.setBindingDebugInfo=function(t,e,n){},t.prototype.setElementClass=function(t,e,n){n?this.delegate.addClass(t,e):this.delegate.removeClass(t,e)},t.prototype.setElementStyle=function(t,e,n){null!=n?this.delegate.setStyle(t,e,n):this.delegate.removeStyle(t,e)},t.prototype.invokeElementMethod=function(t,e,n){t[e].apply(t,n)},t.prototype.setText=function(t,e){this.delegate.setValue(t,e)},t.prototype.animate=function(){throw new Error("Renderer.animate is no longer supported!")},t}();function Eo(t,e,n,r){return new So(t,e,n,r)}var So=function(){function t(t,e,n,r){this._moduleType=t,this._parent=e,this._bootstrapComponents=n,this._def=r,this._destroyListeners=[],this._destroyed=!1,this.injector=this,function(t){for(var e=t._def,n=t._providers=new Array(e.providers.length),r=0;r<e.providers.length;r++){var i=e.providers[r];4096&i.flags||void 0===n[r]&&(n[r]=to(t,i))}}(this)}return t.prototype.get=function(t,e,n){void 0===e&&(e=oe.THROW_IF_NOT_FOUND),void 0===n&&(n=Ht.Default);var r=0;return n&Ht.SkipSelf?r|=1:n&Ht.Self&&(r|=4),$i(this,{token:t,tokenKey:hi(t),flags:r},e)},Object.defineProperty(t.prototype,"instance",{get:function(){return this.get(this._moduleType)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentFactoryResolver",{get:function(){return this.get(Te)},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){if(this._destroyed)throw new Error("The ng module "+Rt(this.instance.constructor)+" has already been destroyed.");this._destroyed=!0,function(t,e){for(var n=t._def,r=new Set,i=0;i<n.providers.length;i++)if(131072&n.providers[i].flags){var o=t._providers[i];if(o&&o!==Gi){var s=o.ngOnDestroy;"function"!=typeof s||r.has(o)||(s.apply(o),r.add(o))}}}(this),this._destroyListeners.forEach(function(t){return t()})},t.prototype.onDestroy=function(t){this._destroyListeners.push(t)},t}(),Co=hi(De),To=hi(Me),Io=hi(Oe),xo=hi(wr),ko=hi(pn),Ao=hi(Sr),Oo=hi(oe),No=hi(re);function Do(t,e,n,i,o,s,a,u){var l=[];if(a)for(var c in a){var h=Object(r.__read)(a[c],2);l[h[0]]={flags:8,name:c,nonMinifiedName:h[1],ns:null,securityContext:null,suffix:null}}var p=[];if(u)for(var f in u)p.push({type:1,propName:f,target:null,eventName:u[f]});return Mo(t,e|=16384,n,i,o,o,s,l,p)}function Ro(t,e,n){return Mo(-1,t|=16,null,0,e,e,n)}function Po(t,e,n,r,i){return Mo(-1,t,e,0,n,r,i)}function Mo(t,e,n,r,i,o,s,a,u){var l=Ai(n),c=l.matchedQueries,h=l.references,p=l.matchedQueryIds;u||(u=[]),a||(a=[]),o=Lt(o);var f=Oi(s,Rt(i));return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:t,flags:e,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:c,matchedQueryIds:p,references:h,ngContentIndex:-1,childCount:r,bindings:a,bindingFlags:qi(a),outputs:u,element:null,provider:{token:i,value:o,deps:f},text:null,query:null,ngContent:null}}function Lo(t,e){return Vo(t,e)}function Fo(t,e){for(var n=t;n.parent&&!Ii(n);)n=n.parent;return qo(n.parent,Ci(n),!0,e.provider.value,e.provider.deps)}function jo(t,e){var n=qo(t,e.parent,(32768&e.flags)>0,e.provider.value,e.provider.deps);if(e.outputs.length)for(var r=0;r<e.outputs.length;r++){var i=e.outputs[r],o=n[i.propName];if(!xn(o))throw new Error("@Output "+i.propName+" not initialized in '"+n.constructor.name+"'.");var s=o.subscribe(Uo(t,e.parent.nodeIndex,i.eventName));t.disposables[e.outputIndex+r]=s.unsubscribe.bind(s)}return n}function Uo(t,e,n){return function(r){return Ei(t,e,n,r)}}function Vo(t,e){var n=(8192&e.flags)>0,i=e.provider;switch(201347067&e.flags){case 512:return qo(t,e.parent,n,i.value,i.deps);case 1024:return function(t,e,n,i,o){var s=o.length;switch(s){case 0:return i();case 1:return i(Ho(t,e,n,o[0]));case 2:return i(Ho(t,e,n,o[0]),Ho(t,e,n,o[1]));case 3:return i(Ho(t,e,n,o[0]),Ho(t,e,n,o[1]),Ho(t,e,n,o[2]));default:for(var a=Array(s),u=0;u<s;u++)a[u]=Ho(t,e,n,o[u]);return i.apply(void 0,Object(r.__spread)(a))}}(t,e.parent,n,i.value,i.deps);case 2048:return Ho(t,e.parent,n,i.deps[0]);case 256:return i.value}}function qo(t,e,n,i,o){var s=o.length;switch(s){case 0:return new i;case 1:return new i(Ho(t,e,n,o[0]));case 2:return new i(Ho(t,e,n,o[0]),Ho(t,e,n,o[1]));case 3:return new i(Ho(t,e,n,o[0]),Ho(t,e,n,o[1]),Ho(t,e,n,o[2]));default:for(var a=new Array(s),u=0;u<s;u++)a[u]=Ho(t,e,n,o[u]);return new(i.bind.apply(i,Object(r.__spread)([void 0],a)))}}var Bo={};function Ho(t,e,n,r,i){if(void 0===i&&(i=oe.THROW_IF_NOT_FOUND),8&r.flags)return r.token;var o=t;2&r.flags&&(i=null);var s=r.tokenKey;s===Ao&&(n=!(!e||!e.element.componentView)),e&&1&r.flags&&(n=!1,e=e.parent);for(var a=t;a;){if(e)switch(s){case Co:return bo(zo(a,e,n));case To:return zo(a,e,n).renderer;case Io:return new Oe(ei(a,e.nodeIndex).renderElement);case xo:return ei(a,e.nodeIndex).viewContainer;case ko:if(e.element.template)return ei(a,e.nodeIndex).template;break;case Ao:return po(zo(a,e,n));case Oo:case No:return go(a,e);default:var u=(n?e.element.allProviders:e.element.publicProviders)[s];if(u){var l=ni(a,u.nodeIndex);return l||(l={instance:Vo(a,u)},a.nodes[u.nodeIndex]=l),l.instance}}n=Ii(a),e=Ci(a),a=a.parent,4&r.flags&&(a=null)}var c=o.root.injector.get(r.token,Bo);return c!==Bo||i===Bo?c:o.root.ngModule.injector.get(r.token,i)}function zo(t,e,n){var r;if(n)r=ei(t,e.nodeIndex).componentView;else for(r=t;r.parent&&!Ii(r);)r=r.parent;return r}function Wo(t,e,n,r,i,o){if(32768&n.flags){var s=ei(t,n.parent.nodeIndex).componentView;2&s.def.flags&&(s.state|=8)}if(e.instance[n.bindings[r].name]=i,524288&n.flags){o=o||{};var a=Xt.unwrap(t.oldValues[n.bindingIndex+r]);o[n.bindings[r].nonMinifiedName]=new Jt(a,i,0!=(2&t.state))}return t.oldValues[n.bindingIndex+r]=i,o}function Qo(t,e){if(t.def.nodeFlags&e)for(var n=t.def.nodes,r=0,i=0;i<n.length;i++){var o=n[i],s=o.parent;for(!s&&o.flags&e&&Go(t,i,o.flags&e,r++),0==(o.childFlags&e)&&(i+=o.childCount);s&&1&s.flags&&i===s.nodeIndex+s.childCount;)s.directChildFlags&e&&(r=Ko(t,s,e,r)),s=s.parent}}function Ko(t,e,n,r){for(var i=e.nodeIndex+1;i<=e.nodeIndex+e.childCount;i++){var o=t.def.nodes[i];o.flags&n&&Go(t,i,o.flags&n,r++),i+=o.childCount}return r}function Go(t,e,n,r){var i=ni(t,e);if(i){var o=i.instance;o&&(oi.setCurrentNode(t,e),1048576&n&&$r(t,512,r)&&o.ngAfterContentInit(),2097152&n&&o.ngAfterContentChecked(),4194304&n&&$r(t,768,r)&&o.ngAfterViewInit(),8388608&n&&o.ngAfterViewChecked(),131072&n&&o.ngOnDestroy())}}function Yo(t,e,n){var r=[];for(var i in n)r.push({propName:i,bindingType:n[i]});return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,ngContentIndex:-1,matchedQueries:{},matchedQueryIds:0,references:{},childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:{id:e,filterId:ki(e),bindings:r},ngContent:null}}function Xo(t){for(var e=t.def.nodeMatchedQueries;t.parent&&xi(t);){var n=t.parentNodeDef;t=t.parent;for(var r=n.nodeIndex+n.childCount,i=0;i<=r;i++)67108864&(o=t.def.nodes[i]).flags&&536870912&o.flags&&(o.query.filterId&e)===o.query.filterId&&ii(t,i).setDirty(),!(1&o.flags&&i+o.childCount<n.nodeIndex)&&67108864&o.childFlags&&536870912&o.childFlags||(i+=o.childCount)}if(134217728&t.def.nodeFlags)for(i=0;i<t.def.nodes.length;i++){var o;134217728&(o=t.def.nodes[i]).flags&&536870912&o.flags&&ii(t,i).setDirty(),i+=o.childCount}}function Jo(t,e){var n=ii(t,e.nodeIndex);if(n.dirty){var r,i=void 0;if(67108864&e.flags){var o=e.parent.parent;i=Zo(t,o.nodeIndex,o.nodeIndex+o.childCount,e.query,[]),r=ni(t,e.parent.nodeIndex).instance}else 134217728&e.flags&&(i=Zo(t,0,t.def.nodes.length-1,e.query,[]),r=t.component);n.reset(i);for(var s=e.query.bindings,a=!1,u=0;u<s.length;u++){var l=s[u],c=void 0;switch(l.bindingType){case 0:c=n.first;break;case 1:c=n,a=!0}r[l.propName]=c}a&&n.notifyOnChanges()}}function Zo(t,e,n,r,i){for(var o=e;o<=n;o++){var s=t.def.nodes[o],a=s.matchedQueries[r.id];if(null!=a&&i.push($o(t,s,a)),1&s.flags&&s.element.template&&(s.element.template.nodeMatchedQueries&r.filterId)===r.filterId){var u=ei(t,o);if((s.childMatchedQueries&r.filterId)===r.filterId&&(Zo(t,o+1,o+s.childCount,r,i),o+=s.childCount),16777216&s.flags)for(var l=u.viewContainer._embeddedViews,c=0;c<l.length;c++){var h=l[c],p=Si(h);p&&p===u&&Zo(h,0,h.def.nodes.length-1,r,i)}var f=u.template._projectedViews;if(f)for(c=0;c<f.length;c++){var d=f[c];Zo(d,0,d.def.nodes.length-1,r,i)}}(s.childMatchedQueries&r.filterId)!==r.filterId&&(o+=s.childCount)}return i}function $o(t,e,n){if(null!=n)switch(n){case 1:return ei(t,e.nodeIndex).renderElement;case 0:return new Oe(ei(t,e.nodeIndex).renderElement);case 2:return ei(t,e.nodeIndex).template;case 3:return ei(t,e.nodeIndex).viewContainer;case 4:return ni(t,e.nodeIndex).instance}}function ts(t,e){return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:-1,flags:8,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:t,childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:null,ngContent:{index:e}}}function es(t,e,n){var r=Ni(t,e,n);r&&Li(t,n.ngContent.index,1,r,null,void 0)}function ns(t,e,n){for(var r=new Array(n.length),i=0;i<n.length;i++){var o=n[i];r[i]={flags:8,name:o,ns:null,nonMinifiedName:o,securityContext:null,suffix:null}}return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:e,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:-1,childCount:0,bindings:r,bindingFlags:qi(r),outputs:[],element:null,provider:null,text:null,query:null,ngContent:null}}function rs(t,e,n){for(var r=new Array(n.length-1),i=1;i<n.length;i++)r[i-1]={flags:8,name:null,ns:null,nonMinifiedName:null,securityContext:null,suffix:n[i]};return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:t,flags:2,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:e,childCount:0,bindings:r,bindingFlags:8,outputs:[],element:null,provider:null,text:{prefix:n[0]},query:null,ngContent:null}}function is(t,e,n){var r,i=t.renderer;r=i.createText(n.text.prefix);var o=Ni(t,e,n);return o&&i.appendChild(o,r),{renderText:r}}function os(t,e){return(null!=t?t.toString():"")+e.suffix}function ss(t,e,n,r){for(var i=0,o=0,s=0,a=0,u=0,l=null,c=null,h=!1,p=!1,f=null,d=0;d<e.length;d++){var m=e[d];if(m.nodeIndex=d,m.parent=l,m.bindingIndex=i,m.outputIndex=o,m.renderParent=c,s|=m.flags,u|=m.matchedQueryIds,m.element){var y=m.element;y.publicProviders=l?l.element.publicProviders:Object.create(null),y.allProviders=y.publicProviders,h=!1,p=!1,m.element.template&&(u|=m.element.template.nodeMatchedQueries)}if(us(l,m,e.length),i+=m.bindings.length,o+=m.outputs.length,!c&&3&m.flags&&(f=m),20224&m.flags){h||(h=!0,l.element.publicProviders=Object.create(l.element.publicProviders),l.element.allProviders=l.element.publicProviders);var g=0!=(32768&m.flags);0==(8192&m.flags)||g?l.element.publicProviders[hi(m.provider.token)]=m:(p||(p=!0,l.element.allProviders=Object.create(l.element.publicProviders)),l.element.allProviders[hi(m.provider.token)]=m),g&&(l.element.componentProvider=m)}if(l?(l.childFlags|=m.flags,l.directChildFlags|=m.flags,l.childMatchedQueries|=m.matchedQueryIds,m.element&&m.element.template&&(l.childMatchedQueries|=m.element.template.nodeMatchedQueries)):a|=m.flags,m.childCount>0)l=m,as(m)||(c=m);else for(;l&&d===l.nodeIndex+l.childCount;){var v=l.parent;v&&(v.childFlags|=l.childFlags,v.childMatchedQueries|=l.childMatchedQueries),c=(l=v)&&as(l)?l.renderParent:l}}return{factory:null,nodeFlags:s,rootNodeFlags:a,nodeMatchedQueries:u,flags:t,nodes:e,updateDirectives:n||li,updateRenderer:r||li,handleEvent:function(t,n,r,i){return e[n].element.handleEvent(t,r,i)},bindingCount:i,outputCount:o,lastRenderRootNode:f}}function as(t){return 0!=(1&t.flags)&&null===t.element.name}function us(t,e,n){var r=e.element&&e.element.template;if(r){if(!r.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(r.lastRenderRootNode&&16777216&r.lastRenderRootNode.flags)throw new Error("Illegal State: Last root node of a template can't have embedded views, at index "+e.nodeIndex+"!")}if(20224&e.flags&&0==(1&(t?t.flags:0)))throw new Error("Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index "+e.nodeIndex+"!");if(e.query){if(67108864&e.flags&&(!t||0==(16384&t.flags)))throw new Error("Illegal State: Content Query nodes need to be children of directives, at index "+e.nodeIndex+"!");if(134217728&e.flags&&t)throw new Error("Illegal State: View Query nodes have to be top level nodes, at index "+e.nodeIndex+"!")}if(e.childCount){var i=t?t.nodeIndex+t.childCount:n-1;if(e.nodeIndex<=i&&e.nodeIndex+e.childCount>i)throw new Error("Illegal State: childCount of node leads outside of parent, at index "+e.nodeIndex+"!")}}function ls(t,e,n,r){var i=ps(t.root,t.renderer,t,e,n);return fs(i,t.component,r),ds(i),i}function cs(t,e,n){var r=ps(t,t.renderer,null,null,e);return fs(r,n,n),ds(r),r}function hs(t,e,n,r){var i,o=e.element.componentRendererType;return i=o?t.root.rendererFactory.createRenderer(r,o):t.root.renderer,ps(t.root,i,t,e.element.componentProvider,n)}function ps(t,e,n,r,i){var o=new Array(i.nodes.length),s=i.outputCount?new Array(i.outputCount):null;return{def:i,parent:n,viewContainerParent:null,parentNodeDef:r,context:null,component:null,nodes:o,state:13,root:t,renderer:e,oldValues:new Array(i.bindingCount),disposables:s,initIndex:-1}}function fs(t,e,n){t.component=e,t.context=n}function ds(t){var e;Ii(t)&&(e=ei(t.parent,t.parentNodeDef.parent.nodeIndex).renderElement);for(var n=t.def,r=t.nodes,i=0;i<n.nodes.length;i++){var o=n.nodes[i];oi.setCurrentNode(t,i);var s=void 0;switch(201347067&o.flags){case 1:var a=zi(t,e,o),u=void 0;if(33554432&o.flags){var l=Ri(o.element.componentView);u=oi.createComponentView(t,o,l,a)}Wi(t,u,o,a),s={renderElement:a,componentView:u,viewContainer:null,template:o.element.template?mo(t,o):void 0},16777216&o.flags&&(s.viewContainer=co(t,o,s));break;case 2:s=is(t,e,o);break;case 512:case 1024:case 2048:case 256:(s=r[i])||4096&o.flags||(s={instance:Lo(t,o)});break;case 16:s={instance:Fo(t,o)};break;case 16384:(s=r[i])||(s={instance:jo(t,o)}),32768&o.flags&&fs(ei(t,o.parent.nodeIndex).componentView,s.instance,s.instance);break;case 32:case 64:case 128:s={value:void 0};break;case 67108864:case 134217728:s=new yr;break;case 8:es(t,e,o),s=void 0}r[i]=s}Ss(t,Es.CreateViewNodes),xs(t,201326592,268435456,0)}function ms(t){vs(t),oi.updateDirectives(t,1),Cs(t,Es.CheckNoChanges),oi.updateRenderer(t,1),Ss(t,Es.CheckNoChanges),t.state&=-97}function ys(t){1&t.state?(t.state&=-2,t.state|=2):t.state&=-3,Zr(t,0,256),vs(t),oi.updateDirectives(t,0),Cs(t,Es.CheckAndUpdate),xs(t,67108864,536870912,0);var e=Zr(t,256,512);Qo(t,2097152|(e?1048576:0)),oi.updateRenderer(t,0),Ss(t,Es.CheckAndUpdate),xs(t,134217728,536870912,0),Qo(t,8388608|((e=Zr(t,512,768))?4194304:0)),2&t.def.flags&&(t.state&=-9),t.state&=-97,Zr(t,768,1024)}function gs(t,e,n,i,o,s,a,u,l,c,h,p,f){return 0===n?function(t,e,n,r,i,o,s,a,u,l,c,h){switch(201347067&e.flags){case 1:return function(t,e,n,r,i,o,s,a,u,l,c,h){var p=e.bindings.length,f=!1;return p>0&&Ki(t,e,0,n)&&(f=!0),p>1&&Ki(t,e,1,r)&&(f=!0),p>2&&Ki(t,e,2,i)&&(f=!0),p>3&&Ki(t,e,3,o)&&(f=!0),p>4&&Ki(t,e,4,s)&&(f=!0),p>5&&Ki(t,e,5,a)&&(f=!0),p>6&&Ki(t,e,6,u)&&(f=!0),p>7&&Ki(t,e,7,l)&&(f=!0),p>8&&Ki(t,e,8,c)&&(f=!0),p>9&&Ki(t,e,9,h)&&(f=!0),f}(t,e,n,r,i,o,s,a,u,l,c,h);case 2:return function(t,e,n,r,i,o,s,a,u,l,c,h){var p=!1,f=e.bindings,d=f.length;if(d>0&&vi(t,e,0,n)&&(p=!0),d>1&&vi(t,e,1,r)&&(p=!0),d>2&&vi(t,e,2,i)&&(p=!0),d>3&&vi(t,e,3,o)&&(p=!0),d>4&&vi(t,e,4,s)&&(p=!0),d>5&&vi(t,e,5,a)&&(p=!0),d>6&&vi(t,e,6,u)&&(p=!0),d>7&&vi(t,e,7,l)&&(p=!0),d>8&&vi(t,e,8,c)&&(p=!0),d>9&&vi(t,e,9,h)&&(p=!0),p){var m=e.text.prefix;d>0&&(m+=os(n,f[0])),d>1&&(m+=os(r,f[1])),d>2&&(m+=os(i,f[2])),d>3&&(m+=os(o,f[3])),d>4&&(m+=os(s,f[4])),d>5&&(m+=os(a,f[5])),d>6&&(m+=os(u,f[6])),d>7&&(m+=os(l,f[7])),d>8&&(m+=os(c,f[8])),d>9&&(m+=os(h,f[9]));var y=ti(t,e.nodeIndex).renderText;t.renderer.setValue(y,m)}return p}(t,e,n,r,i,o,s,a,u,l,c,h);case 16384:return function(t,e,n,r,i,o,s,a,u,l,c,h){var p=ni(t,e.nodeIndex),f=p.instance,d=!1,m=void 0,y=e.bindings.length;return y>0&&gi(t,e,0,n)&&(d=!0,m=Wo(t,p,e,0,n,m)),y>1&&gi(t,e,1,r)&&(d=!0,m=Wo(t,p,e,1,r,m)),y>2&&gi(t,e,2,i)&&(d=!0,m=Wo(t,p,e,2,i,m)),y>3&&gi(t,e,3,o)&&(d=!0,m=Wo(t,p,e,3,o,m)),y>4&&gi(t,e,4,s)&&(d=!0,m=Wo(t,p,e,4,s,m)),y>5&&gi(t,e,5,a)&&(d=!0,m=Wo(t,p,e,5,a,m)),y>6&&gi(t,e,6,u)&&(d=!0,m=Wo(t,p,e,6,u,m)),y>7&&gi(t,e,7,l)&&(d=!0,m=Wo(t,p,e,7,l,m)),y>8&&gi(t,e,8,c)&&(d=!0,m=Wo(t,p,e,8,c,m)),y>9&&gi(t,e,9,h)&&(d=!0,m=Wo(t,p,e,9,h,m)),m&&f.ngOnChanges(m),65536&e.flags&&$r(t,256,e.nodeIndex)&&f.ngOnInit(),262144&e.flags&&f.ngDoCheck(),d}(t,e,n,r,i,o,s,a,u,l,c,h);case 32:case 64:case 128:return function(t,e,n,r,i,o,s,a,u,l,c,h){var p=e.bindings,f=!1,d=p.length;if(d>0&&vi(t,e,0,n)&&(f=!0),d>1&&vi(t,e,1,r)&&(f=!0),d>2&&vi(t,e,2,i)&&(f=!0),d>3&&vi(t,e,3,o)&&(f=!0),d>4&&vi(t,e,4,s)&&(f=!0),d>5&&vi(t,e,5,a)&&(f=!0),d>6&&vi(t,e,6,u)&&(f=!0),d>7&&vi(t,e,7,l)&&(f=!0),d>8&&vi(t,e,8,c)&&(f=!0),d>9&&vi(t,e,9,h)&&(f=!0),f){var m=ri(t,e.nodeIndex),y=void 0;switch(201347067&e.flags){case 32:y=new Array(p.length),d>0&&(y[0]=n),d>1&&(y[1]=r),d>2&&(y[2]=i),d>3&&(y[3]=o),d>4&&(y[4]=s),d>5&&(y[5]=a),d>6&&(y[6]=u),d>7&&(y[7]=l),d>8&&(y[8]=c),d>9&&(y[9]=h);break;case 64:y={},d>0&&(y[p[0].name]=n),d>1&&(y[p[1].name]=r),d>2&&(y[p[2].name]=i),d>3&&(y[p[3].name]=o),d>4&&(y[p[4].name]=s),d>5&&(y[p[5].name]=a),d>6&&(y[p[6].name]=u),d>7&&(y[p[7].name]=l),d>8&&(y[p[8].name]=c),d>9&&(y[p[9].name]=h);break;case 128:var g=n;switch(d){case 1:y=g.transform(n);break;case 2:y=g.transform(r);break;case 3:y=g.transform(r,i);break;case 4:y=g.transform(r,i,o);break;case 5:y=g.transform(r,i,o,s);break;case 6:y=g.transform(r,i,o,s,a);break;case 7:y=g.transform(r,i,o,s,a,u);break;case 8:y=g.transform(r,i,o,s,a,u,l);break;case 9:y=g.transform(r,i,o,s,a,u,l,c);break;case 10:y=g.transform(r,i,o,s,a,u,l,c,h)}}m.value=y}return f}(t,e,n,r,i,o,s,a,u,l,c,h);default:throw"unreachable"}}(t,e,i,o,s,a,u,l,c,h,p,f):function(t,e,n){switch(201347067&e.flags){case 1:return function(t,e,n){for(var r=!1,i=0;i<n.length;i++)Ki(t,e,i,n[i])&&(r=!0);return r}(t,e,n);case 2:return function(t,e,n){for(var r=e.bindings,i=!1,o=0;o<n.length;o++)vi(t,e,o,n[o])&&(i=!0);if(i){var s="";for(o=0;o<n.length;o++)s+=os(n[o],r[o]);s=e.text.prefix+s;var a=ti(t,e.nodeIndex).renderText;t.renderer.setValue(a,s)}return i}(t,e,n);case 16384:return function(t,e,n){for(var r=ni(t,e.nodeIndex),i=r.instance,o=!1,s=void 0,a=0;a<n.length;a++)gi(t,e,a,n[a])&&(o=!0,s=Wo(t,r,e,a,n[a],s));return s&&i.ngOnChanges(s),65536&e.flags&&$r(t,256,e.nodeIndex)&&i.ngOnInit(),262144&e.flags&&i.ngDoCheck(),o}(t,e,n);case 32:case 64:case 128:return function(t,e,n){for(var i=e.bindings,o=!1,s=0;s<n.length;s++)vi(t,e,s,n[s])&&(o=!0);if(o){var a=ri(t,e.nodeIndex),u=void 0;switch(201347067&e.flags){case 32:u=n;break;case 64:for(u={},s=0;s<n.length;s++)u[i[s].name]=n[s];break;case 128:var l=n[0],c=n.slice(1);u=l.transform.apply(l,Object(r.__spread)(c))}a.value=u}return o}(t,e,n);default:throw"unreachable"}}(t,e,i)}function vs(t){var e=t.def;if(4&e.nodeFlags)for(var n=0;n<e.nodes.length;n++){var r=e.nodes[n];if(4&r.flags){var i=ei(t,n).template._projectedViews;if(i)for(var o=0;o<i.length;o++){var s=i[o];s.state|=32,wi(s,t)}}else 0==(4&r.childFlags)&&(n+=r.childCount)}}function _s(t,e,n,r,i,o,s,a,u,l,c,h,p){return 0===n?function(t,e,n,r,i,o,s,a,u,l,c,h){var p=e.bindings.length;p>0&&_i(t,e,0,n),p>1&&_i(t,e,1,r),p>2&&_i(t,e,2,i),p>3&&_i(t,e,3,o),p>4&&_i(t,e,4,s),p>5&&_i(t,e,5,a),p>6&&_i(t,e,6,u),p>7&&_i(t,e,7,l),p>8&&_i(t,e,8,c),p>9&&_i(t,e,9,h)}(t,e,r,i,o,s,a,u,l,c,h,p):function(t,e,n){for(var r=0;r<n.length;r++)_i(t,e,r,n[r])}(t,e,r),!1}function bs(t,e){if(ii(t,e.nodeIndex).dirty)throw si(oi.createDebugContext(t,e.nodeIndex),"Query "+e.query.id+" not dirty","Query "+e.query.id+" dirty",0!=(1&t.state))}function ws(t){if(!(128&t.state)){if(Cs(t,Es.Destroy),Ss(t,Es.Destroy),Qo(t,131072),t.disposables)for(var e=0;e<t.disposables.length;e++)t.disposables[e]();!function(t){if(16&t.state){var e=Si(t);if(e){var n=e.template._projectedViews;n&&(oo(n,n.indexOf(t)),oi.dirtyParentQueries(t))}}}(t),t.renderer.destroyNode&&function(t){for(var e=t.def.nodes.length,n=0;n<e;n++){var r=t.def.nodes[n];1&r.flags?t.renderer.destroyNode(ei(t,n).renderElement):2&r.flags?t.renderer.destroyNode(ti(t,n).renderText):(67108864&r.flags||134217728&r.flags)&&ii(t,n).destroy()}}(t),Ii(t)&&t.renderer.destroy(),t.state|=128}}var Es=function(t){return t[t.CreateViewNodes=0]="CreateViewNodes",t[t.CheckNoChanges=1]="CheckNoChanges",t[t.CheckNoChangesProjectedViews=2]="CheckNoChangesProjectedViews",t[t.CheckAndUpdate=3]="CheckAndUpdate",t[t.CheckAndUpdateProjectedViews=4]="CheckAndUpdateProjectedViews",t[t.Destroy=5]="Destroy",t}({});function Ss(t,e){var n=t.def;if(33554432&n.nodeFlags)for(var r=0;r<n.nodes.length;r++){var i=n.nodes[r];33554432&i.flags?Ts(ei(t,r).componentView,e):0==(33554432&i.childFlags)&&(r+=i.childCount)}}function Cs(t,e){var n=t.def;if(16777216&n.nodeFlags)for(var r=0;r<n.nodes.length;r++){var i=n.nodes[r];if(16777216&i.flags)for(var o=ei(t,r).viewContainer._embeddedViews,s=0;s<o.length;s++)Ts(o[s],e);else 0==(16777216&i.childFlags)&&(r+=i.childCount)}}function Ts(t,e){var n=t.state;switch(e){case Es.CheckNoChanges:0==(128&n)&&(12==(12&n)?ms(t):64&n&&Is(t,Es.CheckNoChangesProjectedViews));break;case Es.CheckNoChangesProjectedViews:0==(128&n)&&(32&n?ms(t):64&n&&Is(t,e));break;case Es.CheckAndUpdate:0==(128&n)&&(12==(12&n)?ys(t):64&n&&Is(t,Es.CheckAndUpdateProjectedViews));break;case Es.CheckAndUpdateProjectedViews:0==(128&n)&&(32&n?ys(t):64&n&&Is(t,e));break;case Es.Destroy:ws(t);break;case Es.CreateViewNodes:ds(t)}}function Is(t,e){Cs(t,e),Ss(t,e)}function xs(t,e,n,r){if(t.def.nodeFlags&e&&t.def.nodeFlags&n)for(var i=t.def.nodes.length,o=0;o<i;o++){var s=t.def.nodes[o];if(s.flags&e&&s.flags&n)switch(oi.setCurrentNode(t,s.nodeIndex),r){case 0:Jo(t,s);break;case 1:bs(t,s)}s.childFlags&e&&s.childFlags&n||(o+=s.childCount)}}var ks=!1;function As(t,e,n,r,i,o){var s=i.injector.get(Re);return cs(Ns(t,i,s,e,n),r,o)}function Os(t,e,n,r,i,o){var s=i.injector.get(Re),a=Ns(t,i,new la(s),e,n),u=qs(r);return aa(Xs.create,cs,null,[a,u,o])}function Ns(t,e,n,r,i){var o=e.injector.get(je),s=e.injector.get(Tn),a=n.createRenderer(null,null);return{ngModule:e,injector:t,projectableNodes:r,selectorOrNode:i,sanitizer:o,rendererFactory:n,renderer:a,errorHandler:s}}function Ds(t,e,n,r){var i=qs(n);return aa(Xs.create,ls,null,[t,e,i,r])}function Rs(t,e,n,r){return n=Fs.get(e.element.componentProvider.provider.token)||qs(n),aa(Xs.create,hs,null,[t,e,n,r])}function Ps(t,e,n,r){return Eo(t,e,n,function(t){var e=function(t){var e=!1,n=!1;return 0===Ms.size?{hasOverrides:e,hasDeprecatedOverrides:n}:(t.providers.forEach(function(t){var r=Ms.get(t.token);3840&t.flags&&r&&(e=!0,n=n||r.deprecatedBehavior)}),t.modules.forEach(function(t){Ls.forEach(function(r,i){gt(i).providedIn===t&&(e=!0,n=n||r.deprecatedBehavior)})}),{hasOverrides:e,hasDeprecatedOverrides:n})}(t),n=e.hasDeprecatedOverrides;return e.hasOverrides?(function(t){for(var e=0;e<t.providers.length;e++){var r=t.providers[e];n&&(r.flags|=4096);var i=Ms.get(r.token);i&&(r.flags=-3841&r.flags|i.flags,r.deps=Oi(i.deps),r.value=i.value)}if(Ls.size>0){var o=new Set(t.modules);Ls.forEach(function(e,r){if(o.has(gt(r).providedIn)){var i={token:r,flags:e.flags|(n?4096:0),deps:Oi(e.deps),value:e.value,index:t.providers.length};t.providers.push(i),t.providersByKey[hi(r)]=i}})}}(t=t.factory(function(){return li})),t):t}(r))}var Ms=new Map,Ls=new Map,Fs=new Map;function js(t){var e;Ms.set(t.token,t),"function"==typeof t.token&&(e=gt(t.token))&&"function"==typeof e.providedIn&&Ls.set(t.token,t)}function Us(t,e){var n=Ri(e.viewDefFactory),r=Ri(n.nodes[0].element.componentView);Fs.set(t,r)}function Vs(){Ms.clear(),Ls.clear(),Fs.clear()}function qs(t){if(0===Ms.size)return t;var e=function(t){for(var e=[],n=null,r=0;r<t.nodes.length;r++){var i=t.nodes[r];1&i.flags&&(n=i),n&&3840&i.flags&&Ms.has(i.provider.token)&&(e.push(n.nodeIndex),n=null)}return e}(t);if(0===e.length)return t;t=t.factory(function(){return li});for(var n=0;n<e.length;n++)r(t,e[n]);return t;function r(t,e){for(var n=e+1;n<t.nodes.length;n++){var r=t.nodes[n];if(1&r.flags)return;if(3840&r.flags){var i=r.provider,o=Ms.get(i.token);o&&(r.flags=-3841&r.flags|o.flags,i.deps=Oi(o.deps),i.value=o.value)}}}}function Bs(t,e,n,r,i,o,s,a,u,l,c,h,p){var f=t.def.nodes[e];return gs(t,f,n,r,i,o,s,a,u,l,c,h,p),224&f.flags?ri(t,e).value:void 0}function Hs(t,e,n,r,i,o,s,a,u,l,c,h,p){var f=t.def.nodes[e];return _s(t,f,n,r,i,o,s,a,u,l,c,h,p),224&f.flags?ri(t,e).value:void 0}function zs(t){return aa(Xs.detectChanges,ys,null,[t])}function Ws(t){return aa(Xs.checkNoChanges,ms,null,[t])}function Qs(t){return aa(Xs.destroy,ws,null,[t])}var Ks,Gs,Ys,Xs=function(t){return t[t.create=0]="create",t[t.detectChanges=1]="detectChanges",t[t.checkNoChanges=2]="checkNoChanges",t[t.destroy=3]="destroy",t[t.handleEvent=4]="handleEvent",t}({});function Js(t,e){Gs=t,Ys=e}function Zs(t,e,n,r){return Js(t,e),aa(Xs.handleEvent,t.def.handleEvent,null,[t,e,n,r])}function $s(t,e){if(128&t.state)throw ui(Xs[Ks]);return Js(t,ra(t,0)),t.def.updateDirectives(function(t,n,r){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];var s=t.def.nodes[n];return 0===e?ea(t,s,r,i):na(t,s,r,i),16384&s.flags&&Js(t,ra(t,n)),224&s.flags?ri(t,s.nodeIndex).value:void 0},t)}function ta(t,e){if(128&t.state)throw ui(Xs[Ks]);return Js(t,ia(t,0)),t.def.updateRenderer(function(t,n,r){for(var i=[],o=3;o<arguments.length;o++)i[o-3]=arguments[o];var s=t.def.nodes[n];return 0===e?ea(t,s,r,i):na(t,s,r,i),3&s.flags&&Js(t,ia(t,n)),224&s.flags?ri(t,s.nodeIndex).value:void 0},t)}function ea(t,e,n,i){if(gs.apply(void 0,Object(r.__spread)([t,e,n],i))){var o=1===n?i[0]:i;if(16384&e.flags){for(var s={},a=0;a<e.bindings.length;a++){var u=e.bindings[a],l=o[a];8&u.flags&&(s[(f=u.nonMinifiedName,"ng-reflect-"+f.replace(/[$@]/g,"_").replace(Kt,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return"-"+t[1].toLowerCase()}))]=Gt(l))}var c=e.parent,h=ei(t,c.nodeIndex).renderElement;if(c.element.name)for(var p in s)null!=(l=s[p])?t.renderer.setAttribute(h,p,l):t.renderer.removeAttribute(h,p);else t.renderer.setValue(h,"bindings="+JSON.stringify(s,null,2))}}var f}function na(t,e,n,i){_s.apply(void 0,Object(r.__spread)([t,e,n],i))}function ra(t,e){for(var n=e;n<t.def.nodes.length;n++){var r=t.def.nodes[n];if(16384&r.flags&&r.bindings&&r.bindings.length)return n}return null}function ia(t,e){for(var n=e;n<t.def.nodes.length;n++){var r=t.def.nodes[n];if(3&r.flags&&r.bindings&&r.bindings.length)return n}return null}var oa=function(){function t(t,e){this.view=t,this.nodeIndex=e,null==e&&(this.nodeIndex=e=0),this.nodeDef=t.def.nodes[e];for(var n=this.nodeDef,r=t;n&&0==(1&n.flags);)n=n.parent;if(!n)for(;!n&&r;)n=Ci(r),r=r.parent;this.elDef=n,this.elView=r}return Object.defineProperty(t.prototype,"elOrCompView",{get:function(){return ei(this.elView,this.elDef.nodeIndex).componentView||this.view},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return go(this.elView,this.elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"component",{get:function(){return this.elOrCompView.component},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this.elOrCompView.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"providerTokens",{get:function(){var t=[];if(this.elDef)for(var e=this.elDef.nodeIndex+1;e<=this.elDef.nodeIndex+this.elDef.childCount;e++){var n=this.elView.def.nodes[e];20224&n.flags&&t.push(n.provider.token),e+=n.childCount}return t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"references",{get:function(){var t={};if(this.elDef){sa(this.elView,this.elDef,t);for(var e=this.elDef.nodeIndex+1;e<=this.elDef.nodeIndex+this.elDef.childCount;e++){var n=this.elView.def.nodes[e];20224&n.flags&&sa(this.elView,n,t),e+=n.childCount}}return t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"componentRenderElement",{get:function(){var t=function(t){for(;t&&!Ii(t);)t=t.parent;return t.parent?ei(t.parent,Ci(t).nodeIndex):null}(this.elOrCompView);return t?t.renderElement:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"renderNode",{get:function(){return 2&this.nodeDef.flags?Ti(this.view,this.nodeDef):Ti(this.elView,this.elDef)},enumerable:!0,configurable:!0}),t.prototype.logError=function(t){for(var e,n,i=[],o=1;o<arguments.length;o++)i[o-1]=arguments[o];2&this.nodeDef.flags?(e=this.view.def,n=this.nodeDef.nodeIndex):(e=this.elView.def,n=this.elDef.nodeIndex);var s=function(t,e){for(var n=-1,r=0;r<=e;r++)3&t.nodes[r].flags&&n++;return n}(e,n),a=-1;e.factory(function(){var e;return++a===s?(e=t.error).bind.apply(e,Object(r.__spread)([t],i)):li}),a<s&&(t.error("Illegal state: the ViewDefinitionFactory did not call the logger!"),t.error.apply(t,Object(r.__spread)(i)))},t}();function sa(t,e,n){for(var r in e.references)n[r]=$o(t,e,e.references[r])}function aa(t,e,n,r){var i=Ks,o=Gs,s=Ys;try{Ks=t;var a=e.apply(n,r);return Gs=o,Ys=s,Ks=i,a}catch(u){if(En(u)||!Gs)throw u;throw function(t,e){return t instanceof Error||(t=new Error(t.toString())),ai(t,e),t}(u,ua())}}function ua(){return Gs?new oa(Gs,Ys):null}var la=function(){function t(t){this.delegate=t}return t.prototype.createRenderer=function(t,e){return new ca(this.delegate.createRenderer(t,e))},t.prototype.begin=function(){this.delegate.begin&&this.delegate.begin()},t.prototype.end=function(){this.delegate.end&&this.delegate.end()},t.prototype.whenRenderingDone=function(){return this.delegate.whenRenderingDone?this.delegate.whenRenderingDone():Promise.resolve(null)},t}(),ca=function(){function t(t){this.delegate=t,this.debugContextFactory=ua,this.data=this.delegate.data}return t.prototype.createDebugContext=function(t){return this.debugContextFactory(t)},t.prototype.destroyNode=function(t){!function(t){kr.delete(t.nativeNode)}(Ar(t)),this.delegate.destroyNode&&this.delegate.destroyNode(t)},t.prototype.destroy=function(){this.delegate.destroy()},t.prototype.createElement=function(t,e){var n=this.delegate.createElement(t,e),r=this.createDebugContext(n);if(r){var i=new xr(n,null,r);i.name=t,Or(i)}return n},t.prototype.createComment=function(t){var e=this.delegate.createComment(t),n=this.createDebugContext(e);return n&&Or(new Ir(e,null,n)),e},t.prototype.createText=function(t){var e=this.delegate.createText(t),n=this.createDebugContext(e);return n&&Or(new Ir(e,null,n)),e},t.prototype.appendChild=function(t,e){var n=Ar(t),r=Ar(e);n&&r&&n instanceof xr&&n.addChild(r),this.delegate.appendChild(t,e)},t.prototype.insertBefore=function(t,e,n){var r=Ar(t),i=Ar(e),o=Ar(n);r&&i&&r instanceof xr&&r.insertBefore(o,i),this.delegate.insertBefore(t,e,n)},t.prototype.removeChild=function(t,e){var n=Ar(t),r=Ar(e);n&&r&&n instanceof xr&&n.removeChild(r),this.delegate.removeChild(t,e)},t.prototype.selectRootElement=function(t,e){var n=this.delegate.selectRootElement(t,e),r=ua();return r&&Or(new xr(n,null,r)),n},t.prototype.setAttribute=function(t,e,n,r){var i=Ar(t);i&&i instanceof xr&&(i.attributes[r?r+":"+e:e]=n),this.delegate.setAttribute(t,e,n,r)},t.prototype.removeAttribute=function(t,e,n){var r=Ar(t);r&&r instanceof xr&&(r.attributes[n?n+":"+e:e]=null),this.delegate.removeAttribute(t,e,n)},t.prototype.addClass=function(t,e){var n=Ar(t);n&&n instanceof xr&&(n.classes[e]=!0),this.delegate.addClass(t,e)},t.prototype.removeClass=function(t,e){var n=Ar(t);n&&n instanceof xr&&(n.classes[e]=!1),this.delegate.removeClass(t,e)},t.prototype.setStyle=function(t,e,n,r){var i=Ar(t);i&&i instanceof xr&&(i.styles[e]=n),this.delegate.setStyle(t,e,n,r)},t.prototype.removeStyle=function(t,e,n){var r=Ar(t);r&&r instanceof xr&&(r.styles[e]=null),this.delegate.removeStyle(t,e,n)},t.prototype.setProperty=function(t,e,n){var r=Ar(t);r&&r instanceof xr&&(r.properties[e]=n),this.delegate.setProperty(t,e,n)},t.prototype.listen=function(t,e,n){if("string"!=typeof t){var r=Ar(t);r&&r.listeners.push(new Tr(e,n))}return this.delegate.listen(t,e,n)},t.prototype.parentNode=function(t){return this.delegate.parentNode(t)},t.prototype.nextSibling=function(t){return this.delegate.nextSibling(t)},t.prototype.setValue=function(t,e){return this.delegate.setValue(t,e)},t}();function ha(t,e,n){return new pa(t,e,n)}var pa=function(t){function e(e,n,r){var i=t.call(this)||this;return i.moduleType=e,i._bootstrapComponents=n,i._ngModuleDefFactory=r,i}return Object(r.__extends)(e,t),e.prototype.create=function(t){!function(){if(!ks){ks=!0;var t=Be()?{setCurrentNode:Js,createRootView:Os,createEmbeddedView:Ds,createComponentView:Rs,createNgModuleRef:Ps,overrideProvider:js,overrideComponentView:Us,clearOverrides:Vs,checkAndUpdateView:zs,checkNoChangesView:Ws,destroyView:Qs,createDebugContext:function(t,e){return new oa(t,e)},handleEvent:Zs,updateDirectives:$s,updateRenderer:ta}:{setCurrentNode:function(){},createRootView:As,createEmbeddedView:ls,createComponentView:hs,createNgModuleRef:Eo,overrideProvider:li,overrideComponentView:li,clearOverrides:li,checkAndUpdateView:ys,checkNoChangesView:ms,destroyView:ws,createDebugContext:function(t,e){return new oa(t,e)},handleEvent:function(t,e,n,r){return t.def.handleEvent(t,e,n,r)},updateDirectives:function(t,e){return t.def.updateDirectives(0===e?Bs:Hs,t)},updateRenderer:function(t,e){return t.def.updateRenderer(0===e?Bs:Hs,t)}};oi.setCurrentNode=t.setCurrentNode,oi.createRootView=t.createRootView,oi.createEmbeddedView=t.createEmbeddedView,oi.createComponentView=t.createComponentView,oi.createNgModuleRef=t.createNgModuleRef,oi.overrideProvider=t.overrideProvider,oi.overrideComponentView=t.overrideComponentView,oi.clearOverrides=t.clearOverrides,oi.checkAndUpdateView=t.checkAndUpdateView,oi.checkNoChangesView=t.checkNoChangesView,oi.destroyView=t.destroyView,oi.resolveDep=Ho,oi.createDebugContext=t.createDebugContext,oi.handleEvent=t.handleEvent,oi.updateDirectives=t.updateDirectives,oi.updateRenderer=t.updateRenderer,oi.dirtyParentQueries=Xo}}();var e=function(t){var e=Array.from(t.providers),n=Array.from(t.modules),r={};for(var i in t.providersByKey)r[i]=t.providersByKey[i];return{factory:t.factory,isRoot:t.isRoot,providers:e,modules:n,providersByKey:r}}(Ri(this._ngModuleDefFactory));return oi.createNgModuleRef(this.moduleType,t||oe.NULL,this._bootstrapComponents,e)},e}(Ae),fa=function(){return function(){}}(),da=function(){return function(){this.title="angular-client"}}(),ma=function(){return function(){}}(),ya=function(){return function(){}}(),ga="*";function va(t,e){return void 0===e&&(e=null),{type:2,steps:t,options:e}}function _a(t){return{type:6,styles:t,offset:null}}function ba(t){Promise.resolve(null).then(t)}var wa=function(){function t(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=t+e}return t.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.hasStarted=function(){return this._started},t.prototype.init=function(){},t.prototype.play=function(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0},t.prototype.triggerMicrotask=function(){var t=this;ba(function(){return t._onFinish()})},t.prototype._onStart=function(){this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[]},t.prototype.pause=function(){},t.prototype.restart=function(){},t.prototype.finish=function(){this._onFinish()},t.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype.reset=function(){},t.prototype.setPosition=function(t){},t.prototype.getPosition=function(){return 0},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t}(),Ea=function(){function t(t){var e=this;this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;var n=0,r=0,i=0,o=this.players.length;0==o?ba(function(){return e._onFinish()}):this.players.forEach(function(t){t.onDone(function(){++n==o&&e._onFinish()}),t.onDestroy(function(){++r==o&&e._onDestroy()}),t.onStart(function(){++i==o&&e._onStart()})}),this.totalTime=this.players.reduce(function(t,e){return Math.max(t,e.totalTime)},0)}return t.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},t.prototype.init=function(){this.players.forEach(function(t){return t.init()})},t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype._onStart=function(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[])},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.hasStarted=function(){return this._started},t.prototype.play=function(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(function(t){return t.play()})},t.prototype.pause=function(){this.players.forEach(function(t){return t.pause()})},t.prototype.restart=function(){this.players.forEach(function(t){return t.restart()})},t.prototype.finish=function(){this._onFinish(),this.players.forEach(function(t){return t.finish()})},t.prototype.destroy=function(){this._onDestroy()},t.prototype._onDestroy=function(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(function(t){return t.destroy()}),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype.reset=function(){this.players.forEach(function(t){return t.reset()}),this._destroyed=!1,this._finished=!1,this._started=!1},t.prototype.setPosition=function(t){var e=t*this.totalTime;this.players.forEach(function(t){var n=t.totalTime?Math.min(1,e/t.totalTime):1;t.setPosition(n)})},t.prototype.getPosition=function(){var t=0;return this.players.forEach(function(e){var n=e.getPosition();t=Math.min(n,t)}),t},t.prototype.beforeDestroy=function(){this.players.forEach(function(t){t.beforeDestroy&&t.beforeDestroy()})},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t}(),Sa="!";function Ca(t){return null!=t&&""+t!="false"}function Ta(t,e){return void 0===e&&(e=0),function(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}(t)?Number(t):e}function Ia(t){return Array.isArray(t)?t:[t]}function xa(t){return null==t?"":"string"==typeof t?t:t+"px"}function ka(t){return t instanceof Oe?t.nativeElement:t}var Aa=27,Oa=function(){return function(){}}(),Na=new vt("Location Initialized"),Da=function(){return function(){}}(),Ra=new vt("appBaseHref"),Pa=function(){function t(t){var n=this;this._subject=new hn,this._platformStrategy=t;var r=this._platformStrategy.getBaseHref();this._baseHref=e.stripTrailingSlash(Ma(r)),this._platformStrategy.onPopState(function(t){n._subject.emit({url:n.path(!0),pop:!0,state:t.state,type:t.type})})}var e;return e=t,t.prototype.path=function(t){return void 0===t&&(t=!1),this.normalize(this._platformStrategy.path(t))},t.prototype.isCurrentPathEqualTo=function(t,n){return void 0===n&&(n=""),this.path()==this.normalize(t+e.normalizeQueryParams(n))},t.prototype.normalize=function(t){return e.stripTrailingSlash(function(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}(this._baseHref,Ma(t)))},t.prototype.prepareExternalUrl=function(t){return t&&"/"!==t[0]&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)},t.prototype.go=function(t,e,n){void 0===e&&(e=""),void 0===n&&(n=null),this._platformStrategy.pushState(n,"",t,e)},t.prototype.replaceState=function(t,e,n){void 0===e&&(e=""),void 0===n&&(n=null),this._platformStrategy.replaceState(n,"",t,e)},t.prototype.forward=function(){this._platformStrategy.forward()},t.prototype.back=function(){this._platformStrategy.back()},t.prototype.subscribe=function(t,e,n){return this._subject.subscribe({next:t,error:e,complete:n})},t.normalizeQueryParams=function(t){return t&&"?"!==t[0]?"?"+t:t},t.joinWithSlash=function(t,e){if(0==t.length)return e;if(0==e.length)return t;var n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,2==n?t+e.substring(1):1==n?t+e:t+"/"+e},t.stripTrailingSlash=function(t){var e=t.match(/#|\?|$/),n=e&&e.index||t.length;return t.slice(0,n-("/"===t[n-1]?1:0))+t.slice(n)},t}();function Ma(t){return t.replace(/\/index.html$/,"")}var La=function(t){function e(e,n){var r=t.call(this)||this;return r._platformLocation=e,r._baseHref="",null!=n&&(r._baseHref=n),r}return Object(r.__extends)(e,t),e.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},e.prototype.getBaseHref=function(){return this._baseHref},e.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.hash;return null==e&&(e="#"),e.length>0?e.substring(1):e},e.prototype.prepareExternalUrl=function(t){var e=Pa.joinWithSlash(this._baseHref,t);return e.length>0?"#"+e:e},e.prototype.pushState=function(t,e,n,r){var i=this.prepareExternalUrl(n+Pa.normalizeQueryParams(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.pushState(t,e,i)},e.prototype.replaceState=function(t,e,n,r){var i=this.prepareExternalUrl(n+Pa.normalizeQueryParams(r));0==i.length&&(i=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,i)},e.prototype.forward=function(){this._platformLocation.forward()},e.prototype.back=function(){this._platformLocation.back()},e}(Da),Fa=function(t){function e(e,n){var r=t.call(this)||this;if(r._platformLocation=e,null==n&&(n=r._platformLocation.getBaseHrefFromDOM()),null==n)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");return r._baseHref=n,r}return Object(r.__extends)(e,t),e.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},e.prototype.getBaseHref=function(){return this._baseHref},e.prototype.prepareExternalUrl=function(t){return Pa.joinWithSlash(this._baseHref,t)},e.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.pathname+Pa.normalizeQueryParams(this._platformLocation.search),n=this._platformLocation.hash;return n&&t?""+e+n:e},e.prototype.pushState=function(t,e,n,r){var i=this.prepareExternalUrl(n+Pa.normalizeQueryParams(r));this._platformLocation.pushState(t,e,i)},e.prototype.replaceState=function(t,e,n,r){var i=this.prepareExternalUrl(n+Pa.normalizeQueryParams(r));this._platformLocation.replaceState(t,e,i)},e.prototype.forward=function(){this._platformLocation.forward()},e.prototype.back=function(){this._platformLocation.back()},e}(Da),ja=void 0,Ua=["en",[["a","p"],["AM","PM"],ja],[["AM","PM"],ja,ja],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],ja,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],ja,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",ja,"{1} 'at' {0}",ja],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"$","US Dollar",{},function(t){var e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===n?1:5}],Va={},qa=function(t){return t[t.Zero=0]="Zero",t[t.One=1]="One",t[t.Two=2]="Two",t[t.Few=3]="Few",t[t.Many=4]="Many",t[t.Other=5]="Other",t}({}),Ba=new vt("UseV4Plurals"),Ha=function(){return function(){}}(),za=function(t){function e(e,n){var r=t.call(this)||this;return r.locale=e,r.deprecatedPluralFn=n,r}return Object(r.__extends)(e,t),e.prototype.getPluralCategory=function(t,e){switch(this.deprecatedPluralFn?this.deprecatedPluralFn(e||this.locale,t):function(t){return function(t){var e=t.toLowerCase().replace(/_/g,"-"),n=Va[e];if(n)return n;var r=e.split("-")[0];if(n=Va[r])return n;if("en"===r)return Ua;throw new Error('Missing locale data for the locale "'+t+'".')}(t)[18]}(e||this.locale)(t)){case qa.Zero:return"zero";case qa.One:return"one";case qa.Two:return"two";case qa.Few:return"few";case qa.Many:return"many";default:return"other"}},e}(Ha);function Wa(t,e){var n,i;e=encodeURIComponent(e);try{for(var o=Object(r.__values)(t.split(";")),s=o.next();!s.done;s=o.next()){var a=s.value,u=a.indexOf("="),l=Object(r.__read)(-1==u?[a,""]:[a.slice(0,u),a.slice(u+1)],2),c=l[1];if(l[0].trim()===e)return decodeURIComponent(c)}}catch(h){n={error:h}}finally{try{s&&!s.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}return null}var Qa=function(){function t(t,e,n,r){this._iterableDiffers=t,this._keyValueDiffers=e,this._ngEl=n,this._renderer=r,this._initialClasses=[]}return Object.defineProperty(t.prototype,"klass",{set:function(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClass",{set:function(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(Zt(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){if(this._iterableDiffer){var t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){var e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}},t.prototype._applyKeyValueChanges=function(t){var e=this;t.forEachAddedItem(function(t){return e._toggleClass(t.key,t.currentValue)}),t.forEachChangedItem(function(t){return e._toggleClass(t.key,t.currentValue)}),t.forEachRemovedItem(function(t){t.previousValue&&e._toggleClass(t.key,!1)})},t.prototype._applyIterableChanges=function(t){var e=this;t.forEachAddedItem(function(t){if("string"!=typeof t.item)throw new Error("NgClass can only toggle CSS classes expressed as strings, got "+Rt(t.item));e._toggleClass(t.item,!0)}),t.forEachRemovedItem(function(t){return e._toggleClass(t.item,!1)})},t.prototype._applyClasses=function(t){var e=this;t&&(Array.isArray(t)||t instanceof Set?t.forEach(function(t){return e._toggleClass(t,!0)}):Object.keys(t).forEach(function(n){return e._toggleClass(n,!!t[n])}))},t.prototype._removeClasses=function(t){var e=this;t&&(Array.isArray(t)||t instanceof Set?t.forEach(function(t){return e._toggleClass(t,!1)}):Object.keys(t).forEach(function(t){return e._toggleClass(t,!1)}))},t.prototype._toggleClass=function(t,e){var n=this;(t=t.trim())&&t.split(/\s+/g).forEach(function(t){e?n._renderer.addClass(n._ngEl.nativeElement,t):n._renderer.removeClass(n._ngEl.nativeElement,t)})},t}(),Ka=function(){function t(t,e,n,r){this.$implicit=t,this.ngForOf=e,this.index=n,this.count=r}return Object.defineProperty(t.prototype,"first",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this.index===this.count-1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"even",{get:function(){return this.index%2==0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"odd",{get:function(){return!this.even},enumerable:!0,configurable:!0}),t}(),Ga=function(){function t(t,e,n){this._viewContainer=t,this._template=e,this._differs=n,this._ngForOfDirty=!0,this._differ=null}return Object.defineProperty(t.prototype,"ngForOf",{set:function(t){this._ngForOf=t,this._ngForOfDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngForTrackBy",{get:function(){return this._trackByFn},set:function(t){Be()&&null!=t&&"function"!=typeof t&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(t)+". See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information."),this._trackByFn=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngForTemplate",{set:function(t){t&&(this._template=t)},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){if(this._ngForOfDirty){this._ngForOfDirty=!1;var t=this._ngForOf;if(!this._differ&&t)try{this._differ=this._differs.find(t).create(this.ngForTrackBy)}catch(r){throw new Error("Cannot find a differ supporting object '"+t+"' of type '"+((e=t).name||typeof e)+"'. NgFor only supports binding to Iterables such as Arrays.")}}var e;if(this._differ){var n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}},t.prototype._applyChanges=function(t){var e=this,n=[];t.forEachOperation(function(t,r,i){if(null==t.previousIndex){var o=e._viewContainer.createEmbeddedView(e._template,new Ka(null,e._ngForOf,-1,-1),i),s=new Ya(t,o);n.push(s)}else null==i?e._viewContainer.remove(r):(o=e._viewContainer.get(r),e._viewContainer.move(o,i),s=new Ya(t,o),n.push(s))});for(var r=0;r<n.length;r++)this._perViewChange(n[r].view,n[r].record);r=0;for(var i=this._viewContainer.length;r<i;r++){var o=this._viewContainer.get(r);o.context.index=r,o.context.count=i,o.context.ngForOf=this._ngForOf}t.forEachIdentityChange(function(t){e._viewContainer.get(t.currentIndex).context.$implicit=t.item})},t.prototype._perViewChange=function(t,e){t.context.$implicit=e.item},t.ngTemplateContextGuard=function(t,e){return!0},t}(),Ya=function(){return function(t,e){this.record=t,this.view=e}}(),Xa=function(){function t(t,e){this._viewContainer=t,this._context=new Ja,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=e}return Object.defineProperty(t.prototype,"ngIf",{set:function(t){this._context.$implicit=this._context.ngIf=t,this._updateView()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngIfThen",{set:function(t){Za("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngIfElse",{set:function(t){Za("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()},enumerable:!0,configurable:!0}),t.prototype._updateView=function(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))},t.ngTemplateGuard_ngIf=function(t,e){return!0},t}(),Ja=function(){return function(){this.$implicit=null,this.ngIf=null}}();function Za(t,e){if(e&&!e.createEmbeddedView)throw new Error(t+" must be a TemplateRef, but received '"+Rt(e)+"'.")}var $a=function(){function t(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}return t.prototype.create=function(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)},t.prototype.destroy=function(){this._created=!1,this._viewContainerRef.clear()},t.prototype.enforceState=function(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()},t}(),tu=function(){function t(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}return Object.defineProperty(t.prototype,"ngSwitch",{set:function(t){this._ngSwitch=t,0===this._caseCount&&this._updateDefaultCases(!0)},enumerable:!0,configurable:!0}),t.prototype._addCase=function(){return this._caseCount++},t.prototype._addDefault=function(t){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(t)},t.prototype._matchCase=function(t){var e=t==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||e,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),e},t.prototype._updateDefaultCases=function(t){if(this._defaultViews&&t!==this._defaultUsed){this._defaultUsed=t;for(var e=0;e<this._defaultViews.length;e++)this._defaultViews[e].enforceState(t)}},t}(),eu=function(){function t(t,e,n){this.ngSwitch=n,n._addCase(),this._view=new $a(t,e)}return t.prototype.ngDoCheck=function(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))},t}(),nu=function(){function t(){}return t.prototype.createSubscription=function(t,e){return t.subscribe({next:e,error:function(t){throw t}})},t.prototype.dispose=function(t){t.unsubscribe()},t.prototype.onDestroy=function(t){t.unsubscribe()},t}(),ru=new(function(){function t(){}return t.prototype.createSubscription=function(t,e){return t.then(e,function(t){throw t})},t.prototype.dispose=function(t){},t.prototype.onDestroy=function(t){},t}()),iu=new nu,ou=function(){function t(t){this._ref=t,this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null,this._strategy=null}var e;return e=t,t.prototype.ngOnDestroy=function(){this._subscription&&this._dispose()},t.prototype.transform=function(t){return this._obj?t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue===this._latestReturnedValue?this._latestReturnedValue:(this._latestReturnedValue=this._latestValue,Xt.wrap(this._latestValue)):(t&&this._subscribe(t),this._latestReturnedValue=this._latestValue,this._latestValue)},t.prototype._subscribe=function(t){var e=this;this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,function(n){return e._updateLatestValue(t,n)})},t.prototype._selectStrategy=function(t){if(In(t))return ru;if(xn(t))return iu;throw Error("InvalidPipeArgument: '"+t+"' for pipe '"+Rt(e)+"'")},t.prototype._dispose=function(){this._strategy.dispose(this._subscription),this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null},t.prototype._updateLatestValue=function(t,e){t===this._obj&&(this._latestValue=e,this._ref.markForCheck())},t}(),su=function(){return function(){}}(),au=new vt("DocumentToken"),uu="browser",lu="server";function cu(t){return t===uu}function hu(t){return t===lu}var pu,fu,du=function(){function t(){}return t.ngInjectableDef=yt({providedIn:"root",factory:function(){return new mu(Qt(au),window,Qt(Tn))}}),t}(),mu=function(){function t(t,e,n){this.document=t,this.window=e,this.errorHandler=n,this.offset=function(){return[0,0]}}return t.prototype.setOffset=function(t){this.offset=Array.isArray(t)?function(){return t}:t},t.prototype.getScrollPosition=function(){return this.supportScrollRestoration()?[this.window.scrollX,this.window.scrollY]:[0,0]},t.prototype.scrollToPosition=function(t){this.supportScrollRestoration()&&this.window.scrollTo(t[0],t[1])},t.prototype.scrollToAnchor=function(t){if(this.supportScrollRestoration()){t=this.window.CSS&&this.window.CSS.escape?this.window.CSS.escape(t):t.replace(/(\"|\'\ |:|\.|\[|\]|,|=)/g,"\\$1");try{var e=this.document.querySelector("#"+t);if(e)return void this.scrollToElement(e);var n=this.document.querySelector("[name='"+t+"']");if(n)return void this.scrollToElement(n)}catch(r){this.errorHandler.handleError(r)}}},t.prototype.setHistoryScrollRestoration=function(t){if(this.supportScrollRestoration()){var e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}},t.prototype.scrollToElement=function(t){var e=t.getBoundingClientRect(),n=e.left+this.window.pageXOffset,r=e.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(n-i[0],r-i[1])},t.prototype.supportScrollRestoration=function(){try{return!!this.window&&!!this.window.scrollTo}catch(t){return!1}},t}(),yu="undefined"!=typeof Intl&&Intl.v8BreakIterator,gu=function(){function t(t){this._platformId=t,this.isBrowser=this._platformId?cu(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&&!yu)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("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 t.ngInjectableDef=yt({factory:function(){return new t(Qt(Pn,8))},token:t,providedIn:"root"}),t}(),vu=function(){return function(){}}(),_u=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function bu(){if(pu)return pu;if("object"!=typeof document||!document)return pu=new Set(_u);var t=document.createElement("input");return pu=new Set(_u.filter(function(e){return t.setAttribute("type",e),t.type===e}))}function wu(t){return function(){if(null==fu&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){return fu=!0}}))}finally{fu=fu||!1}return fu}()?t:!!t.capture}var Eu,Su=function(){var t={NORMAL:0,NEGATED:1,INVERTED:2};return t[t.NORMAL]="NORMAL",t[t.NEGATED]="NEGATED",t[t.INVERTED]="INVERTED",t}();function Cu(){if("object"!=typeof document||!document)return Su.NORMAL;if(!Eu){var t=document.createElement("div"),e=t.style;t.dir="rtl",e.height="1px",e.width="1px",e.overflow="auto",e.visibility="hidden",e.pointerEvents="none",e.position="absolute";var n=document.createElement("div"),r=n.style;r.width="2px",r.height="1px",t.appendChild(n),document.body.appendChild(t),Eu=Su.NORMAL,0===t.scrollLeft&&(t.scrollLeft=1,Eu=0===t.scrollLeft?Su.NEGATED:Su.INVERTED),t.parentNode.removeChild(t)}return Eu}var Tu={};function Iu(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=null,r=null;return P(t[t.length-1])&&(r=t.pop()),"function"==typeof t[t.length-1]&&(n=t.pop()),1===t.length&&i(t[0])&&(t=t[0]),X(t,r).lift(new xu(n))}var xu=function(){function t(t){this.resultSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new ku(t,this.resultSelector))},t}(),ku=function(t){function e(e,n){var r=t.call(this,e)||this;return r.resultSelector=n,r.active=0,r.values=[],r.observables=[],r}return r.__extends(e,t),e.prototype._next=function(t){this.values.push(Tu),this.observables.push(t)},e.prototype._complete=function(){var t=this.observables,e=t.length;if(0===e)this.destination.complete();else{this.active=e,this.toRespond=e;for(var n=0;n<e;n++){var r=t[n];this.add(W(this,r,r,n))}}},e.prototype.notifyComplete=function(t){0==(this.active-=1)&&this.destination.complete()},e.prototype.notifyNext=function(t,e,n,r,i){var o=this.values,s=this.toRespond?o[n]===Tu?--this.toRespond:this.toRespond:0;o[n]=e,0===s&&(this.resultSelector?this._tryResultSelector(o):this.destination.next(o.slice()))},e.prototype._tryResultSelector=function(t){var e;try{e=this.resultSelector.apply(this,t)}catch(n){return void this.destination.error(n)}this.destination.next(e)},e}(Q),Au=1,Ou={},Nu=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r.pending=!1,r}return r.__extends(e,t),e.prototype.schedule=function(t,e){if(void 0===e&&(e=0),this.closed)return this;this.state=t;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(r,this.id,e),this},e.prototype.requestAsyncId=function(t,e,n){return void 0===n&&(n=0),setInterval(t.flush.bind(t,this),n)},e.prototype.recycleAsyncId=function(t,e,n){if(void 0===n&&(n=0),null!==n&&this.delay===n&&!1===this.pending)return e;clearInterval(e)},e.prototype.execute=function(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(t,e);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(t,e){var n=!1,r=void 0;try{this.work(t)}catch(i){n=!0,r=!!i&&i||new Error(i)}if(n)return this.unsubscribe(),r},e.prototype._unsubscribe=function(){var t=this.id,e=this.scheduler,n=e.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null},e}(function(t){function e(e,n){return t.call(this)||this}return r.__extends(e,t),e.prototype.schedule=function(t,e){return void 0===e&&(e=0),this},e}(f)),Du=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r}return r.__extends(e,t),e.prototype.requestAsyncId=function(e,n,r){return void 0===r&&(r=0),null!==r&&r>0?t.prototype.requestAsyncId.call(this,e,n,r):(e.actions.push(this),e.scheduled||(e.scheduled=(i=e.flush.bind(e,null),o=Au++,Ou[o]=i,Promise.resolve().then(function(){return function(t){var e=Ou[t];e&&e()}(o)}),o)));var i,o},e.prototype.recycleAsyncId=function(e,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,r);0===e.actions.length&&(delete Ou[n],e.scheduled=void 0)},e}(Nu),Ru=function(){function t(e,n){void 0===n&&(n=t.now),this.SchedulerAction=e,this.now=n}return t.prototype.schedule=function(t,e,n){return void 0===e&&(e=0),new this.SchedulerAction(this,t).schedule(n,e)},t.now=function(){return Date.now()},t}(),Pu=function(t){function e(n,r){void 0===r&&(r=Ru.now);var i=t.call(this,n,function(){return e.delegate&&e.delegate!==i?e.delegate.now():r()})||this;return i.actions=[],i.active=!1,i.scheduled=void 0,i}return r.__extends(e,t),e.prototype.schedule=function(n,r,i){return void 0===r&&(r=0),e.delegate&&e.delegate!==this?e.delegate.schedule(n,r,i):t.prototype.schedule.call(this,n,r,i)},e.prototype.flush=function(t){var e=this.actions;if(this.active)e.push(t);else{var n;this.active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}},e}(Ru),Mu=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,r=-1,i=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++r<i&&(t=n.shift()));if(this.active=!1,e){for(;++r<i&&(t=n.shift());)t.unsubscribe();throw e}},e}(Pu))(Du),Lu=new Pu(Nu);function Fu(t,e){return void 0===e&&(e=Lu),function(n){return n.lift(new ju(t,e))}}var ju=function(){function t(t,e){this.dueTime=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new Uu(t,this.dueTime,this.scheduler))},t}(),Uu=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.dueTime=n,i.scheduler=r,i.debouncedSubscription=null,i.lastValue=null,i.hasValue=!1,i}return r.__extends(e,t),e.prototype._next=function(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(Vu,this.dueTime,this))},e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},e.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var t=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}},e.prototype.clearDebounce=function(){var t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)},e}(b);function Vu(t){t.debouncedNext()}function qu(t){var e=new I(function(e){e.next(t),e.complete()});return e._isScalar=!0,e.value=t,e}var Bu=new I(function(t){return t.complete()});function Hu(t){return t?function(t){return new I(function(e){return t.schedule(function(){return e.complete()})})}(t):Bu}function zu(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=t[t.length-1];switch(P(n)?t.pop():n=void 0,t.length){case 0:return Hu(n);case 1:return n?X(t,n):qu(t[0]);default:return X(t,n)}}function Wu(){return nt(1)}function Qu(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(e){var n=t[t.length-1];P(n)?t.pop():n=null;var r=t.length;return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return 1===t.length||2===t.length&&P(t[1])?J(t[0]):Wu()(zu.apply(void 0,t))}(1!==r||n?r>0?X(t,n):Hu(n):qu(t[0]),e)}}function Ku(t){return function(e){return e.lift(new Yu(t))}}var Gu,Yu=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){var n=new Xu(t),r=W(n,this.notifier);return r&&!n.seenValue?(n.add(r),e.subscribe(n)):n},t}(),Xu=function(t){function e(e){var n=t.call(this,e)||this;return n.seenValue=!1,n}return r.__extends(e,t),e.prototype.notifyNext=function(t,e,n,r,i){this.seenValue=!0,this.complete()},e.prototype.notifyComplete=function(){},e}(Q),Ju=new Set,Zu=function(){function t(t){this.platform=t,this._matchMedia=this.platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):$u}return t.prototype.matchMedia=function(t){return this.platform.WEBKIT&&function(t){if(!Ju.has(t))try{Gu||((Gu=document.createElement("style")).setAttribute("type","text/css"),document.head.appendChild(Gu)),Gu.sheet&&(Gu.sheet.insertRule("@media "+t+" {.fx-query-test{ }}",0),Ju.add(t))}catch(e){console.error(e)}}(t),this._matchMedia(t)},t.ngInjectableDef=yt({factory:function(){return new t(Qt(gu))},token:t,providedIn:"root"}),t}();function $u(t){return{matches:"all"===t||""===t,media:t,addListener:function(){},removeListener:function(){}}}var tl=function(){function t(t,e){this.mediaMatcher=t,this.zone=e,this._queries=new Map,this._destroySubject=new D}return t.prototype.ngOnDestroy=function(){this._destroySubject.next(),this._destroySubject.complete()},t.prototype.isMatched=function(t){var e=this;return el(Ia(t)).some(function(t){return e._registerQuery(t).mql.matches})},t.prototype.observe=function(t){var e=this;return Iu(el(Ia(t)).map(function(t){return e._registerQuery(t).observable})).pipe(Fu(0,Mu),K(function(t){var e={matches:!1,breakpoints:{}};return t.forEach(function(t){e.matches=e.matches||t.matches,e.breakpoints[t.query]=t.matches}),e}))},t.prototype._registerQuery=function(t){var e=this;if(this._queries.has(t))return this._queries.get(t);var n,r=this.mediaMatcher.matchMedia(t),o={observable:function t(e,n,r){return r?t(e,n).pipe(K(function(t){return i(t)?r.apply(void 0,t):r(t)})):new I(function(t){var r,i=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t.next(1===e.length?e[0]:e)};try{r=e(i)}catch(o){return void t.error(o)}if(s(n))return function(){return n(i,r)}})}(function(t){r.addListener(n=function(n){return e.zone.run(function(){return t(n)})})},function(){return r.removeListener(n)}).pipe(Qu(r),K(function(e){return{query:t,matches:e.matches}}),Ku(this._destroySubject)),mql:r};return this._queries.set(t,o),o},t.ngInjectableDef=yt({factory:function(){return new t(Qt(Zu),Qt(Jn))},token:t,providedIn:"root"}),t}();function el(t){return t.map(function(t){return t.split(",")}).reduce(function(t,e){return t.concat(e)}).map(function(t){return t.trim()})}var nl={XSmall:"(max-width: 599.99px)",Small:"(min-width: 600px) and (max-width: 959.99px)",Medium:"(min-width: 960px) and (max-width: 1279.99px)",Large:"(min-width: 1280px) and (max-width: 1919.99px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.99px) and (orientation: portrait), (max-width: 959.99px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.99px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.99px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.99px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.99px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"};function rl(t,e,n,r){return s(n)&&(r=n,n=void 0),r?rl(t,e,n).pipe(K(function(t){return i(t)?r.apply(void 0,t):r(t)})):new I(function(r){!function t(e,n,r,i,o){var s;if(function(t){return t&&"function"==typeof t.addEventListener&&"function"==typeof t.removeEventListener}(e)){var a=e;e.addEventListener(n,r,o),s=function(){return a.removeEventListener(n,r,o)}}else if(function(t){return t&&"function"==typeof t.on&&"function"==typeof t.off}(e)){var u=e;e.on(n,r),s=function(){return u.off(n,r)}}else if(function(t){return t&&"function"==typeof t.addListener&&"function"==typeof t.removeListener}(e)){var l=e;e.addListener(n,r),s=function(){return l.removeListener(n,r)}}else{if(!e||!e.length)throw new TypeError("Invalid event target");for(var c=0,h=e.length;c<h;c++)t(e[c],n,r,i,o)}i.add(s)}(t,e,function(t){r.next(arguments.length>1?Array.prototype.slice.call(arguments):t)},r,n)})}var il=function(){function t(t,e){this.compare=t,this.keySelector=e}return t.prototype.call=function(t,e){return e.subscribe(new ol(t,this.compare,this.keySelector))},t}(),ol=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.keySelector=r,i.hasKey=!1,"function"==typeof n&&(i.compare=n),i}return r.__extends(e,t),e.prototype.compare=function(t,e){return t===e},e.prototype._next=function(t){var e=t;if(this.keySelector&&(e=c(this.keySelector)(t))===u)return this.destination.error(u.e);var n=!1;if(this.hasKey){if((n=c(this.compare)(this.key,e))===u)return this.destination.error(u.e)}else this.hasKey=!0;!1===Boolean(n)&&(this.key=e,this.destination.next(t))},e}(b),sl=function(){function t(t){this.durationSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new al(t,this.durationSelector))},t}(),al=function(t){function e(e,n){var r=t.call(this,e)||this;return r.durationSelector=n,r.hasValue=!1,r}return r.__extends(e,t),e.prototype._next=function(t){if(this.value=t,this.hasValue=!0,!this.throttled){var e=c(this.durationSelector)(t);if(e===u)this.destination.error(u.e);else{var n=W(this,e);!n||n.closed?this.clearThrottle():this.add(this.throttled=n)}}},e.prototype.clearThrottle=function(){var t=this.value,e=this.hasValue,n=this.throttled;n&&(this.remove(n),this.throttled=null,n.unsubscribe()),e&&(this.value=null,this.hasValue=!1,this.destination.next(t))},e.prototype.notifyNext=function(t,e,n,r){this.clearThrottle()},e.prototype.notifyComplete=function(){this.clearThrottle()},e}(Q);function ul(t){return!i(t)&&t-parseFloat(t)+1>=0}function ll(t){var e=t.index,n=t.period,r=t.subscriber;if(r.next(e),!r.closed){if(-1===n)return r.complete();t.index=e+1,this.schedule(t,n)}}function cl(t,e){return void 0===e&&(e=Lu),n=function(){return function(t,e,n){void 0===t&&(t=0);var r=-1;return ul(e)?r=Number(e)<1?1:Number(e):P(e)&&(n=e),P(n)||(n=Lu),new I(function(e){var i=ul(t)?t:+t-n.now();return n.schedule(ll,i,{index:0,period:r,subscriber:e})})}(t,e)},function(t){return t.lift(new sl(n))};var n}function hl(t,e){return function(n){return n.lift(new pl(t,e))}}var pl=function(){function t(t,e){this.predicate=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new fl(t,this.predicate,this.thisArg))},t}(),fl=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.predicate=n,i.thisArg=r,i.count=0,i}return r.__extends(e,t),e.prototype._next=function(t){var e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}e&&this.destination.next(t)},e}(b);function dl(t,e){return"function"==typeof e?function(n){return n.pipe(dl(function(n,r){return J(t(n,r)).pipe(K(function(t,i){return e(n,t,r,i)}))}))}:function(e){return e.lift(new ml(t))}}var ml=function(){function t(t){this.project=t}return t.prototype.call=function(t,e){return e.subscribe(new yl(t,this.project))},t}(),yl=function(t){function e(e,n){var r=t.call(this,e)||this;return r.project=n,r.index=0,r}return r.__extends(e,t),e.prototype._next=function(t){var e,n=this.index++;try{e=this.project(t,n)}catch(r){return void this.destination.error(r)}this._innerSub(e,t,n)},e.prototype._innerSub=function(t,e,n){var r=this.innerSubscription;r&&r.unsubscribe();var i=new M(this,void 0,void 0);this.destination.add(i),this.innerSubscription=W(this,t,e,n,i)},e.prototype._complete=function(){var e=this.innerSubscription;e&&!e.closed||t.prototype._complete.call(this),this.unsubscribe()},e.prototype._unsubscribe=function(){this.innerSubscription=null},e.prototype.notifyComplete=function(e){this.destination.remove(e),this.innerSubscription=null,this.isStopped&&t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,n,r,i){this.destination.next(e)},e}(Q),gl=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r}return r.__extends(e,t),e.prototype.schedule=function(e,n){return void 0===n&&(n=0),n>0?t.prototype.schedule.call(this,e,n):(this.delay=n,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,n){return n>0||this.closed?t.prototype.execute.call(this,e,n):this._execute(e,n)},e.prototype.requestAsyncId=function(e,n,r){return void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0?t.prototype.requestAsyncId.call(this,e,n,r):e.flush(this)},e}(Nu),vl=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e}(Pu))(gl);function _l(t,e){return new I(e?function(n){return e.schedule(bl,0,{error:t,subscriber:n})}:function(e){return e.error(t)})}function bl(t){t.subscriber.error(t.error)}var wl=function(){function t(t,e,n){this.kind=t,this.value=e,this.error=n,this.hasValue="N"===t}return t.prototype.observe=function(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}},t.prototype.do=function(t,e,n){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return n&&n()}},t.prototype.accept=function(t,e,n){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,n)},t.prototype.toObservable=function(){switch(this.kind){case"N":return zu(this.value);case"E":return _l(this.error);case"C":return Hu()}throw new Error("unexpected notification kind value")},t.createNext=function(e){return void 0!==e?new t("N",e):t.undefinedValueNotification},t.createError=function(e){return new t("E",void 0,e)},t.createComplete=function(){return t.completeNotification},t.completeNotification=new t("C"),t.undefinedValueNotification=new t("N",void 0),t}(),El=function(){function t(t,e){this._ngZone=t,this._platform=e,this._scrolled=new D,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map}return t.prototype.register=function(t){var e=this;this.scrollContainers.has(t)||this.scrollContainers.set(t,t.elementScrolled().subscribe(function(){return e._scrolled.next(t)}))},t.prototype.deregister=function(t){var e=this.scrollContainers.get(t);e&&(e.unsubscribe(),this.scrollContainers.delete(t))},t.prototype.scrolled=function(t){var e=this;return void 0===t&&(t=20),this._platform.isBrowser?new I(function(n){e._globalSubscription||e._addGlobalListener();var r=t>0?e._scrolled.pipe(cl(t)).subscribe(n):e._scrolled.subscribe(n);return e._scrolledCount++,function(){r.unsubscribe(),e._scrolledCount--,e._scrolledCount||e._removeGlobalListener()}}):zu()},t.prototype.ngOnDestroy=function(){var t=this;this._removeGlobalListener(),this.scrollContainers.forEach(function(e,n){return t.deregister(n)}),this._scrolled.complete()},t.prototype.ancestorScrolled=function(t,e){var n=this.getAncestorScrollContainers(t);return this.scrolled(e).pipe(hl(function(t){return!t||n.indexOf(t)>-1}))},t.prototype.getAncestorScrollContainers=function(t){var e=this,n=[];return this.scrollContainers.forEach(function(r,i){e._scrollableContainsElement(i,t)&&n.push(i)}),n},t.prototype._scrollableContainsElement=function(t,e){var n=e.nativeElement,r=t.getElementRef().nativeElement;do{if(n==r)return!0}while(n=n.parentElement);return!1},t.prototype._addGlobalListener=function(){var t=this;this._globalSubscription=this._ngZone.runOutsideAngular(function(){return rl(window.document,"scroll").subscribe(function(){return t._scrolled.next()})})},t.prototype._removeGlobalListener=function(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)},t.ngInjectableDef=yt({factory:function(){return new t(Qt(Jn),Qt(gu))},token:t,providedIn:"root"}),t}(),Sl=function(){function t(t,e,n,r){var i=this;this.elementRef=t,this.scrollDispatcher=e,this.ngZone=n,this.dir=r,this._destroyed=new D,this._elementScrolled=new I(function(t){return i.ngZone.runOutsideAngular(function(){return rl(i.elementRef.nativeElement,"scroll").pipe(Ku(i._destroyed)).subscribe(t)})})}return t.prototype.ngOnInit=function(){this.scrollDispatcher.register(this)},t.prototype.ngOnDestroy=function(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()},t.prototype.elementScrolled=function(){return this._elementScrolled},t.prototype.getElementRef=function(){return this.elementRef},t.prototype.scrollTo=function(t){var e=this.elementRef.nativeElement,n=this.dir&&"rtl"==this.dir.value;t.left=null==t.left?n?t.end:t.start:t.left,t.right=null==t.right?n?t.start:t.end:t.right,null!=t.bottom&&(t.top=e.scrollHeight-e.clientHeight-t.bottom),n&&Cu()!=Su.NORMAL?(null!=t.left&&(t.right=e.scrollWidth-e.clientWidth-t.left),Cu()==Su.INVERTED?t.left=t.right:Cu()==Su.NEGATED&&(t.left=t.right?-t.right:t.right)):null!=t.right&&(t.left=e.scrollWidth-e.clientWidth-t.right),this._applyScrollToOptions(t)},t.prototype._applyScrollToOptions=function(t){var e=this.elementRef.nativeElement;"object"==typeof document&&"scrollBehavior"in document.documentElement.style?e.scrollTo(t):(null!=t.top&&(e.scrollTop=t.top),null!=t.left&&(e.scrollLeft=t.left))},t.prototype.measureScrollOffset=function(t){var e=this.elementRef.nativeElement;if("top"==t)return e.scrollTop;if("bottom"==t)return e.scrollHeight-e.clientHeight-e.scrollTop;var n=this.dir&&"rtl"==this.dir.value;return"start"==t?t=n?"right":"left":"end"==t&&(t=n?"left":"right"),n&&Cu()==Su.INVERTED?"left"==t?e.scrollWidth-e.clientWidth-e.scrollLeft:e.scrollLeft:n&&Cu()==Su.NEGATED?"left"==t?e.scrollLeft+e.scrollWidth-e.clientWidth:-e.scrollLeft:"left"==t?e.scrollLeft:e.scrollWidth-e.clientWidth-e.scrollLeft},t}(),Cl=function(){return function(){}}(),Tl=function(){function t(t,e){var n=this;this._platform=t,e.runOutsideAngular(function(){n._change=t.isBrowser?rt(rl(window,"resize"),rl(window,"orientationchange")):zu(),n._invalidateCache=n.change().subscribe(function(){return n._updateViewportSize()})})}return t.prototype.ngOnDestroy=function(){this._invalidateCache.unsubscribe()},t.prototype.getViewportSize=function(){this._viewportSize||this._updateViewportSize();var t={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),t},t.prototype.getViewportRect=function(){var t=this.getViewportScrollPosition(),e=this.getViewportSize(),n=e.width,r=e.height;return{top:t.top,left:t.left,bottom:t.top+r,right:t.left+n,height:r,width:n}},t.prototype.getViewportScrollPosition=function(){if(!this._platform.isBrowser)return{top:0,left:0};var t=document.documentElement,e=t.getBoundingClientRect();return{top:-e.top||document.body.scrollTop||window.scrollY||t.scrollTop||0,left:-e.left||document.body.scrollLeft||window.scrollX||t.scrollLeft||0}},t.prototype.change=function(t){return void 0===t&&(t=20),t>0?this._change.pipe(cl(t)):this._change},t.prototype._updateViewportSize=function(){this._viewportSize=this._platform.isBrowser?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0}},t.ngInjectableDef=yt({factory:function(){return new t(Qt(gu),Qt(Jn))},token:t,providedIn:"root"}),t}();function Il(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}Il.prototype=Object.create(Error.prototype);var xl=Il;function kl(t){return function(e){return 0===t?Hu():e.lift(new Al(t))}}var Al=function(){function t(t){if(this.total=t,this.total<0)throw new xl}return t.prototype.call=function(t,e){return e.subscribe(new Ol(t,this.total))},t}(),Ol=function(t){function e(e,n){var r=t.call(this,e)||this;return r.total=n,r.count=0,r}return r.__extends(e,t),e.prototype._next=function(t){var e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))},e}(b);function Nl(){throw Error("Host already has a portal attached")}var Dl=function(){function t(){}return t.prototype.attach=function(t){return null==t&&function(){throw Error("Attempting to attach a portal to a null PortalOutlet")}(),t.hasAttached()&&Nl(),this._attachedHost=t,t.attach(this)},t.prototype.detach=function(){var t=this._attachedHost;null==t?function(){throw Error("Attempting to detach a portal that is not attached to a host")}():(this._attachedHost=null,t.detach())},Object.defineProperty(t.prototype,"isAttached",{get:function(){return null!=this._attachedHost},enumerable:!0,configurable:!0}),t.prototype.setAttachedHost=function(t){this._attachedHost=t},t}(),Rl=function(t){function e(e,n,r,i){var o=t.call(this)||this;return o.component=e,o.viewContainerRef=n,o.injector=r,o.componentFactoryResolver=i,o}return Object(r.__extends)(e,t),e}(Dl),Pl=function(t){function e(e,n,r){var i=t.call(this)||this;return i.templateRef=e,i.viewContainerRef=n,i.context=r,i}return Object(r.__extends)(e,t),Object.defineProperty(e.prototype,"origin",{get:function(){return this.templateRef.elementRef},enumerable:!0,configurable:!0}),e.prototype.attach=function(e,n){return void 0===n&&(n=this.context),this.context=n,t.prototype.attach.call(this,e)},e.prototype.detach=function(){return this.context=void 0,t.prototype.detach.call(this)},e}(Dl),Ml=function(t){function e(e,n,r,i){var o=t.call(this)||this;return o.outletElement=e,o._componentFactoryResolver=n,o._appRef=r,o._defaultInjector=i,o}return Object(r.__extends)(e,t),e.prototype.attachComponentPortal=function(t){var e,n=this,r=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);return t.viewContainerRef?(e=t.viewContainerRef.createComponent(r,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector),this.setDisposeFn(function(){return e.destroy()})):(e=r.create(t.injector||this._defaultInjector),this._appRef.attachView(e.hostView),this.setDisposeFn(function(){n._appRef.detachView(e.hostView),e.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(e)),e},e.prototype.attachTemplatePortal=function(t){var e=this,n=t.viewContainerRef,r=n.createEmbeddedView(t.templateRef,t.context);return r.detectChanges(),r.rootNodes.forEach(function(t){return e.outletElement.appendChild(t)}),this.setDisposeFn(function(){var t=n.indexOf(r);-1!==t&&n.remove(t)}),r},e.prototype.dispose=function(){t.prototype.dispose.call(this),null!=this.outletElement.parentNode&&this.outletElement.parentNode.removeChild(this.outletElement)},e.prototype._getComponentRootNode=function(t){return t.hostView.rootNodes[0]},e}(function(){function t(){this._isDisposed=!1}return t.prototype.hasAttached=function(){return!!this._attachedPortal},t.prototype.attach=function(t){return t||function(){throw Error("Must provide a portal to attach")}(),this.hasAttached()&&Nl(),this._isDisposed&&function(){throw Error("This PortalOutlet has already been disposed")}(),t instanceof Rl?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof Pl?(this._attachedPortal=t,this.attachTemplatePortal(t)):void function(){throw Error("Attempting to attach an unknown Portal type. BasePortalOutlet accepts either a ComponentPortal or a TemplatePortal.")}()},t.prototype.detach=function(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()},t.prototype.dispose=function(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0},t.prototype.setDisposeFn=function(t){this._disposeFn=t},t.prototype._invokeDisposeFn=function(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)},t}()),Ll=function(){return function(){}}(),Fl=function(){function t(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}return t.prototype.attach=function(){},t.prototype.enable=function(){if(this._canBeEnabled()){var t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=xa(-this._previousScrollPosition.left),t.style.top=xa(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}},t.prototype.disable=function(){if(this._isEnabled){var t=this._document.documentElement,e=t.style,n=this._document.body.style,r=e.scrollBehavior||"",i=n.scrollBehavior||"";this._isEnabled=!1,e.left=this._previousHTMLStyles.left,e.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),e.scrollBehavior=n.scrollBehavior="auto",window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),e.scrollBehavior=r,n.scrollBehavior=i}},t.prototype._canBeEnabled=function(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;var t=this._document.body,e=this._viewportRuler.getViewportSize();return t.scrollHeight>e.height||t.scrollWidth>e.width},t}();function jl(){return Error("Scroll strategy has already been attached.")}var Ul=function(){function t(t,e,n,r){var i=this;this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=n,this._config=r,this._scrollSubscription=null,this._detach=function(){i.disable(),i._overlayRef.hasAttached()&&i._ngZone.run(function(){return i._overlayRef.detach()})}}return t.prototype.attach=function(t){if(this._overlayRef)throw jl();this._overlayRef=t},t.prototype.enable=function(){var t=this;if(!this._scrollSubscription){var e=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(function(){var e=t._viewportRuler.getViewportScrollPosition().top;Math.abs(e-t._initialScrollPosition)>t._config.threshold?t._detach():t._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}},t.prototype.disable=function(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)},t}(),Vl=function(){function t(){}return t.prototype.enable=function(){},t.prototype.disable=function(){},t.prototype.attach=function(){},t}();function ql(t,e){return e.some(function(e){return t.bottom<e.top||t.top>e.bottom||t.right<e.left||t.left>e.right})}function Bl(t,e){return e.some(function(e){return t.top<e.top||t.bottom>e.bottom||t.left<e.left||t.right>e.right})}var Hl=function(){function t(t,e,n,r){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=n,this._config=r,this._scrollSubscription=null}return t.prototype.attach=function(t){if(this._overlayRef)throw jl();this._overlayRef=t},t.prototype.enable=function(){var t=this;this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(function(){if(t._overlayRef.updatePosition(),t._config&&t._config.autoClose){var e=t._overlayRef.overlayElement.getBoundingClientRect(),n=t._viewportRuler.getViewportSize(),r=n.width,i=n.height;ql(e,[{width:r,height:i,bottom:i,right:r,top:0,left:0}])&&(t.disable(),t._ngZone.run(function(){return t._overlayRef.detach()}))}}))},t.prototype.disable=function(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)},t}(),zl=function(){function t(t,e,n,r){var i=this;this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=n,this.noop=function(){return new Vl},this.close=function(t){return new Ul(i._scrollDispatcher,i._ngZone,i._viewportRuler,t)},this.block=function(){return new Fl(i._viewportRuler,i._document)},this.reposition=function(t){return new Hl(i._scrollDispatcher,i._viewportRuler,i._ngZone,t)},this._document=r}return t.ngInjectableDef=yt({factory:function(){return new t(Qt(El),Qt(Tl),Qt(Jn),Qt(au))},token:t,providedIn:"root"}),t}(),Wl=function(){return function(t){var e=this;this.scrollStrategy=new Vl,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t&&Object.keys(t).forEach(function(n){void 0!==t[n]&&(e[n]=t[n])})}}(),Ql=function(){return function(t,e,n,r,i){this.offsetX=n,this.offsetY=r,this.panelClass=i,this.originX=t.originX,this.originY=t.originY,this.overlayX=e.overlayX,this.overlayY=e.overlayY}}(),Kl=function(){return function(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}();function Gl(t,e){if("top"!==e&&"bottom"!==e&&"center"!==e)throw Error("ConnectedPosition: Invalid "+t+' "'+e+'". Expected "top", "bottom" or "center".')}function Yl(t,e){if("start"!==e&&"end"!==e&&"center"!==e)throw Error("ConnectedPosition: Invalid "+t+' "'+e+'". Expected "start", "end" or "center".')}var Xl=function(){function t(t){var e=this;this._attachedOverlays=[],this._keydownListener=function(t){for(var n=e._attachedOverlays,r=n.length-1;r>-1;r--)if(n[r]._keydownEventSubscriptions>0){n[r]._keydownEvents.next(t);break}},this._document=t}return t.prototype.ngOnDestroy=function(){this._detach()},t.prototype.add=function(t){this.remove(t),this._isAttached||(this._document.body.addEventListener("keydown",this._keydownListener,!0),this._isAttached=!0),this._attachedOverlays.push(t)},t.prototype.remove=function(t){var e=this._attachedOverlays.indexOf(t);e>-1&&this._attachedOverlays.splice(e,1),0===this._attachedOverlays.length&&this._detach()},t.prototype._detach=function(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener,!0),this._isAttached=!1)},t.ngInjectableDef=yt({factory:function(){return new t(Qt(au))},token:t,providedIn:"root"}),t}(),Jl=function(){function t(t){this._document=t}return t.prototype.ngOnDestroy=function(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)},t.prototype.getContainerElement=function(){return this._containerElement||this._createContainer(),this._containerElement},t.prototype._createContainer=function(){var t=this._document.createElement("div");t.classList.add("cdk-overlay-container"),this._document.body.appendChild(t),this._containerElement=t},t.ngInjectableDef=yt({factory:function(){return new t(Qt(au))},token:t,providedIn:"root"}),t}(),Zl=function(){function t(t,e,n,r,i,o,s,a){var u=this;this._portalOutlet=t,this._host=e,this._pane=n,this._config=r,this._ngZone=i,this._keyboardDispatcher=o,this._document=s,this._location=a,this._backdropElement=null,this._backdropClick=new D,this._attachments=new D,this._detachments=new D,this._locationChanges=f.EMPTY,this._keydownEventsObservable=new I(function(t){var e=u._keydownEvents.subscribe(t);return u._keydownEventSubscriptions++,function(){e.unsubscribe(),u._keydownEventSubscriptions--}}),this._keydownEvents=new D,this._keydownEventSubscriptions=0,r.scrollStrategy&&r.scrollStrategy.attach(this),this._positionStrategy=r.positionStrategy}return Object.defineProperty(t.prototype,"overlayElement",{get:function(){return this._pane},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"backdropElement",{get:function(){return this._backdropElement},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hostElement",{get:function(){return this._host},enumerable:!0,configurable:!0}),t.prototype.attach=function(t){var e=this,n=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._config.scrollStrategy&&this._config.scrollStrategy.enable(),this._ngZone.onStable.asObservable().pipe(kl(1)).subscribe(function(){e.hasAttached()&&e.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&this._location&&(this._locationChanges=this._location.subscribe(function(){return e.dispose()})),n},t.prototype.detach=function(){if(this.hasAttached()){this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._config.scrollStrategy&&this._config.scrollStrategy.disable();var t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),t}},t.prototype.dispose=function(){var t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._config.scrollStrategy&&this._config.scrollStrategy.disable(),this.detachBackdrop(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._host&&this._host.parentNode&&(this._host.parentNode.removeChild(this._host),this._host=null),this._previousHostParent=this._pane=null,t&&this._detachments.next(),this._detachments.complete()},t.prototype.hasAttached=function(){return this._portalOutlet.hasAttached()},t.prototype.backdropClick=function(){return this._backdropClick.asObservable()},t.prototype.attachments=function(){return this._attachments.asObservable()},t.prototype.detachments=function(){return this._detachments.asObservable()},t.prototype.keydownEvents=function(){return this._keydownEventsObservable},t.prototype.getConfig=function(){return this._config},t.prototype.updatePosition=function(){this._positionStrategy&&this._positionStrategy.apply()},t.prototype.updatePositionStrategy=function(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))},t.prototype.updateSize=function(t){this._config=Object(r.__assign)({},this._config,t),this._updateElementSize()},t.prototype.setDirection=function(t){this._config=Object(r.__assign)({},this._config,{direction:t}),this._updateElementDirection()},t.prototype.addPanelClass=function(t){this._pane&&this._toggleClasses(this._pane,t,!0)},t.prototype.removePanelClass=function(t){this._pane&&this._toggleClasses(this._pane,t,!1)},t.prototype.getDirection=function(){var t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"},t.prototype._updateElementDirection=function(){this._host.setAttribute("dir",this.getDirection())},t.prototype._updateElementSize=function(){var t=this._pane.style;t.width=xa(this._config.width),t.height=xa(this._config.height),t.minWidth=xa(this._config.minWidth),t.minHeight=xa(this._config.minHeight),t.maxWidth=xa(this._config.maxWidth),t.maxHeight=xa(this._config.maxHeight)},t.prototype._togglePointerEvents=function(t){this._pane.style.pointerEvents=t?"auto":"none"},t.prototype._attachBackdrop=function(){var t=this;this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",function(e){return t._backdropClick.next(e)}),"undefined"!=typeof requestAnimationFrame?this._ngZone.runOutsideAngular(function(){requestAnimationFrame(function(){t._backdropElement&&t._backdropElement.classList.add("cdk-overlay-backdrop-showing")})}):this._backdropElement.classList.add("cdk-overlay-backdrop-showing")},t.prototype._updateStackingOrder=function(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)},t.prototype.detachBackdrop=function(){var t=this,e=this._backdropElement;if(e){var n,r=function(){e&&e.parentNode&&e.parentNode.removeChild(e),t._backdropElement==e&&(t._backdropElement=null),t._config.backdropClass&&t._toggleClasses(e,t._config.backdropClass,!1),clearTimeout(n)};e.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(function(){e.addEventListener("transitionend",r)}),e.style.pointerEvents="none",n=this._ngZone.runOutsideAngular(function(){return setTimeout(r,500)})}},t.prototype._toggleClasses=function(t,e,n){var r=t.classList;Ia(e).forEach(function(t){n?r.add(t):r.remove(t)})},t.prototype._detachContentWhenStable=function(){var t=this;this._ngZone.runOutsideAngular(function(){var e=t._ngZone.onStable.asObservable().pipe(Ku(rt(t._attachments,t._detachments))).subscribe(function(){t._pane&&t._host&&0!==t._pane.children.length||(t._pane&&t._config.panelClass&&t._toggleClasses(t._pane,t._config.panelClass,!1),t._host&&t._host.parentElement&&(t._previousHostParent=t._host.parentElement,t._previousHostParent.removeChild(t._host)),e.unsubscribe())})})},t}(),$l=function(){function t(t,e,n,r,i){var o=this;this._viewportRuler=e,this._document=n,this._platform=r,this._overlayContainer=i,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this.scrollables=[],this._preferredPositions=[],this._positionChanges=new D,this._resizeSubscription=f.EMPTY,this._offsetX=0,this._offsetY=0,this._positionChangeSubscriptions=0,this._appliedPanelClasses=[],this.positionChanges=new I(function(t){var e=o._positionChanges.subscribe(t);return o._positionChangeSubscriptions++,function(){e.unsubscribe(),o._positionChangeSubscriptions--}}),this.setOrigin(t)}return Object.defineProperty(t.prototype,"positions",{get:function(){return this._preferredPositions},enumerable:!0,configurable:!0}),t.prototype.attach=function(t){var e=this;if(this._overlayRef&&t!==this._overlayRef)throw Error("This position strategy is already attached to an overlay");this._validatePositions(),t.hostElement.classList.add("cdk-overlay-connected-position-bounding-box"),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(function(){e._isInitialRender=!0,e.apply()})},t.prototype.apply=function(){if(!(this._isDisposed||this._platform&&!this._platform.isBrowser))if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)this.reapplyLastPosition();else{this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect();for(var t,e=this._originRect,n=this._overlayRect,r=this._viewportRect,i=[],o=0,s=this._preferredPositions;o<s.length;o++){var a=s[o],u=this._getOriginPoint(e,a),l=this._getOverlayPoint(u,n,a),c=this._getOverlayFit(l,n,r,a);if(c.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,u);this._canFitWithFlexibleDimensions(c,l,r)?i.push({position:a,origin:u,overlayRect:n,boundingBoxRect:this._calculateBoundingBoxRect(u,a)}):(!t||t.overlayFit.visibleArea<c.visibleArea)&&(t={overlayFit:c,overlayPoint:l,originPoint:u,position:a,overlayRect:n})}if(i.length){for(var h=null,p=-1,f=0,d=i;f<d.length;f++){var m=d[f],y=m.boundingBoxRect.width*m.boundingBoxRect.height*(m.position.weight||1);y>p&&(p=y,h=m)}return this._isPushed=!1,void this._applyPosition(h.position,h.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(t.position,t.originPoint);this._applyPosition(t.position,t.originPoint)}},t.prototype.detach=function(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()},t.prototype.dispose=function(){this._isDisposed||(this._boundingBox&&tc(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove("cdk-overlay-connected-position-bounding-box"),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)},t.prototype.reapplyLastPosition=function(){if(!this._isDisposed&&(!this._platform||this._platform.isBrowser)){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect();var t=this._lastPosition||this._preferredPositions[0],e=this._getOriginPoint(this._originRect,t);this._applyPosition(t,e)}},t.prototype.withScrollableContainers=function(t){this.scrollables=t},t.prototype.withPositions=function(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this},t.prototype.withViewportMargin=function(t){return this._viewportMargin=t,this},t.prototype.withFlexibleDimensions=function(t){return void 0===t&&(t=!0),this._hasFlexibleDimensions=t,this},t.prototype.withGrowAfterOpen=function(t){return void 0===t&&(t=!0),this._growAfterOpen=t,this},t.prototype.withPush=function(t){return void 0===t&&(t=!0),this._canPush=t,this},t.prototype.withLockedPosition=function(t){return void 0===t&&(t=!0),this._positionLocked=t,this},t.prototype.setOrigin=function(t){return this._origin=t,this},t.prototype.withDefaultOffsetX=function(t){return this._offsetX=t,this},t.prototype.withDefaultOffsetY=function(t){return this._offsetY=t,this},t.prototype.withTransformOriginOn=function(t){return this._transformOriginSelector=t,this},t.prototype._getOriginPoint=function(t,e){var n;if("center"==e.originX)n=t.left+t.width/2;else{var r=this._isRtl()?t.right:t.left,i=this._isRtl()?t.left:t.right;n="start"==e.originX?r:i}return{x:n,y:"center"==e.originY?t.top+t.height/2:"top"==e.originY?t.top:t.bottom}},t.prototype._getOverlayPoint=function(t,e,n){var r;return r="center"==n.overlayX?-e.width/2:"start"===n.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,{x:t.x+r,y:t.y+("center"==n.overlayY?-e.height/2:"top"==n.overlayY?0:-e.height)}},t.prototype._getOverlayFit=function(t,e,n,r){var i=t.x,o=t.y,s=this._getOffset(r,"x"),a=this._getOffset(r,"y");s&&(i+=s),a&&(o+=a);var u=0-o,l=o+e.height-n.height,c=this._subtractOverflows(e.width,0-i,i+e.width-n.width),h=this._subtractOverflows(e.height,u,l),p=c*h;return{visibleArea:p,isCompletelyWithinViewport:e.width*e.height===p,fitsInViewportVertically:h===e.height,fitsInViewportHorizontally:c==e.width}},t.prototype._canFitWithFlexibleDimensions=function(t,e,n){if(this._hasFlexibleDimensions){var r=n.bottom-e.y,i=n.right-e.x,o=this._overlayRef.getConfig().minHeight,s=this._overlayRef.getConfig().minWidth;return(t.fitsInViewportVertically||null!=o&&o<=r)&&(t.fitsInViewportHorizontally||null!=s&&s<=i)}},t.prototype._pushOverlayOnScreen=function(t,e,n){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};var r,i,o=this._viewportRect,s=Math.max(t.x+e.width-o.right,0),a=Math.max(t.y+e.height-o.bottom,0),u=Math.max(o.top-n.top-t.y,0),l=Math.max(o.left-n.left-t.x,0);return this._previousPushAmount={x:r=e.width<=o.width?l||-s:t.x<this._viewportMargin?o.left-n.left-t.x:0,y:i=e.height<=o.height?u||-a:t.y<this._viewportMargin?o.top-n.top-t.y:0},{x:t.x+r,y:t.y+i}},t.prototype._applyPosition=function(t,e){if(this._setTransformOrigin(t),this._setOverlayElementStyles(e,t),this._setBoundingBoxStyles(e,t),t.panelClass&&this._addPanelClasses(t.panelClass),this._lastPosition=t,this._positionChangeSubscriptions>0){var n=this._getScrollVisibility(),r=new Kl(t,n);this._positionChanges.next(r)}this._isInitialRender=!1},t.prototype._setTransformOrigin=function(t){if(this._transformOriginSelector){var e,n=this._boundingBox.querySelectorAll(this._transformOriginSelector),r=t.overlayY;e="center"===t.overlayX?"center":this._isRtl()?"start"===t.overlayX?"right":"left":"start"===t.overlayX?"left":"right";for(var i=0;i<n.length;i++)n[i].style.transformOrigin=e+" "+r}},t.prototype._calculateBoundingBoxRect=function(t,e){var n,r,i,o,s,a,u=this._viewportRect,l=this._isRtl();if("top"===e.overlayY)n=u.height-(r=t.y)+this._viewportMargin;else if("bottom"===e.overlayY)n=u.height-(i=u.height-t.y+2*this._viewportMargin)+this._viewportMargin;else{var c=Math.min(u.bottom-t.y+u.top,t.y),h=this._lastBoundingBoxSize.height;r=t.y-c,(n=2*c)>h&&!this._isInitialRender&&!this._growAfterOpen&&(r=t.y-h/2)}if("end"===e.overlayX&&!l||"start"===e.overlayX&&l)a=u.right-t.x+this._viewportMargin,o=t.x-u.left;else if("start"===e.overlayX&&!l||"end"===e.overlayX&&l)s=t.x,o=u.right-t.x;else{c=Math.min(u.right-t.x+u.left,t.x);var p=this._lastBoundingBoxSize.width;s=t.x-c,(o=2*c)>p&&!this._isInitialRender&&!this._growAfterOpen&&(s=t.x-p/2)}return{top:r,left:s,bottom:i,right:a,width:o,height:n}},t.prototype._setBoundingBoxStyles=function(t,e){var n=this._calculateBoundingBoxRect(t,e);this._isInitialRender||this._growAfterOpen||(n.height=Math.min(n.height,this._lastBoundingBoxSize.height),n.width=Math.min(n.width,this._lastBoundingBoxSize.width));var r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right="",r.width=r.height="100%";else{var i=this._overlayRef.getConfig().maxHeight,o=this._overlayRef.getConfig().maxWidth;r.height=xa(n.height),r.top=xa(n.top),r.bottom=xa(n.bottom),r.width=xa(n.width),r.left=xa(n.left),r.right=xa(n.right),r.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",r.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",i&&(r.maxHeight=xa(i)),o&&(r.maxWidth=xa(o))}this._lastBoundingBoxSize=n,tc(this._boundingBox.style,r)},t.prototype._resetBoundingBoxStyles=function(){tc(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})},t.prototype._resetOverlayElementStyles=function(){tc(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})},t.prototype._setOverlayElementStyles=function(t,e){var n={};if(this._hasExactPosition()){var r=this._viewportRuler.getViewportScrollPosition();tc(n,this._getExactOverlayY(e,t,r)),tc(n,this._getExactOverlayX(e,t,r))}else n.position="static";var i="",o=this._getOffset(e,"x"),s=this._getOffset(e,"y");o&&(i+="translateX("+o+"px) "),s&&(i+="translateY("+s+"px)"),n.transform=i.trim(),this._hasFlexibleDimensions&&this._overlayRef.getConfig().maxHeight&&(n.maxHeight=""),this._hasFlexibleDimensions&&this._overlayRef.getConfig().maxWidth&&(n.maxWidth=""),tc(this._pane.style,n)},t.prototype._getExactOverlayY=function(t,e,n){var r={top:null,bottom:null},i=this._getOverlayPoint(e,this._overlayRect,t);this._isPushed&&(i=this._pushOverlayOnScreen(i,this._overlayRect,n));var o=this._overlayContainer?this._overlayContainer.getContainerElement().getBoundingClientRect().top:0;return i.y-=o,"bottom"===t.overlayY?r.bottom=this._document.documentElement.clientHeight-(i.y+this._overlayRect.height)+"px":r.top=xa(i.y),r},t.prototype._getExactOverlayX=function(t,e,n){var r={left:null,right:null},i=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(i=this._pushOverlayOnScreen(i,this._overlayRect,n)),"right"==(this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left")?r.right=this._document.documentElement.clientWidth-(i.x+this._overlayRect.width)+"px":r.left=xa(i.x),r},t.prototype._getScrollVisibility=function(){var t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),n=this.scrollables.map(function(t){return t.getElementRef().nativeElement.getBoundingClientRect()});return{isOriginClipped:Bl(t,n),isOriginOutsideView:ql(t,n),isOverlayClipped:Bl(e,n),isOverlayOutsideView:ql(e,n)}},t.prototype._subtractOverflows=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return e.reduce(function(t,e){return t-Math.max(e,0)},t)},t.prototype._getNarrowedViewportRect=function(){var t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,n=this._viewportRuler.getViewportScrollPosition();return{top:n.top+this._viewportMargin,left:n.left+this._viewportMargin,right:n.left+t-this._viewportMargin,bottom:n.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}},t.prototype._isRtl=function(){return"rtl"===this._overlayRef.getDirection()},t.prototype._hasExactPosition=function(){return!this._hasFlexibleDimensions||this._isPushed},t.prototype._getOffset=function(t,e){return"x"===e?null==t.offsetX?this._offsetX:t.offsetX:null==t.offsetY?this._offsetY:t.offsetY},t.prototype._validatePositions=function(){if(!this._preferredPositions.length)throw Error("FlexibleConnectedPositionStrategy: At least one position is required.");this._preferredPositions.forEach(function(t){Yl("originX",t.originX),Gl("originY",t.originY),Yl("overlayX",t.overlayX),Gl("overlayY",t.overlayY)})},t.prototype._addPanelClasses=function(t){var e=this;this._pane&&Ia(t).forEach(function(t){-1===e._appliedPanelClasses.indexOf(t)&&(e._appliedPanelClasses.push(t),e._pane.classList.add(t))})},t.prototype._clearPanelClasses=function(){var t=this;this._pane&&(this._appliedPanelClasses.forEach(function(e){return t._pane.classList.remove(e)}),this._appliedPanelClasses=[])},t.prototype._getOriginRect=function(){var t=this._origin;return t instanceof Oe?t.nativeElement.getBoundingClientRect():t instanceof HTMLElement?t.getBoundingClientRect():{top:t.y,bottom:t.y,left:t.x,right:t.x,height:0,width:0}},t}();function tc(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var ec=function(){function t(t,e,n,r,i,o){this._preferredPositions=[],this._positionStrategy=new $l(n,r,i,o).withFlexibleDimensions(!1).withPush(!1).withViewportMargin(0),this.withFallbackPosition(t,e)}return Object.defineProperty(t.prototype,"_isRtl",{get:function(){return"rtl"===this._overlayRef.getDirection()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onPositionChange",{get:function(){return this._positionStrategy.positionChanges},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"positions",{get:function(){return this._preferredPositions},enumerable:!0,configurable:!0}),t.prototype.attach=function(t){this._overlayRef=t,this._positionStrategy.attach(t),this._direction&&(t.setDirection(this._direction),this._direction=null)},t.prototype.dispose=function(){this._positionStrategy.dispose()},t.prototype.detach=function(){this._positionStrategy.detach()},t.prototype.apply=function(){this._positionStrategy.apply()},t.prototype.recalculateLastPosition=function(){this._positionStrategy.reapplyLastPosition()},t.prototype.withScrollableContainers=function(t){this._positionStrategy.withScrollableContainers(t)},t.prototype.withFallbackPosition=function(t,e,n,r){var i=new Ql(t,e,n,r);return this._preferredPositions.push(i),this._positionStrategy.withPositions(this._preferredPositions),this},t.prototype.withDirection=function(t){return this._overlayRef?this._overlayRef.setDirection(t):this._direction=t,this},t.prototype.withOffsetX=function(t){return this._positionStrategy.withDefaultOffsetX(t),this},t.prototype.withOffsetY=function(t){return this._positionStrategy.withDefaultOffsetY(t),this},t.prototype.withLockedPosition=function(t){return this._positionStrategy.withLockedPosition(t),this},t.prototype.withPositions=function(t){return this._preferredPositions=t.slice(),this._positionStrategy.withPositions(this._preferredPositions),this},t.prototype.setOrigin=function(t){return this._positionStrategy.setOrigin(t),this},t}(),nc=function(){function t(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._leftOffset="",this._rightOffset="",this._alignItems="",this._justifyContent="",this._width="",this._height=""}return t.prototype.attach=function(t){var e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add("cdk-global-overlay-wrapper"),this._isDisposed=!1},t.prototype.top=function(t){return void 0===t&&(t=""),this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this},t.prototype.left=function(t){return void 0===t&&(t=""),this._rightOffset="",this._leftOffset=t,this._justifyContent="flex-start",this},t.prototype.bottom=function(t){return void 0===t&&(t=""),this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this},t.prototype.right=function(t){return void 0===t&&(t=""),this._leftOffset="",this._rightOffset=t,this._justifyContent="flex-end",this},t.prototype.width=function(t){return void 0===t&&(t=""),this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this},t.prototype.height=function(t){return void 0===t&&(t=""),this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this},t.prototype.centerHorizontally=function(t){return void 0===t&&(t=""),this.left(t),this._justifyContent="center",this},t.prototype.centerVertically=function(t){return void 0===t&&(t=""),this.top(t),this._alignItems="center",this},t.prototype.apply=function(){if(this._overlayRef&&this._overlayRef.hasAttached()){var t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,n=this._overlayRef.getConfig();t.position=this._cssPosition,t.marginLeft="100%"===n.width?"0":this._leftOffset,t.marginTop="100%"===n.height?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=this._rightOffset,"100%"===n.width?e.justifyContent="flex-start":"center"===this._justifyContent?e.justifyContent="center":"rtl"===this._overlayRef.getConfig().direction?"flex-start"===this._justifyContent?e.justifyContent="flex-end":"flex-end"===this._justifyContent&&(e.justifyContent="flex-start"):e.justifyContent=this._justifyContent,e.alignItems="100%"===n.height?"flex-start":this._alignItems}},t.prototype.dispose=function(){if(!this._isDisposed&&this._overlayRef){var t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,n=e.style;e.classList.remove("cdk-global-overlay-wrapper"),n.justifyContent=n.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}},t}(),rc=function(){function t(t,e,n,r){this._viewportRuler=t,this._document=e,this._platform=n,this._overlayContainer=r}return t.prototype.global=function(){return new nc},t.prototype.connectedTo=function(t,e,n){return new ec(e,n,t,this._viewportRuler,this._document)},t.prototype.flexibleConnectedTo=function(t){return new $l(t,this._viewportRuler,this._document,this._platform,this._overlayContainer)},t.ngInjectableDef=yt({factory:function(){return new t(Qt(Tl),Qt(au),Qt(gu,8),Qt(Jl,8))},token:t,providedIn:"root"}),t}(),ic=0,oc=function(){function t(t,e,n,r,i,o,s,a,u,l){this.scrollStrategies=t,this._overlayContainer=e,this._componentFactoryResolver=n,this._positionBuilder=r,this._keyboardDispatcher=i,this._injector=o,this._ngZone=s,this._document=a,this._directionality=u,this._location=l}return t.prototype.create=function(t){var e=this._createHostElement(),n=this._createPaneElement(e),r=this._createPortalOutlet(n),i=new Wl(t);return i.direction=i.direction||this._directionality.value,new Zl(r,e,n,i,this._ngZone,this._keyboardDispatcher,this._document,this._location)},t.prototype.position=function(){return this._positionBuilder},t.prototype._createPaneElement=function(t){var e=this._document.createElement("div");return e.id="cdk-overlay-"+ic++,e.classList.add("cdk-overlay-pane"),t.appendChild(e),e},t.prototype._createHostElement=function(){var t=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(t),t},t.prototype._createPortalOutlet=function(t){return this._appRef||(this._appRef=this._injector.get(dr)),new Ml(t,this._componentFactoryResolver,this._appRef,this._injector)},t}(),sc=new vt("cdk-connected-overlay-scroll-strategy");function ac(t){return function(){return t.scrollStrategies.reposition()}}var uc=function(){return function(){}}(),lc=20;function cc(t){return Error('Tooltip position "'+t+'" is invalid.')}var hc=new vt("mat-tooltip-scroll-strategy");function pc(t){return function(){return t.scrollStrategies.reposition({scrollThrottle:lc})}}var fc=new vt("mat-tooltip-default-options",{providedIn:"root",factory:function(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),dc=function(){function t(t,e,n,r,i,o,s,a,u,l,c,h){var p=this;this._overlay=t,this._elementRef=e,this._scrollDispatcher=n,this._viewContainerRef=r,this._ngZone=i,this._ariaDescriber=s,this._focusMonitor=a,this._dir=l,this._defaultOptions=c,this._position="below",this._disabled=!1,this.showDelay=this._defaultOptions.showDelay,this.hideDelay=this._defaultOptions.hideDelay,this._message="",this._manualListeners=new Map,this._destroyed=new D,this._scrollStrategy=u;var f=e.nativeElement,d=f.style,m="undefined"==typeof window||window.Hammer||h;o.IOS||o.ANDROID?m||this._manualListeners.set("touchstart",function(){return p.show()}):this._manualListeners.set("mouseenter",function(){return p.show()}).set("mouseleave",function(){return p.hide()}),this._manualListeners.forEach(function(t,e){return f.addEventListener(e,t)}),"INPUT"!==f.nodeName&&"TEXTAREA"!==f.nodeName||(d.webkitUserSelect=d.userSelect=d.msUserSelect=""),f.draggable&&"none"===d.webkitUserDrag&&(d.webkitUserDrag=""),a.monitor(e).pipe(Ku(this._destroyed)).subscribe(function(t){t?"keyboard"===t&&i.run(function(){return p.show()}):i.run(function(){return p.hide(0)})}),c&&c.position&&(this.position=c.position)}return Object.defineProperty(t.prototype,"position",{get:function(){return this._position},set:function(t){t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(),this._tooltipInstance&&this._tooltipInstance.show(0),this._overlayRef.updatePosition()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this._disabled},set:function(t){this._disabled=Ca(t),this._disabled&&this.hide(0)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"message",{get:function(){return this._message},set:function(t){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message),this._message=null!=t?(""+t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._updateTooltipMessage(),this._ariaDescriber.describe(this._elementRef.nativeElement,this.message))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"tooltipClass",{get:function(){return this._tooltipClass},set:function(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)},enumerable:!0,configurable:!0}),t.prototype.ngOnDestroy=function(){var t=this;this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._manualListeners.forEach(function(e,n){t._elementRef.nativeElement.removeEventListener(n,e)}),this._manualListeners.clear(),this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this.message),this._focusMonitor.stopMonitoring(this._elementRef)},t.prototype.show=function(t){var e=this;if(void 0===t&&(t=this.showDelay),!this.disabled&&this.message&&(!this._isTooltipVisible()||this._tooltipInstance._showTimeoutId||this._tooltipInstance._hideTimeoutId)){var n=this._createOverlay();this._detach(),this._portal=this._portal||new Rl(mc,this._viewContainerRef),this._tooltipInstance=n.attach(this._portal).instance,this._tooltipInstance.afterHidden().pipe(Ku(this._destroyed)).subscribe(function(){return e._detach()}),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),this._tooltipInstance.show(t)}},t.prototype.hide=function(t){void 0===t&&(t=this.hideDelay),this._tooltipInstance&&this._tooltipInstance.hide(t)},t.prototype.toggle=function(){this._isTooltipVisible()?this.hide():this.show()},t.prototype._isTooltipVisible=function(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()},t.prototype._handleKeydown=function(t){this._isTooltipVisible()&&t.keyCode===Aa&&(t.stopPropagation(),this.hide(0))},t.prototype._handleTouchend=function(){this.hide(this._defaultOptions.touchendHideDelay)},t.prototype._createOverlay=function(){var t=this;if(this._overlayRef)return this._overlayRef;var e=this._overlay.position().flexibleConnectedTo(this._elementRef).withTransformOriginOn(".mat-tooltip").withFlexibleDimensions(!1).withViewportMargin(8),n=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef);return e.withScrollableContainers(n),e.positionChanges.pipe(Ku(this._destroyed)).subscribe(function(e){t._tooltipInstance&&e.scrollableViewProperties.isOverlayClipped&&t._tooltipInstance.isVisible()&&t._ngZone.run(function(){return t.hide(0)})}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:e,panelClass:"mat-tooltip-panel",scrollStrategy:this._scrollStrategy()}),this._updatePosition(),this._overlayRef.detachments().pipe(Ku(this._destroyed)).subscribe(function(){return t._detach()}),this._overlayRef},t.prototype._detach=function(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null},t.prototype._updatePosition=function(){var t=this._overlayRef.getConfig().positionStrategy,e=this._getOrigin(),n=this._getOverlayPosition();t.withPositions([Object(r.__assign)({},e.main,n.main),Object(r.__assign)({},e.fallback,n.fallback)])},t.prototype._getOrigin=function(){var t,e=!this._dir||"ltr"==this._dir.value,n=this.position;if("above"==n||"below"==n)t={originX:"center",originY:"above"==n?"top":"bottom"};else if("before"==n||"left"==n&&e||"right"==n&&!e)t={originX:"start",originY:"center"};else{if(!("after"==n||"right"==n&&e||"left"==n&&!e))throw cc(n);t={originX:"end",originY:"center"}}var r=this._invertPosition(t.originX,t.originY);return{main:t,fallback:{originX:r.x,originY:r.y}}},t.prototype._getOverlayPosition=function(){var t,e=!this._dir||"ltr"==this._dir.value,n=this.position;if("above"==n)t={overlayX:"center",overlayY:"bottom"};else if("below"==n)t={overlayX:"center",overlayY:"top"};else if("before"==n||"left"==n&&e||"right"==n&&!e)t={overlayX:"end",overlayY:"center"};else{if(!("after"==n||"right"==n&&e||"left"==n&&!e))throw cc(n);t={overlayX:"start",overlayY:"center"}}var r=this._invertPosition(t.overlayX,t.overlayY);return{main:t,fallback:{overlayX:r.x,overlayY:r.y}}},t.prototype._updateTooltipMessage=function(){var t=this;this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.asObservable().pipe(kl(1),Ku(this._destroyed)).subscribe(function(){t._tooltipInstance&&t._overlayRef.updatePosition()}))},t.prototype._setTooltipClass=function(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t,this._tooltipInstance._markForCheck())},t.prototype._invertPosition=function(t,e){return"above"===this.position||"below"===this.position?"top"===e?e="bottom":"bottom"===e&&(e="top"):"end"===t?t="start":"start"===t&&(t="end"),{x:t,y:e}},t}(),mc=function(){function t(t,e){this._changeDetectorRef=t,this._breakpointObserver=e,this._visibility="initial",this._closeOnInteraction=!1,this._onHide=new D,this._isHandset=this._breakpointObserver.observe(nl.Handset)}return t.prototype.show=function(t){var e=this;this._hideTimeoutId&&(clearTimeout(this._hideTimeoutId),this._hideTimeoutId=null),this._closeOnInteraction=!0,this._showTimeoutId=setTimeout(function(){e._visibility="visible",e._showTimeoutId=null,e._markForCheck()},t)},t.prototype.hide=function(t){var e=this;this._showTimeoutId&&(clearTimeout(this._showTimeoutId),this._showTimeoutId=null),this._hideTimeoutId=setTimeout(function(){e._visibility="hidden",e._hideTimeoutId=null,e._markForCheck()},t)},t.prototype.afterHidden=function(){return this._onHide.asObservable()},t.prototype.isVisible=function(){return"visible"===this._visibility},t.prototype.ngOnDestroy=function(){this._onHide.complete()},t.prototype._animationStart=function(){this._closeOnInteraction=!1},t.prototype._animationDone=function(t){var e=t.toState;"hidden"!==e||this.isVisible()||this._onHide.next(),"visible"!==e&&"hidden"!==e||(this._closeOnInteraction=!0)},t.prototype._handleBodyInteraction=function(){this._closeOnInteraction&&this.hide(0)},t.prototype._markForCheck=function(){this._changeDetectorRef.markForCheck()},t}(),yc=function(){return function(){}}(),gc=function(){function t(){}return t.prototype.create=function(t){return"undefined"==typeof MutationObserver?null:new MutationObserver(t)},t.ngInjectableDef=yt({factory:function(){return new t},token:t,providedIn:"root"}),t}(),vc=function(){function t(t){this._mutationObserverFactory=t,this._observedElements=new Map}return t.prototype.ngOnDestroy=function(){var t=this;this._observedElements.forEach(function(e,n){return t._cleanupObserver(n)})},t.prototype.observe=function(t){var e=this,n=ka(t);return new I(function(t){var r=e._observeElement(n).subscribe(t);return function(){r.unsubscribe(),e._unobserveElement(n)}})},t.prototype._observeElement=function(t){if(this._observedElements.has(t))this._observedElements.get(t).count++;else{var e=new D,n=this._mutationObserverFactory.create(function(t){return e.next(t)});n&&n.observe(t,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(t,{observer:n,stream:e,count:1})}return this._observedElements.get(t).stream},t.prototype._unobserveElement=function(t){this._observedElements.has(t)&&(this._observedElements.get(t).count--,this._observedElements.get(t).count||this._cleanupObserver(t))},t.prototype._cleanupObserver=function(t){if(this._observedElements.has(t)){var e=this._observedElements.get(t),n=e.observer,r=e.stream;n&&n.disconnect(),r.complete(),this._observedElements.delete(t)}},t.ngInjectableDef=yt({factory:function(){return new t(Qt(gc))},token:t,providedIn:"root"}),t}(),_c=function(){function t(t,e,n){this._contentObserver=t,this._elementRef=e,this._ngZone=n,this.event=new hn,this._disabled=!1,this._currentSubscription=null}return Object.defineProperty(t.prototype,"disabled",{get:function(){return this._disabled},set:function(t){this._disabled=Ca(t),this._disabled?this._unsubscribe():this._subscribe()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"debounce",{get:function(){return this._debounce},set:function(t){this._debounce=Ta(t),this._subscribe()},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentInit=function(){this._currentSubscription||this.disabled||this._subscribe()},t.prototype.ngOnDestroy=function(){this._unsubscribe()},t.prototype._subscribe=function(){var t=this;this._unsubscribe();var e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(function(){t._currentSubscription=(t.debounce?e.pipe(Fu(t.debounce)):e).subscribe(t.event)})},t.prototype._unsubscribe=function(){this._currentSubscription&&this._currentSubscription.unsubscribe()},t}(),bc=function(){return function(){}}(),wc=new vt("cdk-dir-doc",{providedIn:"root",factory:function(){return Qt(au)}}),Ec=function(){function t(t){if(this.value="ltr",this.change=new hn,t){var e=(t.body?t.body.dir:null)||(t.documentElement?t.documentElement.dir:null);this.value="ltr"===e||"rtl"===e?e:"ltr"}}return t.prototype.ngOnDestroy=function(){this.change.complete()},t.ngInjectableDef=yt({factory:function(){return new t(Qt(wc,8))},token:t,providedIn:"root"}),t}(),Sc=function(){return function(){}}(),Cc=null;function Tc(){return Cc}var Ic,xc={class:"className",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},kc={"\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"},Ac={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"};xt.Node&&(Ic=xt.Node.prototype.contains||function(t){return!!(16&this.compareDocumentPosition(t))});var Oc,Nc=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.__extends)(e,t),e.prototype.parse=function(t){throw new Error("parse not implemented")},e.makeCurrent=function(){var t;t=new e,Cc||(Cc=t)},e.prototype.hasProperty=function(t,e){return e in t},e.prototype.setProperty=function(t,e,n){t[e]=n},e.prototype.getProperty=function(t,e){return t[e]},e.prototype.invoke=function(t,e,n){var i;(i=t)[e].apply(i,Object(r.__spread)(n))},e.prototype.logError=function(t){window.console&&(console.error?console.error(t):console.log(t))},e.prototype.log=function(t){window.console&&window.console.log&&window.console.log(t)},e.prototype.logGroup=function(t){window.console&&window.console.group&&window.console.group(t)},e.prototype.logGroupEnd=function(){window.console&&window.console.groupEnd&&window.console.groupEnd()},Object.defineProperty(e.prototype,"attrToPropMap",{get:function(){return xc},enumerable:!0,configurable:!0}),e.prototype.contains=function(t,e){return Ic.call(t,e)},e.prototype.querySelector=function(t,e){return t.querySelector(e)},e.prototype.querySelectorAll=function(t,e){return t.querySelectorAll(e)},e.prototype.on=function(t,e,n){t.addEventListener(e,n,!1)},e.prototype.onAndCancel=function(t,e,n){return t.addEventListener(e,n,!1),function(){t.removeEventListener(e,n,!1)}},e.prototype.dispatchEvent=function(t,e){t.dispatchEvent(e)},e.prototype.createMouseEvent=function(t){var e=this.getDefaultDocument().createEvent("MouseEvent");return e.initEvent(t,!0,!0),e},e.prototype.createEvent=function(t){var e=this.getDefaultDocument().createEvent("Event");return e.initEvent(t,!0,!0),e},e.prototype.preventDefault=function(t){t.preventDefault(),t.returnValue=!1},e.prototype.isPrevented=function(t){return t.defaultPrevented||null!=t.returnValue&&!t.returnValue},e.prototype.getInnerHTML=function(t){return t.innerHTML},e.prototype.getTemplateContent=function(t){return"content"in t&&this.isTemplateElement(t)?t.content:null},e.prototype.getOuterHTML=function(t){return t.outerHTML},e.prototype.nodeName=function(t){return t.nodeName},e.prototype.nodeValue=function(t){return t.nodeValue},e.prototype.type=function(t){return t.type},e.prototype.content=function(t){return this.hasProperty(t,"content")?t.content:t},e.prototype.firstChild=function(t){return t.firstChild},e.prototype.nextSibling=function(t){return t.nextSibling},e.prototype.parentElement=function(t){return t.parentNode},e.prototype.childNodes=function(t){return t.childNodes},e.prototype.childNodesAsList=function(t){for(var e=t.childNodes,n=new Array(e.length),r=0;r<e.length;r++)n[r]=e[r];return n},e.prototype.clearNodes=function(t){for(;t.firstChild;)t.removeChild(t.firstChild)},e.prototype.appendChild=function(t,e){t.appendChild(e)},e.prototype.removeChild=function(t,e){t.removeChild(e)},e.prototype.replaceChild=function(t,e,n){t.replaceChild(e,n)},e.prototype.remove=function(t){return t.parentNode&&t.parentNode.removeChild(t),t},e.prototype.insertBefore=function(t,e,n){t.insertBefore(n,e)},e.prototype.insertAllBefore=function(t,e,n){n.forEach(function(n){return t.insertBefore(n,e)})},e.prototype.insertAfter=function(t,e,n){t.insertBefore(n,e.nextSibling)},e.prototype.setInnerHTML=function(t,e){t.innerHTML=e},e.prototype.getText=function(t){return t.textContent},e.prototype.setText=function(t,e){t.textContent=e},e.prototype.getValue=function(t){return t.value},e.prototype.setValue=function(t,e){t.value=e},e.prototype.getChecked=function(t){return t.checked},e.prototype.setChecked=function(t,e){t.checked=e},e.prototype.createComment=function(t){return this.getDefaultDocument().createComment(t)},e.prototype.createTemplate=function(t){var e=this.getDefaultDocument().createElement("template");return e.innerHTML=t,e},e.prototype.createElement=function(t,e){return(e=e||this.getDefaultDocument()).createElement(t)},e.prototype.createElementNS=function(t,e,n){return(n=n||this.getDefaultDocument()).createElementNS(t,e)},e.prototype.createTextNode=function(t,e){return(e=e||this.getDefaultDocument()).createTextNode(t)},e.prototype.createScriptTag=function(t,e,n){var r=(n=n||this.getDefaultDocument()).createElement("SCRIPT");return r.setAttribute(t,e),r},e.prototype.createStyleElement=function(t,e){var n=(e=e||this.getDefaultDocument()).createElement("style");return this.appendChild(n,this.createTextNode(t,e)),n},e.prototype.createShadowRoot=function(t){return t.createShadowRoot()},e.prototype.getShadowRoot=function(t){return t.shadowRoot},e.prototype.getHost=function(t){return t.host},e.prototype.clone=function(t){return t.cloneNode(!0)},e.prototype.getElementsByClassName=function(t,e){return t.getElementsByClassName(e)},e.prototype.getElementsByTagName=function(t,e){return t.getElementsByTagName(e)},e.prototype.classList=function(t){return Array.prototype.slice.call(t.classList,0)},e.prototype.addClass=function(t,e){t.classList.add(e)},e.prototype.removeClass=function(t,e){t.classList.remove(e)},e.prototype.hasClass=function(t,e){return t.classList.contains(e)},e.prototype.setStyle=function(t,e,n){t.style[e]=n},e.prototype.removeStyle=function(t,e){t.style[e]=""},e.prototype.getStyle=function(t,e){return t.style[e]},e.prototype.hasStyle=function(t,e,n){var r=this.getStyle(t,e)||"";return n?r==n:r.length>0},e.prototype.tagName=function(t){return t.tagName},e.prototype.attributeMap=function(t){for(var e=new Map,n=t.attributes,r=0;r<n.length;r++){var i=n.item(r);e.set(i.name,i.value)}return e},e.prototype.hasAttribute=function(t,e){return t.hasAttribute(e)},e.prototype.hasAttributeNS=function(t,e,n){return t.hasAttributeNS(e,n)},e.prototype.getAttribute=function(t,e){return t.getAttribute(e)},e.prototype.getAttributeNS=function(t,e,n){return t.getAttributeNS(e,n)},e.prototype.setAttribute=function(t,e,n){t.setAttribute(e,n)},e.prototype.setAttributeNS=function(t,e,n,r){t.setAttributeNS(e,n,r)},e.prototype.removeAttribute=function(t,e){t.removeAttribute(e)},e.prototype.removeAttributeNS=function(t,e,n){t.removeAttributeNS(e,n)},e.prototype.templateAwareRoot=function(t){return this.isTemplateElement(t)?this.content(t):t},e.prototype.createHtmlDocument=function(){return document.implementation.createHTMLDocument("fakeTitle")},e.prototype.getDefaultDocument=function(){return document},e.prototype.getBoundingClientRect=function(t){try{return t.getBoundingClientRect()}catch(e){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}},e.prototype.getTitle=function(t){return t.title},e.prototype.setTitle=function(t,e){t.title=e||""},e.prototype.elementMatches=function(t,e){return!!this.isElementNode(t)&&(t.matches&&t.matches(e)||t.msMatchesSelector&&t.msMatchesSelector(e)||t.webkitMatchesSelector&&t.webkitMatchesSelector(e))},e.prototype.isTemplateElement=function(t){return this.isElementNode(t)&&"TEMPLATE"===t.nodeName},e.prototype.isTextNode=function(t){return t.nodeType===Node.TEXT_NODE},e.prototype.isCommentNode=function(t){return t.nodeType===Node.COMMENT_NODE},e.prototype.isElementNode=function(t){return t.nodeType===Node.ELEMENT_NODE},e.prototype.hasShadowRoot=function(t){return null!=t.shadowRoot&&t instanceof HTMLElement},e.prototype.isShadowRoot=function(t){return t instanceof DocumentFragment},e.prototype.importIntoDoc=function(t){return document.importNode(this.templateAwareRoot(t),!0)},e.prototype.adoptNode=function(t){return document.adoptNode(t)},e.prototype.getHref=function(t){return t.getAttribute("href")},e.prototype.getEventKey=function(t){var e=t.key;if(null==e){if(null==(e=t.keyIdentifier))return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&Ac.hasOwnProperty(e)&&(e=Ac[e]))}return kc[e]||e},e.prototype.getGlobalEventTarget=function(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null},e.prototype.getHistory=function(){return window.history},e.prototype.getLocation=function(){return window.location},e.prototype.getBaseHref=function(t){var e,n=Dc||(Dc=document.querySelector("base"))?Dc.getAttribute("href"):null;return null==n?null:(e=n,Oc||(Oc=document.createElement("a")),Oc.setAttribute("href",e),"/"===Oc.pathname.charAt(0)?Oc.pathname:"/"+Oc.pathname)},e.prototype.resetBaseElement=function(){Dc=null},e.prototype.getUserAgent=function(){return window.navigator.userAgent},e.prototype.setData=function(t,e,n){this.setAttribute(t,"data-"+e,n)},e.prototype.getData=function(t,e){return this.getAttribute(t,"data-"+e)},e.prototype.getComputedStyle=function(t){return getComputedStyle(t)},e.prototype.supportsWebAnimation=function(){return"function"==typeof Element.prototype.animate},e.prototype.performanceNow=function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()},e.prototype.supportsCookies=function(){return!0},e.prototype.getCookie=function(t){return Wa(document.cookie,t)},e.prototype.setCookie=function(t,e){document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)},e}(function(t){function e(){var e=t.call(this)||this;e._animationPrefix=null,e._transitionEnd=null;try{var n=e.createElement("div",document);if(null!=e.getStyle(n,"animationName"))e._animationPrefix="";else for(var r=["Webkit","Moz","O","ms"],i=0;i<r.length;i++)if(null!=e.getStyle(n,r[i]+"AnimationName")){e._animationPrefix="-"+r[i].toLowerCase()+"-";break}var o={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};Object.keys(o).forEach(function(t){null!=e.getStyle(n,t)&&(e._transitionEnd=o[t])})}catch(s){e._animationPrefix=null,e._transitionEnd=null}return e}return Object(r.__extends)(e,t),e.prototype.getDistributedNodes=function(t){return t.getDistributedNodes()},e.prototype.resolveAndSetHref=function(t,e,n){t.href=null==n?e:e+"/../"+n},e.prototype.supportsDOMEvents=function(){return!0},e.prototype.supportsNativeShadowDOM=function(){return"function"==typeof document.body.createShadowRoot},e.prototype.getAnimationPrefix=function(){return this._animationPrefix?this._animationPrefix:""},e.prototype.getTransitionEnd=function(){return this._transitionEnd?this._transitionEnd:""},e.prototype.supportsAnimation=function(){return null!=this._animationPrefix&&null!=this._transitionEnd},e}(function(){function t(){this.resourceLoaderType=null}return Object.defineProperty(t.prototype,"attrToPropMap",{get:function(){return this._attrToPropMap},set:function(t){this._attrToPropMap=t},enumerable:!0,configurable:!0}),t}())),Dc=null,Rc=au;function Pc(){return!!window.history.pushState}var Mc=function(t){function e(e){var n=t.call(this)||this;return n._doc=e,n._init(),n}return Object(r.__extends)(e,t),e.prototype._init=function(){this.location=Tc().getLocation(),this._history=Tc().getHistory()},e.prototype.getBaseHrefFromDOM=function(){return Tc().getBaseHref(this._doc)},e.prototype.onPopState=function(t){Tc().getGlobalEventTarget(this._doc,"window").addEventListener("popstate",t,!1)},e.prototype.onHashChange=function(t){Tc().getGlobalEventTarget(this._doc,"window").addEventListener("hashchange",t,!1)},Object.defineProperty(e.prototype,"pathname",{get:function(){return this.location.pathname},set:function(t){this.location.pathname=t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"search",{get:function(){return this.location.search},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hash",{get:function(){return this.location.hash},enumerable:!0,configurable:!0}),e.prototype.pushState=function(t,e,n){Pc()?this._history.pushState(t,e,n):this.location.hash=n},e.prototype.replaceState=function(t,e,n){Pc()?this._history.replaceState(t,e,n):this.location.hash=n},e.prototype.forward=function(){this._history.forward()},e.prototype.back=function(){this._history.back()},Object(r.__decorate)([Object(r.__param)(0,Ut(Rc)),Object(r.__metadata)("design:paramtypes",[Object])],e)}(Oa),Lc=new vt("TRANSITION_ID"),Fc=[{provide:kn,useFactory:function(t,e,n){return function(){n.get(An).donePromise.then(function(){var n=Tc();Array.prototype.slice.apply(n.querySelectorAll(e,"style[ng-transition]")).filter(function(e){return n.getAttribute(e,"ng-transition")===t}).forEach(function(t){return n.remove(t)})})}},deps:[Lc,Rc,oe],multi:!0}],jc=function(){function t(){}return t.init=function(){var e;e=new t,ar=e},t.prototype.addToWindow=function(t){xt.getAngularTestability=function(e,n){void 0===n&&(n=!0);var r=t.findTestabilityInTree(e,n);if(null==r)throw new Error("Could not find testability for element.");return r},xt.getAllAngularTestabilities=function(){return t.getAllTestabilities()},xt.getAllAngularRootElements=function(){return t.getAllRootElements()},xt.frameworkStabilizers||(xt.frameworkStabilizers=[]),xt.frameworkStabilizers.push(function(t){var e=xt.getAllAngularTestabilities(),n=e.length,r=!1,i=function(e){r=r||e,0==--n&&t(r)};e.forEach(function(t){t.whenStable(i)})})},t.prototype.findTestabilityInTree=function(t,e,n){if(null==e)return null;var r=t.getTestability(e);return null!=r?r:n?Tc().isShadowRoot(e)?this.findTestabilityInTree(t,Tc().getHost(e),!0):this.findTestabilityInTree(t,Tc().parentElement(e),!0):null},t}();function Uc(t,e){"undefined"!=typeof COMPILED&&COMPILED||((xt.ng=xt.ng||{})[t]=e)}var Vc={ApplicationRef:dr,NgZone:Jn};function qc(t){return Ar(t)}var Bc=new vt("EventManagerPlugins"),Hc=function(){function t(t,e){var n=this;this._zone=e,this._eventNameToPlugin=new Map,t.forEach(function(t){return t.manager=n}),this._plugins=t.slice().reverse()}return t.prototype.addEventListener=function(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)},t.prototype.addGlobalEventListener=function(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)},t.prototype.getZone=function(){return this._zone},t.prototype._findPluginFor=function(t){var e=this._eventNameToPlugin.get(t);if(e)return e;for(var n=this._plugins,r=0;r<n.length;r++){var i=n[r];if(i.supports(t))return this._eventNameToPlugin.set(t,i),i}throw new Error("No event manager plugin found for event "+t)},t}(),zc=function(){function t(t){this._doc=t}return t.prototype.addGlobalEventListener=function(t,e,n){var r=Tc().getGlobalEventTarget(this._doc,t);if(!r)throw new Error("Unsupported event target "+r+" for event "+e);return this.addEventListener(r,e,n)},t}(),Wc=function(){function t(){this._stylesSet=new Set}return t.prototype.addStyles=function(t){var e=this,n=new Set;t.forEach(function(t){e._stylesSet.has(t)||(e._stylesSet.add(t),n.add(t))}),this.onStylesAdded(n)},t.prototype.onStylesAdded=function(t){},t.prototype.getAllStyles=function(){return Array.from(this._stylesSet)},t}(),Qc=function(t){function e(e){var n=t.call(this)||this;return n._doc=e,n._hostNodes=new Set,n._styleNodes=new Set,n._hostNodes.add(e.head),n}return Object(r.__extends)(e,t),e.prototype._addStylesToHost=function(t,e){var n=this;t.forEach(function(t){var r=n._doc.createElement("style");r.textContent=t,n._styleNodes.add(e.appendChild(r))})},e.prototype.addHost=function(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)},e.prototype.removeHost=function(t){this._hostNodes.delete(t)},e.prototype.onStylesAdded=function(t){var e=this;this._hostNodes.forEach(function(n){return e._addStylesToHost(t,n)})},e.prototype.ngOnDestroy=function(){this._styleNodes.forEach(function(t){return Tc().remove(t)})},e}(Wc),Kc={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/"},Gc=/%COMP%/g,Yc="_nghost-%COMP%",Xc="_ngcontent-%COMP%";function Jc(t,e,n){for(var r=0;r<e.length;r++){var i=e[r];Array.isArray(i)?Jc(t,i,n):(i=i.replace(Gc,t),n.push(i))}return n}function Zc(t){return function(e){!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}var $c=function(){function t(t,e){this.eventManager=t,this.sharedStylesHost=e,this.rendererByCompId=new Map,this.defaultRenderer=new th(t)}return t.prototype.createRenderer=function(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case jt.Emulated:var n=this.rendererByCompId.get(e.id);return n||(n=new ih(this.eventManager,this.sharedStylesHost,e),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n;case jt.Native:case jt.ShadowDom:return new oh(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){var r=Jc(e.id,e.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}},t.prototype.begin=function(){},t.prototype.end=function(){},t}(),th=function(){function t(t){this.eventManager=t,this.data=Object.create(null)}return t.prototype.destroy=function(){},t.prototype.createElement=function(t,e){return e?document.createElementNS(Kc[e],t):document.createElement(t)},t.prototype.createComment=function(t){return document.createComment(t)},t.prototype.createText=function(t){return document.createTextNode(t)},t.prototype.appendChild=function(t,e){t.appendChild(e)},t.prototype.insertBefore=function(t,e,n){t&&t.insertBefore(e,n)},t.prototype.removeChild=function(t,e){t&&t.removeChild(e)},t.prototype.selectRootElement=function(t,e){var n="string"==typeof t?document.querySelector(t):t;if(!n)throw new Error('The selector "'+t+'" did not match any elements');return e||(n.textContent=""),n},t.prototype.parentNode=function(t){return t.parentNode},t.prototype.nextSibling=function(t){return t.nextSibling},t.prototype.setAttribute=function(t,e,n,r){if(r){e=r+":"+e;var i=Kc[r];i?t.setAttributeNS(i,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)},t.prototype.removeAttribute=function(t,e,n){if(n){var r=Kc[n];r?t.removeAttributeNS(r,e):t.removeAttribute(n+":"+e)}else t.removeAttribute(e)},t.prototype.addClass=function(t,e){t.classList.add(e)},t.prototype.removeClass=function(t,e){t.classList.remove(e)},t.prototype.setStyle=function(t,e,n,r){r&Pe.DashCase?t.style.setProperty(e,n,r&Pe.Important?"important":""):t.style[e]=n},t.prototype.removeStyle=function(t,e,n){n&Pe.DashCase?t.style.removeProperty(e):t.style[e]=""},t.prototype.setProperty=function(t,e,n){nh(e,"property"),t[e]=n},t.prototype.setValue=function(t,e){t.nodeValue=e},t.prototype.listen=function(t,e,n){return nh(e,"listener"),"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,Zc(n)):this.eventManager.addEventListener(t,e,Zc(n))},t}(),eh="@".charCodeAt(0);function nh(t,e){if(t.charCodeAt(0)===eh)throw new Error("Found the synthetic "+e+" "+t+'. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.')}var rh,ih=function(t){function e(e,n,r){var i=t.call(this,e)||this;i.component=r;var o=Jc(r.id,r.styles,[]);return n.addStyles(o),i.contentAttr=Xc.replace(Gc,r.id),i.hostAttr=Yc.replace(Gc,r.id),i}return Object(r.__extends)(e,t),e.prototype.applyToHost=function(e){t.prototype.setAttribute.call(this,e,this.hostAttr,"")},e.prototype.createElement=function(e,n){var r=t.prototype.createElement.call(this,e,n);return t.prototype.setAttribute.call(this,r,this.contentAttr,""),r},e}(th),oh=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;o.sharedStylesHost=n,o.hostEl=r,o.component=i,o.shadowRoot=i.encapsulation===jt.ShadowDom?r.attachShadow({mode:"open"}):r.createShadowRoot(),o.sharedStylesHost.addHost(o.shadowRoot);for(var s=Jc(i.id,i.styles,[]),a=0;a<s.length;a++){var u=document.createElement("style");u.textContent=s[a],o.shadowRoot.appendChild(u)}return o}return Object(r.__extends)(e,t),e.prototype.nodeOrShadowRoot=function(t){return t===this.hostEl?this.shadowRoot:t},e.prototype.destroy=function(){this.sharedStylesHost.removeHost(this.shadowRoot)},e.prototype.appendChild=function(e,n){return t.prototype.appendChild.call(this,this.nodeOrShadowRoot(e),n)},e.prototype.insertBefore=function(e,n,r){return t.prototype.insertBefore.call(this,this.nodeOrShadowRoot(e),n,r)},e.prototype.removeChild=function(e,n){return t.prototype.removeChild.call(this,this.nodeOrShadowRoot(e),n)},e.prototype.parentNode=function(e){return this.nodeOrShadowRoot(t.prototype.parentNode.call(this,this.nodeOrShadowRoot(e)))},e}(th),sh="undefined"!=typeof Zone&&Zone.__symbol__||function(t){return"__zone_symbol__"+t},ah=sh("addEventListener"),uh=sh("removeEventListener"),lh={},ch="__zone_symbol__propagationStopped";"undefined"!=typeof Zone&&Zone[sh("BLACK_LISTED_EVENTS")]&&(rh={});var hh=function(t){return!!rh&&rh.hasOwnProperty(t)},ph=function(t){var e=lh[t.type];if(e){var n=this[e];if(n){var r=[t];if(1===n.length)return(s=n[0]).zone!==Zone.current?s.zone.run(s.handler,this,r):s.handler.apply(this,r);for(var i=n.slice(),o=0;o<i.length&&!0!==t[ch];o++){var s;(s=i[o]).zone!==Zone.current?s.zone.run(s.handler,this,r):s.handler.apply(this,r)}}}},fh=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.ngZone=n,r&&hu(r)||i.patchEvent(),i}return Object(r.__extends)(e,t),e.prototype.patchEvent=function(){if("undefined"!=typeof Event&&Event&&Event.prototype&&!Event.prototype.__zone_symbol__stopImmediatePropagation){var t=Event.prototype.__zone_symbol__stopImmediatePropagation=Event.prototype.stopImmediatePropagation;Event.prototype.stopImmediatePropagation=function(){this&&(this[ch]=!0),t&&t.apply(this,arguments)}}},e.prototype.supports=function(t){return!0},e.prototype.addEventListener=function(t,e,n){var r=this,i=n;if(!t[ah]||Jn.isInAngularZone()&&!hh(e))t.addEventListener(e,i,!1);else{var o=lh[e];o||(o=lh[e]=sh("ANGULAR"+e+"FALSE"));var s=t[o],a=s&&s.length>0;s||(s=t[o]=[]);var u=hh(e)?Zone.root:Zone.current;if(0===s.length)s.push({zone:u,handler:i});else{for(var l=!1,c=0;c<s.length;c++)if(s[c].handler===i){l=!0;break}l||s.push({zone:u,handler:i})}a||t[ah](e,ph,!1)}return function(){return r.removeEventListener(t,e,i)}},e.prototype.removeEventListener=function(t,e,n){var r=t[uh];if(!r)return t.removeEventListener.apply(t,[e,n,!1]);var i=lh[e],o=i&&t[i];if(!o)return t.removeEventListener.apply(t,[e,n,!1]);for(var s=!1,a=0;a<o.length;a++)if(o[a].handler===n){s=!0,o.splice(a,1);break}s?0===o.length&&r.apply(t,[e,ph,!1]):t.removeEventListener.apply(t,[e,n,!1])},e}(zc),dh={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0},mh=new vt("HammerGestureConfig"),yh=new vt("HammerLoader"),gh=function(){function t(){this.events=[],this.overrides={}}return t.prototype.buildHammer=function(t){var e=new Hammer(t,this.options);for(var n in e.get("pinch").set({enable:!0}),e.get("rotate").set({enable:!0}),this.overrides)e.get(n).set(this.overrides[n]);return e},t}(),vh=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;return o._config=n,o.console=r,o.loader=i,o}return Object(r.__extends)(e,t),e.prototype.supports=function(t){return!(!dh.hasOwnProperty(t.toLowerCase())&&!this.isCustomEvent(t)||!window.Hammer&&!this.loader&&(this.console.warn('The "'+t+'" event cannot be bound because Hammer.JS is not loaded and no custom loader has been specified.'),1))},e.prototype.addEventListener=function(t,e,n){var r=this,i=this.manager.getZone();if(e=e.toLowerCase(),!window.Hammer&&this.loader){var o=!1,s=function(){o=!0};return this.loader().then(function(){if(!window.Hammer)return r.console.warn("The custom HAMMER_LOADER completed, but Hammer.JS is not present."),void(s=function(){});o||(s=r.addEventListener(t,e,n))}).catch(function(){r.console.warn('The "'+e+'" event cannot be bound because the custom Hammer.JS loader failed.'),s=function(){}}),function(){s()}}return i.runOutsideAngular(function(){var o=r._config.buildHammer(t),s=function(t){i.runGuarded(function(){n(t)})};return o.on(e,s),function(){o.off(e,s),"function"==typeof o.destroy&&o.destroy()}})},e.prototype.isCustomEvent=function(t){return this._config.events.indexOf(t)>-1},e}(zc),_h=["alt","control","meta","shift"],bh={alt:function(t){return t.altKey},control:function(t){return t.ctrlKey},meta:function(t){return t.metaKey},shift:function(t){return t.shiftKey}},wh=function(t){function e(e){return t.call(this,e)||this}var n;return Object(r.__extends)(e,t),n=e,e.prototype.supports=function(t){return null!=n.parseEventName(t)},e.prototype.addEventListener=function(t,e,r){var i=n.parseEventName(e),o=n.eventCallback(i.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(function(){return Tc().onAndCancel(t,i.domEventName,o)})},e.parseEventName=function(t){var e=t.toLowerCase().split("."),r=e.shift();if(0===e.length||"keydown"!==r&&"keyup"!==r)return null;var i=n._normalizeKey(e.pop()),o="";if(_h.forEach(function(t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),o+=t+".")}),o+=i,0!=e.length||0===i.length)return null;var s={};return s.domEventName=r,s.fullKey=o,s},e.getEventFullKey=function(t){var e="",n=Tc().getEventKey(t);return" "===(n=n.toLowerCase())?n="space":"."===n&&(n="dot"),_h.forEach(function(r){r!=n&&(0,bh[r])(t)&&(e+=r+".")}),e+=n},e.eventCallback=function(t,e,r){return function(i){n.getEventFullKey(i)===t&&r.runGuarded(function(){return e(i)})}},e._normalizeKey=function(t){switch(t){case"esc":return"escape";default:return t}},e}(zc),Eh=function(){return function(){}}(),Sh=function(t){function e(e){var n=t.call(this)||this;return n._doc=e,n}return Object(r.__extends)(e,t),e.prototype.sanitize=function(t,e){if(null==e)return null;switch(t){case Fe.NONE:return e;case Fe.HTML:return e instanceof Th?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"HTML"),function(t,e){var n=null;try{Ye=Ye||new He(t);var r=e?String(e):"";n=Ye.getInertBodyElement(r);var i=5,o=r;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,r=o,o=n.innerHTML,n=Ye.getInertBodyElement(r)}while(r!==o);var s=new sn,a=s.sanitizeChildren(cn(n)||n);return Be()&&s.sanitizedSomething&&console.warn("WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss"),a}finally{if(n)for(var u=cn(n)||n;u.firstChild;)u.removeChild(u.firstChild)}}(this._doc,String(e)));case Fe.STYLE:return e instanceof Ih?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"Style"),function(t){if(!(t=String(t).trim()))return"";var e=t.match(mn);return e&&Qe(e[1])===e[1]||t.match(dn)&&function(t){for(var e=!0,n=!0,r=0;r<t.length;r++){var i=t.charAt(r);"'"===i&&n?e=!e:'"'===i&&e&&(n=!n)}return e&&n}(t)?t:(Be()&&console.warn("WARNING: sanitizing unsafe style value "+t+" (see http://g.co/ng/security#xss)."),"unsafe")}(e));case Fe.SCRIPT:if(e instanceof xh)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"Script"),new Error("unsafe value used in a script context");case Fe.URL:return e instanceof Ah||e instanceof kh?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"URL"),Qe(String(e)));case Fe.RESOURCE_URL:if(e instanceof Ah)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"ResourceURL"),new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext "+t+" (see http://g.co/ng/security#xss)")}},e.prototype.checkNotSafeValue=function(t,e){if(t instanceof Ch)throw new Error("Required a safe "+e+", got a "+t.getTypeName()+" (see http://g.co/ng/security#xss)")},e.prototype.bypassSecurityTrustHtml=function(t){return new Th(t)},e.prototype.bypassSecurityTrustStyle=function(t){return new Ih(t)},e.prototype.bypassSecurityTrustScript=function(t){return new xh(t)},e.prototype.bypassSecurityTrustUrl=function(t){return new kh(t)},e.prototype.bypassSecurityTrustResourceUrl=function(t){return new Ah(t)},e}(Eh),Ch=function(){function t(t){this.changingThisBreaksApplicationSecurity=t}return t.prototype.toString=function(){return"SafeValue must use [property]=binding: "+this.changingThisBreaksApplicationSecurity+" (see http://g.co/ng/security#xss)"},t}(),Th=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.__extends)(e,t),e.prototype.getTypeName=function(){return"HTML"},e}(Ch),Ih=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.__extends)(e,t),e.prototype.getTypeName=function(){return"Style"},e}(Ch),xh=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.__extends)(e,t),e.prototype.getTypeName=function(){return"Script"},e}(Ch),kh=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.__extends)(e,t),e.prototype.getTypeName=function(){return"URL"},e}(Ch),Ah=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.__extends)(e,t),e.prototype.getTypeName=function(){return"ResourceURL"},e}(Ch),Oh=cr(Qr,"browser",[{provide:Pn,useValue:uu},{provide:Rn,useValue:function(){Nc.makeCurrent(),jc.init()},multi:!0},{provide:Oa,useClass:Mc,deps:[Rc]},{provide:Rc,useFactory:function(){return document},deps:[]}]);function Nh(){return new Tn}var Dh=function(){function t(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}var e;return e=t,t.withServerTransition=function(t){return{ngModule:e,providers:[{provide:On,useValue:t.appId},{provide:Lc,useExisting:On},Fc]}},t}();function Rh(t,e,n){return function(r){return r.lift(new Ph(t,e,n))}}"undefined"!=typeof window&&window;var Ph=function(){function t(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}return t.prototype.call=function(t,e){return e.subscribe(new Mh(t,this.nextOrObserver,this.error,this.complete))},t}(),Mh=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;return o._tapNext=S,o._tapError=S,o._tapComplete=S,o._tapError=r||S,o._tapComplete=i||S,s(n)?(o._context=o,o._tapNext=n):n&&(o._context=n,o._tapNext=n.next||S,o._tapError=n.error||S,o._tapComplete=n.complete||S),o}return r.__extends(e,t),e.prototype._next=function(t){try{this._tapNext.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.next(t)},e.prototype._error=function(t){try{this._tapError.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.error(t)},e.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()},e}(b);function Lh(t,e){return(t.getAttribute(e)||"").match(/\S+/g)||[]}var Fh=0,jh=new Map,Uh=null,Vh=function(){function t(t){this._document=t}return t.prototype.describe=function(t,e){this._canBeDescribed(t,e)&&(jh.has(e)||this._createMessageElement(e),this._isElementDescribedByMessage(t,e)||this._addMessageReference(t,e))},t.prototype.removeDescription=function(t,e){if(this._canBeDescribed(t,e)){this._isElementDescribedByMessage(t,e)&&this._removeMessageReference(t,e);var n=jh.get(e);n&&0===n.referenceCount&&this._deleteMessageElement(e),Uh&&0===Uh.childNodes.length&&this._deleteMessagesContainer()}},t.prototype.ngOnDestroy=function(){for(var t=this._document.querySelectorAll("[cdk-describedby-host]"),e=0;e<t.length;e++)this._removeCdkDescribedByReferenceIds(t[e]),t[e].removeAttribute("cdk-describedby-host");Uh&&this._deleteMessagesContainer(),jh.clear()},t.prototype._createMessageElement=function(t){var e=this._document.createElement("div");e.setAttribute("id","cdk-describedby-message-"+Fh++),e.appendChild(this._document.createTextNode(t)),this._createMessagesContainer(),Uh.appendChild(e),jh.set(t,{messageElement:e,referenceCount:0})},t.prototype._deleteMessageElement=function(t){var e=jh.get(t),n=e&&e.messageElement;Uh&&n&&Uh.removeChild(n),jh.delete(t)},t.prototype._createMessagesContainer=function(){if(!Uh){var t=this._document.getElementById("cdk-describedby-message-container");t&&t.parentNode.removeChild(t),(Uh=this._document.createElement("div")).id="cdk-describedby-message-container",Uh.setAttribute("aria-hidden","true"),Uh.style.display="none",this._document.body.appendChild(Uh)}},t.prototype._deleteMessagesContainer=function(){Uh&&Uh.parentNode&&(Uh.parentNode.removeChild(Uh),Uh=null)},t.prototype._removeCdkDescribedByReferenceIds=function(t){var e=Lh(t,"aria-describedby").filter(function(t){return 0!=t.indexOf("cdk-describedby-message")});t.setAttribute("aria-describedby",e.join(" "))},t.prototype._addMessageReference=function(t,e){var n,r,i,o=jh.get(e);r=o.messageElement.id,(i=Lh(n=t,"aria-describedby")).some(function(t){return t.trim()==r.trim()})||(i.push(r.trim()),n.setAttribute("aria-describedby",i.join(" "))),t.setAttribute("cdk-describedby-host",""),o.referenceCount++},t.prototype._removeMessageReference=function(t,e){var n,r,i,o=jh.get(e);o.referenceCount--,r=o.messageElement.id,i=Lh(n=t,"aria-describedby").filter(function(t){return t!=r.trim()}),n.setAttribute("aria-describedby",i.join(" ")),t.removeAttribute("cdk-describedby-host")},t.prototype._isElementDescribedByMessage=function(t,e){var n=Lh(t,"aria-describedby"),r=jh.get(e),i=r&&r.messageElement.id;return!!i&&-1!=n.indexOf(i)},t.prototype._canBeDescribed=function(t,e){return t.nodeType===this._document.ELEMENT_NODE&&null!=e&&!!(""+e).trim()},t.ngInjectableDef=yt({factory:function(){return new t(Qt(au))},token:t,providedIn:"root"}),t}(),qh=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._origin="program",e}return Object(r.__extends)(e,t),e.prototype.setFocusOrigin=function(t){return this._origin=t,this},e.prototype.setActiveItem=function(e){t.prototype.setActiveItem.call(this,e),this.activeItem&&this.activeItem.focus(this._origin)},e}(function(){function t(t){var e=this;this._items=t,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new D,this._typeaheadSubscription=f.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._skipPredicateFn=function(t){return t.disabled},this._pressedLetters=[],this.tabOut=new D,this.change=new D,t instanceof yr&&t.changes.subscribe(function(t){if(e._activeItem){var n=t.toArray().indexOf(e._activeItem);n>-1&&n!==e._activeItemIndex&&(e._activeItemIndex=n)}})}return t.prototype.skipPredicate=function(t){return this._skipPredicateFn=t,this},t.prototype.withWrap=function(t){return void 0===t&&(t=!0),this._wrap=t,this},t.prototype.withVerticalOrientation=function(t){return void 0===t&&(t=!0),this._vertical=t,this},t.prototype.withHorizontalOrientation=function(t){return this._horizontal=t,this},t.prototype.withAllowedModifierKeys=function(t){return this._allowedModifierKeys=t,this},t.prototype.withTypeAhead=function(t){var e=this;if(void 0===t&&(t=200),this._items.length&&this._items.some(function(t){return"function"!=typeof t.getLabel}))throw Error("ListKeyManager items in typeahead mode must implement the `getLabel` method.");return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(Rh(function(t){return e._pressedLetters.push(t)}),Fu(t),hl(function(){return e._pressedLetters.length>0}),K(function(){return e._pressedLetters.join("")})).subscribe(function(t){for(var n=e._getItemsArray(),r=1;r<n.length+1;r++){var i=(e._activeItemIndex+r)%n.length,o=n[i];if(!e._skipPredicateFn(o)&&0===o.getLabel().toUpperCase().trim().indexOf(t)){e.setActiveItem(i);break}}e._pressedLetters=[]}),this},t.prototype.setActiveItem=function(t){var e=this._activeItemIndex;this.updateActiveItem(t),this._activeItemIndex!==e&&this.change.next(this._activeItemIndex)},t.prototype.onKeydown=function(t){var e=this,n=t.keyCode,r=["altKey","ctrlKey","metaKey","shiftKey"].every(function(n){return!t[n]||e._allowedModifierKeys.indexOf(n)>-1});switch(n){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;default:return void((r||function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return e.length?e.some(function(e){return t[e]}):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}(t,"shiftKey"))&&(t.key&&1===t.key.length?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(n>=65&&n<=90||n>=48&&n<=57)&&this._letterKeyStream.next(String.fromCharCode(n))))}this._pressedLetters=[],t.preventDefault()},Object.defineProperty(t.prototype,"activeItemIndex",{get:function(){return this._activeItemIndex},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeItem",{get:function(){return this._activeItem},enumerable:!0,configurable:!0}),t.prototype.setFirstItemActive=function(){this._setActiveItemByIndex(0,1)},t.prototype.setLastItemActive=function(){this._setActiveItemByIndex(this._items.length-1,-1)},t.prototype.setNextItemActive=function(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)},t.prototype.setPreviousItemActive=function(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)},t.prototype.updateActiveItem=function(t){var e=this._getItemsArray(),n="number"==typeof t?t:e.indexOf(t),r=e[n];this._activeItem=null==r?null:r,this._activeItemIndex=n},t.prototype.updateActiveItemIndex=function(t){this.updateActiveItem(t)},t.prototype._setActiveItemByDelta=function(t){this._wrap?this._setActiveInWrapMode(t):this._setActiveInDefaultMode(t)},t.prototype._setActiveInWrapMode=function(t){for(var e=this._getItemsArray(),n=1;n<=e.length;n++){var r=(this._activeItemIndex+t*n+e.length)%e.length;if(!this._skipPredicateFn(e[r]))return void this.setActiveItem(r)}},t.prototype._setActiveInDefaultMode=function(t){this._setActiveItemByIndex(this._activeItemIndex+t,t)},t.prototype._setActiveItemByIndex=function(t,e){var n=this._getItemsArray();if(n[t]){for(;this._skipPredicateFn(n[t]);)if(!n[t+=e])return;this.setActiveItem(t)}},t.prototype._getItemsArray=function(){return this._items instanceof yr?this._items.toArray():this._items},t}()),Bh=function(){function t(t){this._platform=t}return t.prototype.isDisabled=function(t){return t.hasAttribute("disabled")},t.prototype.isVisible=function(t){return function(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(t)&&"visible"===getComputedStyle(t).visibility},t.prototype.isTabbable=function(t){if(!this._platform.isBrowser)return!1;var e,n=function(t){try{return t.frameElement}catch(e){return null}}((e=t).ownerDocument&&e.ownerDocument.defaultView||window);if(n){var r=n&&n.nodeName.toLowerCase();if(-1===zh(n))return!1;if((this._platform.BLINK||this._platform.WEBKIT)&&"object"===r)return!1;if((this._platform.BLINK||this._platform.WEBKIT)&&!this.isVisible(n))return!1}var i=t.nodeName.toLowerCase(),o=zh(t);if(t.hasAttribute("contenteditable"))return-1!==o;if("iframe"===i)return!1;if("audio"===i){if(!t.hasAttribute("controls"))return!1;if(this._platform.BLINK)return!0}if("video"===i){if(!t.hasAttribute("controls")&&this._platform.TRIDENT)return!1;if(this._platform.BLINK||this._platform.FIREFOX)return!0}return("object"!==i||!this._platform.BLINK&&!this._platform.WEBKIT)&&!(this._platform.WEBKIT&&this._platform.IOS&&!function(t){var e=t.nodeName.toLowerCase(),n="input"===e&&t.type;return"text"===n||"password"===n||"select"===e||"textarea"===e}(t))&&t.tabIndex>=0},t.prototype.isFocusable=function(t){return function(t){return!function(t){return function(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function(t){var e=t.nodeName.toLowerCase();return"input"===e||"select"===e||"button"===e||"textarea"===e}(t)||function(t){return function(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||Hh(t))}(t)&&!this.isDisabled(t)&&this.isVisible(t)},t.ngInjectableDef=yt({factory:function(){return new t(Qt(gu))},token:t,providedIn:"root"}),t}();function Hh(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;var e=t.getAttribute("tabindex");return"-32768"!=e&&!(!e||isNaN(parseInt(e,10)))}function zh(t){if(!Hh(t))return null;var e=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}var Wh=function(){function t(t,e,n,r,i){void 0===i&&(i=!1);var o=this;this._element=t,this._checker=e,this._ngZone=n,this._document=r,this._hasAttached=!1,this._startAnchorListener=function(){return o.focusLastTabbableElement()},this._endAnchorListener=function(){return o.focusFirstTabbableElement()},this._enabled=!0,i||this.attachAnchors()}return Object.defineProperty(t.prototype,"enabled",{get:function(){return this._enabled},set:function(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){var t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this._startAnchorListener),t.parentNode&&t.parentNode.removeChild(t)),e&&(e.removeEventListener("focus",this._endAnchorListener),e.parentNode&&e.parentNode.removeChild(e)),this._startAnchor=this._endAnchor=null},t.prototype.attachAnchors=function(){var t=this;return!!this._hasAttached||(this._ngZone.runOutsideAngular(function(){t._startAnchor||(t._startAnchor=t._createAnchor(),t._startAnchor.addEventListener("focus",t._startAnchorListener)),t._endAnchor||(t._endAnchor=t._createAnchor(),t._endAnchor.addEventListener("focus",t._endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)},t.prototype.focusInitialElementWhenReady=function(){var t=this;return new Promise(function(e){t._executeOnStable(function(){return e(t.focusInitialElement())})})},t.prototype.focusFirstTabbableElementWhenReady=function(){var t=this;return new Promise(function(e){t._executeOnStable(function(){return e(t.focusFirstTabbableElement())})})},t.prototype.focusLastTabbableElementWhenReady=function(){var t=this;return new Promise(function(e){t._executeOnStable(function(){return e(t.focusLastTabbableElement())})})},t.prototype._getRegionBoundary=function(t){for(var e=this._element.querySelectorAll("[cdk-focus-region-"+t+"], [cdkFocusRegion"+t+"], [cdk-focus-"+t+"]"),n=0;n<e.length;n++)e[n].hasAttribute("cdk-focus-"+t)?console.warn("Found use of deprecated attribute 'cdk-focus-"+t+"', use 'cdkFocusRegion"+t+"' instead. The deprecated attribute will be removed in 8.0.0.",e[n]):e[n].hasAttribute("cdk-focus-region-"+t)&&console.warn("Found use of deprecated attribute 'cdk-focus-region-"+t+"', use 'cdkFocusRegion"+t+"' instead. The deprecated attribute will be removed in 8.0.0.",e[n]);return"start"==t?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)},t.prototype.focusInitialElement=function(){var t=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");return t?(t.hasAttribute("cdk-focus-initial")&&console.warn("Found use of deprecated attribute 'cdk-focus-initial', use 'cdkFocusInitial' instead. The deprecated attribute will be removed in 8.0.0",t),Be()&&!this._checker.isFocusable(t)&&console.warn("Element matching '[cdkFocusInitial]' is not focusable.",t),t.focus(),!0):this.focusFirstTabbableElement()},t.prototype.focusFirstTabbableElement=function(){var t=this._getRegionBoundary("start");return t&&t.focus(),!!t},t.prototype.focusLastTabbableElement=function(){var t=this._getRegionBoundary("end");return t&&t.focus(),!!t},t.prototype.hasAttached=function(){return this._hasAttached},t.prototype._getFirstTabbableElement=function(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;for(var e=t.children||t.childNodes,n=0;n<e.length;n++){var r=e[n].nodeType===this._document.ELEMENT_NODE?this._getFirstTabbableElement(e[n]):null;if(r)return r}return null},t.prototype._getLastTabbableElement=function(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;for(var e=t.children||t.childNodes,n=e.length-1;n>=0;n--){var r=e[n].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[n]):null;if(r)return r}return null},t.prototype._createAnchor=function(){var t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t},t.prototype._toggleAnchorTabIndex=function(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")},t.prototype._executeOnStable=function(t){this._ngZone.isStable?t():this._ngZone.onStable.asObservable().pipe(kl(1)).subscribe(t)},t}(),Qh=function(){function t(t,e,n){this._checker=t,this._ngZone=e,this._document=n}return t.prototype.create=function(t,e){return void 0===e&&(e=!1),new Wh(t,this._checker,this._ngZone,this._document,e)},t.ngInjectableDef=yt({factory:function(){return new t(Qt(Bh),Qt(Jn),Qt(au))},token:t,providedIn:"root"}),t}(),Kh=650,Gh=wu({passive:!0,capture:!0}),Yh=function(){function t(t,e){var n=this;this._ngZone=t,this._platform=e,this._origin=null,this._windowFocused=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._documentKeydownListener=function(){n._lastTouchTarget=null,n._setOriginForCurrentEventQueue("keyboard")},this._documentMousedownListener=function(){n._lastTouchTarget||n._setOriginForCurrentEventQueue("mouse")},this._documentTouchstartListener=function(t){null!=n._touchTimeoutId&&clearTimeout(n._touchTimeoutId),n._lastTouchTarget=t.target,n._touchTimeoutId=setTimeout(function(){return n._lastTouchTarget=null},Kh)},this._windowFocusListener=function(){n._windowFocused=!0,n._windowFocusTimeoutId=setTimeout(function(){return n._windowFocused=!1})}}return t.prototype.monitor=function(t,e){var n=this;if(void 0===e&&(e=!1),!this._platform.isBrowser)return zu(null);var r=ka(t);if(this._elementInfo.has(r)){var i=this._elementInfo.get(r);return i.checkChildren=e,i.subject.asObservable()}var o={unlisten:function(){},checkChildren:e,subject:new D};this._elementInfo.set(r,o),this._incrementMonitoredElementCount();var s=function(t){return n._onFocus(t,r)},a=function(t){return n._onBlur(t,r)};return this._ngZone.runOutsideAngular(function(){r.addEventListener("focus",s,!0),r.addEventListener("blur",a,!0)}),o.unlisten=function(){r.removeEventListener("focus",s,!0),r.removeEventListener("blur",a,!0)},o.subject.asObservable()},t.prototype.stopMonitoring=function(t){var e=ka(t),n=this._elementInfo.get(e);n&&(n.unlisten(),n.subject.complete(),this._setClasses(e),this._elementInfo.delete(e),this._decrementMonitoredElementCount())},t.prototype.focusVia=function(t,e,n){var r=ka(t);this._setOriginForCurrentEventQueue(e),"function"==typeof r.focus&&r.focus(n)},t.prototype.ngOnDestroy=function(){var t=this;this._elementInfo.forEach(function(e,n){return t.stopMonitoring(n)})},t.prototype._toggleClass=function(t,e,n){n?t.classList.add(e):t.classList.remove(e)},t.prototype._setClasses=function(t,e){this._elementInfo.get(t)&&(this._toggleClass(t,"cdk-focused",!!e),this._toggleClass(t,"cdk-touch-focused","touch"===e),this._toggleClass(t,"cdk-keyboard-focused","keyboard"===e),this._toggleClass(t,"cdk-mouse-focused","mouse"===e),this._toggleClass(t,"cdk-program-focused","program"===e))},t.prototype._setOriginForCurrentEventQueue=function(t){var e=this;this._ngZone.runOutsideAngular(function(){e._origin=t,e._originTimeoutId=setTimeout(function(){return e._origin=null},1)})},t.prototype._wasCausedByTouch=function(t){var e=t.target;return this._lastTouchTarget instanceof Node&&e instanceof Node&&(e===this._lastTouchTarget||e.contains(this._lastTouchTarget))},t.prototype._onFocus=function(t,e){var n=this._elementInfo.get(e);if(n&&(n.checkChildren||e===t.target)){var r=this._origin;r||(r=this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:this._wasCausedByTouch(t)?"touch":"program"),this._setClasses(e,r),this._emitOrigin(n.subject,r),this._lastFocusOrigin=r}},t.prototype._onBlur=function(t,e){var n=this._elementInfo.get(e);!n||n.checkChildren&&t.relatedTarget instanceof Node&&e.contains(t.relatedTarget)||(this._setClasses(e),this._emitOrigin(n.subject,null))},t.prototype._emitOrigin=function(t,e){this._ngZone.run(function(){return t.next(e)})},t.prototype._incrementMonitoredElementCount=function(){var t=this;1==++this._monitoredElementCount&&this._platform.isBrowser&&this._ngZone.runOutsideAngular(function(){document.addEventListener("keydown",t._documentKeydownListener,Gh),document.addEventListener("mousedown",t._documentMousedownListener,Gh),document.addEventListener("touchstart",t._documentTouchstartListener,Gh),window.addEventListener("focus",t._windowFocusListener)})},t.prototype._decrementMonitoredElementCount=function(){--this._monitoredElementCount||(document.removeEventListener("keydown",this._documentKeydownListener,Gh),document.removeEventListener("mousedown",this._documentMousedownListener,Gh),document.removeEventListener("touchstart",this._documentTouchstartListener,Gh),window.removeEventListener("focus",this._windowFocusListener),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._touchTimeoutId),clearTimeout(this._originTimeoutId))},t.ngInjectableDef=yt({factory:function(){return new t(Qt(Jn),Qt(gu))},token:t,providedIn:"root"}),t}();function Xh(t){return 0===t.buttons}var Jh=function(){return function(){}}(),Zh=new vt("mat-sanity-checks",{providedIn:"root",factory:function(){return!0}}),$h=function(){function t(t,e){this._sanityChecksEnabled=t,this._hammerLoader=e,this._hasDoneGlobalChecks=!1,this._hasCheckedHammer=!1,this._document="object"==typeof document&&document?document:null,this._window="object"==typeof window&&window?window:null,this._areChecksEnabled()&&!this._hasDoneGlobalChecks&&(this._checkDoctypeIsDefined(),this._checkThemeIsPresent(),this._hasDoneGlobalChecks=!0)}return t.prototype._areChecksEnabled=function(){return this._sanityChecksEnabled&&Be()&&!this._isTestEnv()},t.prototype._isTestEnv=function(){var t=this._window;return t&&(t.__karma__||t.jasmine)},t.prototype._checkDoctypeIsDefined=function(){this._document&&!this._document.doctype&&console.warn("Current document does not have a doctype. This may cause some Angular Material components not to behave as expected.")},t.prototype._checkThemeIsPresent=function(){if(this._document&&this._document.body&&"function"==typeof getComputedStyle){var t=this._document.createElement("div");t.classList.add("mat-theme-loaded-marker"),this._document.body.appendChild(t);var e=getComputedStyle(t);e&&"none"!==e.display&&console.warn("Could not find Angular Material core theme. Most Material components may not work as expected. For more info refer to the theming guide: https://material.angular.io/guide/theming"),this._document.body.removeChild(t)}},t.prototype._checkHammerIsAvailable=function(){!this._hasCheckedHammer&&this._window&&(!this._areChecksEnabled()||this._window.Hammer||this._hammerLoader||console.warn("Could not find HammerJS. Certain Angular Material components may not work correctly."),this._hasCheckedHammer=!0)},t}();function tp(t){return function(t){function e(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var r=t.apply(this,e)||this;return r._disabled=!1,r}return Object(r.__extends)(e,t),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(t){this._disabled=Ca(t)},enumerable:!0,configurable:!0}),e}(t)}function ep(t,e){return function(t){function n(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var i=t.apply(this,n)||this;return i.color=e,i}return Object(r.__extends)(n,t),Object.defineProperty(n.prototype,"color",{get:function(){return this._color},set:function(t){var n=t||e;n!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove("mat-"+this._color),n&&this._elementRef.nativeElement.classList.add("mat-"+n),this._color=n)},enumerable:!0,configurable:!0}),n}(t)}function np(t){return function(t){function e(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var r=t.apply(this,e)||this;return r._disableRipple=!1,r}return Object(r.__extends)(e,t),Object.defineProperty(e.prototype,"disableRipple",{get:function(){return this._disableRipple},set:function(t){this._disableRipple=Ca(t)},enumerable:!0,configurable:!0}),e}(t)}function rp(t){return function(t){function e(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var r=t.apply(this,e)||this;return r.errorState=!1,r.stateChanges=new D,r}return Object(r.__extends)(e,t),e.prototype.updateErrorState=function(){var t=this.errorState,e=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);e!==t&&(this.errorState=e,this.stateChanges.next())},e}(t)}var ip=function(){function t(){}return t.prototype.isErrorState=function(t,e){return!!(t&&t.invalid&&(t.touched||e&&e.submitted))},t.ngInjectableDef=yt({factory:function(){return new t},token:t,providedIn:"root"}),t}(),op=new vt("MAT_HAMMER_OPTIONS"),sp=["longpress","slide","slidestart","slideend","slideright","slideleft"],ap={on:function(){},off:function(){}},up=function(t){function e(e,n){var r=t.call(this)||this;return r._hammerOptions=e,r.events=sp,n&&n._checkHammerIsAvailable(),r}return Object(r.__extends)(e,t),e.prototype.buildHammer=function(t){var e="undefined"!=typeof window?window.Hammer:null;if(!e)return ap;var n=new e(t,this._hammerOptions||void 0),r=new e.Pan,i=new e.Swipe,o=new e.Press,s=this._createRecognizer(r,{event:"slide",threshold:0},i),a=this._createRecognizer(o,{event:"longpress",time:500});return r.recognizeWith(i),a.recognizeWith(s),n.add([i,o,r,s,a]),n},e.prototype._createRecognizer=function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i=new t.constructor(e);return n.push(t),n.forEach(function(t){return i.recognizeWith(t)}),i},e}(gh),lp=function(){return function(){}}();function cp(t,e,n){var r=t.nativeElement.classList;n?r.add(e):r.remove(e)}var hp=function(){return function(){}}(),pp=function(){var t={FADING_IN:0,VISIBLE:1,FADING_OUT:2,HIDDEN:3};return t[t.FADING_IN]="FADING_IN",t[t.VISIBLE]="VISIBLE",t[t.FADING_OUT]="FADING_OUT",t[t.HIDDEN]="HIDDEN",t}(),fp=function(){function t(t,e,n){this._renderer=t,this.element=e,this.config=n,this.state=pp.HIDDEN}return t.prototype.fadeOut=function(){this._renderer.fadeOutRipple(this)},t}(),dp={enterDuration:450,exitDuration:400},mp=800,yp=wu({passive:!0}),gp=function(){function t(t,e,n,r){var i=this;this._target=t,this._ngZone=e,this._isPointerDown=!1,this._triggerEvents=new Map,this._activeRipples=new Set,this.onMousedown=function(t){var e=Xh(t),n=i._lastTouchStartEvent&&Date.now()<i._lastTouchStartEvent+mp;i._target.rippleDisabled||e||n||(i._isPointerDown=!0,i.fadeInRipple(t.clientX,t.clientY,i._target.rippleConfig))},this.onTouchStart=function(t){if(!i._target.rippleDisabled){i._lastTouchStartEvent=Date.now(),i._isPointerDown=!0;for(var e=t.changedTouches,n=0;n<e.length;n++)i.fadeInRipple(e[n].clientX,e[n].clientY,i._target.rippleConfig)}},this.onPointerUp=function(){i._isPointerDown&&(i._isPointerDown=!1,i._activeRipples.forEach(function(t){!t.config.persistent&&(t.state===pp.VISIBLE||t.config.terminateOnPointerUp&&t.state===pp.FADING_IN)&&t.fadeOut()}))},r.isBrowser&&(this._containerElement=n.nativeElement,this._triggerEvents.set("mousedown",this.onMousedown).set("mouseup",this.onPointerUp).set("mouseleave",this.onPointerUp).set("touchstart",this.onTouchStart).set("touchend",this.onPointerUp).set("touchcancel",this.onPointerUp))}return t.prototype.fadeInRipple=function(t,e,n){var i=this;void 0===n&&(n={});var o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s=Object(r.__assign)({},dp,n.animation);n.centered&&(t=o.left+o.width/2,e=o.top+o.height/2);var a=n.radius||function(t,e,n){var r=Math.max(Math.abs(t-n.left),Math.abs(t-n.right)),i=Math.max(Math.abs(e-n.top),Math.abs(e-n.bottom));return Math.sqrt(r*r+i*i)}(t,e,o),u=t-o.left,l=e-o.top,c=s.enterDuration,h=document.createElement("div");h.classList.add("mat-ripple-element"),h.style.left=u-a+"px",h.style.top=l-a+"px",h.style.height=2*a+"px",h.style.width=2*a+"px",h.style.backgroundColor=n.color||null,h.style.transitionDuration=c+"ms",this._containerElement.appendChild(h),window.getComputedStyle(h).getPropertyValue("opacity"),h.style.transform="scale(1)";var p=new fp(this,h,n);return p.state=pp.FADING_IN,this._activeRipples.add(p),n.persistent||(this._mostRecentTransientRipple=p),this.runTimeoutOutsideZone(function(){var t=p===i._mostRecentTransientRipple;p.state=pp.VISIBLE,n.persistent||t&&i._isPointerDown||p.fadeOut()},c),p},t.prototype.fadeOutRipple=function(t){var e=this._activeRipples.delete(t);if(t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),this._activeRipples.size||(this._containerRect=null),e){var n=t.element,i=Object(r.__assign)({},dp,t.config.animation);n.style.transitionDuration=i.exitDuration+"ms",n.style.opacity="0",t.state=pp.FADING_OUT,this.runTimeoutOutsideZone(function(){t.state=pp.HIDDEN,n.parentNode.removeChild(n)},i.exitDuration)}},t.prototype.fadeOutAll=function(){this._activeRipples.forEach(function(t){return t.fadeOut()})},t.prototype.setupTriggerEvents=function(t){var e=this;t&&t!==this._triggerElement&&(this._removeTriggerEvents(),this._ngZone.runOutsideAngular(function(){e._triggerEvents.forEach(function(e,n){t.addEventListener(n,e,yp)})}),this._triggerElement=t)},t.prototype.runTimeoutOutsideZone=function(t,e){void 0===e&&(e=0),this._ngZone.runOutsideAngular(function(){return setTimeout(t,e)})},t.prototype._removeTriggerEvents=function(){var t=this;this._triggerElement&&this._triggerEvents.forEach(function(e,n){t._triggerElement.removeEventListener(n,e,yp)})},t}(),vp=new vt("mat-ripple-global-options"),_p=function(){function t(t,e,n,r,i){this._elementRef=t,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=r||{},this._rippleRenderer=new gp(this,e,t,n),"NoopAnimations"===i&&(this._globalOptions.animation={enterDuration:0,exitDuration:0})}return Object.defineProperty(t.prototype,"disabled",{get:function(){return this._disabled},set:function(t){this._disabled=t,this._setupTriggerEventsIfEnabled()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"trigger",{get:function(){return this._trigger||this._elementRef.nativeElement},set:function(t){this._trigger=t,this._setupTriggerEventsIfEnabled()},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()},t.prototype.ngOnDestroy=function(){this._rippleRenderer._removeTriggerEvents()},t.prototype.fadeOutAll=function(){this._rippleRenderer.fadeOutAll()},Object.defineProperty(t.prototype,"rippleConfig",{get:function(){return{centered:this.centered,radius:this.radius,color:this.color,animation:Object(r.__assign)({},this._globalOptions.animation,this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rippleDisabled",{get:function(){return this.disabled||!!this._globalOptions.disabled},enumerable:!0,configurable:!0}),t.prototype._setupTriggerEventsIfEnabled=function(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)},t.prototype.launch=function(t,e,n){return void 0===e&&(e=0),"number"==typeof t?this._rippleRenderer.fadeInRipple(t,e,Object(r.__assign)({},this.rippleConfig,n)):this._rippleRenderer.fadeInRipple(0,0,Object(r.__assign)({},this.rippleConfig,t))},t}(),bp=function(){return function(){}}(),wp=function(){return function(){}}(),Ep=new vt("mat-label-global-options"),Sp=mi({encapsulation:2,styles:[".mat-tooltip-panel{pointer-events:none!important}.mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis}@media (-ms-high-contrast:active){.mat-tooltip{outline:solid 1px}}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}"],data:{animation:[{type:7,name:"state",definitions:[{type:0,name:"initial, void, hidden",styles:{type:6,styles:{opacity:0,transform:"scale(0)"},offset:null},options:void 0},{type:0,name:"visible",styles:{type:6,styles:{transform:"scale(1)"},offset:null},options:void 0},{type:1,expr:"* => visible",animation:{type:4,styles:{type:5,steps:[{type:6,styles:{opacity:0,transform:"scale(0)",offset:0},offset:null},{type:6,styles:{opacity:.5,transform:"scale(0.99)",offset:.5},offset:null},{type:6,styles:{opacity:1,transform:"scale(1)",offset:1},offset:null}]},timings:"200ms cubic-bezier(0, 0, 0.2, 1)"},options:null},{type:1,expr:"* => hidden",animation:{type:4,styles:{type:6,styles:{opacity:0},offset:null},timings:"100ms cubic-bezier(0, 0, 0.2, 1)"},options:null}],options:{}}]}});function Cp(t){return ss(2,[(t()(),Hi(0,0,null,null,3,"div",[["class","mat-tooltip"]],[[2,"mat-tooltip-handset",null],[24,"@state",0]],[[null,"@state.start"],[null,"@state.done"]],function(t,e,n){var r=!0,i=t.component;return"@state.start"===e&&(r=!1!==i._animationStart()&&r),"@state.done"===e&&(r=!1!==i._animationDone(n)&&r),r},null,null)),Do(1,278528,null,0,Qa,[qr,Br,Oe,Me],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),Ro(131072,ou,[Sr]),(t()(),rs(3,null,["",""]))],function(t,e){t(e,1,0,"mat-tooltip",e.component.tooltipClass)},function(t,e){var n,r=e.component;t(e,0,0,null==(n=pi(e,0,0,_o(e,2).transform(r._isHandset)))?null:n.matches,r._visibility),t(e,3,0,r.message)})}function Tp(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"mat-tooltip-component",[["aria-hidden","true"]],[[4,"zoom",null]],[["body","click"]],function(t,e,n){var r=!0;return"body:click"===e&&(r=!1!==_o(t,1)._handleBodyInteraction()&&r),r},Cp,Sp)),Do(1,180224,null,0,mc,[Sr,tl],null,null)],null,function(t,e){t(e,0,0,"visible"===_o(e,1)._visibility?1:null)})}var Ip=ao("mat-tooltip-component",mc,Tp,{},{},[]),xp=function(t){function e(e){var n=t.call(this)||this;return n._value=e,n}return r.__extends(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),e.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return n&&!n.closed&&e.next(this._value),n},e.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new A;return this._value},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(D);function kp(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}kp.prototype=Object.create(Error.prototype);var Ap=kp;function Op(t){return new I(function(e){var n;try{n=t()}catch(r){return void e.error(r)}return(n?J(n):Hu()).subscribe(e)})}function Np(t){return function(e){return 0===t?Hu():e.lift(new Dp(t))}}var Dp=function(){function t(t){if(this.total=t,this.total<0)throw new xl}return t.prototype.call=function(t,e){return e.subscribe(new Rp(t,this.total))},t}(),Rp=function(t){function e(e,n){var r=t.call(this,e)||this;return r.total=n,r.ring=new Array,r.count=0,r}return r.__extends(e,t),e.prototype._next=function(t){var e=this.ring,n=this.total,r=this.count++;e.length<n?e.push(t):e[r%n]=t},e.prototype._complete=function(){var t=this.destination,e=this.count;if(e>0)for(var n=this.count>=this.total?this.total:this.count,r=this.ring,i=0;i<n;i++){var o=e++%n;t.next(r[o])}t.complete()},e}(b),Pp=function(t){return void 0===t&&(t=Mp),Rh({hasValue:!1,next:function(){this.hasValue=!0},complete:function(){if(!this.hasValue)throw t()}})};function Mp(){return new Ap}function Lp(t){return void 0===t&&(t=null),function(e){return e.lift(new Fp(t))}}var Fp=function(){function t(t){this.defaultValue=t}return t.prototype.call=function(t,e){return e.subscribe(new jp(t,this.defaultValue))},t}(),jp=function(t){function e(e,n){var r=t.call(this,e)||this;return r.defaultValue=n,r.isEmpty=!0,r}return r.__extends(e,t),e.prototype._next=function(t){this.isEmpty=!1,this.destination.next(t)},e.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},e}(b);function Up(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?hl(function(e,n){return t(e,n,r)}):et,Np(1),n?Lp(e):Pp(function(){return new Ap}))}}function Vp(t){return function(e){var n=new qp(t),r=e.lift(n);return n.caught=r}}var qp=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new Bp(t,this.selector,this.caught))},t}(),Bp=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.selector=n,i.caught=r,i}return r.__extends(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=void 0;try{n=this.selector(e,this.caught)}catch(i){return void t.prototype.error.call(this,i)}this._unsubscribeAndRecycle();var r=new M(this,void 0,void 0);this.add(r),W(this,n,void 0,void 0,r)}},e}(Q);function Hp(t,e){var n=arguments.length>=2;return function(r){return r.pipe(t?hl(function(e,n){return t(e,n,r)}):et,kl(1),n?Lp(e):Pp(function(){return new Ap}))}}var zp=function(){function t(t,e,n){this.predicate=t,this.thisArg=e,this.source=n}return t.prototype.call=function(t,e){return e.subscribe(new Wp(t,this.predicate,this.thisArg,this.source))},t}(),Wp=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;return o.predicate=n,o.thisArg=r,o.source=i,o.index=0,o.thisArg=r||o,o}return r.__extends(e,t),e.prototype.notifyComplete=function(t){this.destination.next(t),this.destination.complete()},e.prototype._next=function(t){var e=!1;try{e=this.predicate.call(this.thisArg,t,this.index++,this.source)}catch(n){return void this.destination.error(n)}e||this.notifyComplete(!1)},e.prototype._complete=function(){this.notifyComplete(!0)},e}(b);function Qp(t,e){var n=!1;return arguments.length>=2&&(n=!0),function(r){return r.lift(new Kp(t,e,n))}}var Kp=function(){function t(t,e,n){void 0===n&&(n=!1),this.accumulator=t,this.seed=e,this.hasSeed=n}return t.prototype.call=function(t,e){return e.subscribe(new Gp(t,this.accumulator,this.seed,this.hasSeed))},t}(),Gp=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;return o.accumulator=n,o._seed=r,o.hasSeed=i,o.index=0,o}return r.__extends(e,t),Object.defineProperty(e.prototype,"seed",{get:function(){return this._seed},set:function(t){this.hasSeed=!0,this._seed=t},enumerable:!0,configurable:!0}),e.prototype._next=function(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)},e.prototype._tryNext=function(t){var e,n=this.index++;try{e=this.accumulator(this.seed,t,n)}catch(r){this.destination.error(r)}this.seed=e,this.destination.next(e)},e}(b);function Yp(t,e){return Z(t,e,1)}function Xp(t){return function(e){return e.lift(new Jp(t))}}var Jp=function(){function t(t){this.callback=t}return t.prototype.call=function(t,e){return e.subscribe(new Zp(t,this.callback))},t}(),Zp=function(t){function e(e,n){var r=t.call(this,e)||this;return r.add(new f(n)),r}return r.__extends(e,t),e}(b),$p=function(){return function(t,e){this.id=t,this.url=e}}(),tf=function(t){function e(e,n,r,i){void 0===r&&(r="imperative"),void 0===i&&(i=null);var o=t.call(this,e,n)||this;return o.navigationTrigger=r,o.restoredState=i,o}return Object(r.__extends)(e,t),e.prototype.toString=function(){return"NavigationStart(id: "+this.id+", url: '"+this.url+"')"},e}($p),ef=function(t){function e(e,n,r){var i=t.call(this,e,n)||this;return i.urlAfterRedirects=r,i}return Object(r.__extends)(e,t),e.prototype.toString=function(){return"NavigationEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"')"},e}($p),nf=function(t){function e(e,n,r){var i=t.call(this,e,n)||this;return i.reason=r,i}return Object(r.__extends)(e,t),e.prototype.toString=function(){return"NavigationCancel(id: "+this.id+", url: '"+this.url+"')"},e}($p),rf=function(t){function e(e,n,r){var i=t.call(this,e,n)||this;return i.error=r,i}return Object(r.__extends)(e,t),e.prototype.toString=function(){return"NavigationError(id: "+this.id+", url: '"+this.url+"', error: "+this.error+")"},e}($p),of=function(t){function e(e,n,r,i){var o=t.call(this,e,n)||this;return o.urlAfterRedirects=r,o.state=i,o}return Object(r.__extends)(e,t),e.prototype.toString=function(){return"RoutesRecognized(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},e}($p),sf=function(t){function e(e,n,r,i){var o=t.call(this,e,n)||this;return o.urlAfterRedirects=r,o.state=i,o}return Object(r.__extends)(e,t),e.prototype.toString=function(){return"GuardsCheckStart(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},e}($p),af=function(t){function e(e,n,r,i,o){var s=t.call(this,e,n)||this;return s.urlAfterRedirects=r,s.state=i,s.shouldActivate=o,s}return Object(r.__extends)(e,t),e.prototype.toString=function(){return"GuardsCheckEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+", shouldActivate: "+this.shouldActivate+")"},e}($p),uf=function(t){function e(e,n,r,i){var o=t.call(this,e,n)||this;return o.urlAfterRedirects=r,o.state=i,o}return Object(r.__extends)(e,t),e.prototype.toString=function(){return"ResolveStart(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},e}($p),lf=function(t){function e(e,n,r,i){var o=t.call(this,e,n)||this;return o.urlAfterRedirects=r,o.state=i,o}return Object(r.__extends)(e,t),e.prototype.toString=function(){return"ResolveEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},e}($p),cf=function(){function t(t){this.route=t}return t.prototype.toString=function(){return"RouteConfigLoadStart(path: "+this.route.path+")"},t}(),hf=function(){function t(t){this.route=t}return t.prototype.toString=function(){return"RouteConfigLoadEnd(path: "+this.route.path+")"},t}(),pf=function(){function t(t){this.snapshot=t}return t.prototype.toString=function(){return"ChildActivationStart(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},t}(),ff=function(){function t(t){this.snapshot=t}return t.prototype.toString=function(){return"ChildActivationEnd(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},t}(),df=function(){function t(t){this.snapshot=t}return t.prototype.toString=function(){return"ActivationStart(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},t}(),mf=function(){function t(t){this.snapshot=t}return t.prototype.toString=function(){return"ActivationEnd(path: '"+(this.snapshot.routeConfig&&this.snapshot.routeConfig.path||"")+"')"},t}(),yf=function(){function t(t,e,n){this.routerEvent=t,this.position=e,this.anchor=n}return t.prototype.toString=function(){return"Scroll(anchor: '"+this.anchor+"', position: '"+(this.position?this.position[0]+", "+this.position[1]:null)+"')"},t}(),gf=function(){return function(){}}(),vf="primary",_f=function(){function t(t){this.params=t||{}}return t.prototype.has=function(t){return this.params.hasOwnProperty(t)},t.prototype.get=function(t){if(this.has(t)){var e=this.params[t];return Array.isArray(e)?e[0]:e}return null},t.prototype.getAll=function(t){if(this.has(t)){var e=this.params[t];return Array.isArray(e)?e:[e]}return[]},Object.defineProperty(t.prototype,"keys",{get:function(){return Object.keys(this.params)},enumerable:!0,configurable:!0}),t}();function bf(t){return new _f(t)}var wf="ngNavigationCancelingError";function Ef(t){var e=Error("NavigationCancelingError: "+t);return e[wf]=!0,e}function Sf(t,e,n){var r=n.path.split("/");if(r.length>t.length)return null;if("full"===n.pathMatch&&(e.hasChildren()||r.length<t.length))return null;for(var i={},o=0;o<r.length;o++){var s=r[o],a=t[o];if(s.startsWith(":"))i[s.substring(1)]=a;else if(s!==a.path)return null}return{consumed:t.slice(0,r.length),posParams:i}}var Cf=function(){return function(t,e){this.routes=t,this.module=e}}();function Tf(t,e){void 0===e&&(e="");for(var n=0;n<t.length;n++){var r=t[n];If(r,xf(e,r))}}function If(t,e){if(!t)throw new Error("\n      Invalid configuration of route '"+e+"': Encountered undefined route.\n      The reason might be an extra comma.\n\n      Example:\n      const routes: Routes = [\n        { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\n        { path: 'dashboard',  component: DashboardComponent },, << two commas\n        { path: 'detail/:id', component: HeroDetailComponent }\n      ];\n    ");if(Array.isArray(t))throw new Error("Invalid configuration of route '"+e+"': Array cannot be specified");if(!t.component&&!t.children&&!t.loadChildren&&t.outlet&&t.outlet!==vf)throw new Error("Invalid configuration of route '"+e+"': a componentless route without children or loadChildren cannot have a named outlet set");if(t.redirectTo&&t.children)throw new Error("Invalid configuration of route '"+e+"': redirectTo and children cannot be used together");if(t.redirectTo&&t.loadChildren)throw new Error("Invalid configuration of route '"+e+"': redirectTo and loadChildren cannot be used together");if(t.children&&t.loadChildren)throw new Error("Invalid configuration of route '"+e+"': children and loadChildren cannot be used together");if(t.redirectTo&&t.component)throw new Error("Invalid configuration of route '"+e+"': redirectTo and component cannot be used together");if(t.path&&t.matcher)throw new Error("Invalid configuration of route '"+e+"': path and matcher cannot be used together");if(void 0===t.redirectTo&&!t.component&&!t.children&&!t.loadChildren)throw new Error("Invalid configuration of route '"+e+"'. One of the following must be provided: component, redirectTo, children or loadChildren");if(void 0===t.path&&void 0===t.matcher)throw new Error("Invalid configuration of route '"+e+"': routes must have either a path or a matcher specified");if("string"==typeof t.path&&"/"===t.path.charAt(0))throw new Error("Invalid configuration of route '"+e+"': path cannot start with a slash");if(""===t.path&&void 0!==t.redirectTo&&void 0===t.pathMatch)throw new Error("Invalid configuration of route '{path: \""+e+'", redirectTo: "'+t.redirectTo+"\"}': please provide 'pathMatch'. The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.");if(void 0!==t.pathMatch&&"full"!==t.pathMatch&&"prefix"!==t.pathMatch)throw new Error("Invalid configuration of route '"+e+"': pathMatch can only be set to 'prefix' or 'full'");t.children&&Tf(t.children,e)}function xf(t,e){return e?t||e.path?t&&!e.path?t+"/":!t&&e.path?e.path:t+"/"+e.path:"":t}function kf(t){var e=t.children&&t.children.map(kf),n=e?Object(r.__assign)({},t,{children:e}):Object(r.__assign)({},t);return!n.component&&(e||n.loadChildren)&&n.outlet&&n.outlet!==vf&&(n.component=gf),n}function Af(t,e){var n,r=Object.keys(t),i=Object.keys(e);if(r.length!=i.length)return!1;for(var o=0;o<r.length;o++)if(t[n=r[o]]!==e[n])return!1;return!0}function Of(t){return Array.prototype.concat.apply([],t)}function Nf(t){return t.length>0?t[t.length-1]:null}function Df(t,e){for(var n in t)t.hasOwnProperty(n)&&e(t[n],n)}function Rf(t){return xn(t)?t:In(t)?J(Promise.resolve(t)):zu(t)}function Pf(t,e,n){return n?function(t,e){return Af(t,e)}(t.queryParams,e.queryParams)&&function t(e,n){if(!jf(e.segments,n.segments))return!1;if(e.numberOfChildren!==n.numberOfChildren)return!1;for(var r in n.children){if(!e.children[r])return!1;if(!t(e.children[r],n.children[r]))return!1}return!0}(t.root,e.root):function(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(function(n){return e[n]===t[n]})}(t.queryParams,e.queryParams)&&function t(e,n){return function e(n,r,i){if(n.segments.length>i.length)return!!jf(s=n.segments.slice(0,i.length),i)&&!r.hasChildren();if(n.segments.length===i.length){if(!jf(n.segments,i))return!1;for(var o in r.children){if(!n.children[o])return!1;if(!t(n.children[o],r.children[o]))return!1}return!0}var s=i.slice(0,n.segments.length),a=i.slice(n.segments.length);return!!jf(n.segments,s)&&!!n.children[vf]&&e(n.children[vf],r,a)}(e,n,n.segments)}(t.root,e.root)}var Mf=function(){function t(t,e,n){this.root=t,this.queryParams=e,this.fragment=n}return Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=bf(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return Bf.serialize(this)},t}(),Lf=function(){function t(t,e){var n=this;this.segments=t,this.children=e,this.parent=null,Df(e,function(t,e){return t.parent=n})}return t.prototype.hasChildren=function(){return this.numberOfChildren>0},Object.defineProperty(t.prototype,"numberOfChildren",{get:function(){return Object.keys(this.children).length},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return Hf(this)},t}(),Ff=function(){function t(t,e){this.path=t,this.parameters=e}return Object.defineProperty(t.prototype,"parameterMap",{get:function(){return this._parameterMap||(this._parameterMap=bf(this.parameters)),this._parameterMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return Yf(this)},t}();function jf(t,e){return t.length===e.length&&t.every(function(t,n){return t.path===e[n].path})}function Uf(t,e){var n=[];return Df(t.children,function(t,r){r===vf&&(n=n.concat(e(t,r)))}),Df(t.children,function(t,r){r!==vf&&(n=n.concat(e(t,r)))}),n}var Vf=function(){return function(){}}(),qf=function(){function t(){}return t.prototype.parse=function(t){var e=new td(t);return new Mf(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())},t.prototype.serialize=function(t){var e,n;return"/"+function t(e,n){if(!e.hasChildren())return Hf(e);if(n){var r=e.children[vf]?t(e.children[vf],!1):"",i=[];return Df(e.children,function(e,n){n!==vf&&i.push(n+":"+t(e,!1))}),i.length>0?r+"("+i.join("//")+")":r}var o=Uf(e,function(n,r){return r===vf?[t(e.children[vf],!1)]:[r+":"+t(n,!1)]});return Hf(e)+"/("+o.join("//")+")"}(t.root,!0)+(e=t.queryParams,(n=Object.keys(e).map(function(t){var n=e[t];return Array.isArray(n)?n.map(function(e){return Wf(t)+"="+Wf(e)}).join("&"):Wf(t)+"="+Wf(n)})).length?"?"+n.join("&"):"")+("string"==typeof t.fragment?"#"+encodeURI(t.fragment):"")},t}(),Bf=new qf;function Hf(t){return t.segments.map(function(t){return Yf(t)}).join("/")}function zf(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Wf(t){return zf(t).replace(/%3B/gi,";")}function Qf(t){return zf(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Kf(t){return decodeURIComponent(t)}function Gf(t){return Kf(t.replace(/\+/g,"%20"))}function Yf(t){return""+Qf(t.path)+(e=t.parameters,Object.keys(e).map(function(t){return";"+Qf(t)+"="+Qf(e[t])}).join(""));var e}var Xf=/^[^\/()?;=#]+/;function Jf(t){var e=t.match(Xf);return e?e[0]:""}var Zf=/^[^=?&#]+/,$f=/^[^?&#]+/,td=function(){function t(t){this.url=t,this.remaining=t}return t.prototype.parseRootSegment=function(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Lf([],{}):new Lf([],this.parseChildren())},t.prototype.parseQueryParams=function(){var t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t},t.prototype.parseFragment=function(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null},t.prototype.parseChildren=function(){if(""===this.remaining)return{};this.consumeOptional("/");var t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());var e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));var n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(n[vf]=new Lf(t,e)),n},t.prototype.parseSegment=function(){var t=Jf(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Error("Empty path url segment cannot have parameters: '"+this.remaining+"'.");return this.capture(t),new Ff(Kf(t),this.parseMatrixParams())},t.prototype.parseMatrixParams=function(){for(var t={};this.consumeOptional(";");)this.parseParam(t);return t},t.prototype.parseParam=function(t){var e=Jf(this.remaining);if(e){this.capture(e);var n="";if(this.consumeOptional("=")){var r=Jf(this.remaining);r&&this.capture(n=r)}t[Kf(e)]=Kf(n)}},t.prototype.parseQueryParam=function(t){var e,n=(e=this.remaining.match(Zf))?e[0]:"";if(n){this.capture(n);var r="";if(this.consumeOptional("=")){var i=function(t){var e=t.match($f);return e?e[0]:""}(this.remaining);i&&this.capture(r=i)}var o=Gf(n),s=Gf(r);if(t.hasOwnProperty(o)){var a=t[o];Array.isArray(a)||(t[o]=a=[a]),a.push(s)}else t[o]=s}},t.prototype.parseParens=function(t){var e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){var n=Jf(this.remaining),r=this.remaining[n.length];if("/"!==r&&")"!==r&&";"!==r)throw new Error("Cannot parse url '"+this.url+"'");var i=void 0;n.indexOf(":")>-1?(i=n.substr(0,n.indexOf(":")),this.capture(i),this.capture(":")):t&&(i=vf);var o=this.parseChildren();e[i]=1===Object.keys(o).length?o[vf]:new Lf([],o),this.consumeOptional("//")}return e},t.prototype.peekStartsWith=function(t){return this.remaining.startsWith(t)},t.prototype.consumeOptional=function(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)},t.prototype.capture=function(t){if(!this.consumeOptional(t))throw new Error('Expected "'+t+'".')},t}(),ed=function(){function t(t){this._root=t}return Object.defineProperty(t.prototype,"root",{get:function(){return this._root.value},enumerable:!0,configurable:!0}),t.prototype.parent=function(t){var e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null},t.prototype.children=function(t){var e=nd(t,this._root);return e?e.children.map(function(t){return t.value}):[]},t.prototype.firstChild=function(t){var e=nd(t,this._root);return e&&e.children.length>0?e.children[0].value:null},t.prototype.siblings=function(t){var e=rd(t,this._root);return e.length<2?[]:e[e.length-2].children.map(function(t){return t.value}).filter(function(e){return e!==t})},t.prototype.pathFromRoot=function(t){return rd(t,this._root).map(function(t){return t.value})},t}();function nd(t,e){var n,i;if(t===e.value)return e;try{for(var o=Object(r.__values)(e.children),s=o.next();!s.done;s=o.next()){var a=nd(t,s.value);if(a)return a}}catch(u){n={error:u}}finally{try{s&&!s.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}return null}function rd(t,e){var n,i;if(t===e.value)return[e];try{for(var o=Object(r.__values)(e.children),s=o.next();!s.done;s=o.next()){var a=rd(t,s.value);if(a.length)return a.unshift(e),a}}catch(u){n={error:u}}finally{try{s&&!s.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}return[]}var id=function(){function t(t,e){this.value=t,this.children=e}return t.prototype.toString=function(){return"TreeNode("+this.value+")"},t}();function od(t){var e={};return t&&t.children.forEach(function(t){return e[t.value.outlet]=t}),e}var sd=function(t){function e(e,n){var r=t.call(this,e)||this;return r.snapshot=n,pd(r,e),r}return Object(r.__extends)(e,t),e.prototype.toString=function(){return this.snapshot.toString()},e}(ed);function ad(t,e){var n=function(t,e){var n=new cd([],{},{},"",{},vf,e,null,t.root,-1,{});return new hd("",new id(n,[]))}(t,e),r=new xp([new Ff("",{})]),i=new xp({}),o=new xp({}),s=new xp({}),a=new xp(""),u=new ud(r,i,s,a,o,vf,e,n.root);return u.snapshot=n.root,new sd(new id(u,[]),n)}var ud=function(){function t(t,e,n,r,i,o,s,a){this.url=t,this.params=e,this.queryParams=n,this.fragment=r,this.data=i,this.outlet=o,this.component=s,this._futureSnapshot=a}return Object.defineProperty(t.prototype,"routeConfig",{get:function(){return this._futureSnapshot.routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=this.params.pipe(K(function(t){return bf(t)}))),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(K(function(t){return bf(t)}))),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return this.snapshot?this.snapshot.toString():"Future("+this._futureSnapshot+")"},t}();function ld(t,e){void 0===e&&(e="emptyOnly");var n=t.pathFromRoot,i=0;if("always"!==e)for(i=n.length-1;i>=1;){var o=n[i],s=n[i-1];if(o.routeConfig&&""===o.routeConfig.path)i--;else{if(s.component)break;i--}}return function(t){return t.reduce(function(t,e){return{params:Object(r.__assign)({},t.params,e.params),data:Object(r.__assign)({},t.data,e.data),resolve:Object(r.__assign)({},t.resolve,e._resolvedData)}},{params:{},data:{},resolve:{}})}(n.slice(i))}var cd=function(){function t(t,e,n,r,i,o,s,a,u,l,c){this.url=t,this.params=e,this.queryParams=n,this.fragment=r,this.data=i,this.outlet=o,this.component=s,this.routeConfig=a,this._urlSegment=u,this._lastPathIndex=l,this._resolve=c}return Object.defineProperty(t.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=bf(this.params)),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=bf(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return"Route(url:'"+this.url.map(function(t){return t.toString()}).join("/")+"', path:'"+(this.routeConfig?this.routeConfig.path:"")+"')"},t}(),hd=function(t){function e(e,n){var r=t.call(this,n)||this;return r.url=e,pd(r,n),r}return Object(r.__extends)(e,t),e.prototype.toString=function(){return fd(this._root)},e}(ed);function pd(t,e){e.value._routerState=t,e.children.forEach(function(e){return pd(t,e)})}function fd(t){var e=t.children.length>0?" { "+t.children.map(fd).join(", ")+" } ":"";return""+t.value+e}function dd(t){if(t.snapshot){var e=t.snapshot,n=t._futureSnapshot;t.snapshot=n,Af(e.queryParams,n.queryParams)||t.queryParams.next(n.queryParams),e.fragment!==n.fragment&&t.fragment.next(n.fragment),Af(e.params,n.params)||t.params.next(n.params),function(t,e){if(t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!Af(t[n],e[n]))return!1;return!0}(e.url,n.url)||t.url.next(n.url),Af(e.data,n.data)||t.data.next(n.data)}else t.snapshot=t._futureSnapshot,t.data.next(t._futureSnapshot.data)}function md(t,e){var n,r;return Af(t.params,e.params)&&jf(n=t.url,r=e.url)&&n.every(function(t,e){return Af(t.parameters,r[e].parameters)})&&!(!t.parent!=!e.parent)&&(!t.parent||md(t.parent,e.parent))}function yd(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function gd(t,e,n,r,i){var o={};return r&&Df(r,function(t,e){o[e]=Array.isArray(t)?t.map(function(t){return""+t}):""+t}),new Mf(n.root===t?e:function t(e,n,r){var i={};return Df(e.children,function(e,o){i[o]=e===n?r:t(e,n,r)}),new Lf(e.segments,i)}(n.root,t,e),o,i)}var vd=function(){function t(t,e,n){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=n,t&&n.length>0&&yd(n[0]))throw new Error("Root segment cannot have matrix parameters");var r=n.find(function(t){return"object"==typeof t&&null!=t&&t.outlets});if(r&&r!==Nf(n))throw new Error("{outlets:{}} has to be the last command")}return t.prototype.toRoot=function(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]},t}(),_d=function(){return function(t,e,n){this.segmentGroup=t,this.processChildren=e,this.index=n}}();function bd(t){return"object"==typeof t&&null!=t&&t.outlets?t.outlets[vf]:""+t}function wd(t,e,n){if(t||(t=new Lf([],{})),0===t.segments.length&&t.hasChildren())return Ed(t,e,n);var r=function(t,e,n){for(var r=0,i=e,o={match:!1,pathIndex:0,commandIndex:0};i<t.segments.length;){if(r>=n.length)return o;var s=t.segments[i],a=bd(n[r]),u=r<n.length-1?n[r+1]:null;if(i>0&&void 0===a)break;if(a&&u&&"object"==typeof u&&void 0===u.outlets){if(!Id(a,u,s))return o;r+=2}else{if(!Id(a,{},s))return o;r++}i++}return{match:!0,pathIndex:i,commandIndex:r}}(t,e,n),i=n.slice(r.commandIndex);if(r.match&&r.pathIndex<t.segments.length){var o=new Lf(t.segments.slice(0,r.pathIndex),{});return o.children[vf]=new Lf(t.segments.slice(r.pathIndex),t.children),Ed(o,0,i)}return r.match&&0===i.length?new Lf(t.segments,{}):r.match&&!t.hasChildren()?Sd(t,e,n):r.match?Ed(t,0,i):Sd(t,e,n)}function Ed(t,e,n){if(0===n.length)return new Lf(t.segments,{});var r=function(t){var e,n;return"object"!=typeof t[0]?((e={})[vf]=t,e):void 0===t[0].outlets?((n={})[vf]=t,n):t[0].outlets}(n),i={};return Df(r,function(n,r){null!==n&&(i[r]=wd(t.children[r],e,n))}),Df(t.children,function(t,e){void 0===r[e]&&(i[e]=t)}),new Lf(t.segments,i)}function Sd(t,e,n){for(var r=t.segments.slice(0,e),i=0;i<n.length;){if("object"==typeof n[i]&&void 0!==n[i].outlets){var o=Cd(n[i].outlets);return new Lf(r,o)}if(0===i&&yd(n[0]))r.push(new Ff(t.segments[e].path,n[0])),i++;else{var s=bd(n[i]),a=i<n.length-1?n[i+1]:null;s&&a&&yd(a)?(r.push(new Ff(s,Td(a))),i+=2):(r.push(new Ff(s,{})),i++)}}return new Lf(r,{})}function Cd(t){var e={};return Df(t,function(t,n){null!==t&&(e[n]=Sd(new Lf([],{}),0,t))}),e}function Td(t){var e={};return Df(t,function(t,n){return e[n]=""+t}),e}function Id(t,e,n){return t==n.path&&Af(e,n.parameters)}var xd=function(){function t(t,e,n,r){this.routeReuseStrategy=t,this.futureState=e,this.currState=n,this.forwardEvent=r}return t.prototype.activate=function(t){var e=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,n,t),dd(this.futureState.root),this.activateChildRoutes(e,n,t)},t.prototype.deactivateChildRoutes=function(t,e,n){var r=this,i=od(e);t.children.forEach(function(t){var e=t.value.outlet;r.deactivateRoutes(t,i[e],n),delete i[e]}),Df(i,function(t,e){r.deactivateRouteAndItsChildren(t,n)})},t.prototype.deactivateRoutes=function(t,e,n){var r=t.value,i=e?e.value:null;if(r===i)if(r.component){var o=n.getContext(r.outlet);o&&this.deactivateChildRoutes(t,e,o.children)}else this.deactivateChildRoutes(t,e,n);else i&&this.deactivateRouteAndItsChildren(e,n)},t.prototype.deactivateRouteAndItsChildren=function(t,e){this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)},t.prototype.detachAndStoreRouteSubtree=function(t,e){var n=e.getContext(t.value.outlet);if(n&&n.outlet){var r=n.outlet.detach(),i=n.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:r,route:t,contexts:i})}},t.prototype.deactivateRouteAndOutlet=function(t,e){var n=this,r=e.getContext(t.value.outlet);if(r){var i=od(t),o=t.value.component?r.children:e;Df(i,function(t,e){return n.deactivateRouteAndItsChildren(t,o)}),r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated())}},t.prototype.activateChildRoutes=function(t,e,n){var r=this,i=od(e);t.children.forEach(function(t){r.activateRoutes(t,i[t.value.outlet],n),r.forwardEvent(new mf(t.value.snapshot))}),t.children.length&&this.forwardEvent(new ff(t.value.snapshot))},t.prototype.activateRoutes=function(t,e,n){var r=t.value,i=e?e.value:null;if(dd(r),r===i)if(r.component){var o=n.getOrCreateContext(r.outlet);this.activateChildRoutes(t,e,o.children)}else this.activateChildRoutes(t,e,n);else if(r.component)if(o=n.getOrCreateContext(r.outlet),this.routeReuseStrategy.shouldAttach(r.snapshot)){var s=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),o.children.onOutletReAttached(s.contexts),o.attachRef=s.componentRef,o.route=s.route.value,o.outlet&&o.outlet.attach(s.componentRef,s.route.value),kd(s.route)}else{var a=function(t){for(var e=r.snapshot.parent;e;e=e.parent){var n=e.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig;if(n&&n.component)return null}return null}(),u=a?a.module.componentFactoryResolver:null;o.attachRef=null,o.route=r,o.resolver=u,o.outlet&&o.outlet.activateWith(r,u),this.activateChildRoutes(t,null,o.children)}else this.activateChildRoutes(t,null,n)},t}();function kd(t){dd(t.value),t.children.forEach(kd)}function Ad(t){return"function"==typeof t}function Od(t){return t instanceof Mf}var Nd=function(){return function(t){this.segmentGroup=t||null}}(),Dd=function(){return function(t){this.urlTree=t}}();function Rd(t){return new I(function(e){return e.error(new Nd(t))})}function Pd(t){return new I(function(e){return e.error(new Dd(t))})}function Md(t){return new I(function(e){return e.error(new Error("Only absolute redirects can have named outlets. redirectTo: '"+t+"'"))})}var Ld=function(){function t(t,e,n,r,i){this.configLoader=e,this.urlSerializer=n,this.urlTree=r,this.config=i,this.allowRedirects=!0,this.ngModule=t.get(ke)}return t.prototype.apply=function(){var t=this;return this.expandSegmentGroup(this.ngModule,this.config,this.urlTree.root,vf).pipe(K(function(e){return t.createUrlTree(e,t.urlTree.queryParams,t.urlTree.fragment)})).pipe(Vp(function(e){if(e instanceof Dd)return t.allowRedirects=!1,t.match(e.urlTree);if(e instanceof Nd)throw t.noMatchError(e);throw e}))},t.prototype.match=function(t){var e=this;return this.expandSegmentGroup(this.ngModule,this.config,t.root,vf).pipe(K(function(n){return e.createUrlTree(n,t.queryParams,t.fragment)})).pipe(Vp(function(t){if(t instanceof Nd)throw e.noMatchError(t);throw t}))},t.prototype.noMatchError=function(t){return new Error("Cannot match any routes. URL Segment: '"+t.segmentGroup+"'")},t.prototype.createUrlTree=function(t,e,n){var r,i=t.segments.length>0?new Lf([],((r={})[vf]=t,r)):t;return new Mf(i,e,n)},t.prototype.expandSegmentGroup=function(t,e,n,r){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(t,e,n).pipe(K(function(t){return new Lf([],t)})):this.expandSegment(t,n,e,n.segments,r,!0)},t.prototype.expandChildren=function(t,e,n){var r=this;return function(n,i){if(0===Object.keys(n).length)return zu({});var o=[],s=[],a={};return Df(n,function(n,i){var u,l,c=(u=i,l=n,r.expandSegmentGroup(t,e,l,u)).pipe(K(function(t){return a[i]=t}));i===vf?o.push(c):s.push(c)}),zu.apply(null,o.concat(s)).pipe(Wu(),Up(),K(function(){return a}))}(n.children)},t.prototype.expandSegment=function(t,e,n,i,o,s){var a=this;return zu.apply(void 0,Object(r.__spread)(n)).pipe(K(function(r){return a.expandSegmentAgainstRoute(t,e,n,r,i,o,s).pipe(Vp(function(t){if(t instanceof Nd)return zu(null);throw t}))}),Wu(),Hp(function(t){return!!t}),Vp(function(t,n){if(t instanceof Ap||"EmptyError"===t.name){if(a.noLeftoversInUrl(e,i,o))return zu(new Lf([],{}));throw new Nd(e)}throw t}))},t.prototype.noLeftoversInUrl=function(t,e,n){return 0===e.length&&!t.children[n]},t.prototype.expandSegmentAgainstRoute=function(t,e,n,r,i,o,s){return Vd(r)!==o?Rd(e):void 0===r.redirectTo?this.matchSegmentAgainstRoute(t,e,r,i):s&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,n,r,i,o):Rd(e)},t.prototype.expandSegmentAgainstRouteUsingRedirect=function(t,e,n,r,i,o){return"**"===r.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,r,o):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,r,i,o)},t.prototype.expandWildCardWithParamsAgainstRouteUsingRedirect=function(t,e,n,r){var i=this,o=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?Pd(o):this.lineralizeSegments(n,o).pipe(Z(function(n){var o=new Lf(n,{});return i.expandSegment(t,o,e,n,r,!1)}))},t.prototype.expandRegularSegmentAgainstRouteUsingRedirect=function(t,e,n,r,i,o){var s=this,a=Fd(e,r,i),u=a.consumedSegments,l=a.lastChild,c=a.positionalParamSegments;if(!a.matched)return Rd(e);var h=this.applyRedirectCommands(u,r.redirectTo,c);return r.redirectTo.startsWith("/")?Pd(h):this.lineralizeSegments(r,h).pipe(Z(function(r){return s.expandSegment(t,e,n,r.concat(i.slice(l)),o,!1)}))},t.prototype.matchSegmentAgainstRoute=function(t,e,n,i){var o=this;if("**"===n.path)return n.loadChildren?this.configLoader.load(t.injector,n).pipe(K(function(t){return n._loadedConfig=t,new Lf(i,{})})):zu(new Lf(i,{}));var s=Fd(e,n,i),a=s.consumedSegments,u=s.lastChild;if(!s.matched)return Rd(e);var l=i.slice(u);return this.getChildConfig(t,n,i).pipe(Z(function(t){var n=t.module,i=t.routes,s=function(t,e,n,i){return n.length>0&&function(t,e,n){return i.some(function(n){return Ud(t,e,n)&&Vd(n)!==vf})}(t,n)?{segmentGroup:jd(new Lf(e,function(t,e){var n,i,o={};o[vf]=e;try{for(var s=Object(r.__values)(t),a=s.next();!a.done;a=s.next()){var u=a.value;""===u.path&&Vd(u)!==vf&&(o[Vd(u)]=new Lf([],{}))}}catch(l){n={error:l}}finally{try{a&&!a.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}return o}(i,new Lf(n,t.children)))),slicedSegments:[]}:0===n.length&&function(t,e,n){return i.some(function(n){return Ud(t,e,n)})}(t,n)?{segmentGroup:jd(new Lf(t.segments,function(t,e,n,i){var o,s,a={};try{for(var u=Object(r.__values)(n),l=u.next();!l.done;l=u.next()){var c=l.value;Ud(t,e,c)&&!i[Vd(c)]&&(a[Vd(c)]=new Lf([],{}))}}catch(h){o={error:h}}finally{try{l&&!l.done&&(s=u.return)&&s.call(u)}finally{if(o)throw o.error}}return Object(r.__assign)({},i,a)}(t,n,i,t.children))),slicedSegments:n}:{segmentGroup:t,slicedSegments:n}}(e,a,l,i),u=s.segmentGroup,c=s.slicedSegments;return 0===c.length&&u.hasChildren()?o.expandChildren(n,i,u).pipe(K(function(t){return new Lf(a,t)})):0===i.length&&0===c.length?zu(new Lf(a,{})):o.expandSegment(n,u,i,c,vf,!0).pipe(K(function(t){return new Lf(a.concat(t.segments),t.children)}))}))},t.prototype.getChildConfig=function(t,e,n){var r=this;return e.children?zu(new Cf(e.children,t)):e.loadChildren?void 0!==e._loadedConfig?zu(e._loadedConfig):function(t,e,n){var r,i=e.canLoad;return i&&0!==i.length?J(i).pipe(K(function(r){var i,o=t.get(r);if(function(t){return t&&Ad(t.canLoad)}(o))i=o.canLoad(e,n);else{if(!Ad(o))throw new Error("Invalid CanLoad guard");i=o(e,n)}return Rf(i)})).pipe(Wu(),(r=function(t){return!0===t},function(t){return t.lift(new zp(r,void 0,t))})):zu(!0)}(t.injector,e,n).pipe(Z(function(n){return n?r.configLoader.load(t.injector,e).pipe(K(function(t){return e._loadedConfig=t,t})):function(t){return new I(function(e){return e.error(Ef("Cannot load children because the guard of the route \"path: '"+t.path+"'\" returned false"))})}(e)})):zu(new Cf([],t))},t.prototype.lineralizeSegments=function(t,e){for(var n=[],r=e.root;;){if(n=n.concat(r.segments),0===r.numberOfChildren)return zu(n);if(r.numberOfChildren>1||!r.children[vf])return Md(t.redirectTo);r=r.children[vf]}},t.prototype.applyRedirectCommands=function(t,e,n){return this.applyRedirectCreatreUrlTree(e,this.urlSerializer.parse(e),t,n)},t.prototype.applyRedirectCreatreUrlTree=function(t,e,n,r){var i=this.createSegmentGroup(t,e.root,n,r);return new Mf(i,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)},t.prototype.createQueryParams=function(t,e){var n={};return Df(t,function(t,r){if("string"==typeof t&&t.startsWith(":")){var i=t.substring(1);n[r]=e[i]}else n[r]=t}),n},t.prototype.createSegmentGroup=function(t,e,n,r){var i=this,o=this.createSegments(t,e.segments,n,r),s={};return Df(e.children,function(e,o){s[o]=i.createSegmentGroup(t,e,n,r)}),new Lf(o,s)},t.prototype.createSegments=function(t,e,n,r){var i=this;return e.map(function(e){return e.path.startsWith(":")?i.findPosParam(t,e,r):i.findOrReturn(e,n)})},t.prototype.findPosParam=function(t,e,n){var r=n[e.path.substring(1)];if(!r)throw new Error("Cannot redirect to '"+t+"'. Cannot find '"+e.path+"'.");return r},t.prototype.findOrReturn=function(t,e){var n,i,o=0;try{for(var s=Object(r.__values)(e),a=s.next();!a.done;a=s.next()){var u=a.value;if(u.path===t.path)return e.splice(o),u;o++}}catch(l){n={error:l}}finally{try{a&&!a.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}return t},t}();function Fd(t,e,n){if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};var r=(e.matcher||Sf)(n,t,e);return r?{matched:!0,consumedSegments:r.consumed,lastChild:r.consumed.length,positionalParamSegments:r.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function jd(t){if(1===t.numberOfChildren&&t.children[vf]){var e=t.children[vf];return new Lf(t.segments.concat(e.segments),e.children)}return t}function Ud(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path&&void 0!==n.redirectTo}function Vd(t){return t.outlet||vf}var qd=function(){return function(t){this.path=t,this.route=this.path[this.path.length-1]}}(),Bd=function(){return function(t,e){this.component=t,this.route=e}}();function Hd(t,e,n){var r=function(t){if(!t)return null;for(var e=t.parent;e;e=e.parent){var n=e.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig}return null}(e);return(r?r.module.injector:n).get(t)}function zd(t,e,n,r,i){void 0===i&&(i={canDeactivateChecks:[],canActivateChecks:[]});var o=od(e);return t.children.forEach(function(t){!function(t,e,n,r,i){void 0===i&&(i={canDeactivateChecks:[],canActivateChecks:[]});var o=t.value,s=e?e.value:null,a=n?n.getContext(t.value.outlet):null;if(s&&o.routeConfig===s.routeConfig){var u=function(t,e,n){if("function"==typeof n)return n(t,e);switch(n){case"pathParamsChange":return!jf(t.url,e.url);case"pathParamsOrQueryParamsChange":return!jf(t.url,e.url)||!Af(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!md(t,e)||!Af(t.queryParams,e.queryParams);case"paramsChange":default:return!md(t,e)}}(s,o,o.routeConfig.runGuardsAndResolvers);u?i.canActivateChecks.push(new qd(r)):(o.data=s.data,o._resolvedData=s._resolvedData),zd(t,e,o.component?a?a.children:null:n,r,i),u&&i.canDeactivateChecks.push(new Bd(a&&a.outlet&&a.outlet.component||null,s))}else s&&Wd(e,a,i),i.canActivateChecks.push(new qd(r)),zd(t,null,o.component?a?a.children:null:n,r,i)}(t,o[t.value.outlet],n,r.concat([t.value]),i),delete o[t.value.outlet]}),Df(o,function(t,e){return Wd(t,n.getContext(e),i)}),i}function Wd(t,e,n){var r=od(t),i=t.value;Df(r,function(t,r){Wd(t,i.component?e?e.children.getContext(r):null:e,n)}),n.canDeactivateChecks.push(new Bd(i.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,i))}var Qd=Symbol("INITIAL_VALUE");function Kd(){return dl(function(t){return Iu.apply(void 0,Object(r.__spread)(t.map(function(t){return t.pipe(kl(1),Qu(Qd))}))).pipe(Qp(function(t,e){var n=!1;return e.reduce(function(t,r,i){if(t!==Qd)return t;if(r===Qd&&(n=!0),!n){if(!1===r)return r;if(i===e.length-1||Od(r))return r}return t},t)},Qd),hl(function(t){return t!==Qd}),K(function(t){return Od(t)?t:!0===t}),kl(1))})}function Gd(t,e){return null!==t&&e&&e(new df(t)),zu(!0)}function Yd(t,e){return null!==t&&e&&e(new pf(t)),zu(!0)}function Xd(t,e,n){var r=e.routeConfig?e.routeConfig.canActivate:null;return r&&0!==r.length?zu(r.map(function(r){return Op(function(){var i,o=Hd(r,e,n);if(function(t){return t&&Ad(t.canActivate)}(o))i=Rf(o.canActivate(e,t));else{if(!Ad(o))throw new Error("Invalid CanActivate guard");i=Rf(o(e,t))}return i.pipe(Hp())})})).pipe(Kd()):zu(!0)}function Jd(t,e,n){var r=e[e.length-1],i=e.slice(0,e.length-1).reverse().map(function(t){return function(t){var e=t.routeConfig?t.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null}(t)}).filter(function(t){return null!==t}).map(function(e){return Op(function(){return zu(e.guards.map(function(i){var o,s=Hd(i,e.node,n);if(function(t){return t&&Ad(t.canActivateChild)}(s))o=Rf(s.canActivateChild(r,t));else{if(!Ad(s))throw new Error("Invalid CanActivateChild guard");o=Rf(s(r,t))}return o.pipe(Hp())})).pipe(Kd())})});return zu(i).pipe(Kd())}var Zd=function(){return function(){}}(),$d=function(){function t(t,e,n,r,i,o){this.rootComponentType=t,this.config=e,this.urlTree=n,this.url=r,this.paramsInheritanceStrategy=i,this.relativeLinkResolution=o}return t.prototype.recognize=function(){try{var t=nm(this.urlTree.root,[],[],this.config,this.relativeLinkResolution).segmentGroup,e=this.processSegmentGroup(this.config,t,vf),n=new cd([],Object.freeze({}),Object.freeze(Object(r.__assign)({},this.urlTree.queryParams)),this.urlTree.fragment,{},vf,this.rootComponentType,null,this.urlTree.root,-1,{}),i=new id(n,e),o=new hd(this.url,i);return this.inheritParamsAndData(o._root),zu(o)}catch(s){return new I(function(t){return t.error(s)})}},t.prototype.inheritParamsAndData=function(t){var e=this,n=t.value,r=ld(n,this.paramsInheritanceStrategy);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),t.children.forEach(function(t){return e.inheritParamsAndData(t)})},t.prototype.processSegmentGroup=function(t,e,n){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e):this.processSegment(t,e,e.segments,n)},t.prototype.processChildren=function(t,e){var n,r=this,i=Uf(e,function(e,n){return r.processSegmentGroup(t,e,n)});return n={},i.forEach(function(t){var e=n[t.value.outlet];if(e){var r=e.url.map(function(t){return t.toString()}).join("/"),i=t.value.url.map(function(t){return t.toString()}).join("/");throw new Error("Two segments cannot have the same outlet name: '"+r+"' and '"+i+"'.")}n[t.value.outlet]=t.value}),i.sort(function(t,e){return t.value.outlet===vf?-1:e.value.outlet===vf?1:t.value.outlet.localeCompare(e.value.outlet)}),i},t.prototype.processSegment=function(t,e,n,i){var o,s;try{for(var a=Object(r.__values)(t),u=a.next();!u.done;u=a.next()){var l=u.value;try{return this.processSegmentAgainstRoute(l,e,n,i)}catch(c){if(!(c instanceof Zd))throw c}}}catch(h){o={error:h}}finally{try{u&&!u.done&&(s=a.return)&&s.call(a)}finally{if(o)throw o.error}}if(this.noLeftoversInUrl(e,n,i))return[];throw new Zd},t.prototype.noLeftoversInUrl=function(t,e,n){return 0===e.length&&!t.children[n]},t.prototype.processSegmentAgainstRoute=function(t,e,n,i){if(t.redirectTo)throw new Zd;if((t.outlet||vf)!==i)throw new Zd;var o,s=[],a=[];if("**"===t.path){var u=n.length>0?Nf(n).parameters:{};o=new cd(n,u,Object.freeze(Object(r.__assign)({},this.urlTree.queryParams)),this.urlTree.fragment,om(t),i,t.component,t,tm(e),em(e)+n.length,sm(t))}else{var l=function(t,e,n){if(""===e.path){if("full"===e.pathMatch&&(t.hasChildren()||n.length>0))throw new Zd;return{consumedSegments:[],lastChild:0,parameters:{}}}var i=(e.matcher||Sf)(n,t,e);if(!i)throw new Zd;var o={};Df(i.posParams,function(t,e){o[e]=t.path});var s=i.consumed.length>0?Object(r.__assign)({},o,i.consumed[i.consumed.length-1].parameters):o;return{consumedSegments:i.consumed,lastChild:i.consumed.length,parameters:s}}(e,t,n);s=l.consumedSegments,a=n.slice(l.lastChild),o=new cd(s,l.parameters,Object.freeze(Object(r.__assign)({},this.urlTree.queryParams)),this.urlTree.fragment,om(t),i,t.component,t,tm(e),em(e)+s.length,sm(t))}var c=function(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}(t),h=nm(e,s,a,c,this.relativeLinkResolution),p=h.segmentGroup,f=h.slicedSegments;if(0===f.length&&p.hasChildren()){var d=this.processChildren(c,p);return[new id(o,d)]}if(0===c.length&&0===f.length)return[new id(o,[])];var m=this.processSegment(c,p,f,vf);return[new id(o,m)]},t}();function tm(t){for(var e=t;e._sourceSegment;)e=e._sourceSegment;return e}function em(t){for(var e=t,n=e._segmentIndexShift?e._segmentIndexShift:0;e._sourceSegment;)n+=(e=e._sourceSegment)._segmentIndexShift?e._segmentIndexShift:0;return n-1}function nm(t,e,n,i,o){if(n.length>0&&function(t,e,n){return i.some(function(n){return rm(t,e,n)&&im(n)!==vf})}(t,n)){var s=new Lf(e,function(t,e,n,i){var o,s,a={};a[vf]=i,i._sourceSegment=t,i._segmentIndexShift=e.length;try{for(var u=Object(r.__values)(n),l=u.next();!l.done;l=u.next()){var c=l.value;if(""===c.path&&im(c)!==vf){var h=new Lf([],{});h._sourceSegment=t,h._segmentIndexShift=e.length,a[im(c)]=h}}}catch(p){o={error:p}}finally{try{l&&!l.done&&(s=u.return)&&s.call(u)}finally{if(o)throw o.error}}return a}(t,e,i,new Lf(n,t.children)));return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:[]}}if(0===n.length&&function(t,e,n){return i.some(function(n){return rm(t,e,n)})}(t,n)){var a=new Lf(t.segments,function(t,e,n,i,o,s){var a,u,l={};try{for(var c=Object(r.__values)(i),h=c.next();!h.done;h=c.next()){var p=h.value;if(rm(t,n,p)&&!o[im(p)]){var f=new Lf([],{});f._sourceSegment=t,f._segmentIndexShift="legacy"===s?t.segments.length:e.length,l[im(p)]=f}}}catch(d){a={error:d}}finally{try{h&&!h.done&&(u=c.return)&&u.call(c)}finally{if(a)throw a.error}}return Object(r.__assign)({},o,l)}(t,e,n,i,t.children,o));return a._sourceSegment=t,a._segmentIndexShift=e.length,{segmentGroup:a,slicedSegments:n}}var u=new Lf(t.segments,t.children);return u._sourceSegment=t,u._segmentIndexShift=e.length,{segmentGroup:u,slicedSegments:n}}function rm(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path&&void 0===n.redirectTo}function im(t){return t.outlet||vf}function om(t){return t.data||{}}function sm(t){return t.resolve||{}}function am(t,e,n,r){var i=Hd(t,e,r);return Rf(i.resolve?i.resolve(e,n):i(e,n))}function um(t){return function(e){return e.pipe(dl(function(e){var n=t(e);return n?J(n).pipe(K(function(){return e})):J([e])}))}}var lm=function(){return function(){}}(),cm=function(){function t(){}return t.prototype.shouldDetach=function(t){return!1},t.prototype.store=function(t,e){},t.prototype.shouldAttach=function(t){return!1},t.prototype.retrieve=function(t){return null},t.prototype.shouldReuseRoute=function(t,e){return t.routeConfig===e.routeConfig},t}(),hm=new vt("ROUTES"),pm=function(){function t(t,e,n,r){this.loader=t,this.compiler=e,this.onLoadStartListener=n,this.onLoadEndListener=r}return t.prototype.load=function(t,e){var n=this;return this.onLoadStartListener&&this.onLoadStartListener(e),this.loadModuleFactory(e.loadChildren).pipe(K(function(r){n.onLoadEndListener&&n.onLoadEndListener(e);var i=r.create(t);return new Cf(Of(i.injector.get(hm)).map(kf),i)}))},t.prototype.loadModuleFactory=function(t){var e=this;return"string"==typeof t?J(this.loader.load(t)):Rf(t()).pipe(Z(function(t){return t instanceof Ae?zu(t):J(e.compiler.compileModuleAsync(t))}))},t}(),fm=function(){return function(){}}(),dm=function(){function t(){}return t.prototype.shouldProcessUrl=function(t){return!0},t.prototype.extract=function(t){return t},t.prototype.merge=function(t,e){return t},t}();function mm(t){throw t}function ym(t,e,n){return e.parse("/")}function gm(t,e){return zu(null)}var vm=function(){function t(t,e,n,r,i,o,s,a){var u=this;this.rootComponentType=t,this.urlSerializer=e,this.rootContexts=n,this.location=r,this.config=a,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new D,this.errorHandler=mm,this.malformedUriErrorHandler=ym,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:gm,afterPreactivation:gm},this.urlHandlingStrategy=new dm,this.routeReuseStrategy=new cm,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="legacy",this.ngModule=i.get(ke),this.console=i.get(Ln);var l=i.get(Jn);this.isNgZoneEnabled=l instanceof Jn,this.resetConfig(a),this.currentUrlTree=new Mf(new Lf([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new pm(o,s,function(t){return u.triggerEvent(new cf(t))},function(t){return u.triggerEvent(new hf(t))}),this.routerState=ad(this.currentUrlTree,this.rootComponentType),this.transitions=new xp({id: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()}return t.prototype.setupNavigations=function(t){var e=this,n=this.events;return t.pipe(hl(function(t){return 0!==t.id}),K(function(t){return Object(r.__assign)({},t,{extractedUrl:e.urlHandlingStrategy.extract(t.rawUrl)})}),dl(function(t){var i,o,s,a=!1,u=!1;return zu(t).pipe(Rh(function(t){e.currentNavigation={id:t.id,initialUrl:t.currentRawUrl,extractedUrl:t.extractedUrl,trigger:t.source,extras:t.extras,previousNavigation:e.lastSuccessfulNavigation?Object(r.__assign)({},e.lastSuccessfulNavigation,{previousNavigation:null}):null}}),dl(function(t){var i,o,s,a,u=!e.navigated||t.extractedUrl.toString()!==e.browserUrlTree.toString();if(("reload"===e.onSameUrlNavigation||u)&&e.urlHandlingStrategy.shouldProcessUrl(t.rawUrl))return zu(t).pipe(dl(function(t){var r=e.transitions.getValue();return n.next(new tf(t.id,e.serializeUrl(t.extractedUrl),t.source,t.restoredState)),r!==e.transitions.getValue()?Bu:[t]}),dl(function(t){return Promise.resolve(t)}),(i=e.ngModule.injector,o=e.configLoader,s=e.urlSerializer,a=e.config,function(t){return t.pipe(dl(function(t){return function(e,n,r,i,o){return new Ld(e,n,r,t.extractedUrl,o).apply()}(i,o,s,0,a).pipe(K(function(e){return Object(r.__assign)({},t,{urlAfterRedirects:e})}))}))}),Rh(function(t){e.currentNavigation=Object(r.__assign)({},e.currentNavigation,{finalUrl:t.urlAfterRedirects})}),function(t,n,i,o,s){return function(i){return i.pipe(Z(function(i){return function(t,e,n,r,i,o){return void 0===i&&(i="emptyOnly"),void 0===o&&(o="legacy"),new $d(t,e,n,r,i,o).recognize()}(t,n,i.urlAfterRedirects,(a=i.urlAfterRedirects,e.serializeUrl(a)),o,s).pipe(K(function(t){return Object(r.__assign)({},i,{targetSnapshot:t})}));var a}))}}(e.rootComponentType,e.config,0,e.paramsInheritanceStrategy,e.relativeLinkResolution),Rh(function(t){"eager"===e.urlUpdateStrategy&&(t.extras.skipLocationChange||e.setBrowserUrl(t.urlAfterRedirects,!!t.extras.replaceUrl,t.id),e.browserUrlTree=t.urlAfterRedirects)}),Rh(function(t){var r=new of(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);n.next(r)}));if(u&&e.rawUrlTree&&e.urlHandlingStrategy.shouldProcessUrl(e.rawUrlTree)){var l=t.extractedUrl,c=t.source,h=t.restoredState,p=t.extras,f=new tf(t.id,e.serializeUrl(l),c,h);n.next(f);var d=ad(l,e.rootComponentType).snapshot;return zu(Object(r.__assign)({},t,{targetSnapshot:d,urlAfterRedirects:l,extras:Object(r.__assign)({},p,{skipLocationChange:!1,replaceUrl:!1})}))}return e.rawUrlTree=t.rawUrl,t.resolve(null),Bu}),um(function(t){var n=t.extras;return e.hooks.beforePreactivation(t.targetSnapshot,{navigationId:t.id,appliedUrlTree:t.extractedUrl,rawUrlTree:t.rawUrl,skipLocationChange:!!n.skipLocationChange,replaceUrl:!!n.replaceUrl})}),Rh(function(t){var n=new sf(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.triggerEvent(n)}),K(function(t){return Object(r.__assign)({},t,{guards:(n=t.targetSnapshot,i=t.currentSnapshot,o=e.rootContexts,s=n._root,zd(s,i?i._root:null,o,[s.value]))});var n,i,o,s}),function(t,e){return function(n){return n.pipe(Z(function(n){var i=n.targetSnapshot,o=n.currentSnapshot,s=n.guards,a=s.canActivateChecks,u=s.canDeactivateChecks;return 0===u.length&&0===a.length?zu(Object(r.__assign)({},n,{guardsResult:!0})):function(t,e,n,r){return J(u).pipe(Z(function(t){return function(t,e,n,r,i){var o=e&&e.routeConfig?e.routeConfig.canDeactivate:null;return o&&0!==o.length?zu(o.map(function(o){var s,a=Hd(o,e,i);if(function(t){return t&&Ad(t.canDeactivate)}(a))s=Rf(a.canDeactivate(t,e,n,r));else{if(!Ad(a))throw new Error("Invalid CanDeactivate guard");s=Rf(a(t,e,n,r))}return s.pipe(Hp())})).pipe(Kd()):zu(!0)}(t.component,t.route,n,e,r)}),Hp(function(t){return!0!==t},!0))}(0,i,o,t).pipe(Z(function(n){return n&&"boolean"==typeof n?function(t,e,n,r){return J(a).pipe(Yp(function(e){return J([Yd(e.route.parent,r),Gd(e.route,r),Jd(t,e.path,n),Xd(t,e.route,n)]).pipe(Wu(),Hp(function(t){return!0!==t},!0))}),Hp(function(t){return!0!==t},!0))}(i,0,t,e):zu(n)}),K(function(t){return Object(r.__assign)({},n,{guardsResult:t})}))}))}}(e.ngModule.injector,function(t){return e.triggerEvent(t)}),Rh(function(t){if(Od(t.guardsResult)){var n=Ef('Redirecting to "'+e.serializeUrl(t.guardsResult)+'"');throw n.url=t.guardsResult,n}}),Rh(function(t){var n=new af(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot,!!t.guardsResult);e.triggerEvent(n)}),hl(function(t){if(!t.guardsResult){e.resetUrlToCurrentUrlTree();var r=new nf(t.id,e.serializeUrl(t.extractedUrl),"");return n.next(r),t.resolve(!1),!1}return!0}),um(function(t){if(t.guards.canActivateChecks.length)return zu(t).pipe(Rh(function(t){var n=new uf(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.triggerEvent(n)}),(n=e.paramsInheritanceStrategy,i=e.ngModule.injector,function(t){return t.pipe(Z(function(t){var e=t.targetSnapshot,o=t.guards.canActivateChecks;return o.length?J(o).pipe(Yp(function(t){return function(t,n,i,o){return function(t,e,n,r){var i=Object.keys(t);if(0===i.length)return zu({});if(1===i.length){var o=i[0];return am(t[o],e,n,r).pipe(K(function(t){var e;return(e={})[o]=t,e}))}var s={};return J(i).pipe(Z(function(i){return am(t[i],e,n,r).pipe(K(function(t){return s[i]=t,t}))})).pipe(Up(),K(function(){return s}))}(t._resolve,t,e,o).pipe(K(function(e){return t._resolvedData=e,t.data=Object(r.__assign)({},t.data,ld(t,i).resolve),null}))}(t.route,0,n,i)}),function(t,e){return arguments.length>=2?function(e){return C(Qp(t,void 0),Np(1),Lp(void 0))(e)}:function(e){return C(Qp(function(e,n,r){return t(e)}),Np(1))(e)}}(function(t,e){return t}),K(function(e){return t})):zu(t)}))}),Rh(function(t){var n=new lf(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.triggerEvent(n)}));var n,i}),um(function(t){var n=t.extras;return e.hooks.afterPreactivation(t.targetSnapshot,{navigationId:t.id,appliedUrlTree:t.extractedUrl,rawUrlTree:t.rawUrl,skipLocationChange:!!n.skipLocationChange,replaceUrl:!!n.replaceUrl})}),K(function(t){var n,i,o,s=(o=function t(e,n,i){if(i&&e.shouldReuseRoute(n.value,i.value.snapshot)){(l=i.value)._futureSnapshot=n.value;var o=function(e,n,i){return n.children.map(function(n){var o,s;try{for(var a=Object(r.__values)(i.children),u=a.next();!u.done;u=a.next()){var l=u.value;if(e.shouldReuseRoute(l.value.snapshot,n.value))return t(e,n,l)}}catch(c){o={error:c}}finally{try{u&&!u.done&&(s=a.return)&&s.call(a)}finally{if(o)throw o.error}}return t(e,n)})}(e,n,i);return new id(l,o)}var s=e.retrieve(n.value);if(s){var a=s.route;return function t(e,n){if(e.value.routeConfig!==n.value.routeConfig)throw new Error("Cannot reattach ActivatedRouteSnapshot created from a different route");if(e.children.length!==n.children.length)throw new Error("Cannot reattach ActivatedRouteSnapshot with a different number of children");n.value._futureSnapshot=e.value;for(var r=0;r<e.children.length;++r)t(e.children[r],n.children[r])}(n,a),a}var u,l=new ud(new xp((u=n.value).url),new xp(u.params),new xp(u.queryParams),new xp(u.fragment),new xp(u.data),u.outlet,u.component,u);return o=n.children.map(function(n){return t(e,n)}),new id(l,o)}(e.routeReuseStrategy,(n=t.targetSnapshot)._root,(i=t.currentRouterState)?i._root:void 0),new sd(o,n));return Object(r.__assign)({},t,{targetRouterState:s})}),Rh(function(t){e.currentUrlTree=t.urlAfterRedirects,e.rawUrlTree=e.urlHandlingStrategy.merge(e.currentUrlTree,t.rawUrl),e.routerState=t.targetRouterState,"deferred"===e.urlUpdateStrategy&&(t.extras.skipLocationChange||e.setBrowserUrl(e.rawUrlTree,!!t.extras.replaceUrl,t.id,t.extras.state),e.browserUrlTree=t.urlAfterRedirects)}),(i=e.rootContexts,o=e.routeReuseStrategy,s=function(t){return e.triggerEvent(t)},K(function(t){return new xd(o,t.targetRouterState,t.currentRouterState,s).activate(i),t})),Rh({next:function(){a=!0},complete:function(){a=!0}}),Xp(function(){if(!a&&!u){e.resetUrlToCurrentUrlTree();var r=new nf(t.id,e.serializeUrl(t.extractedUrl),"Navigation ID "+t.id+" is not equal to the current navigation id "+e.navigationId);n.next(r),t.resolve(!1)}e.currentNavigation=null}),Vp(function(r){if(u=!0,(a=r)&&a[wf]){var i=Od(r.url);i||(e.navigated=!0,e.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl));var o=new nf(t.id,e.serializeUrl(t.extractedUrl),r.message);n.next(o),t.resolve(!1),i&&e.navigateByUrl(r.url)}else{e.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl);var s=new rf(t.id,e.serializeUrl(t.extractedUrl),r);n.next(s);try{t.resolve(e.errorHandler(r))}catch(l){t.reject(l)}}var a;return Bu}))}))},t.prototype.resetRootComponentType=function(t){this.rootComponentType=t,this.routerState.root.component=this.rootComponentType},t.prototype.getTransition=function(){return this.transitions.value},t.prototype.setTransition=function(t){this.transitions.next(Object(r.__assign)({},this.getTransition(),t))},t.prototype.initialNavigation=function(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})},t.prototype.setUpLocationChangeListener=function(){var t=this;this.locationSubscription||(this.locationSubscription=this.location.subscribe(function(e){var n=t.parseUrl(e.url),r="popstate"===e.type?"popstate":"hashchange",i=e.state&&e.state.navigationId?e.state:null;setTimeout(function(){t.scheduleNavigation(n,r,i,{replaceUrl:!0})},0)}))},Object.defineProperty(t.prototype,"url",{get:function(){return this.serializeUrl(this.currentUrlTree)},enumerable:!0,configurable:!0}),t.prototype.getCurrentNavigation=function(){return this.currentNavigation},t.prototype.triggerEvent=function(t){this.events.next(t)},t.prototype.resetConfig=function(t){Tf(t),this.config=t.map(kf),this.navigated=!1,this.lastSuccessfulId=-1},t.prototype.ngOnDestroy=function(){this.dispose()},t.prototype.dispose=function(){this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=null)},t.prototype.createUrlTree=function(t,e){void 0===e&&(e={});var n=e.relativeTo,i=e.queryParams,o=e.fragment,s=e.preserveQueryParams,a=e.queryParamsHandling,u=e.preserveFragment;Be()&&s&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead.");var l=n||this.routerState.root,c=u?this.currentUrlTree.fragment:o,h=null;if(a)switch(a){case"merge":h=Object(r.__assign)({},this.currentUrlTree.queryParams,i);break;case"preserve":h=this.currentUrlTree.queryParams;break;default:h=i||null}else h=s?this.currentUrlTree.queryParams:i||null;return null!==h&&(h=this.removeEmptyProps(h)),function(t,e,n,i,o){if(0===n.length)return gd(e.root,e.root,e,i,o);var s=function(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new vd(!0,0,t);var e=0,n=!1,i=t.reduce(function(t,i,o){if("object"==typeof i&&null!=i){if(i.outlets){var s={};return Df(i.outlets,function(t,e){s[e]="string"==typeof t?t.split("/"):t}),Object(r.__spread)(t,[{outlets:s}])}if(i.segmentPath)return Object(r.__spread)(t,[i.segmentPath])}return"string"!=typeof i?Object(r.__spread)(t,[i]):0===o?(i.split("/").forEach(function(r,i){0==i&&"."===r||(0==i&&""===r?n=!0:".."===r?e++:""!=r&&t.push(r))}),t):Object(r.__spread)(t,[i])},[]);return new vd(n,e,i)}(n);if(s.toRoot())return gd(e.root,new Lf([],{}),e,i,o);var a=function(t,n,r){if(t.isAbsolute)return new _d(e.root,!0,0);if(-1===r.snapshot._lastPathIndex)return new _d(r.snapshot._urlSegment,!0,0);var i=yd(t.commands[0])?0:1;return function(e,n,o){for(var s=r.snapshot._urlSegment,a=r.snapshot._lastPathIndex+i,u=t.numberOfDoubleDots;u>a;){if(u-=a,!(s=s.parent))throw new Error("Invalid number of '../'");a=s.segments.length}return new _d(s,!1,a-u)}()}(s,0,t),u=a.processChildren?Ed(a.segmentGroup,a.index,s.commands):wd(a.segmentGroup,a.index,s.commands);return gd(a.segmentGroup,u,e,i,o)}(l,this.currentUrlTree,t,h,c)},t.prototype.navigateByUrl=function(t,e){void 0===e&&(e={skipLocationChange:!1}),Be()&&this.isNgZoneEnabled&&!Jn.isInAngularZone()&&this.console.warn("Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?");var n=Od(t)?t:this.parseUrl(t),r=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(r,"imperative",null,e)},t.prototype.navigate=function(t,e){return void 0===e&&(e={skipLocationChange:!1}),function(t){for(var e=0;e<t.length;e++){var n=t[e];if(null==n)throw new Error("The requested path contains "+n+" segment at index "+e)}}(t),this.navigateByUrl(this.createUrlTree(t,e),e)},t.prototype.serializeUrl=function(t){return this.urlSerializer.serialize(t)},t.prototype.parseUrl=function(t){var e;try{e=this.urlSerializer.parse(t)}catch(n){e=this.malformedUriErrorHandler(n,this.urlSerializer,t)}return e},t.prototype.isActive=function(t,e){if(Od(t))return Pf(this.currentUrlTree,t,e);var n=this.parseUrl(t);return Pf(this.currentUrlTree,n,e)},t.prototype.removeEmptyProps=function(t){return Object.keys(t).reduce(function(e,n){var r=t[n];return null!=r&&(e[n]=r),e},{})},t.prototype.processNavigations=function(){var t=this;this.navigations.subscribe(function(e){t.navigated=!0,t.lastSuccessfulId=e.id,t.events.next(new ef(e.id,t.serializeUrl(e.extractedUrl),t.serializeUrl(t.currentUrlTree))),t.lastSuccessfulNavigation=t.currentNavigation,t.currentNavigation=null,e.resolve(!0)},function(e){t.console.warn("Unhandled Navigation Error: ")})},t.prototype.scheduleNavigation=function(t,e,n,r){var i=this.getTransition();if(i&&"imperative"!==e&&"imperative"===i.source&&i.rawUrl.toString()===t.toString())return Promise.resolve(!0);if(i&&"hashchange"==e&&"popstate"===i.source&&i.rawUrl.toString()===t.toString())return Promise.resolve(!0);if(i&&"popstate"==e&&"hashchange"===i.source&&i.rawUrl.toString()===t.toString())return Promise.resolve(!0);var o=null,s=null,a=new Promise(function(t,e){o=t,s=e}),u=++this.navigationId;return this.setTransition({id:u,source:e,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:t,extras:r,resolve:o,reject:s,promise:a,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),a.catch(function(t){return Promise.reject(t)})},t.prototype.setBrowserUrl=function(t,e,n,i){var o=this.urlSerializer.serialize(t);i=i||{},this.location.isCurrentPathEqualTo(o)||e?this.location.replaceState(o,"",Object(r.__assign)({},i,{navigationId:n})):this.location.go(o,"",Object(r.__assign)({},i,{navigationId:n}))},t.prototype.resetStateAndUrl=function(t,e,n){this.routerState=t,this.currentUrlTree=e,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n),this.resetUrlToCurrentUrlTree()},t.prototype.resetUrlToCurrentUrlTree=function(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",{navigationId:this.lastSuccessfulId})},t}(),_m=function(){function t(t,e,n,r,i){this.router=t,this.route=e,this.commands=[],null==n&&r.setAttribute(i.nativeElement,"tabindex","0")}return Object.defineProperty(t.prototype,"routerLink",{set:function(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"preserveQueryParams",{set:function(t){Be()&&console&&console.warn&&console.warn("preserveQueryParams is deprecated!, use queryParamsHandling instead."),this.preserve=t},enumerable:!0,configurable:!0}),t.prototype.onClick=function(){var t={skipLocationChange:wm(this.skipLocationChange),replaceUrl:wm(this.replaceUrl)};return this.router.navigateByUrl(this.urlTree,t),!0},Object.defineProperty(t.prototype,"urlTree",{get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:wm(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:wm(this.preserveFragment)})},enumerable:!0,configurable:!0}),t}(),bm=function(){function t(t,e,n){var r=this;this.router=t,this.route=e,this.locationStrategy=n,this.commands=[],this.subscription=t.events.subscribe(function(t){t instanceof ef&&r.updateTargetUrlAndHref()})}return Object.defineProperty(t.prototype,"routerLink",{set:function(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"preserveQueryParams",{set:function(t){Be()&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead."),this.preserve=t},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(t){this.updateTargetUrlAndHref()},t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype.onClick=function(t,e,n,r){if(0!==t||e||n||r)return!0;if("string"==typeof this.target&&"_self"!=this.target)return!0;var i={skipLocationChange:wm(this.skipLocationChange),replaceUrl:wm(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,i),!1},t.prototype.updateTargetUrlAndHref=function(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))},Object.defineProperty(t.prototype,"urlTree",{get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:wm(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:wm(this.preserveFragment)})},enumerable:!0,configurable:!0}),Object(r.__decorate)([vn("attr.target"),gn(),Object(r.__metadata)("design:type",String)],t.prototype,"target",void 0),t}();function wm(t){return""===t||!!t}var Em=function(){function t(t,e,n,r){var i=this;this.router=t,this.element=e,this.renderer=n,this.cdr=r,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.subscription=t.events.subscribe(function(t){t instanceof ef&&i.update()})}return t.prototype.ngAfterContentInit=function(){var t=this;this.links.changes.subscribe(function(e){return t.update()}),this.linksWithHrefs.changes.subscribe(function(e){return t.update()}),this.update()},Object.defineProperty(t.prototype,"routerLinkActive",{set:function(t){var e=Array.isArray(t)?t:t.split(" ");this.classes=e.filter(function(t){return!!t})},enumerable:!0,configurable:!0}),t.prototype.ngOnChanges=function(t){this.update()},t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype.update=function(){var t=this;this.links&&this.linksWithHrefs&&this.router.navigated&&Promise.resolve().then(function(){var e=t.hasActiveLinks();t.isActive!==e&&(t.isActive=e,t.classes.forEach(function(n){e?t.renderer.addClass(t.element.nativeElement,n):t.renderer.removeClass(t.element.nativeElement,n)}))})},t.prototype.isLinkActive=function(t){var e=this;return function(n){return t.isActive(n.urlTree,e.routerLinkActiveOptions.exact)}},t.prototype.hasActiveLinks=function(){return this.links.some(this.isLinkActive(this.router))||this.linksWithHrefs.some(this.isLinkActive(this.router))},t}(),Sm=function(){return function(){this.outlet=null,this.route=null,this.resolver=null,this.children=new Cm,this.attachRef=null}}(),Cm=function(){function t(){this.contexts=new Map}return t.prototype.onChildOutletCreated=function(t,e){var n=this.getOrCreateContext(t);n.outlet=e,this.contexts.set(t,n)},t.prototype.onChildOutletDestroyed=function(t){var e=this.getContext(t);e&&(e.outlet=null)},t.prototype.onOutletDeactivated=function(){var t=this.contexts;return this.contexts=new Map,t},t.prototype.onOutletReAttached=function(t){this.contexts=t},t.prototype.getOrCreateContext=function(t){var e=this.getContext(t);return e||(e=new Sm,this.contexts.set(t,e)),e},t.prototype.getContext=function(t){return this.contexts.get(t)||null},t}(),Tm=function(){function t(t,e,n,r,i){this.parentContexts=t,this.location=e,this.resolver=n,this.changeDetector=i,this.activated=null,this._activatedRoute=null,this.activateEvents=new hn,this.deactivateEvents=new hn,this.name=r||vf,t.onChildOutletCreated(this.name,this)}return t.prototype.ngOnDestroy=function(){this.parentContexts.onChildOutletDestroyed(this.name)},t.prototype.ngOnInit=function(){if(!this.activated){var t=this.parentContexts.getContext(this.name);t&&t.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.resolver||null))}},Object.defineProperty(t.prototype,"isActivated",{get:function(){return!!this.activated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"component",{get:function(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activatedRoute",{get:function(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activatedRouteData",{get:function(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}},enumerable:!0,configurable:!0}),t.prototype.detach=function(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();var t=this.activated;return this.activated=null,this._activatedRoute=null,t},t.prototype.attach=function(t,e){this.activated=t,this._activatedRoute=e,this.location.insert(t.hostView)},t.prototype.deactivate=function(){if(this.activated){var t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}},t.prototype.activateWith=function(t,e){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=t;var n=(e=e||this.resolver).resolveComponentFactory(t._futureSnapshot.routeConfig.component),r=this.parentContexts.getOrCreateContext(this.name).children,i=new Im(t,r,this.location.injector);this.activated=this.location.createComponent(n,this.location.length,i),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)},t}(),Im=function(){function t(t,e,n){this.route=t,this.childContexts=e,this.parent=n}return t.prototype.get=function(t,e){return t===ud?this.route:t===Cm?this.childContexts:this.parent.get(t,e)},t}(),xm=function(){return function(){}}(),km=function(){function t(){}return t.prototype.preload=function(t,e){return e().pipe(Vp(function(){return zu(null)}))},t}(),Am=function(){function t(){}return t.prototype.preload=function(t,e){return zu(null)},t}(),Om=function(){function t(t,e,n,r,i){this.router=t,this.injector=r,this.preloadingStrategy=i,this.loader=new pm(e,n,function(e){return t.triggerEvent(new cf(e))},function(e){return t.triggerEvent(new hf(e))})}return t.prototype.setUpPreloading=function(){var t=this;this.subscription=this.router.events.pipe(hl(function(t){return t instanceof ef}),Yp(function(){return t.preload()})).subscribe(function(){})},t.prototype.preload=function(){var t=this.injector.get(ke);return this.processRoutes(t,this.router.config)},t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype.processRoutes=function(t,e){var n,i,o=[];try{for(var s=Object(r.__values)(e),a=s.next();!a.done;a=s.next()){var u=a.value;if(u.loadChildren&&!u.canLoad&&u._loadedConfig){var l=u._loadedConfig;o.push(this.processRoutes(l.module,l.routes))}else u.loadChildren&&!u.canLoad?o.push(this.preloadConfig(t,u)):u.children&&o.push(this.processRoutes(t,u.children))}}catch(c){n={error:c}}finally{try{a&&!a.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}return J(o).pipe(nt(),K(function(t){}))},t.prototype.preloadConfig=function(t,e){var n=this;return this.preloadingStrategy.preload(e,function(){return n.loader.load(t.injector,e).pipe(Z(function(t){return e._loadedConfig=t,n.processRoutes(t.module,t.routes)}))})},t}(),Nm=function(){function t(t,e,n){void 0===n&&(n={}),this.router=t,this.viewportScroller=e,this.options=n,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},n.scrollPositionRestoration=n.scrollPositionRestoration||"disabled",n.anchorScrolling=n.anchorScrolling||"disabled"}return t.prototype.init=function(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()},t.prototype.createScrollEvents=function(){var t=this;return this.router.events.subscribe(function(e){e instanceof tf?(t.store[t.lastId]=t.viewportScroller.getScrollPosition(),t.lastSource=e.navigationTrigger,t.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof ef&&(t.lastId=e.id,t.scheduleScrollEvent(e,t.router.parseUrl(e.urlAfterRedirects).fragment))})},t.prototype.consumeScrollEvents=function(){var t=this;return this.router.events.subscribe(function(e){e instanceof yf&&(e.position?"top"===t.options.scrollPositionRestoration?t.viewportScroller.scrollToPosition([0,0]):"enabled"===t.options.scrollPositionRestoration&&t.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===t.options.anchorScrolling?t.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==t.options.scrollPositionRestoration&&t.viewportScroller.scrollToPosition([0,0]))})},t.prototype.scheduleScrollEvent=function(t,e){this.router.triggerEvent(new yf(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,e))},t.prototype.ngOnDestroy=function(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()},t}(),Dm=new vt("ROUTER_CONFIGURATION"),Rm=new vt("ROUTER_FORROOT_GUARD"),Pm=[Pa,{provide:Vf,useClass:qf},{provide:vm,useFactory:qm,deps:[dr,Vf,Cm,Pa,oe,yn,zn,hm,Dm,[fm,new Vt],[lm,new Vt]]},Cm,{provide:ud,useFactory:Bm,deps:[vm]},{provide:yn,useClass:_r},Om,Am,km,{provide:Dm,useValue:{enableTracing:!1}}];function Mm(){return new lr("Router",vm)}var Lm=function(){function t(t,e){}var e;return e=t,t.forRoot=function(t,n){return{ngModule:e,providers:[Pm,Vm(t),{provide:Rm,useFactory:Um,deps:[[vm,new Vt,new Bt]]},{provide:Dm,useValue:n||{}},{provide:Da,useFactory:jm,deps:[Oa,[new Ut(Ra),new Vt],Dm]},{provide:Nm,useFactory:Fm,deps:[vm,du,Dm]},{provide:xm,useExisting:n&&n.preloadingStrategy?n.preloadingStrategy:Am},{provide:lr,multi:!0,useFactory:Mm},[Hm,{provide:kn,multi:!0,useFactory:zm,deps:[Hm]},{provide:Qm,useFactory:Wm,deps:[Hm]},{provide:Mn,multi:!0,useExisting:Qm}]]}},t.forChild=function(t){return{ngModule:e,providers:[Vm(t)]}},t}();function Fm(t,e,n){return n.scrollOffset&&e.setOffset(n.scrollOffset),new Nm(t,e,n)}function jm(t,e,n){return void 0===n&&(n={}),n.useHash?new La(t,e):new Fa(t,e)}function Um(t){if(t)throw new Error("RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.");return"guarded"}function Vm(t){return[{provide:Ct,multi:!0,useValue:t},{provide:hm,multi:!0,useValue:t}]}function qm(t,e,n,r,i,o,s,a,u,l,c){void 0===u&&(u={});var h=new vm(null,e,n,r,i,o,s,Of(a));if(l&&(h.urlHandlingStrategy=l),c&&(h.routeReuseStrategy=c),u.errorHandler&&(h.errorHandler=u.errorHandler),u.malformedUriErrorHandler&&(h.malformedUriErrorHandler=u.malformedUriErrorHandler),u.enableTracing){var p=Tc();h.events.subscribe(function(t){p.logGroup("Router Event: "+t.constructor.name),p.log(t.toString()),p.log(t),p.logGroupEnd()})}return u.onSameUrlNavigation&&(h.onSameUrlNavigation=u.onSameUrlNavigation),u.paramsInheritanceStrategy&&(h.paramsInheritanceStrategy=u.paramsInheritanceStrategy),u.urlUpdateStrategy&&(h.urlUpdateStrategy=u.urlUpdateStrategy),u.relativeLinkResolution&&(h.relativeLinkResolution=u.relativeLinkResolution),h}function Bm(t){return t.routerState.root}var Hm=function(){function t(t){this.injector=t,this.initNavigation=!1,this.resultOfPreactivationDone=new D}return t.prototype.appInitializer=function(){var t=this;return this.injector.get(Na,Promise.resolve(null)).then(function(){var e=null,n=new Promise(function(t){return e=t}),r=t.injector.get(vm),i=t.injector.get(Dm);if(t.isLegacyDisabled(i)||t.isLegacyEnabled(i))e(!0);else if("disabled"===i.initialNavigation)r.setUpLocationChangeListener(),e(!0);else{if("enabled"!==i.initialNavigation)throw new Error("Invalid initialNavigation options: '"+i.initialNavigation+"'");r.hooks.afterPreactivation=function(){return t.initNavigation?zu(null):(t.initNavigation=!0,e(!0),t.resultOfPreactivationDone)},r.initialNavigation()}return n})},t.prototype.bootstrapListener=function(t){var e=this.injector.get(Dm),n=this.injector.get(Om),r=this.injector.get(Nm),i=this.injector.get(vm),o=this.injector.get(dr);t===o.components[0]&&(this.isLegacyEnabled(e)?i.initialNavigation():this.isLegacyDisabled(e)&&i.setUpLocationChangeListener(),n.setUpPreloading(),r.init(),i.resetRootComponentType(o.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())},t.prototype.isLegacyEnabled=function(t){return"legacy_enabled"===t.initialNavigation||!0===t.initialNavigation||void 0===t.initialNavigation},t.prototype.isLegacyDisabled=function(t){return"legacy_disabled"===t.initialNavigation||!1===t.initialNavigation},t}();function zm(t){return t.appInitializer.bind(t)}function Wm(t){return t.bootstrapListener.bind(t)}var Qm=new vt("Router Initializer"),Km=mi({encapsulation:2,styles:[],data:{}});function Gm(t){return ss(0,[(t()(),Hi(0,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),Do(1,212992,null,0,Tm,[Cm,wr,Te,[8,null],Sr],null,null)],function(t,e){t(e,1,0)},null)}function Ym(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"ng-component",[],null,null,null,Gm,Km)),Do(1,49152,null,0,gf,[],null,null)],null,null)}var Xm=ao("ng-component",gf,Ym,{},{},[]),Jm=function(){return function(){}}(),Zm=function(){return function(){}}(),$m=function(){return function(){}}(),ty=function(){return function(){}}(),ey=function(){return function(){}}(),ny=function(){return function(){}}(),ry=function(){return function(){}}(),iy=mi({encapsulation:2,styles:[".mat-card{transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);display:block;position:relative;padding:16px;border-radius:4px}.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}@media (-ms-high-contrast:active){.mat-card{outline:solid 1px}}.mat-card-actions,.mat-card-content,.mat-card-subtitle{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}.mat-card-footer{display:block;margin:0 -16px -16px -16px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-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 0}@media (max-width:599px){.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}}.mat-card-content>:first-child,.mat-card>:first-child{margin-top:0}.mat-card-content>:last-child:not(.mat-card-footer),.mat-card>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-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 .mat-button:first-child,.mat-card-actions .mat-raised-button:first-child{margin-left:0;margin-right:0}.mat-card-subtitle:not(:first-child),.mat-card-title:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}"],data:{}});function oy(t){return ss(2,[ts(null,0),ts(null,1)],null,null)}var sy=mi({encapsulation:2,styles:[],data:{}});function ay(t){return ss(2,[ts(null,0),(t()(),Hi(1,0,null,null,1,"div",[["class","mat-card-header-text"]],null,null,null,null,null)),ts(null,1),ts(null,2)],null,null)}var uy=function(){function t(){}return t.prototype.ngOnInit=function(){console.log(this.data)},t}(),ly=mi({encapsulation:0,styles:[[""]],data:{}});function cy(t){return ss(0,[(t()(),Hi(0,0,null,null,9,"mat-card",[["class","logo-mat-card mat-card"]],null,null,null,oy,iy)),Do(1,49152,null,0,ey,[],null,null),(t()(),Hi(2,0,null,0,4,"mat-card-header",[["class","mat-card-header"]],null,null,null,ay,sy)),Do(3,49152,null,0,ny,[],null,null),(t()(),Hi(4,0,null,1,2,"mat-card-title",[["class","mat-card-title"]],null,null,null,null,null)),Do(5,16384,null,0,Zm,[],null,null),(t()(),rs(6,null,["",""])),(t()(),Hi(7,0,null,0,2,"mat-card-content",[["class","mat-card-content"]],null,null,null,null,null)),Do(8,16384,null,0,Jm,[],null,null),(t()(),rs(9,null,[" "," "]))],null,function(t,e){var n=e.component;t(e,6,0,n.data.title),t(e,9,0,n.data.body)})}var hy=function(){return function(){}}(),py=function(){return function(){}}(),fy=function(){function t(t){var e=this;this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?function(){e.headers=new Map,t.split("\n").forEach(function(t){var n=t.indexOf(":");if(n>0){var r=t.slice(0,n),i=r.toLowerCase(),o=t.slice(n+1).trim();e.maybeSetNormalizedName(r,i),e.headers.has(i)?e.headers.get(i).push(o):e.headers.set(i,[o])}})}:function(){e.headers=new Map,Object.keys(t).forEach(function(n){var r=t[n],i=n.toLowerCase();"string"==typeof r&&(r=[r]),r.length>0&&(e.headers.set(i,r),e.maybeSetNormalizedName(n,i))})}:this.headers=new Map}return t.prototype.has=function(t){return this.init(),this.headers.has(t.toLowerCase())},t.prototype.get=function(t){this.init();var e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null},t.prototype.keys=function(){return this.init(),Array.from(this.normalizedNames.values())},t.prototype.getAll=function(t){return this.init(),this.headers.get(t.toLowerCase())||null},t.prototype.append=function(t,e){return this.clone({name:t,value:e,op:"a"})},t.prototype.set=function(t,e){return this.clone({name:t,value:e,op:"s"})},t.prototype.delete=function(t,e){return this.clone({name:t,value:e,op:"d"})},t.prototype.maybeSetNormalizedName=function(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)},t.prototype.init=function(){var e=this;this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(function(t){return e.applyUpdate(t)}),this.lazyUpdate=null))},t.prototype.copyFrom=function(t){var e=this;t.init(),Array.from(t.headers.keys()).forEach(function(n){e.headers.set(n,t.headers.get(n)),e.normalizedNames.set(n,t.normalizedNames.get(n))})},t.prototype.clone=function(e){var n=new t;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([e]),n},t.prototype.applyUpdate=function(t){var e=t.name.toLowerCase();switch(t.op){case"a":case"s":var n=t.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,e);var i=("a"===t.op?this.headers.get(e):void 0)||[];i.push.apply(i,Object(r.__spread)(n)),this.headers.set(e,i);break;case"d":var o=t.value;if(o){var s=this.headers.get(e);if(!s)return;0===(s=s.filter(function(t){return-1===o.indexOf(t)})).length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}},t.prototype.forEach=function(t){var e=this;this.init(),Array.from(this.normalizedNames.keys()).forEach(function(n){return t(e.normalizedNames.get(n),e.headers.get(n))})},t}(),dy=function(){function t(){}return t.prototype.encodeKey=function(t){return my(t)},t.prototype.encodeValue=function(t){return my(t)},t.prototype.decodeKey=function(t){return decodeURIComponent(t)},t.prototype.decodeValue=function(t){return decodeURIComponent(t)},t}();function my(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}var yy=function(){function t(t){void 0===t&&(t={});var e,n,i,o=this;if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new dy,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=(e=t.fromString,n=this.encoder,i=new Map,e.length>0&&e.split("&").forEach(function(t){var e=t.indexOf("="),o=Object(r.__read)(-1==e?[n.decodeKey(t),""]:[n.decodeKey(t.slice(0,e)),n.decodeValue(t.slice(e+1))],2),s=o[0],a=o[1],u=i.get(s)||[];u.push(a),i.set(s,u)}),i)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(function(e){var n=t.fromObject[e];o.map.set(e,Array.isArray(n)?n:[n])})):this.map=null}return t.prototype.has=function(t){return this.init(),this.map.has(t)},t.prototype.get=function(t){this.init();var e=this.map.get(t);return e?e[0]:null},t.prototype.getAll=function(t){return this.init(),this.map.get(t)||null},t.prototype.keys=function(){return this.init(),Array.from(this.map.keys())},t.prototype.append=function(t,e){return this.clone({param:t,value:e,op:"a"})},t.prototype.set=function(t,e){return this.clone({param:t,value:e,op:"s"})},t.prototype.delete=function(t,e){return this.clone({param:t,value:e,op:"d"})},t.prototype.toString=function(){var t=this;return this.init(),this.keys().map(function(e){var n=t.encoder.encodeKey(e);return t.map.get(e).map(function(e){return n+"="+t.encoder.encodeValue(e)}).join("&")}).join("&")},t.prototype.clone=function(e){var n=new t({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat([e]),n},t.prototype.init=function(){var t=this;null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(function(e){return t.map.set(e,t.cloneFrom.map.get(e))}),this.updates.forEach(function(e){switch(e.op){case"a":case"s":var n=("a"===e.op?t.map.get(e.param):void 0)||[];n.push(e.value),t.map.set(e.param,n);break;case"d":if(void 0===e.value){t.map.delete(e.param);break}var r=t.map.get(e.param)||[],i=r.indexOf(e.value);-1!==i&&r.splice(i,1),r.length>0?t.map.set(e.param,r):t.map.delete(e.param)}}),this.cloneFrom=null)},t}();function gy(t){return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function vy(t){return"undefined"!=typeof Blob&&t instanceof Blob}function _y(t){return"undefined"!=typeof FormData&&t instanceof FormData}var by=function(){function t(t,e,n,r){var i;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==n?n:null,i=r):i=n,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.params&&(this.params=i.params)),this.headers||(this.headers=new fy),this.params){var o=this.params.toString();if(0===o.length)this.urlWithParams=e;else{var s=e.indexOf("?");this.urlWithParams=e+(-1===s?"?":s<e.length-1?"&":"")+o}}else this.params=new yy,this.urlWithParams=e}return t.prototype.serializeBody=function(){return null===this.body?null:gy(this.body)||vy(this.body)||_y(this.body)||"string"==typeof this.body?this.body:this.body instanceof yy?this.body.toString():"object"==typeof this.body||"boolean"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()},t.prototype.detectContentTypeHeader=function(){return null===this.body?null:_y(this.body)?null:vy(this.body)?this.body.type||null:gy(this.body)?null:"string"==typeof this.body?"text/plain":this.body instanceof yy?"application/x-www-form-urlencoded;charset=UTF-8":"object"==typeof this.body||"number"==typeof this.body||Array.isArray(this.body)?"application/json":null},t.prototype.clone=function(e){void 0===e&&(e={});var n=e.method||this.method,r=e.url||this.url,i=e.responseType||this.responseType,o=void 0!==e.body?e.body:this.body,s=void 0!==e.withCredentials?e.withCredentials:this.withCredentials,a=void 0!==e.reportProgress?e.reportProgress:this.reportProgress,u=e.headers||this.headers,l=e.params||this.params;return void 0!==e.setHeaders&&(u=Object.keys(e.setHeaders).reduce(function(t,n){return t.set(n,e.setHeaders[n])},u)),e.setParams&&(l=Object.keys(e.setParams).reduce(function(t,n){return t.set(n,e.setParams[n])},l)),new t(n,r,o,{params:l,headers:u,reportProgress:a,responseType:i,withCredentials:s})},t}(),wy=function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t}({}),Ey=function(){return function(t,e,n){void 0===e&&(e=200),void 0===n&&(n="OK"),this.headers=t.headers||new fy,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||n,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}(),Sy=function(t){function e(e){void 0===e&&(e={});var n=t.call(this,e)||this;return n.type=wy.ResponseHeader,n}return Object(r.__extends)(e,t),e.prototype.clone=function(t){return void 0===t&&(t={}),new e({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})},e}(Ey),Cy=function(t){function e(e){void 0===e&&(e={});var n=t.call(this,e)||this;return n.type=wy.Response,n.body=void 0!==e.body?e.body:null,n}return Object(r.__extends)(e,t),e.prototype.clone=function(t){return void 0===t&&(t={}),new e({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})},e}(Ey),Ty=function(t){function e(e){var n=t.call(this,e,0,"Unknown Error")||this;return n.name="HttpErrorResponse",n.ok=!1,n.message=n.status>=200&&n.status<300?"Http failure during parsing for "+(e.url||"(unknown url)"):"Http failure response for "+(e.url||"(unknown url)")+": "+e.status+" "+e.statusText,n.error=e.error||null,n}return Object(r.__extends)(e,t),e}(Ey);function Iy(t,e){return{body:e,headers:t.headers,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}var xy=function(){function t(t){this.handler=t}return t.prototype.request=function(t,e,n){var r,i=this;if(void 0===n&&(n={}),t instanceof by)r=t;else{var o;o=n.headers instanceof fy?n.headers:new fy(n.headers);var s=void 0;n.params&&(s=n.params instanceof yy?n.params:new yy({fromObject:n.params})),r=new by(t,e,void 0!==n.body?n.body:null,{headers:o,params:s,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials})}var a=zu(r).pipe(Yp(function(t){return i.handler.handle(t)}));if(t instanceof by||"events"===n.observe)return a;var u=a.pipe(hl(function(t){return t instanceof Cy}));switch(n.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return u.pipe(K(function(t){if(null!==t.body&&!(t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return t.body}));case"blob":return u.pipe(K(function(t){if(null!==t.body&&!(t.body instanceof Blob))throw new Error("Response is not a Blob.");return t.body}));case"text":return u.pipe(K(function(t){if(null!==t.body&&"string"!=typeof t.body)throw new Error("Response is not a string.");return t.body}));case"json":default:return u.pipe(K(function(t){return t.body}))}case"response":return u;default:throw new Error("Unreachable: unhandled observe type "+n.observe+"}")}},t.prototype.delete=function(t,e){return void 0===e&&(e={}),this.request("DELETE",t,e)},t.prototype.get=function(t,e){return void 0===e&&(e={}),this.request("GET",t,e)},t.prototype.head=function(t,e){return void 0===e&&(e={}),this.request("HEAD",t,e)},t.prototype.jsonp=function(t,e){return this.request("JSONP",t,{params:(new yy).append(e,"JSONP_CALLBACK"),observe:"body",responseType:"json"})},t.prototype.options=function(t,e){return void 0===e&&(e={}),this.request("OPTIONS",t,e)},t.prototype.patch=function(t,e,n){return void 0===n&&(n={}),this.request("PATCH",t,Iy(n,e))},t.prototype.post=function(t,e,n){return void 0===n&&(n={}),this.request("POST",t,Iy(n,e))},t.prototype.put=function(t,e,n){return void 0===n&&(n={}),this.request("PUT",t,Iy(n,e))},t}(),ky=function(){function t(t,e){this.next=t,this.interceptor=e}return t.prototype.handle=function(t){return this.interceptor.intercept(t,this.next)},t}(),Ay=new vt("HTTP_INTERCEPTORS"),Oy=function(){function t(){}return t.prototype.intercept=function(t,e){return e.handle(t)},t}(),Ny=/^\)\]\}',?\n/,Dy=function(){return function(){}}(),Ry=function(){function t(){}return t.prototype.build=function(){return new XMLHttpRequest},t}(),Py=function(){function t(t){this.xhrFactory=t}return t.prototype.handle=function(t){var e=this;if("JSONP"===t.method)throw new Error("Attempted to construct Jsonp request without JsonpClientModule installed.");return new I(function(n){var r=e.xhrFactory.build();if(r.open(t.method,t.urlWithParams),t.withCredentials&&(r.withCredentials=!0),t.headers.forEach(function(t,e){return r.setRequestHeader(t,e.join(","))}),t.headers.has("Accept")||r.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){var i=t.detectContentTypeHeader();null!==i&&r.setRequestHeader("Content-Type",i)}if(t.responseType){var o=t.responseType.toLowerCase();r.responseType="json"!==o?o:"text"}var s=t.serializeBody(),a=null,u=function(){if(null!==a)return a;var e=1223===r.status?204:r.status,n=r.statusText||"OK",i=new fy(r.getAllResponseHeaders()),o=function(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(r)||t.url;return a=new Sy({headers:i,status:e,statusText:n,url:o})},l=function(){var e=u(),i=e.headers,o=e.status,s=e.statusText,a=e.url,l=null;204!==o&&(l=void 0===r.response?r.responseText:r.response),0===o&&(o=l?200:0);var c=o>=200&&o<300;if("json"===t.responseType&&"string"==typeof l){var h=l;l=l.replace(Ny,"");try{l=""!==l?JSON.parse(l):null}catch(p){l=h,c&&(c=!1,l={error:p,text:l})}}c?(n.next(new Cy({body:l,headers:i,status:o,statusText:s,url:a||void 0})),n.complete()):n.error(new Ty({error:l,headers:i,status:o,statusText:s,url:a||void 0}))},c=function(t){var e=u().url,i=new Ty({error:t,status:r.status||0,statusText:r.statusText||"Unknown Error",url:e||void 0});n.error(i)},h=!1,p=function(e){h||(n.next(u()),h=!0);var i={type:wy.DownloadProgress,loaded:e.loaded};e.lengthComputable&&(i.total=e.total),"text"===t.responseType&&r.responseText&&(i.partialText=r.responseText),n.next(i)},f=function(t){var e={type:wy.UploadProgress,loaded:t.loaded};t.lengthComputable&&(e.total=t.total),n.next(e)};return r.addEventListener("load",l),r.addEventListener("error",c),t.reportProgress&&(r.addEventListener("progress",p),null!==s&&r.upload&&r.upload.addEventListener("progress",f)),r.send(s),n.next({type:wy.Sent}),function(){r.removeEventListener("error",c),r.removeEventListener("load",l),t.reportProgress&&(r.removeEventListener("progress",p),null!==s&&r.upload&&r.upload.removeEventListener("progress",f)),r.abort()}})},t}(),My=new vt("XSRF_COOKIE_NAME"),Ly=new vt("XSRF_HEADER_NAME"),Fy=function(){return function(){}}(),jy=function(){function t(t,e,n){this.doc=t,this.platform=e,this.cookieName=n,this.lastCookieString="",this.lastToken=null,this.parseCount=0}return t.prototype.getToken=function(){if("server"===this.platform)return null;var t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=Wa(t,this.cookieName),this.lastCookieString=t),this.lastToken},t}(),Uy=function(){function t(t,e){this.tokenService=t,this.headerName=e}return t.prototype.intercept=function(t,e){var n=t.url.toLowerCase();if("GET"===t.method||"HEAD"===t.method||n.startsWith("http://")||n.startsWith("https://"))return e.handle(t);var r=this.tokenService.getToken();return null===r||t.headers.has(this.headerName)||(t=t.clone({headers:t.headers.set(this.headerName,r)})),e.handle(t)},t}(),Vy=function(){function t(t,e){this.backend=t,this.injector=e,this.chain=null}return t.prototype.handle=function(t){if(null===this.chain){var e=this.injector.get(Ay,[]);this.chain=e.reduceRight(function(t,e){return new ky(t,e)},this.backend)}return this.chain.handle(t)},t}(),qy=function(){function t(){}var e;return e=t,t.disable=function(){return{ngModule:e,providers:[{provide:Uy,useClass:Oy}]}},t.withOptions=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[t.cookieName?{provide:My,useValue:t.cookieName}:[],t.headerName?{provide:Ly,useValue:t.headerName}:[]]}},t}(),By=function(){return function(){}}(),Hy=function(){function t(t){this.http=t,this.baseUrl="http://localhost:8000",this.path="logs"}return t.prototype.getLogs=function(){return this.http.get(this.baseUrl+"/"+this.path)},t.ngInjectableDef=yt({factory:function(){return new t(Qt(xy))},token:t,providedIn:"root"}),t}(),zy=function(){function t(t){this.source=t}return t.prototype.ngOnInit=function(){this.logs=this.source.getLogs()},t}(),Wy=mi({encapsulation:0,styles:[[".more-logs[_ngcontent-%COMP%]{width:100%;text-align:center;color:rgba(255,255,255,.5);font-size:75%}"]],data:{}});function Qy(t){return ss(0,[(t()(),Hi(0,0,null,null,2,"div",[["class","log-innter-container"]],null,null,null,null,null)),(t()(),Hi(1,0,null,null,1,"app-log",[],null,null,null,cy,ly)),Do(2,114688,null,0,uy,[],{data:[0,"data"]},null)],function(t,e){t(e,2,0,e.context.$implicit)},null)}function Ky(t){return ss(0,[(t()(),Hi(0,0,null,null,6,"div",[["class","logs-container"]],null,null,null,null,null)),(t()(),Hi(1,0,null,null,3,"div",[],null,null,null,null,null)),(t()(),Bi(16777216,null,null,2,null,Qy)),Do(3,278528,null,0,Ga,[wr,pn,qr],{ngForOf:[0,"ngForOf"]},null),Ro(131072,ou,[Sr]),(t()(),Hi(5,0,null,null,1,"div",[["class","more-logs"]],null,null,null,null,null)),(t()(),rs(-1,null,[" More may or may not be logged later! "]))],function(t,e){var n=e.component;t(e,3,0,pi(e,3,0,_o(e,4).transform(n.logs)))},null)}function Gy(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"app-logs",[],null,null,null,Ky,Wy)),Do(1,114688,null,0,zy,[Hy],null,null)],function(t,e){t(e,1,0)},null)}var Yy=ao("app-logs",zy,Gy,{},{},[]);function Xy(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return"function"==typeof e[e.length-1]&&(t=e.pop()),1===e.length&&i(e[0])&&(e=e[0]),0===e.length?Bu:t?Xy(e).pipe(K(function(e){return t.apply(void 0,e)})):new I(function(t){return new Jy(t,e)})}var Jy=function(t){function e(e,n){var r=t.call(this,e)||this;r.sources=n,r.completed=0,r.haveValues=0;var i=n.length;r.values=new Array(i);for(var o=0;o<i;o++){var s=W(r,n[o],null,o);s&&r.add(s)}return r}return r.__extends(e,t),e.prototype.notifyNext=function(t,e,n,r,i){this.values[n]=e,i._hasValue||(i._hasValue=!0,this.haveValues++)},e.prototype.notifyComplete=function(t){var e=this.destination,n=this.haveValues,r=this.values,i=r.length;t._hasValue?(this.completed++,this.completed===i&&(n===i&&e.next(r),e.complete())):e.complete()},e}(Q),Zy=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.__extends)(e,t),Object.defineProperty(e.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),e}(function(){function t(){}return Object.defineProperty(t.prototype,"value",{get:function(){return this.control?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return this.control?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return this.control?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return this.control?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this.control?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return this.control?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this.control?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pristine",{get:function(){return this.control?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return this.control?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touched",{get:function(){return this.control?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"status",{get:function(){return this.control?this.control.status:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return this.control?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"statusChanges",{get:function(){return this.control?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valueChanges",{get:function(){return this.control?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),t.prototype.reset=function(t){void 0===t&&(t=void 0),this.control&&this.control.reset(t)},t.prototype.hasError=function(t,e){return!!this.control&&this.control.hasError(t,e)},t.prototype.getError=function(t,e){return this.control?this.control.getError(t,e):null},t}());function $y(t){return null==t||0===t.length}var tg=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,eg=function(){function t(){}return t.min=function(t){return function(e){if($y(e.value)||$y(t))return null;var n=parseFloat(e.value);return!isNaN(n)&&n<t?{min:{min:t,actual:e.value}}:null}},t.max=function(t){return function(e){if($y(e.value)||$y(t))return null;var n=parseFloat(e.value);return!isNaN(n)&&n>t?{max:{max:t,actual:e.value}}:null}},t.required=function(t){return $y(t.value)?{required:!0}:null},t.requiredTrue=function(t){return!0===t.value?null:{required:!0}},t.email=function(t){return $y(t.value)?null:tg.test(t.value)?null:{email:!0}},t.minLength=function(t){return function(e){if($y(e.value))return null;var n=e.value?e.value.length:0;return n<t?{minlength:{requiredLength:t,actualLength:n}}:null}},t.maxLength=function(t){return function(e){var n=e.value?e.value.length:0;return n>t?{maxlength:{requiredLength:t,actualLength:n}}:null}},t.pattern=function(e){return e?("string"==typeof e?(r="","^"!==e.charAt(0)&&(r+="^"),r+=e,"$"!==e.charAt(e.length-1)&&(r+="$"),n=new RegExp(r)):(r=e.toString(),n=e),function(t){if($y(t.value))return null;var e=t.value;return n.test(e)?null:{pattern:{requiredPattern:r,actualValue:e}}}):t.nullValidator;var n,r},t.nullValidator=function(t){return null},t.compose=function(t){if(!t)return null;var e=t.filter(ng);return 0==e.length?null:function(t){return ig(function(t,n){return e.map(function(e){return e(t)})}(t))}},t.composeAsync=function(t){if(!t)return null;var e=t.filter(ng);return 0==e.length?null:function(t){return Xy(function(t,n){return e.map(function(e){return e(t)})}(t).map(rg)).pipe(K(ig))}},t}();function ng(t){return null!=t}function rg(t){var e=In(t)?J(t):t;if(!xn(e))throw new Error("Expected validator to return Promise or Observable.");return e}function ig(t){var e=t.reduce(function(t,e){return null!=e?Object(r.__assign)({},t,e):t},{});return 0===Object.keys(e).length?null:e}function og(t){return t.validate?function(e){return t.validate(e)}:t}function sg(t){return t.validate?function(e){return t.validate(e)}:t}var ag='\n    <div [formGroup]="myGroup">\n      <input formControlName="firstName">\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       firstName: new FormControl()\n    });',ug='\n    <div [formGroup]="myGroup">\n       <div formGroupName="person">\n          <input formControlName="firstName">\n       </div>\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       person: new FormGroup({ firstName: new FormControl() })\n    });',lg=function(){function t(){}return t.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+ag)},t.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n       that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n       Option 1:  Update the parent to be formGroupName (reactive form strategy)\n\n        '+ug+'\n\n        Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n        \n    <form>\n       <div ngModelGroup="person">\n          <input [(ngModel)]="person.name" name="firstName">\n       </div>\n    </form>')},t.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n       Example:\n\n       "+ag)},t.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive.  You'll want to add a formGroup\n      directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+ug)},t.arrayParentException=function(){throw new Error('formArrayName must be used with a parent formGroup directive.  You\'ll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n        Example:\n\n        \n    <div [formGroup]="myGroup">\n      <div formArrayName="cities">\n        <div *ngFor="let city of cityArray.controls; index as i">\n          <input [formControlName]="i">\n        </div>\n      </div>\n    </div>\n\n    In your class:\n\n    this.cityArray = new FormArray([new FormControl(\'SF\')]);\n    this.myGroup = new FormGroup({\n      cities: this.cityArray\n    });')},t.disabledAttrWarning=function(){console.warn("\n      It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n      when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n      you. We recommend using this approach to avoid 'changed after checked' errors.\n       \n      Example: \n      form = new FormGroup({\n        first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n        last: new FormControl('Drew', Validators.required)\n      });\n    ")},t.ngModelWarning=function(t){console.warn("\n    It looks like you're using ngModel on the same form field as "+t+". \n    Support for using the ngModel input property and ngModelChange event with \n    reactive form directives has been deprecated in Angular v6 and will be removed \n    in Angular v7.\n    \n    For more information on this, see our API docs here:\n    https://angular.io/api/forms/"+("formControl"===t?"FormControlDirective":"FormControlName")+"#use-with-ngmodel\n    ")},t}();function cg(t,e){t||dg(e,"Cannot find control with"),e.valueAccessor||dg(e,"No value accessor for form control with"),t.validator=eg.compose([t.validator,e.validator]),t.asyncValidator=eg.composeAsync([t.asyncValidator,e.asyncValidator]),e.valueAccessor.writeValue(t.value),function(t,e){e.valueAccessor.registerOnChange(function(n){t._pendingValue=n,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&hg(t,e)})}(t,e),function(t,e){t.registerOnChange(function(t,n){e.valueAccessor.writeValue(t),n&&e.viewToModelUpdate(t)})}(t,e),function(t,e){e.valueAccessor.registerOnTouched(function(){t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&hg(t,e),"submit"!==t.updateOn&&t.markAsTouched()})}(t,e),e.valueAccessor.setDisabledState&&t.registerOnDisabledChange(function(t){e.valueAccessor.setDisabledState(t)}),e._rawValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(function(){return t.updateValueAndValidity()})}),e._rawAsyncValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(function(){return t.updateValueAndValidity()})})}function hg(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function pg(t,e){null==t&&dg(e,"Cannot find control with"),t.validator=eg.compose([t.validator,e.validator]),t.asyncValidator=eg.composeAsync([t.asyncValidator,e.asyncValidator])}function fg(t){return dg(t,"There is no FormControl instance attached to form control element with")}function dg(t,e){var n;throw n=t.path.length>1?"path: '"+t.path.join(" -> ")+"'":t.path[0]?"name: '"+t.path+"'":"unspecified name attribute",new Error(e+" "+n)}function mg(t){return null!=t?eg.compose(t.map(og)):null}function yg(t){return null!=t?eg.composeAsync(t.map(sg)):null}function gg(t,e){t._syncPendingControls(),e.forEach(function(t){var e=t.control;"submit"===e.updateOn&&e._pendingChange&&(t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1)})}function vg(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}function _g(t){var e=wg(t)?t.validators:t;return Array.isArray(e)?mg(e):e||null}function bg(t,e){var n=wg(e)?e.asyncValidators:t;return Array.isArray(n)?yg(n):n||null}function wg(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}var Eg=function(){function t(t,e){this.validator=t,this.asyncValidator=e,this._onCollectionChange=function(){},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}return Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return"VALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return"INVALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return"PENDING"==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return"DISABLED"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return"DISABLED"!==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return!this.touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"updateOn",{get:function(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"},enumerable:!0,configurable:!0}),t.prototype.setValidators=function(t){this.validator=_g(t)},t.prototype.setAsyncValidators=function(t){this.asyncValidator=bg(t)},t.prototype.clearValidators=function(){this.validator=null},t.prototype.clearAsyncValidators=function(){this.asyncValidator=null},t.prototype.markAsTouched=function(t){void 0===t&&(t={}),this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)},t.prototype.markAsUntouched=function(t){void 0===t&&(t={}),this.touched=!1,this._pendingTouched=!1,this._forEachChild(function(t){t.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)},t.prototype.markAsDirty=function(t){void 0===t&&(t={}),this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)},t.prototype.markAsPristine=function(t){void 0===t&&(t={}),this.pristine=!0,this._pendingDirty=!1,this._forEachChild(function(t){t.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)},t.prototype.markAsPending=function(t){void 0===t&&(t={}),this.status="PENDING",!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)},t.prototype.disable=function(t){void 0===t&&(t={}),this.status="DISABLED",this.errors=null,this._forEachChild(function(e){e.disable(Object(r.__assign)({},t,{onlySelf:!0}))}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(t),this._onDisabledChange.forEach(function(t){return t(!0)})},t.prototype.enable=function(t){void 0===t&&(t={}),this.status="VALID",this._forEachChild(function(e){e.enable(Object(r.__assign)({},t,{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(t),this._onDisabledChange.forEach(function(t){return t(!1)})},t.prototype._updateAncestors=function(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),this._parent._updatePristine(),this._parent._updateTouched())},t.prototype.setParent=function(t){this._parent=t},t.prototype.updateValueAndValidity=function(t){void 0===t&&(t={}),this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),"VALID"!==this.status&&"PENDING"!==this.status||this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)},t.prototype._updateTreeValidity=function(t){void 0===t&&(t={emitEvent:!0}),this._forEachChild(function(e){return e._updateTreeValidity(t)}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})},t.prototype._setInitialStatus=function(){this.status=this._allControlsDisabled()?"DISABLED":"VALID"},t.prototype._runValidator=function(){return this.validator?this.validator(this):null},t.prototype._runAsyncValidator=function(t){var e=this;if(this.asyncValidator){this.status="PENDING";var n=rg(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(function(n){return e.setErrors(n,{emitEvent:t})})}},t.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},t.prototype.setErrors=function(t,e){void 0===e&&(e={}),this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)},t.prototype.get=function(t){return function(t,e,n){return null==e?null:(e instanceof Array||(e=e.split(".")),e instanceof Array&&0===e.length?null:e.reduce(function(t,e){return t instanceof Cg?t.controls.hasOwnProperty(e)?t.controls[e]:null:t instanceof Tg&&t.at(e)||null},t))}(this,t)},t.prototype.getError=function(t,e){var n=e?this.get(e):this;return n&&n.errors?n.errors[t]:null},t.prototype.hasError=function(t,e){return!!this.getError(t,e)},Object.defineProperty(t.prototype,"root",{get:function(){for(var t=this;t._parent;)t=t._parent;return t},enumerable:!0,configurable:!0}),t.prototype._updateControlsErrors=function(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)},t.prototype._initObservables=function(){this.valueChanges=new hn,this.statusChanges=new hn},t.prototype._calculateStatus=function(){return this._allControlsDisabled()?"DISABLED":this.errors?"INVALID":this._anyControlsHaveStatus("PENDING")?"PENDING":this._anyControlsHaveStatus("INVALID")?"INVALID":"VALID"},t.prototype._anyControlsHaveStatus=function(t){return this._anyControls(function(e){return e.status===t})},t.prototype._anyControlsDirty=function(){return this._anyControls(function(t){return t.dirty})},t.prototype._anyControlsTouched=function(){return this._anyControls(function(t){return t.touched})},t.prototype._updatePristine=function(t){void 0===t&&(t={}),this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)},t.prototype._updateTouched=function(t){void 0===t&&(t={}),this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)},t.prototype._isBoxedValue=function(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t},t.prototype._registerOnCollectionChange=function(t){this._onCollectionChange=t},t.prototype._setUpdateStrategy=function(t){wg(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)},t}(),Sg=function(t){function e(e,n,r){void 0===e&&(e=null);var i=t.call(this,_g(n),bg(r,n))||this;return i._onChange=[],i._applyFormState(e),i._setUpdateStrategy(n),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i._initObservables(),i}return Object(r.__extends)(e,t),e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(function(t){return t(n.value,!1!==e.emitViewToModelChange)}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){void 0===e&&(e={}),this.setValue(t,e)},e.prototype.reset=function(t,e){void 0===t&&(t=null),void 0===e&&(e={}),this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1},e.prototype._updateValue=function(){},e.prototype._anyControls=function(t){return!1},e.prototype._allControlsDisabled=function(){return this.disabled},e.prototype.registerOnChange=function(t){this._onChange.push(t)},e.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},e.prototype.registerOnDisabledChange=function(t){this._onDisabledChange.push(t)},e.prototype._forEachChild=function(t){},e.prototype._syncPendingControls=function(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))},e.prototype._applyFormState=function(t){this._isBoxedValue(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t},e}(Eg),Cg=function(t){function e(e,n,r){var i=t.call(this,_g(n),bg(r,n))||this;return i.controls=e,i._initObservables(),i._setUpdateStrategy(n),i._setUpControls(),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i}return Object(r.__extends)(e,t),e.prototype.registerControl=function(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)},e.prototype.addControl=function(t,e){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.removeControl=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.contains=function(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled},e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),Object.keys(t).forEach(function(r){n._throwIfControlMissing(r),n.controls[r].setValue(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),Object.keys(t).forEach(function(r){n.controls[r]&&n.controls[r].patchValue(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.reset=function(t,e){void 0===t&&(t={}),void 0===e&&(e={}),this._forEachChild(function(n,r){n.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e),this._updatePristine(e),this._updateTouched(e)},e.prototype.getRawValue=function(){return this._reduceChildren({},function(t,e,n){return t[n]=e instanceof Sg?e.value:e.getRawValue(),t})},e.prototype._syncPendingControls=function(){var t=this._reduceChildren(!1,function(t,e){return!!e._syncPendingControls()||t});return t&&this.updateValueAndValidity({onlySelf:!0}),t},e.prototype._throwIfControlMissing=function(t){if(!Object.keys(this.controls).length)throw new Error("\n        There are no form controls registered with this group yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.controls[t])throw new Error("Cannot find form control with name: "+t+".")},e.prototype._forEachChild=function(t){var e=this;Object.keys(this.controls).forEach(function(n){return t(e.controls[n],n)})},e.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){e.setParent(t),e._registerOnCollectionChange(t._onCollectionChange)})},e.prototype._updateValue=function(){this.value=this._reduceValue()},e.prototype._anyControls=function(t){var e=this,n=!1;return this._forEachChild(function(r,i){n=n||e.contains(i)&&t(r)}),n},e.prototype._reduceValue=function(){var t=this;return this._reduceChildren({},function(e,n,r){return(n.enabled||t.disabled)&&(e[r]=n.value),e})},e.prototype._reduceChildren=function(t,e){var n=t;return this._forEachChild(function(t,r){n=e(n,t,r)}),n},e.prototype._allControlsDisabled=function(){var t,e;try{for(var n=Object(r.__values)(Object.keys(this.controls)),i=n.next();!i.done;i=n.next())if(this.controls[i.value].enabled)return!1}catch(o){t={error:o}}finally{try{i&&!i.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}return Object.keys(this.controls).length>0||this.disabled},e.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")})},e}(Eg),Tg=function(t){function e(e,n,r){var i=t.call(this,_g(n),bg(r,n))||this;return i.controls=e,i._initObservables(),i._setUpdateStrategy(n),i._setUpControls(),i.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),i}return Object(r.__extends)(e,t),e.prototype.at=function(t){return this.controls[t]},e.prototype.push=function(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.insert=function(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity()},e.prototype.removeAt=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),this.updateValueAndValidity()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(e.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),t.forEach(function(t,r){n._throwIfControlMissing(r),n.at(r).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),t.forEach(function(t,r){n.at(r)&&n.at(r).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.reset=function(t,e){void 0===t&&(t=[]),void 0===e&&(e={}),this._forEachChild(function(n,r){n.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e),this._updatePristine(e),this._updateTouched(e)},e.prototype.getRawValue=function(){return this.controls.map(function(t){return t instanceof Sg?t.value:t.getRawValue()})},e.prototype._syncPendingControls=function(){var t=this.controls.reduce(function(t,e){return!!e._syncPendingControls()||t},!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t},e.prototype._throwIfControlMissing=function(t){if(!this.controls.length)throw new Error("\n        There are no form controls registered with this array yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.at(t))throw new Error("Cannot find form control at index "+t)},e.prototype._forEachChild=function(t){this.controls.forEach(function(e,n){t(e,n)})},e.prototype._updateValue=function(){var t=this;this.value=this.controls.filter(function(e){return e.enabled||t.disabled}).map(function(t){return t.value})},e.prototype._anyControls=function(t){return this.controls.some(function(e){return e.enabled&&t(e)})},e.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){return t._registerControl(e)})},e.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control at index: "+n+".")})},e.prototype._allControlsDisabled=function(){var t,e;try{for(var n=Object(r.__values)(this.controls),i=n.next();!i.done;i=n.next())if(i.value.enabled)return!1}catch(o){t={error:o}}finally{try{i&&!i.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}return this.controls.length>0||this.disabled},e.prototype._registerControl=function(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)},e}(Eg),Ig=Promise.resolve(null),xg=function(t){function e(e,n){var r=t.call(this)||this;return r.submitted=!1,r._directives=[],r.ngSubmit=new hn,r.form=new Cg({},mg(e),yg(n)),r}return Object(r.__extends)(e,t),e.prototype.ngAfterViewInit=function(){this._setUpdateStrategy()},Object.defineProperty(e.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),e.prototype.addControl=function(t){var e=this;Ig.then(function(){var n=e._findContainer(t.path);t.control=n.registerControl(t.name,t.control),cg(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),e._directives.push(t)})},e.prototype.getControl=function(t){return this.form.get(t.path)},e.prototype.removeControl=function(t){var e=this;Ig.then(function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name),vg(e._directives,t)})},e.prototype.addFormGroup=function(t){var e=this;Ig.then(function(){var n=e._findContainer(t.path),r=new Cg({});pg(r,t),n.registerControl(t.name,r),r.updateValueAndValidity({emitEvent:!1})})},e.prototype.removeFormGroup=function(t){var e=this;Ig.then(function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name)})},e.prototype.getFormGroup=function(t){return this.form.get(t.path)},e.prototype.updateModel=function(t,e){var n=this;Ig.then(function(){n.form.get(t.path).setValue(e)})},e.prototype.setValue=function(t){this.control.setValue(t)},e.prototype.onSubmit=function(t){return this.submitted=!0,gg(this.form,this._directives),this.ngSubmit.emit(t),!1},e.prototype.onReset=function(){this.resetForm()},e.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this.submitted=!1},e.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)},e.prototype._findContainer=function(t){return t.pop(),t.length?this.form.get(t):this.form},e}(Zy),kg=function(t){function e(e,n){var r=t.call(this)||this;return r._validators=e,r._asyncValidators=n,r.submitted=!1,r.directives=[],r.form=null,r.ngSubmit=new hn,r}return Object(r.__extends)(e,t),e.prototype.ngOnChanges=function(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(e.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.addControl=function(t){var e=this.form.get(t.path);return cg(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e},e.prototype.getControl=function(t){return this.form.get(t.path)},e.prototype.removeControl=function(t){vg(this.directives,t)},e.prototype.addFormGroup=function(t){var e=this.form.get(t.path);pg(e,t),e.updateValueAndValidity({emitEvent:!1})},e.prototype.removeFormGroup=function(t){},e.prototype.getFormGroup=function(t){return this.form.get(t.path)},e.prototype.addFormArray=function(t){var e=this.form.get(t.path);pg(e,t),e.updateValueAndValidity({emitEvent:!1})},e.prototype.removeFormArray=function(t){},e.prototype.getFormArray=function(t){return this.form.get(t.path)},e.prototype.updateModel=function(t,e){this.form.get(t.path).setValue(e)},e.prototype.onSubmit=function(t){return this.submitted=!0,gg(this.form,this.directives),this.ngSubmit.emit(t),!1},e.prototype.onReset=function(){this.resetForm()},e.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this.submitted=!1},e.prototype._updateDomValue=function(){var t=this;this.directives.forEach(function(e){var n=t.form.get(e.path);e.control!==n&&(function(t,e){e.valueAccessor.registerOnChange(function(){return fg(e)}),e.valueAccessor.registerOnTouched(function(){return fg(e)}),e._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),e._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),t&&t._clearChangeFns()}(e.control,e),n&&cg(n,e),e.control=n)}),this.form._updateTreeValidity({emitEvent:!1})},e.prototype._updateRegistrations=function(){var t=this;this.form._registerOnCollectionChange(function(){return t._updateDomValue()}),this._oldForm&&this._oldForm._registerOnCollectionChange(function(){}),this._oldForm=this.form},e.prototype._updateValidators=function(){var t=mg(this._validators);this.form.validator=eg.compose([this.form.validator,t]);var e=yg(this._asyncValidators);this.form.asyncValidator=eg.composeAsync([this.form.asyncValidator,e])},e.prototype._checkFormPresent=function(){this.form||lg.missingFormException()},e}(Zy),Ag=np(function(){return function(){}}()),Og=np(function(){return function(){}}()),Ng=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._stateChanges=new D,e}return Object(r.__extends)(e,t),e.prototype.ngOnChanges=function(){this._stateChanges.next()},e.prototype.ngOnDestroy=function(){this._stateChanges.complete()},e}(Ag),Dg=function(t){function e(e){var n=t.call(this)||this;return n._elementRef=e,n._stateChanges=new D,"action-list"===n._getListType()&&e&&e.nativeElement.classList.add("mat-action-list"),n}return Object(r.__extends)(e,t),e.prototype._getListType=function(){var t=this._elementRef;if(t){var e=t.nativeElement.nodeName.toLowerCase();if("mat-list"===e)return"list";if("mat-action-list"===e)return"action-list"}return null},e.prototype.ngOnChanges=function(){this._stateChanges.next()},e.prototype.ngOnDestroy=function(){this._stateChanges.complete()},e}(Ag),Rg=function(){return function(){}}(),Pg=function(t){function e(e,n,r,i){var o=t.call(this)||this;o._element=e,o._isInteractiveList=!1,o._destroyed=new D,o._isInteractiveList=!!(n||r&&"action-list"===r._getListType()),o._list=n||r;var s=o._getHostElement();return"button"!==s.nodeName.toLowerCase()||s.hasAttribute("type")||s.setAttribute("type","button"),o._list&&i&&o._list._stateChanges.pipe(Ku(o._destroyed)).subscribe(function(){i.markForCheck()}),o}return Object(r.__extends)(e,t),e.prototype.ngAfterContentInit=function(){var t,e;e=this._element,(t=this._lines).changes.pipe(Qu(t)).subscribe(function(t){var n=t.length;cp(e,"mat-2-line",!1),cp(e,"mat-3-line",!1),cp(e,"mat-multi-line",!1),2===n||3===n?cp(e,"mat-"+n+"-line",!0):n>3&&cp(e,"mat-multi-line",!0)})},e.prototype.ngOnDestroy=function(){this._destroyed.next(),this._destroyed.complete()},e.prototype._isRippleDisabled=function(){return!this._isInteractiveList||this.disableRipple||!(!this._list||!this._list.disableRipple)},e.prototype._getHostElement=function(){return this._element.nativeElement},e}(Og),Mg=function(){return function(){}}(),Lg=function(){return function(){}}();function Fg(){return"undefined"!=typeof process}function jg(t){switch(t.length){case 0:return new wa;case 1:return t[0];default:return new Ea(t)}}function Ug(t,e,n,r,i,o){void 0===i&&(i={}),void 0===o&&(o={});var s=[],a=[],u=-1,l=null;if(r.forEach(function(t){var n=t.offset,r=n==u,c=r&&l||{};Object.keys(t).forEach(function(n){var r=n,a=t[n];if("offset"!==n)switch(r=e.normalizePropertyName(r,s),a){case Sa:a=i[n];break;case ga:a=o[n];break;default:a=e.normalizeStyleValue(n,r,a,s)}c[r]=a}),r||a.push(c),l=c,u=n}),s.length)throw new Error("Unable to animate due to the following errors:\n - "+s.join("\n - "));return a}function Vg(t,e,n,r){switch(e){case"start":t.onStart(function(){return r(n&&qg(n,"start",t))});break;case"done":t.onDone(function(){return r(n&&qg(n,"done",t))});break;case"destroy":t.onDestroy(function(){return r(n&&qg(n,"destroy",t))})}}function qg(t,e,n){var r=n.totalTime,i=Bg(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,null==r?t.totalTime:r,!!n.disabled),o=t._data;return null!=o&&(i._data=o),i}function Bg(t,e,n,r,i,o,s){return void 0===i&&(i=""),void 0===o&&(o=0),{element:t,triggerName:e,fromState:n,toState:r,phaseName:i,totalTime:o,disabled:!!s}}function Hg(t,e,n){var r;return t instanceof Map?(r=t.get(e))||t.set(e,r=n):(r=t[e])||(r=t[e]=n),r}function zg(t){var e=t.indexOf(":");return[t.substring(1,e),t.substr(e+1)]}var Wg=function(t,e){return!1},Qg=function(t,e){return!1},Kg=function(t,e,n){return[]},Gg=Fg();if(Gg||"undefined"!=typeof Element){if(Wg=function(t,e){return t.contains(e)},Gg||Element.prototype.matches)Qg=function(t,e){return t.matches(e)};else{var Yg=Element.prototype,Xg=Yg.matchesSelector||Yg.mozMatchesSelector||Yg.msMatchesSelector||Yg.oMatchesSelector||Yg.webkitMatchesSelector;Xg&&(Qg=function(t,e){return Xg.apply(t,[e])})}Kg=function(t,e,n){var i=[];if(n)i.push.apply(i,Object(r.__spread)(t.querySelectorAll(e)));else{var o=t.querySelector(e);o&&i.push(o)}return i}}var Jg=null,Zg=!1;function $g(t){Jg||(Jg=("undefined"!=typeof document?document.body:null)||{},Zg=!!Jg.style&&"WebkitAppearance"in Jg.style);var e=!0;return Jg.style&&!function(t){return"ebkit"==t.substring(1,6)}(t)&&!(e=t in Jg.style)&&Zg&&(e="Webkit"+t.charAt(0).toUpperCase()+t.substr(1)in Jg.style),e}var tv=Qg,ev=Wg,nv=Kg;function rv(t){var e={};return Object.keys(t).forEach(function(n){var r=n.replace(/([a-z])([A-Z])/g,"$1-$2");e[r]=t[n]}),e}var iv=function(){function t(){}return t.prototype.validateStyleProperty=function(t){return $g(t)},t.prototype.matchesElement=function(t,e){return tv(t,e)},t.prototype.containsElement=function(t,e){return ev(t,e)},t.prototype.query=function(t,e,n){return nv(t,e,n)},t.prototype.computeStyle=function(t,e,n){return n||""},t.prototype.animate=function(t,e,n,r,i,o,s){return void 0===o&&(o=[]),new wa(n,r)},t}(),ov=function(){function t(){}return t.NOOP=new iv,t}(),sv=1e3;function av(t){if("number"==typeof t)return t;var e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:uv(parseFloat(e[1]),e[2])}function uv(t,e){switch(e){case"s":return t*sv;default:return t}}function lv(t,e,n){return t.hasOwnProperty("duration")?t:function(t,e,n){var r,i=0,o="";if("string"==typeof t){var s=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===s)return e.push('The provided timing value "'+t+'" is invalid.'),{duration:0,delay:0,easing:""};r=uv(parseFloat(s[1]),s[2]);var a=s[3];null!=a&&(i=uv(parseFloat(a),s[4]));var u=s[5];u&&(o=u)}else r=t;if(!n){var l=!1,c=e.length;r<0&&(e.push("Duration values below 0 are not allowed for this animation step."),l=!0),i<0&&(e.push("Delay values below 0 are not allowed for this animation step."),l=!0),l&&e.splice(c,0,'The provided timing value "'+t+'" is invalid.')}return{duration:r,delay:i,easing:o}}(t,e,n)}function cv(t,e){return void 0===e&&(e={}),Object.keys(t).forEach(function(n){e[n]=t[n]}),e}function hv(t,e,n){if(void 0===n&&(n={}),e)for(var r in t)n[r]=t[r];else cv(t,n);return n}function pv(t,e,n){return n?e+":"+n+";":""}function fv(t){for(var e="",n=0;n<t.style.length;n++)e+=pv(0,r=t.style.item(n),t.style.getPropertyValue(r));for(var r in t.style)t.style.hasOwnProperty(r)&&!r.startsWith("_")&&(e+=pv(0,r.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),t.style[r]));t.setAttribute("style",e)}function dv(t,e,n){t.style&&(Object.keys(e).forEach(function(r){var i=Ev(r);n&&!n.hasOwnProperty(r)&&(n[r]=t.style[i]),t.style[i]=e[r]}),Fg()&&fv(t))}function mv(t,e){t.style&&(Object.keys(e).forEach(function(e){var n=Ev(e);t.style[n]=""}),Fg()&&fv(t))}function yv(t){return Array.isArray(t)?1==t.length?t[0]:va(t):t}var gv=new RegExp("{{\\s*(.+?)\\s*}}","g");function vv(t){var e=[];if("string"==typeof t){for(var n=t.toString(),r=void 0;r=gv.exec(n);)e.push(r[1]);gv.lastIndex=0}return e}function _v(t,e,n){var r=t.toString(),i=r.replace(gv,function(t,r){var i=e[r];return e.hasOwnProperty(r)||(n.push("Please provide a value for the animation param "+r),i=""),i.toString()});return i==r?t:i}function bv(t){for(var e=[],n=t.next();!n.done;)e.push(n.value),n=t.next();return e}var wv=/-+([a-z0-9])/g;function Ev(t){return t.replace(wv,function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t[1].toUpperCase()})}function Sv(t,e){return 0===t||0===e}function Cv(t,e,n){var r=Object.keys(n);if(r.length&&e.length){var i=e[0],o=[];if(r.forEach(function(t){i.hasOwnProperty(t)||o.push(t),i[t]=n[t]}),o.length)for(var s=function(){var n=e[a];o.forEach(function(e){n[e]=Iv(t,e)})},a=1;a<e.length;a++)s()}return e}function Tv(t,e,n){switch(e.type){case 7:return t.visitTrigger(e,n);case 0:return t.visitState(e,n);case 1:return t.visitTransition(e,n);case 2:return t.visitSequence(e,n);case 3:return t.visitGroup(e,n);case 4:return t.visitAnimate(e,n);case 5:return t.visitKeyframes(e,n);case 6:return t.visitStyle(e,n);case 8:return t.visitReference(e,n);case 9:return t.visitAnimateChild(e,n);case 10:return t.visitAnimateRef(e,n);case 11:return t.visitQuery(e,n);case 12:return t.visitStagger(e,n);default:throw new Error("Unable to resolve animation metadata node #"+e.type)}}function Iv(t,e){return window.getComputedStyle(t)[e]}var xv="*",kv=new Set(["true","1"]),Av=new Set(["false","0"]);function Ov(t,e){var n=kv.has(t)||Av.has(t),r=kv.has(e)||Av.has(e);return function(i,o){var s=t==xv||t==i,a=e==xv||e==o;return!s&&n&&"boolean"==typeof i&&(s=i?kv.has(t):Av.has(t)),!a&&r&&"boolean"==typeof o&&(a=o?kv.has(e):Av.has(e)),s&&a}}var Nv=new RegExp("s*:selfs*,?","g");function Dv(t,e,n){return new Rv(t).build(e,n)}var Rv=function(){function t(t){this._driver=t}return t.prototype.build=function(t,e){var n=new Pv(e);return this._resetContextStyleTimingState(n),Tv(this,yv(t),n)},t.prototype._resetContextStyleTimingState=function(t){t.currentQuerySelector="",t.collectedStyles={},t.collectedStyles[""]={},t.currentTime=0},t.prototype.visitTrigger=function(t,e){var n=this,r=e.queryCount=0,i=e.depCount=0,o=[],s=[];return"@"==t.name.charAt(0)&&e.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),t.definitions.forEach(function(t){if(n._resetContextStyleTimingState(e),0==t.type){var a=t,u=a.name;u.toString().split(/\s*,\s*/).forEach(function(t){a.name=t,o.push(n.visitState(a,e))}),a.name=u}else if(1==t.type){var l=n.visitTransition(t,e);r+=l.queryCount,i+=l.depCount,s.push(l)}else e.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:t.name,states:o,transitions:s,queryCount:r,depCount:i,options:null}},t.prototype.visitState=function(t,e){var n=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(n.containsDynamicStyles){var i=new Set,o=r||{};if(n.styles.forEach(function(t){if(Mv(t)){var e=t;Object.keys(e).forEach(function(t){vv(e[t]).forEach(function(t){o.hasOwnProperty(t)||i.add(t)})})}}),i.size){var s=bv(i.values());e.errors.push('state("'+t.name+'", ...) must define default values for all the following style substitutions: '+s.join(", "))}}return{type:0,name:t.name,style:n,options:r?{params:r}:null}},t.prototype.visitTransition=function(t,e){e.queryCount=0,e.depCount=0;var n,r,i,o=Tv(this,yv(t.animation),e);return{type:1,matchers:(n=t.expr,r=e.errors,i=[],"string"==typeof n?n.split(/\s*,\s*/).forEach(function(t){return function(t,e,n){if(":"==t[0]){var r=function(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return function(t,e){return parseFloat(e)>parseFloat(t)};case":decrement":return function(t,e){return parseFloat(e)<parseFloat(t)};default:return e.push('The transition alias value "'+t+'" is not supported'),"* => *"}}(t,n);if("function"==typeof r)return void e.push(r);t=r}var i=t.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return n.push('The provided transition expression "'+t+'" is not supported'),e;var o=i[1],s=i[2],a=i[3];e.push(Ov(o,a)),"<"!=s[0]||o==xv&&a==xv||e.push(Ov(a,o))}(t,i,r)}):i.push(n),i),animation:o,queryCount:e.queryCount,depCount:e.depCount,options:Lv(t.options)}},t.prototype.visitSequence=function(t,e){var n=this;return{type:2,steps:t.steps.map(function(t){return Tv(n,t,e)}),options:Lv(t.options)}},t.prototype.visitGroup=function(t,e){var n=this,r=e.currentTime,i=0,o=t.steps.map(function(t){e.currentTime=r;var o=Tv(n,t,e);return i=Math.max(i,e.currentTime),o});return e.currentTime=i,{type:3,steps:o,options:Lv(t.options)}},t.prototype.visitAnimate=function(t,e){var n,r=function(t,e){var n=null;if(t.hasOwnProperty("duration"))n=t;else if("number"==typeof t)return Fv(lv(t,e).duration,0,"");var r=t;if(r.split(/\s+/).some(function(t){return"{"==t.charAt(0)&&"{"==t.charAt(1)})){var i=Fv(0,0,"");return i.dynamic=!0,i.strValue=r,i}return Fv((n=n||lv(r,e)).duration,n.delay,n.easing)}(t.timings,e.errors);e.currentAnimateTimings=r;var i=t.styles?t.styles:_a({});if(5==i.type)n=this.visitKeyframes(i,e);else{var o=t.styles,s=!1;if(!o){s=!0;var a={};r.easing&&(a.easing=r.easing),o=_a(a)}e.currentTime+=r.duration+r.delay;var u=this.visitStyle(o,e);u.isEmptyStep=s,n=u}return e.currentAnimateTimings=null,{type:4,timings:r,style:n,options:null}},t.prototype.visitStyle=function(t,e){var n=this._makeStyleAst(t,e);return this._validateStyleAst(n,e),n},t.prototype._makeStyleAst=function(t,e){var n=[];Array.isArray(t.styles)?t.styles.forEach(function(t){"string"==typeof t?t==ga?n.push(t):e.errors.push("The provided style string value "+t+" is not allowed."):n.push(t)}):n.push(t.styles);var r=!1,i=null;return n.forEach(function(t){if(Mv(t)){var e=t,n=e.easing;if(n&&(i=n,delete e.easing),!r)for(var o in e)if(e[o].toString().indexOf("{{")>=0){r=!0;break}}}),{type:6,styles:n,easing:i,offset:t.offset,containsDynamicStyles:r,options:null}},t.prototype._validateStyleAst=function(t,e){var n=this,r=e.currentAnimateTimings,i=e.currentTime,o=e.currentTime;r&&o>0&&(o-=r.duration+r.delay),t.styles.forEach(function(t){"string"!=typeof t&&Object.keys(t).forEach(function(r){if(n._driver.validateStyleProperty(r)){var s,a,u,l=e.collectedStyles[e.currentQuerySelector],c=l[r],h=!0;c&&(o!=i&&o>=c.startTime&&i<=c.endTime&&(e.errors.push('The CSS property "'+r+'" that exists between the times of "'+c.startTime+'ms" and "'+c.endTime+'ms" is also being animated in a parallel animation between the times of "'+o+'ms" and "'+i+'ms"'),h=!1),o=c.startTime),h&&(l[r]={startTime:o,endTime:i}),e.options&&(s=e.errors,a=e.options.params||{},(u=vv(t[r])).length&&u.forEach(function(t){a.hasOwnProperty(t)||s.push("Unable to resolve the local animation param "+t+" in the given list of values")}))}else e.errors.push('The provided animation property "'+r+'" is not a supported CSS property for animations')})})},t.prototype.visitKeyframes=function(t,e){var n=this,r={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push("keyframes() must be placed inside of a call to animate()"),r;var i=0,o=[],s=!1,a=!1,u=0,l=t.steps.map(function(t){var r=n._makeStyleAst(t,e),l=null!=r.offset?r.offset:function(t){if("string"==typeof t)return null;var e=null;if(Array.isArray(t))t.forEach(function(t){if(Mv(t)&&t.hasOwnProperty("offset")){var n=t;e=parseFloat(n.offset),delete n.offset}});else if(Mv(t)&&t.hasOwnProperty("offset")){var n=t;e=parseFloat(n.offset),delete n.offset}return e}(r.styles),c=0;return null!=l&&(i++,c=r.offset=l),a=a||c<0||c>1,s=s||c<u,u=c,o.push(c),r});a&&e.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),s&&e.errors.push("Please ensure that all keyframe offsets are in order");var c=t.steps.length,h=0;i>0&&i<c?e.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==i&&(h=1/(c-1));var p=c-1,f=e.currentTime,d=e.currentAnimateTimings,m=d.duration;return l.forEach(function(t,i){var s=h>0?i==p?1:h*i:o[i],a=s*m;e.currentTime=f+d.delay+a,d.duration=a,n._validateStyleAst(t,e),t.offset=s,r.styles.push(t)}),r},t.prototype.visitReference=function(t,e){return{type:8,animation:Tv(this,yv(t.animation),e),options:Lv(t.options)}},t.prototype.visitAnimateChild=function(t,e){return e.depCount++,{type:9,options:Lv(t.options)}},t.prototype.visitAnimateRef=function(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:Lv(t.options)}},t.prototype.visitQuery=function(t,e){var n=e.currentQuerySelector,i=t.options||{};e.queryCount++,e.currentQuery=t;var o=Object(r.__read)(function(t){var e=!!t.split(/\s*,\s*/).find(function(t){return":self"==t});return e&&(t=t.replace(Nv,"")),[t=t.replace(/@\*/g,".ng-trigger").replace(/@\w+/g,function(t){return".ng-trigger-"+t.substr(1)}).replace(/:animating/g,".ng-animating"),e]}(t.selector),2),s=o[0],a=o[1];e.currentQuerySelector=n.length?n+" "+s:s,Hg(e.collectedStyles,e.currentQuerySelector,{});var u=Tv(this,yv(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=n,{type:11,selector:s,limit:i.limit||0,optional:!!i.optional,includeSelf:a,animation:u,originalSelector:t.selector,options:Lv(t.options)}},t.prototype.visitStagger=function(t,e){e.currentQuery||e.errors.push("stagger() can only be used inside of query()");var n="full"===t.timings?{duration:0,delay:0,easing:"full"}:lv(t.timings,e.errors,!0);return{type:12,animation:Tv(this,yv(t.animation),e),timings:n,options:null}},t}(),Pv=function(){return function(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={},this.options=null}}();function Mv(t){return!Array.isArray(t)&&"object"==typeof t}function Lv(t){var e;return t?(t=cv(t)).params&&(t.params=(e=t.params)?cv(e):null):t={},t}function Fv(t,e,n){return{duration:t,delay:e,easing:n}}function jv(t,e,n,r,i,o,s,a){return void 0===s&&(s=null),void 0===a&&(a=!1),{type:1,element:t,keyframes:e,preStyleProps:n,postStyleProps:r,duration:i,delay:o,totalTime:i+o,easing:s,subTimeline:a}}var Uv=function(){function t(){this._map=new Map}return t.prototype.consume=function(t){var e=this._map.get(t);return e?this._map.delete(t):e=[],e},t.prototype.append=function(t,e){var n=this._map.get(t);n||this._map.set(t,n=[]),n.push.apply(n,Object(r.__spread)(e))},t.prototype.has=function(t){return this._map.has(t)},t.prototype.clear=function(){this._map.clear()},t}(),Vv=new RegExp(":enter","g"),qv=new RegExp(":leave","g");function Bv(t,e,n,r,i,o,s,a,u,l){return void 0===o&&(o={}),void 0===s&&(s={}),void 0===l&&(l=[]),(new Hv).buildKeyframes(t,e,n,r,i,o,s,a,u,l)}var Hv=function(){function t(){}return t.prototype.buildKeyframes=function(t,e,n,r,i,o,s,a,u,l){void 0===l&&(l=[]),u=u||new Uv;var c=new Wv(t,e,u,r,i,l,[]);c.options=a,c.currentTimeline.setStyles([o],null,c.errors,a),Tv(this,n,c);var h=c.timelines.filter(function(t){return t.containsAnimation()});if(h.length&&Object.keys(s).length){var p=h[h.length-1];p.allowOnlyTimelineStyles()||p.setStyles([s],null,c.errors,a)}return h.length?h.map(function(t){return t.buildKeyframes()}):[jv(e,[],[],[],0,0,"",!1)]},t.prototype.visitTrigger=function(t,e){},t.prototype.visitState=function(t,e){},t.prototype.visitTransition=function(t,e){},t.prototype.visitAnimateChild=function(t,e){var n=e.subInstructions.consume(e.element);if(n){var r=e.createSubContext(t.options),i=e.currentTimeline.currentTime,o=this._visitSubInstructions(n,r,r.options);i!=o&&e.transformIntoNewTimeline(o)}e.previousNode=t},t.prototype.visitAnimateRef=function(t,e){var n=e.createSubContext(t.options);n.transformIntoNewTimeline(),this.visitReference(t.animation,n),e.transformIntoNewTimeline(n.currentTimeline.currentTime),e.previousNode=t},t.prototype._visitSubInstructions=function(t,e,n){var r=e.currentTimeline.currentTime,i=null!=n.duration?av(n.duration):null,o=null!=n.delay?av(n.delay):null;return 0!==i&&t.forEach(function(t){var n=e.appendInstructionToTimeline(t,i,o);r=Math.max(r,n.duration+n.delay)}),r},t.prototype.visitReference=function(t,e){e.updateOptions(t.options,!0),Tv(this,t.animation,e),e.previousNode=t},t.prototype.visitSequence=function(t,e){var n=this,r=e.subContextCount,i=e,o=t.options;if(o&&(o.params||o.delay)&&((i=e.createSubContext(o)).transformIntoNewTimeline(),null!=o.delay)){6==i.previousNode.type&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=zv);var s=av(o.delay);i.delayNextStep(s)}t.steps.length&&(t.steps.forEach(function(t){return Tv(n,t,i)}),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>r&&i.transformIntoNewTimeline()),e.previousNode=t},t.prototype.visitGroup=function(t,e){var n=this,r=[],i=e.currentTimeline.currentTime,o=t.options&&t.options.delay?av(t.options.delay):0;t.steps.forEach(function(s){var a=e.createSubContext(t.options);o&&a.delayNextStep(o),Tv(n,s,a),i=Math.max(i,a.currentTimeline.currentTime),r.push(a.currentTimeline)}),r.forEach(function(t){return e.currentTimeline.mergeTimelineCollectedStyles(t)}),e.transformIntoNewTimeline(i),e.previousNode=t},t.prototype._visitTiming=function(t,e){if(t.dynamic){var n=t.strValue;return lv(e.params?_v(n,e.params,e.errors):n,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}},t.prototype.visitAnimate=function(t,e){var n=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;n.delay&&(e.incrementTime(n.delay),r.snapshotCurrentStyles());var i=t.style;5==i.type?this.visitKeyframes(i,e):(e.incrementTime(n.duration),this.visitStyle(i,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t},t.prototype.visitStyle=function(t,e){var n=e.currentTimeline,r=e.currentAnimateTimings;!r&&n.getCurrentStyleProperties().length&&n.forwardFrame();var i=r&&r.easing||t.easing;t.isEmptyStep?n.applyEmptyStep(i):n.setStyles(t.styles,i,e.errors,e.options),e.previousNode=t},t.prototype.visitKeyframes=function(t,e){var n=e.currentAnimateTimings,r=e.currentTimeline.duration,i=n.duration,o=e.createSubContext().currentTimeline;o.easing=n.easing,t.styles.forEach(function(t){o.forwardTime((t.offset||0)*i),o.setStyles(t.styles,t.easing,e.errors,e.options),o.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(o),e.transformIntoNewTimeline(r+i),e.previousNode=t},t.prototype.visitQuery=function(t,e){var n=this,r=e.currentTimeline.currentTime,i=t.options||{},o=i.delay?av(i.delay):0;o&&(6===e.previousNode.type||0==r&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=zv);var s=r,a=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!i.optional,e.errors);e.currentQueryTotal=a.length;var u=null;a.forEach(function(r,i){e.currentQueryIndex=i;var a=e.createSubContext(t.options,r);o&&a.delayNextStep(o),r===e.element&&(u=a.currentTimeline),Tv(n,t.animation,a),a.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,a.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),u&&(e.currentTimeline.mergeTimelineCollectedStyles(u),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t},t.prototype.visitStagger=function(t,e){var n=e.parentContext,r=e.currentTimeline,i=t.timings,o=Math.abs(i.duration),s=o*(e.currentQueryTotal-1),a=o*e.currentQueryIndex;switch(i.duration<0?"reverse":i.easing){case"reverse":a=s-a;break;case"full":a=n.currentStaggerTime}var u=e.currentTimeline;a&&u.delayNextStep(a);var l=u.currentTime;Tv(this,t.animation,e),e.previousNode=t,n.currentStaggerTime=r.currentTime-l+(r.startTime-n.currentTimeline.startTime)},t}(),zv={},Wv=function(){function t(t,e,n,r,i,o,s,a){this._driver=t,this.element=e,this.subInstructions=n,this._enterClassName=r,this._leaveClassName=i,this.errors=o,this.timelines=s,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=zv,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=a||new Qv(this._driver,e,0),s.push(this.currentTimeline)}return Object.defineProperty(t.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),t.prototype.updateOptions=function(t,e){var n=this;if(t){var r=t,i=this.options;null!=r.duration&&(i.duration=av(r.duration)),null!=r.delay&&(i.delay=av(r.delay));var o=r.params;if(o){var s=i.params;s||(s=this.options.params={}),Object.keys(o).forEach(function(t){e&&s.hasOwnProperty(t)||(s[t]=_v(o[t],s,n.errors))})}}},t.prototype._copyOptions=function(){var t={};if(this.options){var e=this.options.params;if(e){var n=t.params={};Object.keys(e).forEach(function(t){n[t]=e[t]})}}return t},t.prototype.createSubContext=function(e,n,r){void 0===e&&(e=null);var i=n||this.element,o=new t(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i,r||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(e),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o},t.prototype.transformIntoNewTimeline=function(t){return this.previousNode=zv,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline},t.prototype.appendInstructionToTimeline=function(t,e,n){var r={duration:null!=e?e:t.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+t.delay,easing:""},i=new Kv(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(i),r},t.prototype.incrementTime=function(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)},t.prototype.delayNextStep=function(t){t>0&&this.currentTimeline.delayNextStep(t)},t.prototype.invokeQuery=function(t,e,n,i,o,s){var a=[];if(i&&a.push(this.element),t.length>0){t=(t=t.replace(Vv,"."+this._enterClassName)).replace(qv,"."+this._leaveClassName);var u=this._driver.query(this.element,t,1!=n);0!==n&&(u=n<0?u.slice(u.length+n,u.length):u.slice(0,n)),a.push.apply(a,Object(r.__spread)(u))}return o||0!=a.length||s.push('`query("'+e+'")` returned zero elements. (Use `query("'+e+'", { optional: true })` if you wish to allow this.)'),a},t}(),Qv=function(){function t(t,e,n,r){this._driver=t,this.element=e,this.startTime=n,this._elementTimelineStylesLookup=r,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}return t.prototype.containsAnimation=function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}},t.prototype.getCurrentStyleProperties=function(){return Object.keys(this._currentKeyframe)},Object.defineProperty(t.prototype,"currentTime",{get:function(){return this.startTime+this.duration},enumerable:!0,configurable:!0}),t.prototype.delayNextStep=function(t){var e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t},t.prototype.fork=function(e,n){return this.applyStylesToKeyframe(),new t(this._driver,e,n||this.currentTime,this._elementTimelineStylesLookup)},t.prototype._loadKeyframe=function(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))},t.prototype.forwardFrame=function(){this.duration+=1,this._loadKeyframe()},t.prototype.forwardTime=function(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()},t.prototype._updateStyle=function(t,e){this._localTimelineStyles[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}},t.prototype.allowOnlyTimelineStyles=function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe},t.prototype.applyEmptyStep=function(t){var e=this;t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach(function(t){e._backFill[t]=e._globalTimelineStyles[t]||ga,e._currentKeyframe[t]=ga}),this._currentEmptyStepKeyframe=this._currentKeyframe},t.prototype.setStyles=function(t,e,n,r){var i=this;e&&(this._previousKeyframe.easing=e);var o=r&&r.params||{},s=function(t,e){var n,r={};return t.forEach(function(t){"*"===t?(n=n||Object.keys(e)).forEach(function(t){r[t]=ga}):hv(t,!1,r)}),r}(t,this._globalTimelineStyles);Object.keys(s).forEach(function(t){var e=_v(s[t],o,n);i._pendingStyles[t]=e,i._localTimelineStyles.hasOwnProperty(t)||(i._backFill[t]=i._globalTimelineStyles.hasOwnProperty(t)?i._globalTimelineStyles[t]:ga),i._updateStyle(t,e)})},t.prototype.applyStylesToKeyframe=function(){var t=this,e=this._pendingStyles,n=Object.keys(e);0!=n.length&&(this._pendingStyles={},n.forEach(function(n){t._currentKeyframe[n]=e[n]}),Object.keys(this._localTimelineStyles).forEach(function(e){t._currentKeyframe.hasOwnProperty(e)||(t._currentKeyframe[e]=t._localTimelineStyles[e])}))},t.prototype.snapshotCurrentStyles=function(){var t=this;Object.keys(this._localTimelineStyles).forEach(function(e){var n=t._localTimelineStyles[e];t._pendingStyles[e]=n,t._updateStyle(e,n)})},t.prototype.getFinalKeyframe=function(){return this._keyframes.get(this.duration)},Object.defineProperty(t.prototype,"properties",{get:function(){var t=[];for(var e in this._currentKeyframe)t.push(e);return t},enumerable:!0,configurable:!0}),t.prototype.mergeTimelineCollectedStyles=function(t){var e=this;Object.keys(t._styleSummary).forEach(function(n){var r=e._styleSummary[n],i=t._styleSummary[n];(!r||i.time>r.time)&&e._updateStyle(n,i.value)})},t.prototype.buildKeyframes=function(){var t=this;this.applyStylesToKeyframe();var e=new Set,n=new Set,r=1===this._keyframes.size&&0===this.duration,i=[];this._keyframes.forEach(function(o,s){var a=hv(o,!0);Object.keys(a).forEach(function(t){var r=a[t];r==Sa?e.add(t):r==ga&&n.add(t)}),r||(a.offset=s/t.duration),i.push(a)});var o=e.size?bv(e.values()):[],s=n.size?bv(n.values()):[];if(r){var a=i[0],u=cv(a);a.offset=0,u.offset=1,i=[a,u]}return jv(this.element,i,o,s,this.duration,this.startTime,this.easing,!1)},t}(),Kv=function(t){function e(e,n,r,i,o,s,a){void 0===a&&(a=!1);var u=t.call(this,e,n,s.delay)||this;return u.element=n,u.keyframes=r,u.preStyleProps=i,u.postStyleProps=o,u._stretchStartingKeyframe=a,u.timings={duration:s.duration,delay:s.delay,easing:s.easing},u}return Object(r.__extends)(e,t),e.prototype.containsAnimation=function(){return this.keyframes.length>1},e.prototype.buildKeyframes=function(){var t=this.keyframes,e=this.timings,n=e.delay,r=e.duration,i=e.easing;if(this._stretchStartingKeyframe&&n){var o=[],s=r+n,a=n/s,u=hv(t[0],!1);u.offset=0,o.push(u);var l=hv(t[0],!1);l.offset=Gv(a),o.push(l);for(var c=t.length-1,h=1;h<=c;h++){var p=hv(t[h],!1);p.offset=Gv((n+p.offset*r)/s),o.push(p)}r=s,n=0,i="",t=o}return jv(this.element,t,this.preStyleProps,this.postStyleProps,r,n,i,!0)},e}(Qv);function Gv(t,e){void 0===e&&(e=3);var n=Math.pow(10,e-1);return Math.round(t*n)/n}var Yv=function(){return function(){}}(),Xv=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.__extends)(e,t),e.prototype.normalizePropertyName=function(t,e){return Ev(t)},e.prototype.normalizeStyleValue=function(t,e,n,r){var i="",o=n.toString().trim();if(Jv[e]&&0!==n&&"0"!==n)if("number"==typeof n)i="px";else{var s=n.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&0==s[1].length&&r.push("Please provide a CSS unit value for "+t+":"+n)}return o+i},e}(Yv),Jv=Zv("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(","));function Zv(t){var e={};return t.forEach(function(t){return e[t]=!0}),e}function $v(t,e,n,r,i,o,s,a,u,l,c,h,p){return{type:0,element:t,triggerName:e,isRemovalTransition:i,fromState:n,fromStyles:o,toState:r,toStyles:s,timelines:a,queriedElements:u,preStyleProps:l,postStyleProps:c,totalTime:h,errors:p}}var t_={},e_=function(){function t(t,e,n){this._triggerName=t,this.ast=e,this._stateStyles=n}return t.prototype.match=function(t,e,n,r){return function(t,e,n,r,i){return t.some(function(t){return t(e,n,r,i)})}(this.ast.matchers,t,e,n,r)},t.prototype.buildStyles=function(t,e,n){var r=this._stateStyles["*"],i=this._stateStyles[t],o=r?r.buildStyles(e,n):{};return i?i.buildStyles(e,n):o},t.prototype.build=function(t,e,n,i,o,s,a,u,l,c){var h=[],p=this.ast.options&&this.ast.options.params||t_,f=this.buildStyles(n,a&&a.params||t_,h),d=u&&u.params||t_,m=this.buildStyles(i,d,h),y=new Set,g=new Map,v=new Map,_="void"===i,b={params:Object(r.__assign)({},p,d)},w=c?[]:Bv(t,e,this.ast.animation,o,s,f,m,b,l,h),E=0;if(w.forEach(function(t){E=Math.max(t.duration+t.delay,E)}),h.length)return $v(e,this._triggerName,n,i,_,f,m,[],[],g,v,E,h);w.forEach(function(t){var n=t.element,r=Hg(g,n,{});t.preStyleProps.forEach(function(t){return r[t]=!0});var i=Hg(v,n,{});t.postStyleProps.forEach(function(t){return i[t]=!0}),n!==e&&y.add(n)});var S=bv(y.values());return $v(e,this._triggerName,n,i,_,f,m,w,S,g,v,E)},t}(),n_=function(){function t(t,e){this.styles=t,this.defaultParams=e}return t.prototype.buildStyles=function(t,e){var n={},r=cv(this.defaultParams);return Object.keys(t).forEach(function(e){var n=t[e];null!=n&&(r[e]=n)}),this.styles.styles.forEach(function(t){if("string"!=typeof t){var i=t;Object.keys(i).forEach(function(t){var o=i[t];o.length>1&&(o=_v(o,r,e)),n[t]=o})}}),n},t}(),r_=function(){function t(t,e){var n=this;this.name=t,this.ast=e,this.transitionFactories=[],this.states={},e.states.forEach(function(t){n.states[t.name]=new n_(t.style,t.options&&t.options.params||{})}),i_(this.states,"true","1"),i_(this.states,"false","0"),e.transitions.forEach(function(e){n.transitionFactories.push(new e_(t,e,n.states))}),this.fallbackTransition=new e_(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(t,e){return!0}],options:null,queryCount:0,depCount:0},this.states)}return Object.defineProperty(t.prototype,"containsQueries",{get:function(){return this.ast.queryCount>0},enumerable:!0,configurable:!0}),t.prototype.matchTransition=function(t,e,n,r){return this.transitionFactories.find(function(i){return i.match(t,e,n,r)})||null},t.prototype.matchStyles=function(t,e,n){return this.fallbackTransition.buildStyles(t,e,n)},t}();function i_(t,e,n){t.hasOwnProperty(e)?t.hasOwnProperty(n)||(t[n]=t[e]):t.hasOwnProperty(n)&&(t[e]=t[n])}var o_=new Uv,s_=function(){function t(t,e,n){this.bodyNode=t,this._driver=e,this._normalizer=n,this._animations={},this._playersById={},this.players=[]}return t.prototype.register=function(t,e){var n=[],r=Dv(this._driver,e,n);if(n.length)throw new Error("Unable to build the animation due to the following errors: "+n.join("\n"));this._animations[t]=r},t.prototype._buildPlayer=function(t,e,n){var r=t.element,i=Ug(0,this._normalizer,0,t.keyframes,e,n);return this._driver.animate(r,i,t.duration,t.delay,t.easing,[],!0)},t.prototype.create=function(t,e,n){var r=this;void 0===n&&(n={});var i,o=[],s=this._animations[t],a=new Map;if(s?(i=Bv(this._driver,e,s,"ng-enter","ng-leave",{},{},n,o_,o)).forEach(function(t){var e=Hg(a,t.element,{});t.postStyleProps.forEach(function(t){return e[t]=null})}):(o.push("The requested animation doesn't exist or has already been destroyed"),i=[]),o.length)throw new Error("Unable to create the animation due to the following errors: "+o.join("\n"));a.forEach(function(t,e){Object.keys(t).forEach(function(n){t[n]=r._driver.computeStyle(e,n,ga)})});var u=jg(i.map(function(t){var e=a.get(t.element);return r._buildPlayer(t,{},e)}));return this._playersById[t]=u,u.onDestroy(function(){return r.destroy(t)}),this.players.push(u),u},t.prototype.destroy=function(t){var e=this._getPlayer(t);e.destroy(),delete this._playersById[t];var n=this.players.indexOf(e);n>=0&&this.players.splice(n,1)},t.prototype._getPlayer=function(t){var e=this._playersById[t];if(!e)throw new Error("Unable to find the timeline player referenced by "+t);return e},t.prototype.listen=function(t,e,n,r){var i=Bg(e,"","","");return Vg(this._getPlayer(t),n,i,r),function(){}},t.prototype.command=function(t,e,n,r){if("register"!=n)if("create"!=n){var i=this._getPlayer(t);switch(n){case"play":i.play();break;case"pause":i.pause();break;case"reset":i.reset();break;case"restart":i.restart();break;case"finish":i.finish();break;case"init":i.init();break;case"setPosition":i.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t)}}else this.create(t,e,r[0]||{});else this.register(t,r[0])},t}(),a_=[],u_={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},l_={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},c_="__ng_removed",h_=function(){function t(t,e){void 0===e&&(e=""),this.namespaceId=e;var n=t&&t.hasOwnProperty("value");if(this.value=function(t){return null!=t?t:null}(n?t.value:t),n){var r=cv(t);delete r.value,this.options=r}else this.options={};this.options.params||(this.options.params={})}return Object.defineProperty(t.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),t.prototype.absorbOptions=function(t){var e=t.params;if(e){var n=this.options.params;Object.keys(e).forEach(function(t){null==n[t]&&(n[t]=e[t])})}},t}(),p_=new h_("void"),f_=function(){function t(t,e,n){this.id=t,this.hostElement=e,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,w_(e,this._hostClassName)}return t.prototype.listen=function(t,e,n,r){var i,o=this;if(!this._triggers.hasOwnProperty(e))throw new Error('Unable to listen on the animation trigger event "'+n+'" because the animation trigger "'+e+"\" doesn't exist!");if(null==n||0==n.length)throw new Error('Unable to listen on the animation trigger "'+e+'" because the provided event is undefined!');if("start"!=(i=n)&&"done"!=i)throw new Error('The provided animation trigger event "'+n+'" for the animation trigger "'+e+'" is not supported!');var s=Hg(this._elementListeners,t,[]),a={name:e,phase:n,callback:r};s.push(a);var u=Hg(this._engine.statesByElement,t,{});return u.hasOwnProperty(e)||(w_(t,"ng-trigger"),w_(t,"ng-trigger-"+e),u[e]=p_),function(){o._engine.afterFlush(function(){var t=s.indexOf(a);t>=0&&s.splice(t,1),o._triggers[e]||delete u[e]})}},t.prototype.register=function(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)},t.prototype._getTrigger=function(t){var e=this._triggers[t];if(!e)throw new Error('The provided animation trigger "'+t+'" has not been registered!');return e},t.prototype.trigger=function(t,e,n,r){var i=this;void 0===r&&(r=!0);var o=this._getTrigger(e),s=new m_(this.id,e,t),a=this._engine.statesByElement.get(t);a||(w_(t,"ng-trigger"),w_(t,"ng-trigger-"+e),this._engine.statesByElement.set(t,a={}));var u=a[e],l=new h_(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&u&&l.absorbOptions(u.options),a[e]=l,u||(u=p_),"void"===l.value||u.value!==l.value){var c=Hg(this._engine.playersByElement,t,[]);c.forEach(function(t){t.namespaceId==i.id&&t.triggerName==e&&t.queued&&t.destroy()});var h=o.matchTransition(u.value,l.value,t,l.params),p=!1;if(!h){if(!r)return;h=o.fallbackTransition,p=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:h,fromState:u,toState:l,player:s,isFallbackTransition:p}),p||(w_(t,"ng-animate-queued"),s.onStart(function(){E_(t,"ng-animate-queued")})),s.onDone(function(){var e=i.players.indexOf(s);e>=0&&i.players.splice(e,1);var n=i._engine.playersByElement.get(t);if(n){var r=n.indexOf(s);r>=0&&n.splice(r,1)}}),this.players.push(s),c.push(s),s}if(!function(t,e){var n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(var i=0;i<n.length;i++){var o=n[i];if(!e.hasOwnProperty(o)||t[o]!==e[o])return!1}return!0}(u.params,l.params)){var f=[],d=o.matchStyles(u.value,u.params,f),m=o.matchStyles(l.value,l.params,f);f.length?this._engine.reportError(f):this._engine.afterFlush(function(){mv(t,d),dv(t,m)})}},t.prototype.deregister=function(t){var e=this;delete this._triggers[t],this._engine.statesByElement.forEach(function(e,n){delete e[t]}),this._elementListeners.forEach(function(n,r){e._elementListeners.set(r,n.filter(function(e){return e.name!=t}))})},t.prototype.clearElementCache=function(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);var e=this._engine.playersByElement.get(t);e&&(e.forEach(function(t){return t.destroy()}),this._engine.playersByElement.delete(t))},t.prototype._signalRemovalForInnerTriggers=function(t,e,n){var r=this;void 0===n&&(n=!1),this._engine.driver.query(t,".ng-trigger",!0).forEach(function(t){if(!t[c_]){var n=r._engine.fetchNamespacesByElement(t);n.size?n.forEach(function(n){return n.triggerLeaveAnimation(t,e,!1,!0)}):r.clearElementCache(t)}})},t.prototype.triggerLeaveAnimation=function(t,e,n,r){var i=this,o=this._engine.statesByElement.get(t);if(o){var s=[];if(Object.keys(o).forEach(function(e){if(i._triggers[e]){var n=i.trigger(t,e,"void",r);n&&s.push(n)}}),s.length)return this._engine.markElementAsRemoved(this.id,t,!0,e),n&&jg(s).onDone(function(){return i._engine.processLeaveNode(t)}),!0}return!1},t.prototype.prepareLeaveAnimationListeners=function(t){var e=this,n=this._elementListeners.get(t);if(n){var r=new Set;n.forEach(function(n){var i=n.name;if(!r.has(i)){r.add(i);var o=e._triggers[i].fallbackTransition,s=e._engine.statesByElement.get(t)[i]||p_,a=new h_("void"),u=new m_(e.id,i,t);e._engine.totalQueuedPlayers++,e._queue.push({element:t,triggerName:i,transition:o,fromState:s,toState:a,player:u,isFallbackTransition:!0})}})}},t.prototype.removeNode=function(t,e){var n=this,r=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e,!0),!this.triggerLeaveAnimation(t,e,!0)){var i=!1;if(r.totalAnimations){var o=r.players.length?r.playersByQueriedElement.get(t):[];if(o&&o.length)i=!0;else for(var s=t;s=s.parentNode;)if(r.statesByElement.get(s)){i=!0;break}}this.prepareLeaveAnimationListeners(t),i?r.markElementAsRemoved(this.id,t,!1,e):(r.afterFlush(function(){return n.clearElementCache(t)}),r.destroyInnerAnimations(t),r._onRemovalComplete(t,e))}},t.prototype.insertNode=function(t,e){w_(t,this._hostClassName)},t.prototype.drainQueuedTransitions=function(t){var e=this,n=[];return this._queue.forEach(function(r){var i=r.player;if(!i.destroyed){var o=r.element,s=e._elementListeners.get(o);s&&s.forEach(function(e){if(e.name==r.triggerName){var n=Bg(o,r.triggerName,r.fromState.value,r.toState.value);n._data=t,Vg(r.player,e.phase,n,e.callback)}}),i.markedForDestroy?e._engine.afterFlush(function(){i.destroy()}):n.push(r)}}),this._queue=[],n.sort(function(t,n){var r=t.transition.ast.depCount,i=n.transition.ast.depCount;return 0==r||0==i?r-i:e._engine.driver.containsElement(t.element,n.element)?1:-1})},t.prototype.destroy=function(t){this.players.forEach(function(t){return t.destroy()}),this._signalRemovalForInnerTriggers(this.hostElement,t)},t.prototype.elementContainsData=function(t){var e=!1;return this._elementListeners.has(t)&&(e=!0),!!this._queue.find(function(e){return e.element===t})||e},t}(),d_=function(){function t(t,e,n){this.bodyNode=t,this.driver=e,this._normalizer=n,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=function(t,e){}}return t.prototype._onRemovalComplete=function(t,e){this.onRemovalComplete(t,e)},Object.defineProperty(t.prototype,"queuedPlayers",{get:function(){var t=[];return this._namespaceList.forEach(function(e){e.players.forEach(function(e){e.queued&&t.push(e)})}),t},enumerable:!0,configurable:!0}),t.prototype.createNamespace=function(t,e){var n=new f_(t,e,this);return e.parentNode?this._balanceNamespaceList(n,e):(this.newHostElements.set(e,n),this.collectEnterElement(e)),this._namespaceLookup[t]=n},t.prototype._balanceNamespaceList=function(t,e){var n=this._namespaceList.length-1;if(n>=0){for(var r=!1,i=n;i>=0;i--)if(this.driver.containsElement(this._namespaceList[i].hostElement,e)){this._namespaceList.splice(i+1,0,t),r=!0;break}r||this._namespaceList.splice(0,0,t)}else this._namespaceList.push(t);return this.namespacesByHostElement.set(e,t),t},t.prototype.register=function(t,e){var n=this._namespaceLookup[t];return n||(n=this.createNamespace(t,e)),n},t.prototype.registerTrigger=function(t,e,n){var r=this._namespaceLookup[t];r&&r.register(e,n)&&this.totalAnimations++},t.prototype.destroy=function(t,e){var n=this;if(t){var r=this._fetchNamespace(t);this.afterFlush(function(){n.namespacesByHostElement.delete(r.hostElement),delete n._namespaceLookup[t];var e=n._namespaceList.indexOf(r);e>=0&&n._namespaceList.splice(e,1)}),this.afterFlushAnimationsDone(function(){return r.destroy(e)})}},t.prototype._fetchNamespace=function(t){return this._namespaceLookup[t]},t.prototype.fetchNamespacesByElement=function(t){var e=new Set,n=this.statesByElement.get(t);if(n)for(var r=Object.keys(n),i=0;i<r.length;i++){var o=n[r[i]].namespaceId;if(o){var s=this._fetchNamespace(o);s&&e.add(s)}}return e},t.prototype.trigger=function(t,e,n,r){if(y_(e)){var i=this._fetchNamespace(t);if(i)return i.trigger(e,n,r),!0}return!1},t.prototype.insertNode=function(t,e,n,r){if(y_(e)){var i=e[c_];if(i&&i.setForRemoval){i.setForRemoval=!1,i.setForMove=!0;var o=this.collectedLeaveElements.indexOf(e);o>=0&&this.collectedLeaveElements.splice(o,1)}if(t){var s=this._fetchNamespace(t);s&&s.insertNode(e,n)}r&&this.collectEnterElement(e)}},t.prototype.collectEnterElement=function(t){this.collectedEnterElements.push(t)},t.prototype.markElementAsDisabled=function(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),w_(t,"ng-animate-disabled")):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),E_(t,"ng-animate-disabled"))},t.prototype.removeNode=function(t,e,n){if(y_(e)){var r=t?this._fetchNamespace(t):null;r?r.removeNode(e,n):this.markElementAsRemoved(t,e,!1,n)}else this._onRemovalComplete(e,n)},t.prototype.markElementAsRemoved=function(t,e,n,r){this.collectedLeaveElements.push(e),e[c_]={namespaceId:t,setForRemoval:r,hasAnimation:n,removedBeforeQueried:!1}},t.prototype.listen=function(t,e,n,r,i){return y_(e)?this._fetchNamespace(t).listen(e,n,r,i):function(){}},t.prototype._buildInstruction=function(t,e,n,r,i){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,n,r,t.fromState.options,t.toState.options,e,i)},t.prototype.destroyInnerAnimations=function(t){var e=this,n=this.driver.query(t,".ng-trigger",!0);n.forEach(function(t){return e.destroyActiveAnimationsForElement(t)}),0!=this.playersByQueriedElement.size&&(n=this.driver.query(t,".ng-animating",!0)).forEach(function(t){return e.finishActiveQueriedAnimationOnElement(t)})},t.prototype.destroyActiveAnimationsForElement=function(t){var e=this.playersByElement.get(t);e&&e.forEach(function(t){t.queued?t.markedForDestroy=!0:t.destroy()})},t.prototype.finishActiveQueriedAnimationOnElement=function(t){var e=this.playersByQueriedElement.get(t);e&&e.forEach(function(t){return t.finish()})},t.prototype.whenRenderingDone=function(){var t=this;return new Promise(function(e){if(t.players.length)return jg(t.players).onDone(function(){return e()});e()})},t.prototype.processLeaveNode=function(t){var e=this,n=t[c_];if(n&&n.setForRemoval){if(t[c_]=u_,n.namespaceId){this.destroyInnerAnimations(t);var r=this._fetchNamespace(n.namespaceId);r&&r.clearElementCache(t)}this._onRemovalComplete(t,n.setForRemoval)}this.driver.matchesElement(t,".ng-animate-disabled")&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(function(t){e.markElementAsDisabled(t,!1)})},t.prototype.flush=function(t){var e=this;void 0===t&&(t=-1);var n=[];if(this.newHostElements.size&&(this.newHostElements.forEach(function(t,n){return e._balanceNamespaceList(t,n)}),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(var r=0;r<this.collectedEnterElements.length;r++)w_(this.collectedEnterElements[r],"ng-star-inserted");if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){var i=[];try{n=this._flushAnimations(i,t)}finally{for(r=0;r<i.length;r++)i[r]()}}else for(r=0;r<this.collectedLeaveElements.length;r++)this.processLeaveNode(this.collectedLeaveElements[r]);if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(function(t){return t()}),this._flushFns=[],this._whenQuietFns.length){var o=this._whenQuietFns;this._whenQuietFns=[],n.length?jg(n).onDone(function(){o.forEach(function(t){return t()})}):o.forEach(function(t){return t()})}},t.prototype.reportError=function(t){throw new Error("Unable to process animations due to the following failed trigger transitions\n "+t.join("\n"))},t.prototype._flushAnimations=function(t,e){var n=this,i=new Uv,o=[],s=new Map,a=[],u=new Map,l=new Map,c=new Map,h=new Set;this.disabledNodes.forEach(function(t){h.add(t);for(var e=n.driver.query(t,".ng-animate-queued",!0),r=0;r<e.length;r++)h.add(e[r])});var p=this.bodyNode,f=Array.from(this.statesByElement.keys()),d=__(f,this.collectedEnterElements),m=new Map,y=0;d.forEach(function(t,e){var n="ng-enter"+y++;m.set(e,n),t.forEach(function(t){return w_(t,n)})});for(var g=[],v=new Set,_=new Set,b=0;b<this.collectedLeaveElements.length;b++)(F=(L=this.collectedLeaveElements[b])[c_])&&F.setForRemoval&&(g.push(L),v.add(L),F.hasAnimation?this.driver.query(L,".ng-star-inserted",!0).forEach(function(t){return v.add(t)}):_.add(L));var w=new Map,E=__(f,Array.from(v));E.forEach(function(t,e){var n="ng-leave"+y++;w.set(e,n),t.forEach(function(t){return w_(t,n)})}),t.push(function(){d.forEach(function(t,e){var n=m.get(e);t.forEach(function(t){return E_(t,n)})}),E.forEach(function(t,e){var n=w.get(e);t.forEach(function(t){return E_(t,n)})}),g.forEach(function(t){n.processLeaveNode(t)})});for(var S=[],C=[],T=this._namespaceList.length-1;T>=0;T--)this._namespaceList[T].drainQueuedTransitions(e).forEach(function(t){var e=t.player,r=t.element;if(S.push(e),n.collectedEnterElements.length){var s=r[c_];if(s&&s.setForMove)return void e.destroy()}var h=!p||!n.driver.containsElement(p,r),f=w.get(r),d=m.get(r),y=n._buildInstruction(t,i,d,f,h);if(y.errors&&y.errors.length)C.push(y);else{if(h)return e.onStart(function(){return mv(r,y.fromStyles)}),e.onDestroy(function(){return dv(r,y.toStyles)}),void o.push(e);if(t.isFallbackTransition)return e.onStart(function(){return mv(r,y.fromStyles)}),e.onDestroy(function(){return dv(r,y.toStyles)}),void o.push(e);y.timelines.forEach(function(t){return t.stretchStartingKeyframe=!0}),i.append(r,y.timelines),a.push({instruction:y,player:e,element:r}),y.queriedElements.forEach(function(t){return Hg(u,t,[]).push(e)}),y.preStyleProps.forEach(function(t,e){var n=Object.keys(t);if(n.length){var r=l.get(e);r||l.set(e,r=new Set),n.forEach(function(t){return r.add(t)})}}),y.postStyleProps.forEach(function(t,e){var n=Object.keys(t),r=c.get(e);r||c.set(e,r=new Set),n.forEach(function(t){return r.add(t)})})}});if(C.length){var I=[];C.forEach(function(t){I.push("@"+t.triggerName+" has failed due to:\n"),t.errors.forEach(function(t){return I.push("- "+t+"\n")})}),S.forEach(function(t){return t.destroy()}),this.reportError(I)}var x=new Map,k=new Map;a.forEach(function(t){var e=t.element;i.has(e)&&(k.set(e,e),n._beforeAnimationBuild(t.player.namespaceId,t.instruction,x))}),o.forEach(function(t){var e=t.element;n._getPreviousPlayers(e,!1,t.namespaceId,t.triggerName,null).forEach(function(t){Hg(x,e,[]).push(t),t.destroy()})});var A=g.filter(function(t){return C_(t,l,c)}),O=new Map;v_(O,this.driver,_,c,ga).forEach(function(t){C_(t,l,c)&&A.push(t)});var N=new Map;d.forEach(function(t,e){v_(N,n.driver,new Set(t),l,Sa)}),A.forEach(function(t){var e=O.get(t),n=N.get(t);O.set(t,Object(r.__assign)({},e,n))});var D=[],R=[],P={};a.forEach(function(t){var e=t.element,r=t.player,a=t.instruction;if(i.has(e)){if(h.has(e))return r.onDestroy(function(){return dv(e,a.toStyles)}),r.disabled=!0,r.overrideTotalTime(a.totalTime),void o.push(r);var u=P;if(k.size>1){for(var l=e,c=[];l=l.parentNode;){var p=k.get(l);if(p){u=p;break}c.push(l)}c.forEach(function(t){return k.set(t,u)})}var f=n._buildAnimation(r.namespaceId,a,x,s,N,O);if(r.setRealPlayer(f),u===P)D.push(r);else{var d=n.playersByElement.get(u);d&&d.length&&(r.parentPlayer=jg(d)),o.push(r)}}else mv(e,a.fromStyles),r.onDestroy(function(){return dv(e,a.toStyles)}),R.push(r),h.has(e)&&o.push(r)}),R.forEach(function(t){var e=s.get(t.element);if(e&&e.length){var n=jg(e);t.setRealPlayer(n)}}),o.forEach(function(t){t.parentPlayer?t.syncPlayerEvents(t.parentPlayer):t.destroy()});for(var M=0;M<g.length;M++){var L,F=(L=g[M])[c_];if(E_(L,"ng-leave"),!F||!F.hasAnimation){var j=[];if(u.size){var U=u.get(L);U&&U.length&&j.push.apply(j,Object(r.__spread)(U));for(var V=this.driver.query(L,".ng-animating",!0),q=0;q<V.length;q++){var B=u.get(V[q]);B&&B.length&&j.push.apply(j,Object(r.__spread)(B))}}var H=j.filter(function(t){return!t.destroyed});H.length?S_(this,L,H):this.processLeaveNode(L)}}return g.length=0,D.forEach(function(t){n.players.push(t),t.onDone(function(){t.destroy();var e=n.players.indexOf(t);n.players.splice(e,1)}),t.play()}),D},t.prototype.elementContainsData=function(t,e){var n=!1,r=e[c_];return r&&r.setForRemoval&&(n=!0),this.playersByElement.has(e)&&(n=!0),this.playersByQueriedElement.has(e)&&(n=!0),this.statesByElement.has(e)&&(n=!0),this._fetchNamespace(t).elementContainsData(e)||n},t.prototype.afterFlush=function(t){this._flushFns.push(t)},t.prototype.afterFlushAnimationsDone=function(t){this._whenQuietFns.push(t)},t.prototype._getPreviousPlayers=function(t,e,n,r,i){var o=[];if(e){var s=this.playersByQueriedElement.get(t);s&&(o=s)}else{var a=this.playersByElement.get(t);if(a){var u=!i||"void"==i;a.forEach(function(t){t.queued||(u||t.triggerName==r)&&o.push(t)})}}return(n||r)&&(o=o.filter(function(t){return!(n&&n!=t.namespaceId||r&&r!=t.triggerName)})),o},t.prototype._beforeAnimationBuild=function(t,e,n){var i,o,s=e.element,a=e.isRemovalTransition?void 0:t,u=e.isRemovalTransition?void 0:e.triggerName,l=function(t){var r=t.element,i=r!==s,o=Hg(n,r,[]);c._getPreviousPlayers(r,i,a,u,e.toState).forEach(function(t){var e=t.getRealPlayer();e.beforeDestroy&&e.beforeDestroy(),t.destroy(),o.push(t)})},c=this;try{for(var h=Object(r.__values)(e.timelines),p=h.next();!p.done;p=h.next())l(p.value)}catch(f){i={error:f}}finally{try{p&&!p.done&&(o=h.return)&&o.call(h)}finally{if(i)throw i.error}}mv(s,e.fromStyles)},t.prototype._buildAnimation=function(t,e,n,r,i,o){var s=this,a=e.triggerName,u=e.element,l=[],c=new Set,h=new Set,p=e.timelines.map(function(e){var p=e.element;c.add(p);var f=p[c_];if(f&&f.removedBeforeQueried)return new wa(e.duration,e.delay);var d,m,y=p!==u,g=(d=(n.get(p)||a_).map(function(t){return t.getRealPlayer()}),m=[],function t(e,n){for(var r=0;r<e.length;r++){var i=e[r];i instanceof Ea?t(i.players,n):n.push(i)}}(d,m),m).filter(function(t){return!!t.element&&t.element===p}),v=i.get(p),_=o.get(p),b=Ug(0,s._normalizer,0,e.keyframes,v,_),w=s._buildPlayer(e,b,g);if(e.subTimeline&&r&&h.add(p),y){var E=new m_(t,a,p);E.setRealPlayer(w),l.push(E)}return w});l.forEach(function(t){Hg(s.playersByQueriedElement,t.element,[]).push(t),t.onDone(function(){return function(t,e,n){var r;if(t instanceof Map){if(r=t.get(e)){if(r.length){var i=r.indexOf(n);r.splice(i,1)}0==r.length&&t.delete(e)}}else(r=t[e])&&(r.length&&(i=r.indexOf(n),r.splice(i,1)),0==r.length&&delete t[e]);return r}(s.playersByQueriedElement,t.element,t)})}),c.forEach(function(t){return w_(t,"ng-animating")});var f=jg(p);return f.onDestroy(function(){c.forEach(function(t){return E_(t,"ng-animating")}),dv(u,e.toStyles)}),h.forEach(function(t){Hg(r,t,[]).push(f)}),f},t.prototype._buildPlayer=function(t,e,n){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,n):new wa(t.duration,t.delay)},t}(),m_=function(){function t(t,e,n){this.namespaceId=t,this.triggerName=e,this.element=n,this._player=new wa,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}return t.prototype.setRealPlayer=function(t){var e=this;this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach(function(n){e._queuedCallbacks[n].forEach(function(e){return Vg(t,n,void 0,e)})}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)},t.prototype.getRealPlayer=function(){return this._player},t.prototype.overrideTotalTime=function(t){this.totalTime=t},t.prototype.syncPlayerEvents=function(t){var e=this,n=this._player;n.triggerCallback&&t.onStart(function(){return n.triggerCallback("start")}),t.onDone(function(){return e.finish()}),t.onDestroy(function(){return e.destroy()})},t.prototype._queueEvent=function(t,e){Hg(this._queuedCallbacks,t,[]).push(e)},t.prototype.onDone=function(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)},t.prototype.onStart=function(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)},t.prototype.onDestroy=function(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)},t.prototype.init=function(){this._player.init()},t.prototype.hasStarted=function(){return!this.queued&&this._player.hasStarted()},t.prototype.play=function(){!this.queued&&this._player.play()},t.prototype.pause=function(){!this.queued&&this._player.pause()},t.prototype.restart=function(){!this.queued&&this._player.restart()},t.prototype.finish=function(){this._player.finish()},t.prototype.destroy=function(){this.destroyed=!0,this._player.destroy()},t.prototype.reset=function(){!this.queued&&this._player.reset()},t.prototype.setPosition=function(t){this.queued||this._player.setPosition(t)},t.prototype.getPosition=function(){return this.queued?0:this._player.getPosition()},t.prototype.triggerCallback=function(t){var e=this._player;e.triggerCallback&&e.triggerCallback(t)},t}();function y_(t){return t&&1===t.nodeType}function g_(t,e){var n=t.style.display;return t.style.display=null!=e?e:"none",n}function v_(t,e,n,r,i){var o=[];n.forEach(function(t){return o.push(g_(t))});var s=[];r.forEach(function(n,r){var o={};n.forEach(function(t){var n=o[t]=e.computeStyle(r,t,i);n&&0!=n.length||(r[c_]=l_,s.push(r))}),t.set(r,o)});var a=0;return n.forEach(function(t){return g_(t,o[a++])}),s}function __(t,e){var n=new Map;if(t.forEach(function(t){return n.set(t,[])}),0==e.length)return n;var r=new Set(e),i=new Map;return e.forEach(function(t){var e=function t(e){if(!e)return 1;var o=i.get(e);if(o)return o;var s=e.parentNode;return o=n.has(s)?s:r.has(s)?1:t(s),i.set(e,o),o}(t);1!==e&&n.get(e).push(t)}),n}var b_="$$classes";function w_(t,e){if(t.classList)t.classList.add(e);else{var n=t[b_];n||(n=t[b_]={}),n[e]=!0}}function E_(t,e){if(t.classList)t.classList.remove(e);else{var n=t[b_];n&&delete n[e]}}function S_(t,e,n){jg(n).onDone(function(){return t.processLeaveNode(e)})}function C_(t,e,n){var r=n.get(t);if(!r)return!1;var i=e.get(t);return i?r.forEach(function(t){return i.add(t)}):e.set(t,r),n.delete(t),!0}var T_=function(){function t(t,e,n){var r=this;this.bodyNode=t,this._driver=e,this._triggerCache={},this.onRemovalComplete=function(t,e){},this._transitionEngine=new d_(t,e,n),this._timelineEngine=new s_(t,e,n),this._transitionEngine.onRemovalComplete=function(t,e){return r.onRemovalComplete(t,e)}}return t.prototype.registerTrigger=function(t,e,n,r,i){var o=t+"-"+r,s=this._triggerCache[o];if(!s){var a=[],u=Dv(this._driver,i,a);if(a.length)throw new Error('The animation trigger "'+r+'" has failed to build due to the following errors:\n - '+a.join("\n - "));s=function(t,e){return new r_(t,e)}(r,u),this._triggerCache[o]=s}this._transitionEngine.registerTrigger(e,r,s)},t.prototype.register=function(t,e){this._transitionEngine.register(t,e)},t.prototype.destroy=function(t,e){this._transitionEngine.destroy(t,e)},t.prototype.onInsert=function(t,e,n,r){this._transitionEngine.insertNode(t,e,n,r)},t.prototype.onRemove=function(t,e,n){this._transitionEngine.removeNode(t,e,n)},t.prototype.disableAnimations=function(t,e){this._transitionEngine.markElementAsDisabled(t,e)},t.prototype.process=function(t,e,n,i){if("@"==n.charAt(0)){var o=Object(r.__read)(zg(n),2);this._timelineEngine.command(o[0],e,o[1],i)}else this._transitionEngine.trigger(t,e,n,i)},t.prototype.listen=function(t,e,n,i,o){if("@"==n.charAt(0)){var s=Object(r.__read)(zg(n),2);return this._timelineEngine.listen(s[0],e,s[1],o)}return this._transitionEngine.listen(t,e,n,i,o)},t.prototype.flush=function(t){void 0===t&&(t=-1),this._transitionEngine.flush(t)},Object.defineProperty(t.prototype,"players",{get:function(){return this._transitionEngine.players.concat(this._timelineEngine.players)},enumerable:!0,configurable:!0}),t.prototype.whenRenderingDone=function(){return this._transitionEngine.whenRenderingDone()},t}();function I_(t,e){var n=null,r=null;return Array.isArray(e)&&e.length?(n=k_(e[0]),e.length>1&&(r=k_(e[e.length-1]))):e&&(n=k_(e)),n||r?new x_(t,n,r):null}var x_=function(){function t(e,n,r){this._element=e,this._startStyles=n,this._endStyles=r,this._state=0;var i=t.initialStylesByElement.get(e);i||t.initialStylesByElement.set(e,i={}),this._initialStyles=i}return t.prototype.start=function(){this._state<1&&(this._startStyles&&dv(this._element,this._startStyles,this._initialStyles),this._state=1)},t.prototype.finish=function(){this.start(),this._state<2&&(dv(this._element,this._initialStyles),this._endStyles&&(dv(this._element,this._endStyles),this._endStyles=null),this._state=1)},t.prototype.destroy=function(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(mv(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(mv(this._element,this._endStyles),this._endStyles=null),dv(this._element,this._initialStyles),this._state=3)},t.initialStylesByElement=new WeakMap,t}();function k_(t){for(var e=null,n=Object.keys(t),r=0;r<n.length;r++){var i=n[r];A_(i)&&((e=e||{})[i]=t[i])}return e}function A_(t){return"display"===t||"position"===t}var O_="animation",N_="animationend",D_=function(){function t(t,e,n,r,i,o,s){var a=this;this._element=t,this._name=e,this._duration=n,this._delay=r,this._easing=i,this._fillMode=o,this._onDoneFn=s,this._finished=!1,this._destroyed=!1,this._startTime=0,this._position=0,this._eventFn=function(t){return a._handleCallback(t)}}return t.prototype.apply=function(){var t,e,n;e=this._duration+"ms "+this._easing+" "+this._delay+"ms 1 normal "+this._fillMode+" "+this._name,(n=j_(t=this._element,"").trim()).length&&(function(t,e){for(var n=0;n<t.length;n++)","===t.charAt(n)&&0}(n),e=n+", "+e),F_(t,"",e),L_(this._element,this._eventFn,!1),this._startTime=Date.now()},t.prototype.pause=function(){R_(this._element,this._name,"paused")},t.prototype.resume=function(){R_(this._element,this._name,"running")},t.prototype.setPosition=function(t){var e=P_(this._element,this._name);this._position=t*this._duration,F_(this._element,"Delay","-"+this._position+"ms",e)},t.prototype.getPosition=function(){return this._position},t.prototype._handleCallback=function(t){var e=t._ngTestManualTimestamp||Date.now(),n=1e3*parseFloat(t.elapsedTime.toFixed(3));t.animationName==this._name&&Math.max(e-this._startTime,0)>=this._delay&&n>=this._duration&&this.finish()},t.prototype.finish=function(){this._finished||(this._finished=!0,this._onDoneFn(),L_(this._element,this._eventFn,!0))},t.prototype.destroy=function(){var t,e,n,r;this._destroyed||(this._destroyed=!0,this.finish(),e=this._name,(r=M_(n=j_(t=this._element,"").split(","),e))>=0&&(n.splice(r,1),F_(t,"",n.join(","))))},t}();function R_(t,e,n){F_(t,"PlayState",n,P_(t,e))}function P_(t,e){var n=j_(t,"");return n.indexOf(",")>0?M_(n.split(","),e):M_([n],e)}function M_(t,e){for(var n=0;n<t.length;n++)if(t[n].indexOf(e)>=0)return n;return-1}function L_(t,e,n){n?t.removeEventListener(N_,e):t.addEventListener(N_,e)}function F_(t,e,n,r){var i=O_+e;if(null!=r){var o=t.style[i];if(o.length){var s=o.split(",");s[r]=n,n=s.join(",")}}t.style[i]=n}function j_(t,e){return t.style[O_+e]}var U_="linear",V_=function(){function t(t,e,n,r,i,o,s,a){this.element=t,this.keyframes=e,this.animationName=n,this._duration=r,this._delay=i,this._finalStyles=s,this._specialStyles=a,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this.currentSnapshot={},this._state=0,this.easing=o||U_,this.totalTime=r+i,this._buildStyler()}return t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.destroy=function(){this.init(),this._state>=4||(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype._flushDoneFns=function(){this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[]},t.prototype._flushStartFns=function(){this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[]},t.prototype.finish=function(){this.init(),this._state>=3||(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())},t.prototype.setPosition=function(t){this._styler.setPosition(t)},t.prototype.getPosition=function(){return this._styler.getPosition()},t.prototype.hasStarted=function(){return this._state>=2},t.prototype.init=function(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())},t.prototype.play=function(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()},t.prototype.pause=function(){this.init(),this._styler.pause()},t.prototype.restart=function(){this.reset(),this.play()},t.prototype.reset=function(){this._styler.destroy(),this._buildStyler(),this._styler.apply()},t.prototype._buildStyler=function(){var t=this;this._styler=new D_(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",function(){return t.finish()})},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t.prototype.beforeDestroy=function(){var t=this;this.init();var e={};if(this.hasStarted()){var n=this._state>=3;Object.keys(this._finalStyles).forEach(function(r){"offset"!=r&&(e[r]=n?t._finalStyles[r]:Iv(t.element,r))})}this.currentSnapshot=e},t}(),q_=function(t){function e(e,n){var r=t.call(this)||this;return r.element=e,r._startingStyles={},r.__initialized=!1,r._styles=rv(n),r}return Object(r.__extends)(e,t),e.prototype.init=function(){var e=this;!this.__initialized&&this._startingStyles&&(this.__initialized=!0,Object.keys(this._styles).forEach(function(t){e._startingStyles[t]=e.element.style[t]}),t.prototype.init.call(this))},e.prototype.play=function(){var e=this;this._startingStyles&&(this.init(),Object.keys(this._styles).forEach(function(t){return e.element.style.setProperty(t,e._styles[t])}),t.prototype.play.call(this))},e.prototype.destroy=function(){var e=this;this._startingStyles&&(Object.keys(this._startingStyles).forEach(function(t){var n=e._startingStyles[t];n?e.element.style.setProperty(t,n):e.element.style.removeProperty(t)}),this._startingStyles=null,t.prototype.destroy.call(this))},e}(wa),B_=function(){function t(){this._count=0,this._head=document.querySelector("head"),this._warningIssued=!1}return t.prototype.validateStyleProperty=function(t){return $g(t)},t.prototype.matchesElement=function(t,e){return tv(t,e)},t.prototype.containsElement=function(t,e){return ev(t,e)},t.prototype.query=function(t,e,n){return nv(t,e,n)},t.prototype.computeStyle=function(t,e,n){return window.getComputedStyle(t)[e]},t.prototype.buildKeyframeElement=function(t,e,n){n=n.map(function(t){return rv(t)});var r="@keyframes "+e+" {\n",i="";n.forEach(function(t){i=" ";var e=parseFloat(t.offset);r+=""+i+100*e+"% {\n",i+=" ",Object.keys(t).forEach(function(e){var n=t[e];switch(e){case"offset":return;case"easing":return void(n&&(r+=i+"animation-timing-function: "+n+";\n"));default:return void(r+=""+i+e+": "+n+";\n")}}),r+=i+"}\n"}),r+="}\n";var o=document.createElement("style");return o.innerHTML=r,o},t.prototype.animate=function(t,e,n,r,i,o,s){void 0===o&&(o=[]),s&&this._notifyFaultyScrubber();var a=o.filter(function(t){return t instanceof V_}),u={};Sv(n,r)&&a.forEach(function(t){var e=t.currentSnapshot;Object.keys(e).forEach(function(t){return u[t]=e[t]})});var l=function(t){var e={};return t&&(Array.isArray(t)?t:[t]).forEach(function(t){Object.keys(t).forEach(function(n){"offset"!=n&&"easing"!=n&&(e[n]=t[n])})}),e}(e=Cv(t,e,u));if(0==n)return new q_(t,l);var c="gen_css_kf_"+this._count++,h=this.buildKeyframeElement(t,c,e);document.querySelector("head").appendChild(h);var p=I_(t,e),f=new V_(t,e,c,n,r,i,l,p);return f.onDestroy(function(){var t;(t=h).parentNode.removeChild(t)}),f},t.prototype._notifyFaultyScrubber=function(){this._warningIssued||(console.warn("@angular/animations: please load the web-animations.js polyfill to allow programmatic access...\n","  visit http://bit.ly/IWukam to learn more about using the web-animation-js polyfill."),this._warningIssued=!0)},t}(),H_=function(){function t(t,e,n,r){this.element=t,this.keyframes=e,this.options=n,this._specialStyles=r,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay}return t.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},t.prototype.init=function(){this._buildPlayer(),this._preparePlayerBeforeStart()},t.prototype._buildPlayer=function(){var t=this;if(!this._initialized){this._initialized=!0;var e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:{},this.domPlayer.addEventListener("finish",function(){return t._onFinish()})}},t.prototype._preparePlayerBeforeStart=function(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()},t.prototype._triggerWebAnimation=function(t,e,n){return t.animate(e,n)},t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.play=function(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()},t.prototype.pause=function(){this.init(),this.domPlayer.pause()},t.prototype.finish=function(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()},t.prototype.reset=function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1},t.prototype._resetDomPlayerState=function(){this.domPlayer&&this.domPlayer.cancel()},t.prototype.restart=function(){this.reset(),this.play()},t.prototype.hasStarted=function(){return this._started},t.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype.setPosition=function(t){this.domPlayer.currentTime=t*this.time},t.prototype.getPosition=function(){return this.domPlayer.currentTime/this.time},Object.defineProperty(t.prototype,"totalTime",{get:function(){return this._delay+this._duration},enumerable:!0,configurable:!0}),t.prototype.beforeDestroy=function(){var t=this,e={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(function(n){"offset"!=n&&(e[n]=t._finished?t._finalKeyframe[n]:Iv(t.element,n))}),this.currentSnapshot=e},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t}(),z_=function(){function t(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(W_().toString()),this._cssKeyframesDriver=new B_}return t.prototype.validateStyleProperty=function(t){return $g(t)},t.prototype.matchesElement=function(t,e){return tv(t,e)},t.prototype.containsElement=function(t,e){return ev(t,e)},t.prototype.query=function(t,e,n){return nv(t,e,n)},t.prototype.computeStyle=function(t,e,n){return window.getComputedStyle(t)[e]},t.prototype.overrideWebAnimationsSupport=function(t){this._isNativeImpl=t},t.prototype.animate=function(t,e,n,r,i,o,s){if(void 0===o&&(o=[]),!s&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(t,e,n,r,i,o);var a={duration:n,delay:r,fill:0==r?"both":"forwards"};i&&(a.easing=i);var u={},l=o.filter(function(t){return t instanceof H_});Sv(n,r)&&l.forEach(function(t){var e=t.currentSnapshot;Object.keys(e).forEach(function(t){return u[t]=e[t]})});var c=I_(t,e=Cv(t,e=e.map(function(t){return hv(t,!1)}),u));return new H_(t,e,a,c)},t}();function W_(){return"undefined"!=typeof window&&void 0!==window.document&&Element.prototype.animate||{}}var Q_=function(t){function e(e,n){var r=t.call(this)||this;return r._nextAnimationId=0,r._renderer=e.createRenderer(n.body,{id:"0",encapsulation:jt.None,styles:[],data:{animation:[]}}),r}return Object(r.__extends)(e,t),e.prototype.build=function(t){var e=this._nextAnimationId.toString();this._nextAnimationId++;var n=Array.isArray(t)?va(t):t;return Y_(this._renderer,null,e,"register",[n]),new K_(e,this._renderer)},e}(ma),K_=function(t){function e(e,n){var r=t.call(this)||this;return r._id=e,r._renderer=n,r}return Object(r.__extends)(e,t),e.prototype.create=function(t,e){return new G_(this._id,t,e||{},this._renderer)},e}(ya),G_=function(){function t(t,e,n,r){this.id=t,this.element=e,this._renderer=r,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",n)}return t.prototype._listen=function(t,e){return this._renderer.listen(this.element,"@@"+this.id+":"+t,e)},t.prototype._command=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return Y_(this._renderer,this.element,this.id,t,e)},t.prototype.onDone=function(t){this._listen("done",t)},t.prototype.onStart=function(t){this._listen("start",t)},t.prototype.onDestroy=function(t){this._listen("destroy",t)},t.prototype.init=function(){this._command("init")},t.prototype.hasStarted=function(){return this._started},t.prototype.play=function(){this._command("play"),this._started=!0},t.prototype.pause=function(){this._command("pause")},t.prototype.restart=function(){this._command("restart")},t.prototype.finish=function(){this._command("finish")},t.prototype.destroy=function(){this._command("destroy")},t.prototype.reset=function(){this._command("reset")},t.prototype.setPosition=function(t){this._command("setPosition",t)},t.prototype.getPosition=function(){return 0},t}();function Y_(t,e,n,r,i){return t.setProperty(e,"@@"+n+":"+r,i)}var X_=function(){function t(t,e,n){this.delegate=t,this.engine=e,this._zone=n,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),e.onRemovalComplete=function(t,e){e&&e.parentNode(t)&&e.removeChild(t.parentNode,t)}}return t.prototype.createRenderer=function(t,e){var n=this,r=this.delegate.createRenderer(t,e);if(!(t&&e&&e.data&&e.data.animation)){var i=this._rendererCache.get(r);return i||(i=new J_("",r,this.engine),this._rendererCache.set(r,i)),i}var o=e.id,s=e.id+"-"+this._currentId;return this._currentId++,this.engine.register(s,t),e.data.animation.forEach(function(e){return n.engine.registerTrigger(o,s,t,e.name,e)}),new Z_(this,s,r,this.engine)},t.prototype.begin=function(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()},t.prototype._scheduleCountTask=function(){var t=this;this.promise.then(function(){t._microtaskId++})},t.prototype.scheduleListenerCallback=function(t,e,n){var i=this;t>=0&&t<this._microtaskId?this._zone.run(function(){return e(n)}):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(function(){i._zone.run(function(){i._animationCallbacksBuffer.forEach(function(t){var e=Object(r.__read)(t,2);(0,e[0])(e[1])}),i._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([e,n]))},t.prototype.end=function(){var t=this;this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(function(){t._scheduleCountTask(),t.engine.flush(t._microtaskId)}),this.delegate.end&&this.delegate.end()},t.prototype.whenRenderingDone=function(){return this.engine.whenRenderingDone()},t}(),J_=function(){function t(t,e,n){this.namespaceId=t,this.delegate=e,this.engine=n,this.destroyNode=this.delegate.destroyNode?function(t){return e.destroyNode(t)}:null}return Object.defineProperty(t.prototype,"data",{get:function(){return this.delegate.data},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()},t.prototype.createElement=function(t,e){return this.delegate.createElement(t,e)},t.prototype.createComment=function(t){return this.delegate.createComment(t)},t.prototype.createText=function(t){return this.delegate.createText(t)},t.prototype.appendChild=function(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)},t.prototype.insertBefore=function(t,e,n){this.delegate.insertBefore(t,e,n),this.engine.onInsert(this.namespaceId,e,t,!0)},t.prototype.removeChild=function(t,e){this.engine.onRemove(this.namespaceId,e,this.delegate)},t.prototype.selectRootElement=function(t,e){return this.delegate.selectRootElement(t,e)},t.prototype.parentNode=function(t){return this.delegate.parentNode(t)},t.prototype.nextSibling=function(t){return this.delegate.nextSibling(t)},t.prototype.setAttribute=function(t,e,n,r){this.delegate.setAttribute(t,e,n,r)},t.prototype.removeAttribute=function(t,e,n){this.delegate.removeAttribute(t,e,n)},t.prototype.addClass=function(t,e){this.delegate.addClass(t,e)},t.prototype.removeClass=function(t,e){this.delegate.removeClass(t,e)},t.prototype.setStyle=function(t,e,n,r){this.delegate.setStyle(t,e,n,r)},t.prototype.removeStyle=function(t,e,n){this.delegate.removeStyle(t,e,n)},t.prototype.setProperty=function(t,e,n){"@"==e.charAt(0)&&"@.disabled"==e?this.disableAnimations(t,!!n):this.delegate.setProperty(t,e,n)},t.prototype.setValue=function(t,e){this.delegate.setValue(t,e)},t.prototype.listen=function(t,e,n){return this.delegate.listen(t,e,n)},t.prototype.disableAnimations=function(t,e){this.engine.disableAnimations(t,e)},t}(),Z_=function(t){function e(e,n,r,i){var o=t.call(this,n,r,i)||this;return o.factory=e,o.namespaceId=n,o}return Object(r.__extends)(e,t),e.prototype.setProperty=function(t,e,n){"@"==e.charAt(0)?"."==e.charAt(1)&&"@.disabled"==e?this.disableAnimations(t,n=void 0===n||!!n):this.engine.process(this.namespaceId,t,e.substr(1),n):this.delegate.setProperty(t,e,n)},e.prototype.listen=function(t,e,n){var i,o,s,a=this;if("@"==e.charAt(0)){var u=function(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(t),l=e.substr(1),c="";return"@"!=l.charAt(0)&&(l=(i=Object(r.__read)((o=l,s=o.indexOf("."),[o.substring(0,s),o.substr(s+1)]),2))[0],c=i[1]),this.engine.listen(this.namespaceId,u,l,c,function(t){a.factory.scheduleListenerCallback(t._data||-1,n,t)})}return this.delegate.listen(t,e,n)},e}(J_),$_=function(t){function e(e,n,r){return t.call(this,e.body,n,r)||this}return Object(r.__extends)(e,t),e}(T_);function tb(){return"function"==typeof W_()?new z_:new B_}function eb(){return new Xv}function nb(t,e,n){return new X_(t,e,n)}var rb=new vt("AnimationModuleType"),ib=function(){return function(){}}(),ob=mi({encapsulation:2,styles:[".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:transparent}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:0}mat-action-list button{background:0 0;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:transparent;text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:0}@media (-ms-high-contrast:active){.mat-selection-list:focus{outline-style:dotted}.mat-list-option:focus,.mat-list-option:hover,.mat-nav-list .mat-list-item:focus,.mat-nav-list .mat-list-item:hover,mat-action-list .mat-list-item:focus,mat-action-list .mat-list-item:hover{outline:dotted 1px}}@media (hover:none){.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-list-option:not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover{background:0 0}}"],data:{}});function sb(t){return ss(2,[ts(null,0)],null,null)}var ab=mi({encapsulation:2,styles:[],data:{}});function ub(t){return ss(2,[(t()(),Hi(0,0,null,null,6,"div",[["class","mat-list-item-content"]],null,null,null,null,null)),(t()(),Hi(1,0,null,null,1,"div",[["class","mat-list-item-ripple mat-ripple"],["mat-ripple",""]],[[2,"mat-ripple-unbounded",null]],null,null,null,null)),Do(2,212992,null,0,_p,[Oe,Jn,gu,[2,vp],[2,rb]],{disabled:[0,"disabled"],trigger:[1,"trigger"]},null),ts(null,0),(t()(),Hi(4,0,null,null,1,"div",[["class","mat-list-text"]],null,null,null,null,null)),ts(null,1),ts(null,2)],function(t,e){var n=e.component;t(e,2,0,n._isRippleDisabled(),n._getHostElement())},function(t,e){t(e,1,0,_o(e,2).unbounded)})}var lb="accent",cb=["mat-button","mat-flat-button","mat-icon-button","mat-raised-button","mat-stroked-button","mat-mini-fab","mat-fab"],hb=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;o._focusMonitor=r,o._animationMode=i,o.isRoundButton=o._hasHostAttributes("mat-fab","mat-mini-fab"),o.isIconButton=o._hasHostAttributes("mat-icon-button");for(var s=0,a=cb;s<a.length;s++){var u=a[s];o._hasHostAttributes(u)&&e.nativeElement.classList.add(u)}return o._focusMonitor.monitor(o._elementRef,!0),o.isRoundButton&&(o.color=lb),o}return Object(r.__extends)(e,t),e.prototype.ngOnDestroy=function(){this._focusMonitor.stopMonitoring(this._elementRef)},e.prototype.focus=function(){this._getHostElement().focus()},e.prototype._getHostElement=function(){return this._elementRef.nativeElement},e.prototype._isRippleDisabled=function(){return this.disableRipple||this.disabled},e.prototype._hasHostAttributes=function(){for(var t=this,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return e.some(function(e){return t._getHostElement().hasAttribute(e)})},e}(ep(tp(np(function(){return function(t){this._elementRef=t}}())))),pb=function(){return function(){}}(),fb=mi({encapsulation:2,styles:[".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover .mat-button-focus-overlay,.mat-stroked-button:hover .mat-button-focus-overlay{opacity:.04}@media (hover:none){.mat-button:hover .mat-button-focus-overlay,.mat-stroked-button:hover .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-flat-button,.mat-icon-button,.mat-stroked-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner{border:0}.mat-button[disabled],.mat-flat-button[disabled],.mat-icon-button[disabled],.mat-stroked-button[disabled]{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-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,.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{opacity:.12}.mat-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,0,.2,1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-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-focus-overlay,.mat-stroked-button .mat-button-ripple.mat-ripple{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,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[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;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0,0,0);transition:background .4s cubic-bezier(.25,.8,.25,1),box-shadow 280ms cubic-bezier(.4,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[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 .mat-icon,.mat-icon-button i{line-height:24px}.mat-button-focus-overlay,.mat-button-ripple.mat-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-focus-overlay{opacity:0;transition:opacity .2s cubic-bezier(.35,0,.25,1),background-color .2s cubic-bezier(.35,0,.25,1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}@media (-ms-high-contrast:active){.mat-button-focus-overlay{background-color:#fff}}@media (-ms-high-contrast:black-on-white){.mat-button-focus-overlay{background-color:#000}}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-stroked-button .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:block;font-size:inherit;width:2.5em;height:2.5em}@media (-ms-high-contrast:active){.mat-button,.mat-fab,.mat-flat-button,.mat-icon-button,.mat-mini-fab,.mat-raised-button{outline:solid 1px}}"],data:{}});function db(t){return ss(2,[Yo(402653184,1,{ripple:0}),(t()(),Hi(1,0,null,null,1,"span",[["class","mat-button-wrapper"]],null,null,null,null,null)),ts(null,0),(t()(),Hi(3,0,null,null,1,"div",[["class","mat-button-ripple mat-ripple"],["matRipple",""]],[[2,"mat-button-ripple-round",null],[2,"mat-ripple-unbounded",null]],null,null,null,null)),Do(4,212992,[[1,4]],0,_p,[Oe,Jn,gu,[2,vp],[2,rb]],{centered:[0,"centered"],disabled:[1,"disabled"],trigger:[2,"trigger"]},null),(t()(),Hi(5,0,null,null,0,"div",[["class","mat-button-focus-overlay"]],null,null,null,null,null))],function(t,e){var n=e.component;t(e,4,0,n.isIconButton,n._isRippleDisabled(),n._getHostElement())},function(t,e){var n=e.component;t(e,3,0,n.isRoundButton||n.isIconButton,_o(e,4).unbounded)})}new vt("angularfire2.realtimeDatabaseURL");var mb=function(){function t(t,e){this.zone=t,this.platformId=e}return t.prototype.schedule=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return this.zone.runGuarded(function(){return vl.schedule.apply(vl,t)})},t.prototype.keepUnstableUntilFirst=function(t){return hu(this.platformId)?new I(function(e){var n=function(){},r=Zone.current.scheduleMacroTask("firebaseZoneBlock",n,{},n,n);t.subscribe(function(t){"scheduled"===r.state&&r.invoke(),e.next(t)},function(t){"scheduled"===r.state&&r.invoke(),e.error(t)},function(){"scheduled"===r.state&&r.invoke(),e.complete()})}):t},t.prototype.runOutsideAngular=function(t){var e=this;return new I(function(n){return e.zone.runOutsideAngular(function(){return t.subscribe(function(t){return e.zone.run(function(){return n.next(t)})},function(t){return e.zone.run(function(){return n.error(t)})},function(){return e.zone.run(function(){return n.complete()})})})})},t}(),yb=function(t){return function(e){return new I(function(n){return e.subscribe(function(e){return t.run(function(){return n.next(e)})},function(e){return t.run(function(){return n.error(e)})},function(){return t.run(function(){return n.complete()})})})}},gb=n("Wcq6"),vb=n.n(gb),_b=new vt("angularfire2.app.options"),bb=new vt("angularfire2.app.nameOrConfig"),wb=function(){return function(){}}();function Eb(t,e){var n="object"==typeof e&&e||{};return n.name=n.name||"string"==typeof e&&e||"[DEFAULT]",vb.a.apps.filter(function(t){return t&&t.name===n.name})[0]||vb.a.initializeApp(t,n)}new Vt;var Sb=function(){function t(){}var e;return e=t,t.initializeApp=function(t,n){return{ngModule:e,providers:[{provide:_b,useValue:t},{provide:bb,useValue:n}]}},t}(),Cb=function(){return function(t,e,n,r){var i=this;this.zone=r;var o=new mb(r,n);this.auth=r.runOutsideAngular(function(){return Eb(t,e).auth()}),this.authState=o.keepUnstableUntilFirst(o.runOutsideAngular(new I(function(t){return{unsubscribe:i.auth.onAuthStateChanged(t)}}))),this.user=o.keepUnstableUntilFirst(o.runOutsideAngular(new I(function(t){return{unsubscribe:i.auth.onIdTokenChanged(t)}}))),this.idToken=this.user.pipe(dl(function(t){return t?J(t.getIdToken()):zu(null)})),this.idTokenResult=this.user.pipe(dl(function(t){return t?J(t.getIdTokenResult()):zu(null)}))}}(),Tb=(n("t6oF"),function(){return function(){}}());function Ib(t){return function(t){return new I(function(e){return{unsubscribe:t.onSnapshot(e)}})}(t).pipe(ht())}function xb(t){return Ib(t).pipe(K(function(t){return{payload:t,type:"query"}}))}function kb(t){return xb(t).pipe(K(function(t){return t.payload.docChanges().map(function(t){return{type:t.type,payload:t}})}))}var Ab=function(){function t(t,e,n){this.ref=t,this.query=e,this.afs=n}return t.prototype.stateChanges=function(t){return t&&0!==t.length?this.afs.scheduler.keepUnstableUntilFirst(this.afs.scheduler.runOutsideAngular(kb(this.query))).pipe(K(function(e){return e.filter(function(e){return t.indexOf(e.type)>-1})}),hl(function(t){return t.length>0})):this.afs.scheduler.keepUnstableUntilFirst(this.afs.scheduler.runOutsideAngular(kb(this.query)))},t.prototype.auditTrail=function(t){return this.stateChanges(t).pipe(Qp(function(t,e){return t.concat(e)},[]))},t.prototype.snapshotChanges=function(t){var e=function(t){return t&&0!==t.length||(t=["added","removed","modified"]),t}(t),n=function(t,e){return xb(t).pipe(K(function(t){return t.payload.docChanges()}),Qp(function(t,n){return function(t,e,n){return e.forEach(function(e){n.indexOf(e.type)>-1&&(t=function(t,e){switch(e.type){case"added":t[e.newIndex]&&t[e.newIndex].doc.id==e.doc.id||t.splice(e.newIndex,0,e);break;case"modified":null!=t[e.oldIndex]&&t[e.oldIndex].doc.id!=e.doc.id||(e.oldIndex!==e.newIndex?(t.splice(e.oldIndex,1),t.splice(e.newIndex,0,e)):t.splice(e.newIndex,1,e));break;case"removed":t[e.oldIndex]&&t[e.oldIndex].doc.id==e.doc.id&&t.splice(e.oldIndex,1)}return t}(t,e))}),t}(t,n,e)},[]),K(function(t){return t.map(function(t){return{type:t.type,payload:t}})}))}(this.query,e),r=this.afs.scheduler.runOutsideAngular(n);return this.afs.scheduler.keepUnstableUntilFirst(r)},t.prototype.valueChanges=function(){var t=xb(this.query),e=this.afs.scheduler.runOutsideAngular(t);return this.afs.scheduler.keepUnstableUntilFirst(e).pipe(K(function(t){return t.payload.docs.map(function(t){return t.data()})}))},t.prototype.get=function(t){return J(this.query.get(t)).pipe(yb(this.afs.scheduler.zone))},t.prototype.add=function(t){return this.ref.add(t)},t.prototype.doc=function(t){return new Ob(this.ref.doc(t),this.afs)},t}(),Ob=function(){function t(t,e){this.ref=t,this.afs=e}return t.prototype.set=function(t,e){return this.ref.set(t,e)},t.prototype.update=function(t){return this.ref.update(t)},t.prototype.delete=function(){return this.ref.delete()},t.prototype.collection=function(t,e){var n=Mb(this.ref.collection(t),e);return new Ab(n.ref,n.query,this.afs)},t.prototype.snapshotChanges=function(){var t=Ib(this.ref).pipe(K(function(t){return{payload:t,type:"value"}})),e=this.afs.scheduler.runOutsideAngular(t);return this.afs.scheduler.keepUnstableUntilFirst(e)},t.prototype.valueChanges=function(){return this.snapshotChanges().pipe(K(function(t){return t.payload.data()}))},t.prototype.get=function(t){return J(this.ref.get(t)).pipe(yb(this.afs.scheduler.zone))},t}(),Nb=new vt("angularfire2.enableFirestorePersistence"),Db=new vt("angularfire2.firestore.persistenceSettings"),Rb=new vt("angularfire2.firestore.settings"),Pb=parseFloat(gb.SDK_VERSION)<5.8?{timestampsInSnapshots:!0}:{};function Mb(t,e){return void 0===e&&(e=function(t){return t}),{query:e(t),ref:t}}var Lb=function(){function t(t,e,n,r,i,o,s){var a=this;this.scheduler=new mb(o,i),this.firestore=o.runOutsideAngular(function(){var n=Eb(t,e).firestore();return n.settings(r||Pb),n}),this.persistenceEnabled$=n&&cu(i)?o.runOutsideAngular(function(){try{return J(a.firestore.enablePersistence(s||void 0).then(function(){return!0},function(){return!1}))}catch(t){return zu(!1)}}):zu(!1)}return t.prototype.collection=function(t,e){var n=Mb("string"==typeof t?this.firestore.collection(t):t,e);return new Ab(n.ref,n.query,this)},t.prototype.doc=function(t){var e;return e="string"==typeof t?this.firestore.doc(t):t,new Ob(e,this)},t.prototype.createId=function(){return this.firestore.collection("_").doc().id},t}(),Fb=(n("6Joi"),function(){function t(){}var e;return e=t,t.enablePersistence=function(t){return{ngModule:e,providers:[{provide:Nb,useValue:!0},{provide:Db,useValue:t}]}},t}()),jb=n("iqUP"),Ub=function(){function t(t,e,n){var r=this;this.auth=t,this.afs=e,this.router=n,this.persistence=jb.auth.Auth.Persistence.LOCAL,this.user=this.auth.authState.pipe(dl(function(t){return t?r.afs.doc("users/"+t.uid).valueChanges():zu(null)})),this.providers={google:function(){return new jb.auth.GoogleAuthProvider},github:function(){return new jb.auth.GithubAuthProvider},facebook:function(){return new jb.auth.FacebookAuthProvider}}}return t.prototype.rawLogin=function(t,e){return r.__awaiter(this,void 0,void 0,function(){var n;return r.__generator(this,function(r){switch(r.label){case 0:return[4,this.auth.auth.signInWithEmailAndPassword(t,e)];case 1:return n=r.sent(),[2,this.updateUserData(n.user)]}})})},t.prototype.login=function(t){return r.__awaiter(this,void 0,void 0,function(){var e,n;return r.__generator(this,function(r){switch(r.label){case 0:if(r.trys.push([0,3,,4]),!this.providers[t])throw new Error("unknown provider");return[4,this.auth.auth.setPersistence(this.persistence)];case 1:return r.sent(),[4,this.auth.auth.signInWithPopup(this.providers[t]())];case 2:return e=r.sent(),this.updateUserData(e.user),[3,4];case 3:return n=r.sent(),console.error(n),[3,4];case 4:return[2]}})})},t.prototype.updateUserData=function(t){return this.afs.doc("users/"+t.uid).set({uid:t.uid,email:t.email,photoUrl:t.photoURL,displayName:t.displayName},{merge:!0})},t.prototype.updateUser=function(t,e){return this.afs.doc("users/"+t).update(e)},t.prototype.logout=function(){this.auth.auth.signOut()},t.ngInjectableDef=yt({factory:function(){return new t(Qt(Cb),Qt(Lb),Qt(vm))},token:t,providedIn:"root"}),t}(),Vb=function(){function t(t,e){this.auth=t,this.router=e}return t.prototype.ngOnInit=function(){var t=this;this.auth.user.pipe(hl(function(t){return!!t})).subscribe(function(e){return t.router.navigate(["/account"])})},t}(),qb=mi({encapsulation:0,styles:[[".avatar[_ngcontent-%COMP%]{background-size:cover}.full[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}.login-cont[_ngcontent-%COMP%]{width:40%}.auth-list-container[_ngcontent-%COMP%], .mat-card-header[_ngcontent-%COMP%], .mat-list-item[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;text-align:center;flex-direction:column}@media only screen and (max-width:700px){.login-cont[_ngcontent-%COMP%]{width:100%}}@media only screen and (max-width:400px){.login-cont[_ngcontent-%COMP%]{height:100%;display:flex;justify-content:center;align-items:center;text-align:center;flex-direction:column}}"]],data:{}});function Bb(t){return ss(0,[(t()(),Hi(0,0,null,null,0,"div",[],null,null,null,null,null))],null,null)}function Hb(t){return ss(0,[(t()(),rs(-1,null,[" //waiting for login\n"]))],null,null)}function zb(t){return ss(0,[(t()(),Hi(0,0,null,null,28,"mat-card",[["class","login-cont mat-card"]],null,null,null,oy,iy)),Do(1,49152,null,0,ey,[],null,null),(t()(),Hi(2,0,null,0,5,"mat-card-header",[["class","mat-card-header"]],null,null,null,ay,sy)),Do(3,49152,null,0,ny,[],null,null),(t()(),Hi(4,0,null,1,3,"mat-card-title",[["class","auth-title-container mat-card-title"]],null,null,null,null,null)),Do(5,16384,null,0,Zm,[],null,null),(t()(),Hi(6,0,null,null,1,"div",[["class","auth-title"]],null,null,null,null,null)),(t()(),rs(-1,null,[" Login to get started "])),(t()(),Hi(8,0,null,0,20,"mat-card-content",[["class","mat-card-content"]],null,null,null,null,null)),Do(9,16384,null,0,Jm,[],null,null),(t()(),Hi(10,0,null,null,18,"mat-list",[["class","mat-list mat-list-base"]],null,null,null,sb,ob)),Do(11,704512,null,0,Dg,[Oe],null,null),(t()(),Hi(12,0,null,0,16,"div",[["class","auth-list-container"]],null,null,null,null,null)),(t()(),Hi(13,0,null,null,7,"mat-list-item",[["class","mat-list-item"]],[[2,"mat-list-item-avatar",null],[2,"mat-list-item-with-avatar",null]],null,null,ub,ab)),Do(14,1228800,null,3,Pg,[Oe,[2,Ng],[2,Dg],Sr],null,null),Yo(603979776,1,{_lines:1}),Yo(335544320,2,{_avatar:0}),Yo(335544320,3,{_icon:0}),(t()(),Hi(18,0,null,2,2,"button",[["color","primary"],["mat-button",""],["mat-raised-button",""]],[[8,"disabled",0],[2,"_mat-animation-noopable",null]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==t.component.auth.login("google")&&r),r},db,fb)),Do(19,180224,null,0,hb,[Oe,gu,Yh,[2,rb]],{color:[0,"color"]},null),(t()(),rs(-1,0,[" Google auth "])),(t()(),Hi(21,0,null,null,7,"mat-list-item",[["class","mat-list-item"]],[[2,"mat-list-item-avatar",null],[2,"mat-list-item-with-avatar",null]],null,null,ub,ab)),Do(22,1228800,null,3,Pg,[Oe,[2,Ng],[2,Dg],Sr],null,null),Yo(603979776,4,{_lines:1}),Yo(335544320,5,{_avatar:0}),Yo(335544320,6,{_icon:0}),(t()(),Hi(26,0,null,2,2,"button",[["color","basic"],["mat-button",""],["mat-raised-button",""]],[[8,"disabled",0],[2,"_mat-animation-noopable",null]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==t.component.auth.login("github")&&r),r},db,fb)),Do(27,180224,null,0,hb,[Oe,gu,Yh,[2,rb]],{color:[0,"color"]},null),(t()(),rs(-1,0,[" Github auth "]))],function(t,e){t(e,19,0,"primary"),t(e,27,0,"basic")},function(t,e){t(e,13,0,_o(e,14)._avatar||_o(e,14)._icon,_o(e,14)._avatar||_o(e,14)._icon),t(e,18,0,_o(e,19).disabled||null,"NoopAnimations"===_o(e,19)._animationMode),t(e,21,0,_o(e,22)._avatar||_o(e,22)._icon,_o(e,22)._avatar||_o(e,22)._icon),t(e,26,0,_o(e,27).disabled||null,"NoopAnimations"===_o(e,27)._animationMode)})}function Wb(t){return ss(0,[(t()(),Hi(0,0,null,null,4,"div",[],null,null,null,null,null)),(t()(),Hi(1,0,null,null,3,"div",[["class","full"],["color","primary"]],null,null,null,null,null)),(t()(),Bi(16777216,null,null,2,null,Bb)),Do(3,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"],ngIfThen:[1,"ngIfThen"],ngIfElse:[2,"ngIfElse"]},null),Ro(131072,ou,[Sr]),(t()(),Bi(0,[["authenticated",2]],null,0,null,Hb)),(t()(),Bi(0,[["guest",2]],null,0,null,zb))],function(t,e){var n=e.component;t(e,3,0,pi(e,3,0,_o(e,4).transform(n.auth.user)),_o(e,5),_o(e,6))},null)}function Qb(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"app-login",[],null,null,null,Wb,qb)),Do(1,114688,null,0,Vb,[Ub,vm],null,null)],function(t,e){t(e,1,0)},null)}var Kb=ao("app-login",Vb,Qb,{},{},[]);function Gb(t){return Error('Unable to find icon with the name "'+t+'"')}function Yb(t){return Error("The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was \""+t+'".')}function Xb(t){return Error("The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was \""+t+'".')}var Jb=function(){return function(t){t.nodeName?this.svgElement=t:this.url=t}}(),Zb=function(){function t(t,e,n){this._httpClient=t,this._sanitizer=e,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._defaultFontSetClass="material-icons",this._document=n}return t.prototype.addSvgIcon=function(t,e){return this.addSvgIconInNamespace("",t,e)},t.prototype.addSvgIconLiteral=function(t,e){return this.addSvgIconLiteralInNamespace("",t,e)},t.prototype.addSvgIconInNamespace=function(t,e,n){return this._addSvgIconConfig(t,e,new Jb(n))},t.prototype.addSvgIconLiteralInNamespace=function(t,e,n){var r=this._sanitizer.sanitize(Fe.HTML,n);if(!r)throw Xb(n);var i=this._createSvgElementForSingleIcon(r);return this._addSvgIconConfig(t,e,new Jb(i))},t.prototype.addSvgIconSet=function(t){return this.addSvgIconSetInNamespace("",t)},t.prototype.addSvgIconSetLiteral=function(t){return this.addSvgIconSetLiteralInNamespace("",t)},t.prototype.addSvgIconSetInNamespace=function(t,e){return this._addSvgIconSetConfig(t,new Jb(e))},t.prototype.addSvgIconSetLiteralInNamespace=function(t,e){var n=this._sanitizer.sanitize(Fe.HTML,e);if(!n)throw Xb(e);var r=this._svgElementFromString(n);return this._addSvgIconSetConfig(t,new Jb(r))},t.prototype.registerFontClassAlias=function(t,e){return void 0===e&&(e=t),this._fontCssClassesByAlias.set(t,e),this},t.prototype.classNameForFontAlias=function(t){return this._fontCssClassesByAlias.get(t)||t},t.prototype.setDefaultFontSetClass=function(t){return this._defaultFontSetClass=t,this},t.prototype.getDefaultFontSetClass=function(){return this._defaultFontSetClass},t.prototype.getSvgIconFromUrl=function(t){var e=this,n=this._sanitizer.sanitize(Fe.RESOURCE_URL,t);if(!n)throw Yb(t);var r=this._cachedIconsByUrl.get(n);return r?zu($b(r)):this._loadSvgIconFromConfig(new Jb(t)).pipe(Rh(function(t){return e._cachedIconsByUrl.set(n,t)}),K(function(t){return $b(t)}))},t.prototype.getNamedSvgIcon=function(t,e){void 0===e&&(e="");var n=tw(e,t),r=this._svgIconConfigs.get(n);if(r)return this._getSvgFromConfig(r);var i=this._iconSetConfigs.get(e);return i?this._getSvgFromIconSetConfigs(t,i):_l(Gb(n))},t.prototype.ngOnDestroy=function(){this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()},t.prototype._getSvgFromConfig=function(t){return t.svgElement?zu($b(t.svgElement)):this._loadSvgIconFromConfig(t).pipe(Rh(function(e){return t.svgElement=e}),K(function(t){return $b(t)}))},t.prototype._getSvgFromIconSetConfigs=function(t,e){var n=this,r=this._extractIconWithNameFromAnySet(t,e);return r?zu(r):Xy(e.filter(function(t){return!t.svgElement}).map(function(t){return n._loadSvgIconSetFromConfig(t).pipe(Vp(function(e){var r=n._sanitizer.sanitize(Fe.RESOURCE_URL,t.url);return console.error("Loading icon set URL: "+r+" failed: "+e.message),zu(null)}))})).pipe(K(function(){var r=n._extractIconWithNameFromAnySet(t,e);if(!r)throw Gb(t);return r}))},t.prototype._extractIconWithNameFromAnySet=function(t,e){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.svgElement){var i=this._extractSvgIconFromSet(r.svgElement,t);if(i)return i}}return null},t.prototype._loadSvgIconFromConfig=function(t){var e=this;return this._fetchUrl(t.url).pipe(K(function(t){return e._createSvgElementForSingleIcon(t)}))},t.prototype._loadSvgIconSetFromConfig=function(t){var e=this;return t.svgElement?zu(t.svgElement):this._fetchUrl(t.url).pipe(K(function(n){return t.svgElement||(t.svgElement=e._svgElementFromString(n)),t.svgElement}))},t.prototype._createSvgElementForSingleIcon=function(t){var e=this._svgElementFromString(t);return this._setSvgAttributes(e),e},t.prototype._extractSvgIconFromSet=function(t,e){var n=t.querySelector("#"+e);if(!n)return null;var r=n.cloneNode(!0);if(r.removeAttribute("id"),"svg"===r.nodeName.toLowerCase())return this._setSvgAttributes(r);if("symbol"===r.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(r));var i=this._svgElementFromString("<svg></svg>");return i.appendChild(r),this._setSvgAttributes(i)},t.prototype._svgElementFromString=function(t){var e=this._document.createElement("DIV");e.innerHTML=t;var n=e.querySelector("svg");if(!n)throw Error("<svg> tag not found");return n},t.prototype._toSvgElement=function(t){for(var e=this._svgElementFromString("<svg></svg>"),n=0;n<t.childNodes.length;n++)t.childNodes[n].nodeType===this._document.ELEMENT_NODE&&e.appendChild(t.childNodes[n].cloneNode(!0));return e},t.prototype._setSvgAttributes=function(t){return t.setAttribute("fit",""),t.setAttribute("height","100%"),t.setAttribute("width","100%"),t.setAttribute("preserveAspectRatio","xMidYMid meet"),t.setAttribute("focusable","false"),t},t.prototype._fetchUrl=function(t){var e=this;if(!this._httpClient)throw Error("Could not find HttpClient provider for use with Angular Material icons. Please include the HttpClientModule from @angular/common/http in your app imports.");if(null==t)throw Error('Cannot fetch icon from URL "'+t+'".');var n=this._sanitizer.sanitize(Fe.RESOURCE_URL,t);if(!n)throw Yb(t);var r=this._inProgressUrlFetches.get(n);if(r)return r;var i=this._httpClient.get(n,{responseType:"text"}).pipe(Xp(function(){return e._inProgressUrlFetches.delete(n)}),ht());return this._inProgressUrlFetches.set(n,i),i},t.prototype._addSvgIconConfig=function(t,e,n){return this._svgIconConfigs.set(tw(t,e),n),this},t.prototype._addSvgIconSetConfig=function(t,e){var n=this._iconSetConfigs.get(t);return n?n.push(e):this._iconSetConfigs.set(t,[e]),this},t.ngInjectableDef=yt({factory:function(){return new t(Qt(xy,8),Qt(Eh),Qt(au,8))},token:t,providedIn:"root"}),t}();function $b(t){return t.cloneNode(!0)}function tw(t,e){return t+":"+e}var ew=ep(function(){return function(t){this._elementRef=t}}()),nw=new vt("mat-icon-location",{providedIn:"root",factory:function(){var t=Qt(au),e=t?t.location:null;return{getPathname:function(){return e?e.pathname+e.search:""}}}}),rw=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],iw=rw.map(function(t){return"["+t+"]"}).join(", "),ow=/^url\(['"]?#(.*?)['"]?\)$/,sw=function(t){function e(e,n,r,i){var o=t.call(this,e)||this;return o._iconRegistry=n,o._location=i,o._inline=!1,r||e.nativeElement.setAttribute("aria-hidden","true"),o}return Object(r.__extends)(e,t),Object.defineProperty(e.prototype,"inline",{get:function(){return this._inline},set:function(t){this._inline=Ca(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fontSet",{get:function(){return this._fontSet},set:function(t){this._fontSet=this._cleanupFontValue(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fontIcon",{get:function(){return this._fontIcon},set:function(t){this._fontIcon=this._cleanupFontValue(t)},enumerable:!0,configurable:!0}),e.prototype._splitIconName=function(t){if(!t)return["",""];var e=t.split(":");switch(e.length){case 1:return["",e[0]];case 2:return e;default:throw Error('Invalid icon name: "'+t+'"')}},e.prototype.ngOnChanges=function(t){var e=this,n=t.svgIcon;if(n)if(this.svgIcon){var r=this._splitIconName(this.svgIcon);this._iconRegistry.getNamedSvgIcon(r[1],r[0]).pipe(kl(1)).subscribe(function(t){return e._setSvgElement(t)},function(t){return console.log("Error retrieving icon: "+t.message)})}else n.previousValue&&this._clearSvgElement();this._usingFontIcon()&&this._updateFontIconClasses()},e.prototype.ngOnInit=function(){this._usingFontIcon()&&this._updateFontIconClasses()},e.prototype.ngAfterViewChecked=function(){var t=this._elementsWithExternalReferences;if(t&&this._location&&t.size){var e=this._location.getPathname();e!==this._previousPath&&(this._previousPath=e,this._prependPathToReferences(e))}},e.prototype.ngOnDestroy=function(){this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()},e.prototype._usingFontIcon=function(){return!this.svgIcon},e.prototype._setSvgElement=function(t){this._clearSvgElement();for(var e=t.querySelectorAll("style"),n=0;n<e.length;n++)e[n].textContent+=" ";if(this._location){var r=this._location.getPathname();this._previousPath=r,this._cacheChildrenWithExternalReferences(t),this._prependPathToReferences(r)}this._elementRef.nativeElement.appendChild(t)},e.prototype._clearSvgElement=function(){var t=this._elementRef.nativeElement,e=t.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();e--;){var n=t.childNodes[e];1===n.nodeType&&"svg"!==n.nodeName.toLowerCase()||t.removeChild(n)}},e.prototype._updateFontIconClasses=function(){if(this._usingFontIcon()){var t=this._elementRef.nativeElement,e=this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet):this._iconRegistry.getDefaultFontSetClass();e!=this._previousFontSetClass&&(this._previousFontSetClass&&t.classList.remove(this._previousFontSetClass),e&&t.classList.add(e),this._previousFontSetClass=e),this.fontIcon!=this._previousFontIconClass&&(this._previousFontIconClass&&t.classList.remove(this._previousFontIconClass),this.fontIcon&&t.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}},e.prototype._cleanupFontValue=function(t){return"string"==typeof t?t.trim().split(" ")[0]:t},e.prototype._prependPathToReferences=function(t){var e=this._elementsWithExternalReferences;e&&e.forEach(function(e,n){e.forEach(function(e){n.setAttribute(e.name,"url('"+t+"#"+e.value+"')")})})},e.prototype._cacheChildrenWithExternalReferences=function(t){for(var e=t.querySelectorAll(iw),n=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map,r=function(t){rw.forEach(function(r){var i=e[t],o=i.getAttribute(r),s=o?o.match(ow):null;if(s){var a=n.get(i);a||n.set(i,a=[]),a.push({name:r,value:s[1]})}})},i=0;i<e.length;i++)r(i)},e}(ew),aw=function(){return function(){}}(),uw=mi({encapsulation:2,styles:[".mat-icon{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}"],data:{}});function lw(t){return ss(2,[ts(null,0)],null,null)}var cw=function(){return function(){}}();function hw(t){return Error("A hint was already declared for 'align=\""+t+"\"'.")}var pw=0,fw=ep(function(){return function(t){this._elementRef=t}}(),"primary"),dw=new vt("MAT_FORM_FIELD_DEFAULT_OPTIONS"),mw=function(t){function e(e,n,r,i,o,s,a,u){var l=t.call(this,e)||this;return l._elementRef=e,l._changeDetectorRef=n,l._dir=i,l._defaults=o,l._platform=s,l._ngZone=a,l._outlineGapCalculationNeededImmediately=!1,l._outlineGapCalculationNeededOnStable=!1,l._destroyed=new D,l._showAlwaysAnimate=!1,l._subscriptAnimationState="",l._hintLabel="",l._hintLabelId="mat-hint-"+pw++,l._labelId="mat-form-field-label-"+pw++,l._labelOptions=r||{},l.floatLabel=l._labelOptions.float||"auto",l._animationsEnabled="NoopAnimations"!==u,l.appearance=o&&o.appearance?o.appearance:"legacy",l}return Object(r.__extends)(e,t),Object.defineProperty(e.prototype,"appearance",{get:function(){return this._appearance},set:function(t){var e=this._appearance;this._appearance=t||this._defaults&&this._defaults.appearance||"legacy","outline"===this._appearance&&e!==t&&this._updateOutlineGapOnStable()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hideRequiredMarker",{get:function(){return this._hideRequiredMarker},set:function(t){this._hideRequiredMarker=Ca(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_shouldAlwaysFloat",{get:function(){return"always"===this.floatLabel&&!this._showAlwaysAnimate},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_canLabelFloat",{get:function(){return"never"!==this.floatLabel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hintLabel",{get:function(){return this._hintLabel},set:function(t){this._hintLabel=t,this._processHints()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"floatLabel",{get:function(){return"legacy"!==this.appearance&&"never"===this._floatLabel?"auto":this._floatLabel},set:function(t){t!==this._floatLabel&&(this._floatLabel=t||this._labelOptions.float||"auto",this._changeDetectorRef.markForCheck())},enumerable:!0,configurable:!0}),e.prototype.getConnectedOverlayOrigin=function(){return this._connectionContainerRef||this._elementRef},e.prototype.ngAfterContentInit=function(){var t=this;this._validateControlChild();var e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add("mat-form-field-type-"+e.controlType),e.stateChanges.pipe(Qu(null)).subscribe(function(){t._validatePlaceholders(),t._syncDescribedByIds(),t._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(Ku(this._destroyed)).subscribe(function(){return t._changeDetectorRef.markForCheck()});var n=this._ngZone;n&&n.runOutsideAngular(function(){n.onStable.asObservable().pipe(Ku(t._destroyed)).subscribe(function(){t._outlineGapCalculationNeededOnStable&&t.updateOutlineGap()})}),rt(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(function(){t._updateOutlineGapOnStable(),t._changeDetectorRef.markForCheck()}),this._hintChildren.changes.pipe(Qu(null)).subscribe(function(){t._processHints(),t._changeDetectorRef.markForCheck()}),this._errorChildren.changes.pipe(Qu(null)).subscribe(function(){t._syncDescribedByIds(),t._changeDetectorRef.markForCheck()}),this._dir&&this._dir.change.pipe(Ku(this._destroyed)).subscribe(function(){return t.updateOutlineGap()})},e.prototype.ngAfterContentChecked=function(){this._validateControlChild(),this._outlineGapCalculationNeededImmediately&&this.updateOutlineGap()},e.prototype.ngAfterViewInit=function(){this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()},e.prototype.ngOnDestroy=function(){this._destroyed.next(),this._destroyed.complete()},e.prototype._shouldForward=function(t){var e=this._control?this._control.ngControl:null;return e&&e[t]},e.prototype._hasPlaceholder=function(){return!!(this._control&&this._control.placeholder||this._placeholderChild)},e.prototype._hasLabel=function(){return!!this._labelChild},e.prototype._shouldLabelFloat=function(){return this._canLabelFloat&&(this._control.shouldLabelFloat||this._shouldAlwaysFloat)},e.prototype._hideControlPlaceholder=function(){return"legacy"===this.appearance&&!this._hasLabel()||this._hasLabel()&&!this._shouldLabelFloat()},e.prototype._hasFloatingLabel=function(){return this._hasLabel()||"legacy"===this.appearance&&this._hasPlaceholder()},e.prototype._getDisplayedMessages=function(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"},e.prototype._animateAndLockLabel=function(){var t=this;this._hasFloatingLabel()&&this._canLabelFloat&&(this._animationsEnabled&&(this._showAlwaysAnimate=!0,rl(this._label.nativeElement,"transitionend").pipe(kl(1)).subscribe(function(){t._showAlwaysAnimate=!1})),this.floatLabel="always",this._changeDetectorRef.markForCheck())},e.prototype._validatePlaceholders=function(){if(this._control.placeholder&&this._placeholderChild)throw Error("Placeholder attribute and child element were both specified.")},e.prototype._processHints=function(){this._validateHints(),this._syncDescribedByIds()},e.prototype._validateHints=function(){var t,e,n=this;this._hintChildren&&this._hintChildren.forEach(function(r){if("start"===r.align){if(t||n.hintLabel)throw hw("start");t=r}else if("end"===r.align){if(e)throw hw("end");e=r}})},e.prototype._syncDescribedByIds=function(){if(this._control){var t=[];if("hint"===this._getDisplayedMessages()){var e=this._hintChildren?this._hintChildren.find(function(t){return"start"===t.align}):null,n=this._hintChildren?this._hintChildren.find(function(t){return"end"===t.align}):null;e?t.push(e.id):this._hintLabel&&t.push(this._hintLabelId),n&&t.push(n.id)}else this._errorChildren&&(t=this._errorChildren.map(function(t){return t.id}));this._control.setDescribedByIds(t)}},e.prototype._validateControlChild=function(){if(!this._control)throw Error("mat-form-field must contain a MatFormFieldControl.")},e.prototype.updateOutlineGap=function(){var t=this._label?this._label.nativeElement:null;if("outline"===this.appearance&&t&&t.children.length&&t.textContent.trim()&&(!this._platform||this._platform.isBrowser))if(document.documentElement.contains(this._elementRef.nativeElement)){var e=0,n=0,r=this._connectionContainerRef.nativeElement,i=r.querySelectorAll(".mat-form-field-outline-start"),o=r.querySelectorAll(".mat-form-field-outline-gap");if(this._label&&this._label.nativeElement.children.length){var s=r.getBoundingClientRect();if(0===s.width&&0===s.height)return this._outlineGapCalculationNeededOnStable=!0,void(this._outlineGapCalculationNeededImmediately=!1);for(var a=this._getStartEnd(s),u=this._getStartEnd(t.children[0].getBoundingClientRect()),l=0,c=0,h=t.children;c<h.length;c++)l+=h[c].offsetWidth;e=u-a-5,n=l>0?.75*l+10:0}for(var p=0;p<i.length;p++)i.item(p).style.width=e+"px";for(p=0;p<o.length;p++)o.item(p).style.width=n+"px";this._outlineGapCalculationNeededOnStable=this._outlineGapCalculationNeededImmediately=!1}else this._outlineGapCalculationNeededImmediately=!0},e.prototype._getStartEnd=function(t){return this._dir&&"rtl"===this._dir.value?t.right:t.left},e.prototype._updateOutlineGapOnStable=function(){var t=this;this._ngZone?this._outlineGapCalculationNeededOnStable=!0:Promise.resolve().then(function(){return t.updateOutlineGap()})},e}(fw),yw=function(){return function(){}}(),gw=mi({encapsulation:2,styles:[".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none;position:relative}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0;width:180px}@media (-ms-high-contrast:active){.mat-form-field-infix{border-image:linear-gradient(transparent,transparent)}}.mat-form-field-label-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}[dir=rtl] .mat-form-field-label-wrapper{left:auto;right:0}.mat-form-field-label{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0;transition:transform .4s cubic-bezier(.25,.8,.25,1),color .4s cubic-bezier(.25,.8,.25,1),width .4s cubic-bezier(.25,.8,.25,1);display:none}[dir=rtl] .mat-form-field-label{transform-origin:100% 0;left:auto;right:0}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-empty.mat-form-field-label{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:block;transition:none}.mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float .mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:block}.mat-form-field-label:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;width:100%;pointer-events:none;transform:scaleY(1.0001)}.mat-form-field-ripple{position:absolute;left:0;width:100%;transform-origin:50%;transform:scaleX(.5);opacity:0;transition:background-color .3s cubic-bezier(.55,0,.55,.2)}.mat-form-field.mat-focused .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple{opacity:1;transform:scaleX(1);transition:transform .3s cubic-bezier(.25,.8,.25,1),opacity .1s cubic-bezier(.25,.8,.25,1),background-color .3s cubic-bezier(.25,.8,.25,1)}.mat-form-field-subscript-wrapper{position:absolute;box-sizing:border-box;width:100%;overflow:hidden}.mat-form-field-label-wrapper .mat-icon,.mat-form-field-subscript-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block}.mat-form-field-control-wrapper{position:relative}.mat-form-field._mat-animation-noopable .mat-form-field-label,.mat-form-field._mat-animation-noopable .mat-form-field-ripple{transition:none}",".mat-form-field-appearance-fill .mat-form-field-flex{border-radius:4px 4px 0 0;padding:.75em .75em 0 .75em}@media (-ms-high-contrast:active){.mat-form-field-appearance-fill .mat-form-field-flex{outline:solid 1px}}.mat-form-field-appearance-fill .mat-form-field-underline::before{content:'';display:block;position:absolute;bottom:0;height:1px;width:100%}.mat-form-field-appearance-fill .mat-form-field-ripple{bottom:0;height:2px}@media (-ms-high-contrast:active){.mat-form-field-appearance-fill .mat-form-field-ripple{height:0;border-top:solid 2px}}.mat-form-field-appearance-fill:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-fill._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}.mat-form-field-appearance-fill .mat-form-field-subscript-wrapper{padding:0 1em}",".mat-input-element{font:inherit;background:0 0;color:currentColor;border:none;outline:0;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom;text-align:inherit}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::-ms-clear,.mat-input-element::-ms-reveal{display:none}.mat-input-element,.mat-input-element::-webkit-search-cancel-button,.mat-input-element::-webkit-search-decoration,.mat-input-element::-webkit-search-results-button,.mat-input-element::-webkit-search-results-decoration{-webkit-appearance:none}.mat-input-element::-webkit-caps-lock-indicator,.mat-input-element::-webkit-contacts-auto-fill-button,.mat-input-element::-webkit-credentials-auto-fill-button{visibility:hidden}.mat-input-element[type=date]::after,.mat-input-element[type=datetime-local]::after,.mat-input-element[type=datetime]::after,.mat-input-element[type=month]::after,.mat-input-element[type=time]::after,.mat-input-element[type=week]::after{content:' ';white-space:pre;width:1px}.mat-input-element::-webkit-calendar-picker-indicator,.mat-input-element::-webkit-clear-button,.mat-input-element::-webkit-inner-spin-button{font-size:.75em}.mat-input-element::placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element::-moz-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element::-webkit-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-input-element:-ms-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:color .4s .133s cubic-bezier(.25,.8,.25,1)}.mat-form-field-hide-placeholder .mat-input-element::placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{color:transparent!important;-webkit-text-fill-color:transparent;transition:none}textarea.mat-input-element{resize:vertical;overflow:auto}textarea.mat-input-element.cdk-textarea-autosize{resize:none}textarea.mat-input-element{padding:2px 0;margin:-2px 0}select.mat-input-element{-moz-appearance:none;-webkit-appearance:none;position:relative;background-color:transparent;display:inline-flex;box-sizing:border-box;padding-top:1em;top:-1em;margin-bottom:-1em}select.mat-input-element::-ms-expand{display:none}select.mat-input-element::-moz-focus-inner{border:0}select.mat-input-element:not(:disabled){cursor:pointer}select.mat-input-element::-ms-value{color:inherit;background:0 0}@media (-ms-high-contrast:active){.mat-focused select.mat-input-element::-ms-value{color:inherit}}.mat-form-field-type-mat-native-select .mat-form-field-infix::after{content:'';width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;position:absolute;top:50%;right:0;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-form-field-type-mat-native-select .mat-form-field-infix::after{right:auto;left:0}.mat-form-field-type-mat-native-select .mat-input-element{padding-right:15px}[dir=rtl] .mat-form-field-type-mat-native-select .mat-input-element{padding-right:0;padding-left:15px}.mat-form-field-type-mat-native-select .mat-form-field-label-wrapper{max-width:calc(100% - 10px)}.mat-form-field-type-mat-native-select.mat-form-field-appearance-outline .mat-form-field-infix::after{margin-top:-5px}.mat-form-field-type-mat-native-select.mat-form-field-appearance-fill .mat-form-field-infix::after{margin-top:-10px}",".mat-form-field-appearance-legacy .mat-form-field-label{transform:perspective(100px);-ms-transform:none}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-appearance-legacy .mat-form-field-underline{height:1px}@media (-ms-high-contrast:active){.mat-form-field-appearance-legacy .mat-form-field-underline{height:0;border-top:solid 1px}}.mat-form-field-appearance-legacy .mat-form-field-ripple{top:0;height:2px;overflow:hidden}@media (-ms-high-contrast:active){.mat-form-field-appearance-legacy .mat-form-field-ripple{height:0;border-top:solid 2px}}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}@media (-ms-high-contrast:active){.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}}.mat-form-field-appearance-legacy.mat-form-field-invalid:not(.mat-focused) .mat-form-field-ripple{height:1px}",".mat-form-field-appearance-outline .mat-form-field-wrapper{margin:.25em 0}.mat-form-field-appearance-outline .mat-form-field-flex{padding:0 .75em 0 .75em;margin-top:-.25em;position:relative}.mat-form-field-appearance-outline .mat-form-field-prefix,.mat-form-field-appearance-outline .mat-form-field-suffix{top:.25em}.mat-form-field-appearance-outline .mat-form-field-outline{display:flex;position:absolute;top:.25em;left:0;right:0;bottom:0;pointer-events:none}.mat-form-field-appearance-outline .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-start{border:1px solid currentColor;min-width:5px}.mat-form-field-appearance-outline .mat-form-field-outline-start{border-radius:5px 0 0 5px;border-right-style:none}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-start{border-right-style:solid;border-left-style:none;border-radius:0 5px 5px 0}.mat-form-field-appearance-outline .mat-form-field-outline-end{border-radius:0 5px 5px 0;border-left-style:none;flex-grow:1}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-end{border-left-style:solid;border-right-style:none;border-radius:5px 0 0 5px}.mat-form-field-appearance-outline .mat-form-field-outline-gap{border-radius:.000001px;border:1px solid currentColor;border-left-style:none;border-right-style:none}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-outline-gap{border-top-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline-thick{opacity:0}.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-gap,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-start{border-width:2px;transition:border-color .3s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline{opacity:0;transition:opacity .1s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline{opacity:0;transition:opacity .6s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:0 1em}.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-end,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-gap,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-start,.mat-form-field-appearance-outline._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-outline{transition:none}",".mat-form-field-appearance-standard .mat-form-field-flex{padding-top:.75em}.mat-form-field-appearance-standard .mat-form-field-underline{height:1px}@media (-ms-high-contrast:active){.mat-form-field-appearance-standard .mat-form-field-underline{height:0;border-top:solid 1px}}.mat-form-field-appearance-standard .mat-form-field-ripple{bottom:0;height:2px}@media (-ms-high-contrast:active){.mat-form-field-appearance-standard .mat-form-field-ripple{height:0;border-top:2px}}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:transparent}@media (-ms-high-contrast:active){.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}}.mat-form-field-appearance-standard:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.25,.8,.25,1)}.mat-form-field-appearance-standard._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}"],data:{animation:[{type:7,name:"transitionMessages",definitions:[{type:0,name:"enter",styles:{type:6,styles:{opacity:1,transform:"translateY(0%)"},offset:null},options:void 0},{type:1,expr:"void => enter",animation:[{type:6,styles:{opacity:0,transform:"translateY(-100%)"},offset:null},{type:4,styles:null,timings:"300ms cubic-bezier(0.55, 0, 0.55, 0.2)"}],options:null}],options:{}}]}});function vw(t){return ss(0,[(t()(),Hi(0,0,null,null,8,null,null,null,null,null,null,null)),(t()(),Hi(1,0,null,null,3,"div",[["class","mat-form-field-outline"]],null,null,null,null,null)),(t()(),Hi(2,0,null,null,0,"div",[["class","mat-form-field-outline-start"]],null,null,null,null,null)),(t()(),Hi(3,0,null,null,0,"div",[["class","mat-form-field-outline-gap"]],null,null,null,null,null)),(t()(),Hi(4,0,null,null,0,"div",[["class","mat-form-field-outline-end"]],null,null,null,null,null)),(t()(),Hi(5,0,null,null,3,"div",[["class","mat-form-field-outline mat-form-field-outline-thick"]],null,null,null,null,null)),(t()(),Hi(6,0,null,null,0,"div",[["class","mat-form-field-outline-start"]],null,null,null,null,null)),(t()(),Hi(7,0,null,null,0,"div",[["class","mat-form-field-outline-gap"]],null,null,null,null,null)),(t()(),Hi(8,0,null,null,0,"div",[["class","mat-form-field-outline-end"]],null,null,null,null,null))],null,null)}function _w(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"div",[["class","mat-form-field-prefix"]],null,null,null,null,null)),ts(null,0)],null,null)}function bw(t){return ss(0,[(t()(),Hi(0,0,null,null,2,null,null,null,null,null,null,null)),ts(null,2),(t()(),rs(2,null,["",""]))],null,function(t,e){t(e,2,0,e.component._control.placeholder)})}function ww(t){return ss(0,[ts(null,3),(t()(),Bi(0,null,null,0))],null,null)}function Ew(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"span",[["aria-hidden","true"],["class","mat-placeholder-required mat-form-field-required-marker"]],null,null,null,null,null)),(t()(),rs(-1,null,["\xa0*"]))],null,null)}function Sw(t){return ss(0,[(t()(),Hi(0,0,[[4,0],["label",1]],null,8,"label",[["class","mat-form-field-label"]],[[8,"id",0],[1,"for",0],[1,"aria-owns",0],[2,"mat-empty",null],[2,"mat-form-field-empty",null],[2,"mat-accent",null],[2,"mat-warn",null]],[[null,"cdkObserveContent"]],function(t,e,n){var r=!0;return"cdkObserveContent"===e&&(r=!1!==t.component.updateOutlineGap()&&r),r},null,null)),Do(1,16384,null,0,tu,[],{ngSwitch:[0,"ngSwitch"]},null),Do(2,1196032,null,0,_c,[vc,Oe,Jn],{disabled:[0,"disabled"]},{event:"cdkObserveContent"}),(t()(),Bi(16777216,null,null,1,null,bw)),Do(4,278528,null,0,eu,[wr,pn,tu],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),Bi(16777216,null,null,1,null,ww)),Do(6,278528,null,0,eu,[wr,pn,tu],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),Bi(16777216,null,null,1,null,Ew)),Do(8,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n._hasLabel()),t(e,2,0,"outline"!=n.appearance),t(e,4,0,!1),t(e,6,0,!0),t(e,8,0,!n.hideRequiredMarker&&n._control.required&&!n._control.disabled)},function(t,e){var n=e.component;t(e,0,0,n._labelId,n._control.id,n._control.id,n._control.empty&&!n._shouldAlwaysFloat,n._control.empty&&!n._shouldAlwaysFloat,"accent"==n.color,"warn"==n.color)})}function Cw(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"div",[["class","mat-form-field-suffix"]],null,null,null,null,null)),ts(null,4)],null,null)}function Tw(t){return ss(0,[(t()(),Hi(0,0,[[1,0],["underline",1]],null,1,"div",[["class","mat-form-field-underline"]],null,null,null,null,null)),(t()(),Hi(1,0,null,null,0,"span",[["class","mat-form-field-ripple"]],[[2,"mat-accent",null],[2,"mat-warn",null]],null,null,null,null))],null,function(t,e){var n=e.component;t(e,1,0,"accent"==n.color,"warn"==n.color)})}function Iw(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"div",[],[[24,"@transitionMessages",0]],null,null,null,null)),ts(null,5)],null,function(t,e){t(e,0,0,e.component._subscriptAnimationState)})}function xw(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"div",[["class","mat-hint"]],[[8,"id",0]],null,null,null,null)),(t()(),rs(1,null,["",""]))],null,function(t,e){var n=e.component;t(e,0,0,n._hintLabelId),t(e,1,0,n.hintLabel)})}function kw(t){return ss(0,[(t()(),Hi(0,0,null,null,5,"div",[["class","mat-form-field-hint-wrapper"]],[[24,"@transitionMessages",0]],null,null,null,null)),(t()(),Bi(16777216,null,null,1,null,xw)),Do(2,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),ts(null,6),(t()(),Hi(4,0,null,null,0,"div",[["class","mat-form-field-hint-spacer"]],null,null,null,null,null)),ts(null,7)],function(t,e){t(e,2,0,e.component.hintLabel)},function(t,e){t(e,0,0,e.component._subscriptAnimationState)})}function Aw(t){return ss(2,[Yo(671088640,1,{underlineRef:0}),Yo(402653184,2,{_connectionContainerRef:0}),Yo(402653184,3,{_inputContainerRef:0}),Yo(671088640,4,{_label:0}),(t()(),Hi(4,0,null,null,20,"div",[["class","mat-form-field-wrapper"]],null,null,null,null,null)),(t()(),Hi(5,0,[[2,0],["connectionContainer",1]],null,11,"div",[["class","mat-form-field-flex"]],null,[[null,"click"]],function(t,e,n){var r=!0,i=t.component;return"click"===e&&(r=!1!==(i._control.onContainerClick&&i._control.onContainerClick(n))&&r),r},null,null)),(t()(),Bi(16777216,null,null,1,null,vw)),Do(7,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),(t()(),Bi(16777216,null,null,1,null,_w)),Do(9,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),(t()(),Hi(10,0,[[3,0],["inputContainer",1]],null,4,"div",[["class","mat-form-field-infix"]],null,null,null,null,null)),ts(null,1),(t()(),Hi(12,0,null,null,2,"span",[["class","mat-form-field-label-wrapper"]],null,null,null,null,null)),(t()(),Bi(16777216,null,null,1,null,Sw)),Do(14,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),(t()(),Bi(16777216,null,null,1,null,Cw)),Do(16,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),(t()(),Bi(16777216,null,null,1,null,Tw)),Do(18,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),(t()(),Hi(19,0,null,null,5,"div",[["class","mat-form-field-subscript-wrapper"]],null,null,null,null,null)),Do(20,16384,null,0,tu,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),Bi(16777216,null,null,1,null,Iw)),Do(22,278528,null,0,eu,[wr,pn,tu],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),Bi(16777216,null,null,1,null,kw)),Do(24,278528,null,0,eu,[wr,pn,tu],{ngSwitchCase:[0,"ngSwitchCase"]},null)],function(t,e){var n=e.component;t(e,7,0,"outline"==n.appearance),t(e,9,0,n._prefixChildren.length),t(e,14,0,n._hasFloatingLabel()),t(e,16,0,n._suffixChildren.length),t(e,18,0,"outline"!=n.appearance),t(e,20,0,n._getDisplayedMessages()),t(e,22,0,"error"),t(e,24,0,"hint")},null)}var Ow=wu({passive:!0}),Nw=function(){function t(t,e){this._platform=t,this._ngZone=e,this._monitoredElements=new Map}return t.prototype.monitor=function(t){var e=this;if(!this._platform.isBrowser)return Bu;var n=ka(t),r=this._monitoredElements.get(n);if(r)return r.subject.asObservable();var i=new D,o="cdk-text-field-autofilled",s=function(t){"cdk-text-field-autofill-start"!==t.animationName||n.classList.contains(o)?"cdk-text-field-autofill-end"===t.animationName&&n.classList.contains(o)&&(n.classList.remove(o),e._ngZone.run(function(){return i.next({target:t.target,isAutofilled:!1})})):(n.classList.add(o),e._ngZone.run(function(){return i.next({target:t.target,isAutofilled:!0})}))};return this._ngZone.runOutsideAngular(function(){n.addEventListener("animationstart",s,Ow),n.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(n,{subject:i,unlisten:function(){n.removeEventListener("animationstart",s,Ow)}}),i.asObservable()},t.prototype.stopMonitoring=function(t){var e=ka(t),n=this._monitoredElements.get(e);n&&(n.unlisten(),n.subject.complete(),e.classList.remove("cdk-text-field-autofill-monitored"),e.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(e))},t.prototype.ngOnDestroy=function(){var t=this;this._monitoredElements.forEach(function(e,n){return t.stopMonitoring(n)})},t.ngInjectableDef=yt({factory:function(){return new t(Qt(gu),Qt(Jn))},token:t,providedIn:"root"}),t}(),Dw=function(){function t(t,e,n){this._elementRef=t,this._platform=e,this._ngZone=n,this._destroyed=new D,this._enabled=!0,this._previousMinRows=-1,this._textareaElement=this._elementRef.nativeElement}return Object.defineProperty(t.prototype,"minRows",{get:function(){return this._minRows},set:function(t){this._minRows=t,this._setMinHeight()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxRows",{get:function(){return this._maxRows},set:function(t){this._maxRows=t,this._setMaxHeight()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return this._enabled},set:function(t){t=Ca(t),this._enabled!==t&&((this._enabled=t)?this.resizeToFitContent(!0):this.reset())},enumerable:!0,configurable:!0}),t.prototype._setMinHeight=function(){var t=this.minRows&&this._cachedLineHeight?this.minRows*this._cachedLineHeight+"px":null;t&&(this._textareaElement.style.minHeight=t)},t.prototype._setMaxHeight=function(){var t=this.maxRows&&this._cachedLineHeight?this.maxRows*this._cachedLineHeight+"px":null;t&&(this._textareaElement.style.maxHeight=t)},t.prototype.ngAfterViewInit=function(){var t=this;this._platform.isBrowser&&(this._initialHeight=this._textareaElement.style.height,this.resizeToFitContent(),this._ngZone.runOutsideAngular(function(){rl(window,"resize").pipe(cl(16),Ku(t._destroyed)).subscribe(function(){return t.resizeToFitContent(!0)})}))},t.prototype.ngOnDestroy=function(){this._destroyed.next(),this._destroyed.complete()},t.prototype._cacheTextareaLineHeight=function(){if(!this._cachedLineHeight){var t=this._textareaElement.cloneNode(!1);t.rows=1,t.style.position="absolute",t.style.visibility="hidden",t.style.border="none",t.style.padding="0",t.style.height="",t.style.minHeight="",t.style.maxHeight="",t.style.overflow="hidden",this._textareaElement.parentNode.appendChild(t),this._cachedLineHeight=t.clientHeight,this._textareaElement.parentNode.removeChild(t),this._setMinHeight(),this._setMaxHeight()}},t.prototype.ngDoCheck=function(){this._platform.isBrowser&&this.resizeToFitContent()},t.prototype.resizeToFitContent=function(t){var e=this;if(void 0===t&&(t=!1),this._enabled&&(this._cacheTextareaLineHeight(),this._cachedLineHeight)){var n=this._elementRef.nativeElement,r=n.value;if(t||this._minRows!==this._previousMinRows||r!==this._previousValue){var i=n.placeholder;n.classList.add("cdk-textarea-autosize-measuring"),n.placeholder="",n.style.height=n.scrollHeight-4+"px",n.classList.remove("cdk-textarea-autosize-measuring"),n.placeholder=i,this._ngZone.runOutsideAngular(function(){"undefined"!=typeof requestAnimationFrame?requestAnimationFrame(function(){return e._scrollToCaretPosition(n)}):setTimeout(function(){return e._scrollToCaretPosition(n)})}),this._previousValue=r,this._previousMinRows=this._minRows}}},t.prototype.reset=function(){void 0!==this._initialHeight&&(this._textareaElement.style.height=this._initialHeight)},t.prototype._noopInputHandler=function(){},t.prototype._scrollToCaretPosition=function(t){this._destroyed.isStopped||document.activeElement!==t||t.setSelectionRange(t.selectionStart,t.selectionEnd)},t}(),Rw=function(){return function(){}}(),Pw=["button","checkbox","file","hidden","image","radio","range","reset","submit"],Mw=0,Lw=function(t){function e(e,n,r,i,o,s,a,u,l){var c=t.call(this,s,i,o,r)||this;c._elementRef=e,c._platform=n,c.ngControl=r,c._autofillMonitor=u,c._uid="mat-input-"+Mw++,c._isServer=!1,c._isNativeSelect=!1,c.focused=!1,c.stateChanges=new D,c.controlType="mat-input",c.autofilled=!1,c._disabled=!1,c._required=!1,c._type="text",c._readonly=!1,c._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(function(t){return bu().has(t)});var h=c._elementRef.nativeElement;return c._inputValueAccessor=a||h,c._previousNativeValue=c.value,c.id=c.id,n.IOS&&l.runOutsideAngular(function(){e.nativeElement.addEventListener("keyup",function(t){var e=t.target;e.value||e.selectionStart||e.selectionEnd||(e.setSelectionRange(1,1),e.setSelectionRange(0,0))})}),c._isServer=!c._platform.isBrowser,c._isNativeSelect="select"===h.nodeName.toLowerCase(),c._isNativeSelect&&(c.controlType=h.multiple?"mat-native-select-multiple":"mat-native-select"),c}return Object(r.__extends)(e,t),Object.defineProperty(e.prototype,"disabled",{get:function(){return this.ngControl&&null!==this.ngControl.disabled?this.ngControl.disabled:this._disabled},set:function(t){this._disabled=Ca(t),this.focused&&(this.focused=!1,this.stateChanges.next())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this._id},set:function(t){this._id=t||this._uid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"required",{get:function(){return this._required},set:function(t){this._required=Ca(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"type",{get:function(){return this._type},set:function(t){this._type=t||"text",this._validateType(),!this._isTextarea()&&bu().has(this._type)&&(this._elementRef.nativeElement.type=this._type)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._inputValueAccessor.value},set:function(t){t!==this.value&&(this._inputValueAccessor.value=t,this.stateChanges.next())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"readonly",{get:function(){return this._readonly},set:function(t){this._readonly=Ca(t)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){var t=this;this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(function(e){t.autofilled=e.isAutofilled,t.stateChanges.next()})},e.prototype.ngOnChanges=function(){this.stateChanges.next()},e.prototype.ngOnDestroy=function(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement)},e.prototype.ngDoCheck=function(){this.ngControl&&this.updateErrorState(),this._dirtyCheckNativeValue()},e.prototype.focus=function(){this._elementRef.nativeElement.focus()},e.prototype._focusChanged=function(t){t===this.focused||this.readonly&&t||(this.focused=t,this.stateChanges.next())},e.prototype._onInput=function(){},e.prototype._dirtyCheckNativeValue=function(){var t=this._elementRef.nativeElement.value;this._previousNativeValue!==t&&(this._previousNativeValue=t,this.stateChanges.next())},e.prototype._validateType=function(){if(Pw.indexOf(this._type)>-1)throw Error('Input type "'+this._type+"\" isn't supported by matInput.")},e.prototype._isNeverEmpty=function(){return this._neverEmptyInputTypes.indexOf(this._type)>-1},e.prototype._isBadInput=function(){var t=this._elementRef.nativeElement.validity;return t&&t.badInput},e.prototype._isTextarea=function(){return"textarea"===this._elementRef.nativeElement.nodeName.toLowerCase()},Object.defineProperty(e.prototype,"empty",{get:function(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shouldLabelFloat",{get:function(){if(this._isNativeSelect){var t=this._elementRef.nativeElement,e=t.options[0];return this.focused||t.multiple||!this.empty||!!(t.selectedIndex>-1&&e&&e.label)}return this.focused||!this.empty},enumerable:!0,configurable:!0}),e.prototype.setDescribedByIds=function(t){this._ariaDescribedby=t.join(" ")},e.prototype.onContainerClick=function(){this.focused||this.focus()},e}(rp(function(){return function(t,e,n,r){this._defaultErrorStateMatcher=t,this._parentForm=e,this._parentFormGroup=n,this.ngControl=r}}())),Fw=function(){return function(){}}();function jw(t,e){void 0===e&&(e=Lu);var n,r=(n=t)instanceof Date&&!isNaN(+n)?+t-e.now():Math.abs(t);return function(t){return t.lift(new Uw(r,e))}}var Uw=function(){function t(t,e){this.delay=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new Vw(t,this.delay,this.scheduler))},t}(),Vw=function(t){function e(e,n,r){var i=t.call(this,e)||this;return i.delay=n,i.scheduler=r,i.queue=[],i.active=!1,i.errored=!1,i}return r.__extends(e,t),e.dispatch=function(t){for(var e=t.source,n=e.queue,r=t.scheduler,i=t.destination;n.length>0&&n[0].time-r.now()<=0;)n.shift().notification.observe(i);if(n.length>0){var o=Math.max(0,n[0].time-r.now());this.schedule(t,o)}else this.unsubscribe(),e.active=!1},e.prototype._schedule=function(t){this.active=!0,this.destination.add(t.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))},e.prototype.scheduleNotification=function(t){if(!0!==this.errored){var e=this.scheduler,n=new qw(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}},e.prototype._next=function(t){this.scheduleNotification(wl.createNext(t))},e.prototype._error=function(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.scheduleNotification(wl.createComplete()),this.unsubscribe()},e}(b),qw=function(){return function(t,e){this.time=t,this.notification=e}}(),Bw=new vt("MAT_MENU_PANEL"),Hw=function(t){function e(e,n,r,i){var o=t.call(this)||this;return o._elementRef=e,o._focusMonitor=r,o._parentMenu=i,o.role="menuitem",o._hovered=new D,o._highlighted=!1,o._triggersSubmenu=!1,r&&r.monitor(o._elementRef,!1),i&&i.addItem&&i.addItem(o),o._document=n,o}return Object(r.__extends)(e,t),e.prototype.focus=function(t){void 0===t&&(t="program"),this._focusMonitor?this._focusMonitor.focusVia(this._getHostElement(),t):this._getHostElement().focus()},e.prototype.ngOnDestroy=function(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete()},e.prototype._getTabIndex=function(){return this.disabled?"-1":"0"},e.prototype._getHostElement=function(){return this._elementRef.nativeElement},e.prototype._checkDisabled=function(t){this.disabled&&(t.preventDefault(),t.stopPropagation())},e.prototype._handleMouseEnter=function(){this._hovered.next(this)},e.prototype.getLabel=function(){var t=this._elementRef.nativeElement,e=this._document?this._document.TEXT_NODE:3,n="";if(t.childNodes)for(var r=t.childNodes.length,i=0;i<r;i++)t.childNodes[i].nodeType===e&&(n+=t.childNodes[i].textContent);return n.trim()},e}(np(tp(function(){return function(){}}()))),zw=new vt("mat-menu-default-options",{providedIn:"root",factory:function(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}}),Ww=function(){function t(t,e,n){this._elementRef=t,this._ngZone=e,this._defaultOptions=n,this._xPosition=this._defaultOptions.xPosition,this._yPosition=this._defaultOptions.yPosition,this._items=[],this._itemChanges=new D,this._tabSubscription=f.EMPTY,this._classList={},this._panelAnimationState="void",this._animationDone=new D,this.backdropClass=this._defaultOptions.backdropClass,this._overlapTrigger=this._defaultOptions.overlapTrigger,this._hasBackdrop=this._defaultOptions.hasBackdrop,this.closed=new hn,this.close=this.closed}return Object.defineProperty(t.prototype,"xPosition",{get:function(){return this._xPosition},set:function(t){"before"!==t&&"after"!==t&&function(){throw Error('xPosition value must be either \'before\' or after\'.\n      Example: <mat-menu xPosition="before" #menu="matMenu"></mat-menu>')}(),this._xPosition=t,this.setPositionClasses()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"yPosition",{get:function(){return this._yPosition},set:function(t){"above"!==t&&"below"!==t&&function(){throw Error('yPosition value must be either \'above\' or below\'.\n      Example: <mat-menu yPosition="above" #menu="matMenu"></mat-menu>')}(),this._yPosition=t,this.setPositionClasses()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"overlapTrigger",{get:function(){return this._overlapTrigger},set:function(t){this._overlapTrigger=Ca(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasBackdrop",{get:function(){return this._hasBackdrop},set:function(t){this._hasBackdrop=Ca(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"panelClass",{set:function(t){var e=this,n=this._previousPanelClass;n&&n.length&&n.split(" ").forEach(function(t){e._classList[t]=!1}),this._previousPanelClass=t,t&&t.length&&(t.split(" ").forEach(function(t){e._classList[t]=!0}),this._elementRef.nativeElement.className="")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"classList",{get:function(){return this.panelClass},set:function(t){this.panelClass=t},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.setPositionClasses()},t.prototype.ngAfterContentInit=function(){var t=this;this._keyManager=new qh(this._items).withWrap().withTypeAhead(),this._tabSubscription=this._keyManager.tabOut.subscribe(function(){return t.closed.emit("tab")})},t.prototype.ngOnDestroy=function(){this._tabSubscription.unsubscribe(),this.closed.complete()},t.prototype._hovered=function(){return this._itemChanges.pipe(Qu(this._items),dl(function(t){return rt.apply(void 0,t.map(function(t){return t._hovered}))}))},t.prototype._handleKeydown=function(t){var e=t.keyCode;switch(e){case Aa:this.closed.emit("keydown");break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:38!==e&&40!==e||this._keyManager.setFocusOrigin("keyboard"),this._keyManager.onKeydown(t)}},t.prototype.focusFirstItem=function(t){var e=this;void 0===t&&(t="program"),this.lazyContent?this._ngZone.onStable.asObservable().pipe(kl(1)).subscribe(function(){return e._keyManager.setFocusOrigin(t).setFirstItemActive()}):this._keyManager.setFocusOrigin(t).setFirstItemActive()},t.prototype.resetActiveItem=function(){this._keyManager.setActiveItem(-1)},t.prototype.setElevation=function(t){var e="mat-elevation-z"+(4+t),n=Object.keys(this._classList).find(function(t){return t.startsWith("mat-elevation-z")});n&&n!==this._previousElevation||(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[e]=!0,this._previousElevation=e)},t.prototype.addItem=function(t){-1===this._items.indexOf(t)&&(this._items.push(t),this._itemChanges.next(this._items))},t.prototype.removeItem=function(t){var e=this._items.indexOf(t);this._items.indexOf(t)>-1&&(this._items.splice(e,1),this._itemChanges.next(this._items))},t.prototype.setPositionClasses=function(t,e){void 0===t&&(t=this.xPosition),void 0===e&&(e=this.yPosition);var n=this._classList;n["mat-menu-before"]="before"===t,n["mat-menu-after"]="after"===t,n["mat-menu-above"]="above"===e,n["mat-menu-below"]="below"===e},t.prototype._startAnimation=function(){this._panelAnimationState="enter"},t.prototype._resetAnimation=function(){this._panelAnimationState="void"},t.prototype._onAnimationDone=function(t){this._animationDone.next(t),this._isAnimating=!1},t.prototype._onAnimationStart=function(t){this._isAnimating=!0,"enter"===t.toState&&0===this._keyManager.activeItemIndex&&(t.element.scrollTop=0)},t}(),Qw=new vt("mat-menu-scroll-strategy");function Kw(t){return function(){return t.scrollStrategies.reposition()}}var Gw=wu({passive:!0}),Yw=function(){function t(t,e,n,r,i,o,s,a){var u=this;this._overlay=t,this._element=e,this._viewContainerRef=n,this._parentMenu=i,this._menuItemInstance=o,this._dir=s,this._focusMonitor=a,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=f.EMPTY,this._hoverSubscription=f.EMPTY,this._menuCloseSubscription=f.EMPTY,this._handleTouchStart=function(){return u._openedBy="touch"},this._openedBy=null,this.menuOpened=new hn,this.onMenuOpen=this.menuOpened,this.menuClosed=new hn,this.onMenuClose=this.menuClosed,e.nativeElement.addEventListener("touchstart",this._handleTouchStart,Gw),o&&(o._triggersSubmenu=this.triggersSubmenu()),this._scrollStrategy=r}return Object.defineProperty(t.prototype,"_deprecatedMatMenuTriggerFor",{get:function(){return this.menu},set:function(t){this.menu=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"menu",{get:function(){return this._menu},set:function(t){var e=this;t!==this._menu&&(this._menu=t,this._menuCloseSubscription.unsubscribe(),t&&(this._menuCloseSubscription=t.close.asObservable().subscribe(function(t){e._destroyMenu(),"click"!==t&&"tab"!==t||!e._parentMenu||e._parentMenu.closed.emit(t)})))},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentInit=function(){this._checkMenu(),this._handleHover()},t.prototype.ngOnDestroy=function(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,Gw),this._cleanUpSubscriptions(),this._closingActionsSubscription.unsubscribe()},Object.defineProperty(t.prototype,"menuOpen",{get:function(){return this._menuOpen},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dir",{get:function(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"},enumerable:!0,configurable:!0}),t.prototype.triggersSubmenu=function(){return!(!this._menuItemInstance||!this._parentMenu)},t.prototype.toggleMenu=function(){return this._menuOpen?this.closeMenu():this.openMenu()},t.prototype.openMenu=function(){var t=this;if(!this._menuOpen){this._checkMenu();var e=this._createOverlay(),n=e.getConfig();this._setPosition(n.positionStrategy),n.hasBackdrop=null==this.menu.hasBackdrop?!this.triggersSubmenu():this.menu.hasBackdrop,e.attach(this._getPortal()),this.menu.lazyContent&&this.menu.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(function(){return t.closeMenu()}),this._initMenu(),this.menu instanceof Ww&&this.menu._startAnimation()}},t.prototype.closeMenu=function(){this.menu.close.emit()},t.prototype.focus=function(t){void 0===t&&(t="program"),this._focusMonitor?this._focusMonitor.focusVia(this._element,t):this._element.nativeElement.focus()},t.prototype._destroyMenu=function(){var t=this;if(this._overlayRef&&this.menuOpen){var e=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),e instanceof Ww?(e._resetAnimation(),e.lazyContent?e._animationDone.pipe(hl(function(t){return"void"===t.toState}),kl(1),Ku(e.lazyContent._attached)).subscribe(function(){return e.lazyContent.detach()},void 0,function(){t._resetMenu()}):this._resetMenu()):(this._resetMenu(),e.lazyContent&&e.lazyContent.detach())}},t.prototype._initMenu=function(){this.menu.parentMenu=this.triggersSubmenu()?this._parentMenu:void 0,this.menu.direction=this.dir,this._setMenuElevation(),this._setIsMenuOpen(!0),this.menu.focusFirstItem(this._openedBy||"program")},t.prototype._setMenuElevation=function(){if(this.menu.setElevation){for(var t=0,e=this.menu.parentMenu;e;)t++,e=e.parentMenu;this.menu.setElevation(t)}},t.prototype._resetMenu=function(){this._setIsMenuOpen(!1),this._openedBy?this.triggersSubmenu()||this.focus(this._openedBy):this.focus(),this._openedBy=null},t.prototype._setIsMenuOpen=function(t){this._menuOpen=t,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&(this._menuItemInstance._highlighted=t)},t.prototype._checkMenu=function(){this.menu||function(){throw Error('matMenuTriggerFor: must pass in an mat-menu instance.\n\n    Example:\n      <mat-menu #menu="matMenu"></mat-menu>\n      <button [matMenuTriggerFor]="menu"></button>')}()},t.prototype._createOverlay=function(){if(!this._overlayRef){var t=this._getOverlayConfig();this._subscribeToPositions(t.positionStrategy),this._overlayRef=this._overlay.create(t),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef},t.prototype._getOverlayConfig=function(){return new Wl({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withTransformOriginOn(".mat-menu-panel"),backdropClass:this.menu.backdropClass||"cdk-overlay-transparent-backdrop",scrollStrategy:this._scrollStrategy(),direction:this._dir})},t.prototype._subscribeToPositions=function(t){var e=this;this.menu.setPositionClasses&&t.positionChanges.subscribe(function(t){e.menu.setPositionClasses("start"===t.connectionPair.overlayX?"after":"before","top"===t.connectionPair.overlayY?"below":"above")})},t.prototype._setPosition=function(t){var e="before"===this.menu.xPosition?["end","start"]:["start","end"],n=e[0],r=e[1],i="above"===this.menu.yPosition?["bottom","top"]:["top","bottom"],o=i[0],s=i[1],a=[o,s],u=a[0],l=a[1],c=[n,r],h=c[0],p=c[1],f=0;this.triggersSubmenu()?(p=n="before"===this.menu.xPosition?"start":"end",r=h="end"===n?"start":"end",f="bottom"===o?8:-8):this.menu.overlapTrigger||(u="top"===o?"bottom":"top",l="top"===s?"bottom":"top"),t.withPositions([{originX:n,originY:u,overlayX:h,overlayY:o,offsetY:f},{originX:r,originY:u,overlayX:p,overlayY:o,offsetY:f},{originX:n,originY:l,overlayX:h,overlayY:s,offsetY:-f},{originX:r,originY:l,overlayX:p,overlayY:s,offsetY:-f}])},t.prototype._cleanUpSubscriptions=function(){this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()},t.prototype._menuClosingActions=function(){var t=this,e=this._overlayRef.backdropClick(),n=this._overlayRef.detachments();return rt(e,this._parentMenu?this._parentMenu.closed:zu(),this._parentMenu?this._parentMenu._hovered().pipe(hl(function(e){return e!==t._menuItemInstance}),hl(function(){return t._menuOpen})):zu(),n)},t.prototype._handleMousedown=function(t){Xh(t)||(this._openedBy=0===t.button?"mouse":null,this.triggersSubmenu()&&t.preventDefault())},t.prototype._handleKeydown=function(t){var e=t.keyCode;this.triggersSubmenu()&&(39===e&&"ltr"===this.dir||37===e&&"rtl"===this.dir)&&this.openMenu()},t.prototype._handleClick=function(t){this.triggersSubmenu()?(t.stopPropagation(),this.openMenu()):this.toggleMenu()},t.prototype._handleHover=function(){var t=this;this.triggersSubmenu()&&(this._hoverSubscription=this._parentMenu._hovered().pipe(hl(function(e){return e===t._menuItemInstance&&!e.disabled}),jw(0,Mu)).subscribe(function(){t._openedBy="mouse",t.menu instanceof Ww&&t.menu._isAnimating?t.menu._animationDone.pipe(kl(1),jw(0,Mu),Ku(t._parentMenu._hovered())).subscribe(function(){return t.openMenu()}):t.openMenu()}))},t.prototype._getPortal=function(){return this._portal&&this._portal.templateRef===this.menu.templateRef||(this._portal=new Pl(this.menu.templateRef,this._viewContainerRef)),this._portal},t}(),Xw=function(){return function(){}}(),Jw=mi({encapsulation:2,styles:[".mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0}.mat-menu-panel.ng-animating{pointer-events:none}@media (-ms-high-contrast:active){.mat-menu-panel{outline:solid 1px}}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}@media (-ms-high-contrast:active){.mat-menu-item-highlighted,.mat-menu-item.cdk-keyboard-focused,.mat-menu-item.cdk-program-focused{outline:dotted 1px}}.mat-menu-item-submenu-trigger{padding-right:32px}.mat-menu-item-submenu-trigger::after{width:0;height:0;border-style:solid;border-width:5px 0 5px 5px;border-color:transparent transparent transparent currentColor;content:'';display:inline-block;position:absolute;top:50%;right:16px;transform:translateY(-50%)}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}[dir=rtl] .mat-menu-item-submenu-trigger::after{right:auto;left:16px;transform:rotateY(180deg) translateY(-50%)}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}"],data:{animation:[{type:7,name:"transformMenu",definitions:[{type:0,name:"void",styles:{type:6,styles:{opacity:0,transform:"scale(0.8)"},offset:null},options:void 0},{type:1,expr:"void => enter",animation:{type:3,steps:[{type:11,selector:".mat-menu-content",animation:{type:4,styles:{type:6,styles:{opacity:1},offset:null},timings:"100ms linear"},options:null},{type:4,styles:{type:6,styles:{transform:"scale(1)"},offset:null},timings:"120ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},options:null},{type:1,expr:"* => void",animation:{type:4,styles:{type:6,styles:{opacity:0},offset:null},timings:"100ms 25ms linear"},options:null}],options:{}},{type:7,name:"fadeInItems",definitions:[{type:0,name:"showing",styles:{type:6,styles:{opacity:1},offset:null},options:void 0},{type:1,expr:"void => *",animation:[{type:6,styles:{opacity:0},offset:null},{type:4,styles:null,timings:"400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)"}],options:null}],options:{}}]}});function Zw(t){return ss(0,[(t()(),Hi(0,0,null,null,3,"div",[["class","mat-menu-panel"],["role","menu"],["tabindex","-1"]],[[24,"@transformMenu",0]],[[null,"keydown"],[null,"click"],[null,"@transformMenu.start"],[null,"@transformMenu.done"]],function(t,e,n){var r=!0,i=t.component;return"keydown"===e&&(r=!1!==i._handleKeydown(n)&&r),"click"===e&&(r=!1!==i.closed.emit("click")&&r),"@transformMenu.start"===e&&(r=!1!==i._onAnimationStart(n)&&r),"@transformMenu.done"===e&&(r=!1!==i._onAnimationDone(n)&&r),r},null,null)),Do(1,278528,null,0,Qa,[qr,Br,Oe,Me],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),Hi(2,0,null,null,1,"div",[["class","mat-menu-content"]],null,null,null,null,null)),ts(null,0)],function(t,e){t(e,1,0,"mat-menu-panel",e.component._classList)},function(t,e){t(e,0,0,e.component._panelAnimationState)})}function $w(t){return ss(2,[Yo(402653184,1,{templateRef:0}),(t()(),Bi(0,[[1,2]],null,0,null,Zw))],null,null)}var tE=mi({encapsulation:2,styles:[],data:{}});function eE(t){return ss(2,[ts(null,0),(t()(),Hi(1,0,null,null,1,"div",[["class","mat-menu-ripple mat-ripple"],["matRipple",""]],[[2,"mat-ripple-unbounded",null]],null,null,null,null)),Do(2,212992,null,0,_p,[Oe,Jn,gu,[2,vp],[2,rb]],{disabled:[0,"disabled"],trigger:[1,"trigger"]},null)],function(t,e){var n=e.component;t(e,2,0,n.disableRipple||n.disabled,n._getHostElement())},function(t,e){t(e,1,0,_o(e,2).unbounded)})}var nE=function(){function t(t){this.afs=t,this.users=new Map}return t.prototype.getUser=function(t){if(this.users.get(t))return this.users.get(t);var e=this.afs.doc("users/"+t).valueChanges();return this.users.set(t,e),e},t.ngInjectableDef=yt({factory:function(){return new t(Qt(Lb))},token:t,providedIn:"root"}),t}(),rE=function(){function t(t){this.pas=t,this.mode="card",this.allowMenu=!1}return t.prototype.ngOnInit=function(){if(!this.uid)throw new Error("cannot display user without knowing its uid");if(this.user=this.pas.getUser(this.uid),this.allowMenu&&!this.menu)throw new Error("menu enabled but not asigned")},t}(),iE=mi({encapsulation:0,styles:[["#list-avatar[_ngcontent-%COMP%]{background-color:red}"]],data:{}});function oE(t){return ss(0,[(t()(),Hi(0,0,null,null,0,"div",[],null,null,null,null,null))],null,null)}function sE(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"div",[],null,null,null,null,null)),(t()(),rs(1,null,[" "," "]))],null,function(t,e){t(e,1,0,e.parent.parent.context.ngIf.description)})}function aE(t){return ss(0,[(t()(),Hi(0,0,null,null,13,"mat-card",[["class","mat-card"]],null,null,null,oy,iy)),Do(1,49152,null,0,ey,[],null,null),(t()(),Hi(2,0,null,0,11,"mat-card-header",[["class","mat-card-header"]],null,null,null,ay,sy)),Do(3,49152,null,0,ny,[],null,null),(t()(),Hi(4,0,null,1,2,"mat-card-title",[["class","mat-card-title"]],null,null,null,null,null)),Do(5,16384,null,0,Zm,[],null,null),(t()(),rs(6,null,[" "," "])),(t()(),Hi(7,0,null,1,3,"mat-card-subtitle",[["class","mat-card-subtitle"]],null,null,null,null,null)),Do(8,16384,null,0,$m,[],null,null),(t()(),Bi(16777216,null,null,1,null,sE)),Do(10,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),Hi(11,16777216,null,0,2,"div",[["aria-haspopup","true"],["class","avatar mat-card-avatar"],["mat-card-avatar",""]],[[4,"background-image",null],[1,"aria-expanded",0]],[[null,"mousedown"],[null,"keydown"],[null,"click"]],function(t,e,n){var r=!0;return"mousedown"===e&&(r=!1!==_o(t,13)._handleMousedown(n)&&r),"keydown"===e&&(r=!1!==_o(t,13)._handleKeydown(n)&&r),"click"===e&&(r=!1!==_o(t,13)._handleClick(n)&&r),r},null,null)),Do(12,16384,null,0,ty,[],null,null),Do(13,1196032,null,0,Yw,[oc,Oe,wr,Qw,[2,Ww],[8,null],[2,Ec],Yh],{menu:[0,"menu"]},null)],function(t,e){var n=e.component;t(e,10,0,e.parent.context.ngIf.description,_o(e.parent,4)),t(e,13,0,n.menu)},function(t,e){t(e,6,0,e.parent.context.ngIf.displayName),t(e,11,0,"url("+e.parent.context.ngIf.photoUrl+")",_o(e,13).menuOpen||null)})}function uE(t){return ss(0,[(t()(),rs(0,null,[" "," "]))],null,function(t,e){t(e,0,0,e.parent.context.ngIf.email)})}function lE(t){return ss(0,[(t()(),Hi(0,0,null,null,4,"div",[],null,null,null,null,null)),(t()(),Bi(16777216,null,null,1,null,oE)),Do(2,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"],ngIfThen:[1,"ngIfThen"],ngIfElse:[2,"ngIfElse"]},null),(t()(),Bi(0,[["card",2]],null,0,null,aE)),(t()(),Bi(0,[["emailFallback",2]],null,0,null,uE))],function(t,e){var n=e.component;t(e,2,0,"card"==n.mode,_o(e,3),n.list)},null)}function cE(t){return ss(0,[(t()(),rs(-1,null,[" Something went wrong...\n"]))],null,null)}function hE(t){return ss(0,[(t()(),Bi(16777216,null,null,2,null,lE)),Do(1,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),Ro(131072,ou,[Sr]),(t()(),Bi(0,[["noUidError",2]],null,0,null,cE))],function(t,e){var n=e.component;t(e,1,0,pi(e,1,0,_o(e,2).transform(n.user)))},null)}var pE=function(){function t(t,e,n){var r=this;this.auth=t,this.afs=e,this.pas=n,this.auth.user.subscribe(function(t){if(t||(r.friends=[],r.uids=[]),!t.friends)return r.auth.updateUser(t.uid,{friends:[]});r.uids=t.friends,r.friends=r.uids.map(function(t){return r.pas.getUser(t)})})}return t.prototype.removeFriend=function(t){var e=this;return new Promise(function(n,i){-1==e.uids.indexOf(t)&&i("UndefinedFriendError: unable to remove friend "+t+", because it isnt in the friend list"),e.auth.user.pipe(kl(1)).subscribe(function(i){return r.__awaiter(e,void 0,void 0,function(){return r.__generator(this,function(e){switch(e.label){case 0:return[4,this.auth.updateUser(i.uid,{friends:this.uids.filter(function(e){return e!=t})})];case 1:return e.sent(),n(this.friends),[2]}})})})})},t.prototype.addFriend=function(t){var e=this;return new Promise(function(n,i){-1!=e.uids.indexOf(t)&&i("InvalidNewFriendError: cannot add friend with uid "+t+". A friend with the same uid already exists"),e.auth.user.pipe(kl(1)).subscribe(function(i){return r.__awaiter(e,void 0,void 0,function(){return r.__generator(this,function(e){switch(e.label){case 0:return[4,this.auth.updateUser(i.uid,{friends:this.uids.concat([t])})];case 1:return e.sent(),n(this.friends),[2]}})})})})},t.ngInjectableDef=yt({factory:function(){return new t(Qt(Ub),Qt(Lb),Qt(nE))},token:t,providedIn:"root"}),t}(),fE=function(){function t(t,e,n){this.auth=t,this.friends=e,this.router=n,this.maxDescriptionRows=7,this.editing=!1}return t.prototype.ngOnInit=function(){var t=this;this.auth.user.pipe(hl(function(t){return!t})).subscribe(function(e){return t.router.navigate(["/login"])})},t.prototype.startEditing=function(){this.editing=!0},t.prototype.saveDescription=function(t){this.editing=!1,this.auth.updateUser(t,{description:this.currentDescription.nativeElement.value})},t.prototype.defaultDescription=function(t){return"Hi! My name is "+t},t.prototype.canCopy=function(){return!!navigator.clipboard},t.prototype.copyToClipboard=function(t){navigator.clipboard.writeText(window.location.href+"/user/"+t)},t}(),dE=mi({encapsulation:0,styles:[[".withoutDescContainer[_ngcontent-%COMP%]{text-align:center;display:flex;justify-content:center;align-items:center;flex-direction:column}.noDescInfo[_ngcontent-%COMP%]{color:rgba(255,255,255,.5);font-size:75%;margin:3%}.account-container[_ngcontent-%COMP%]{overflow-x:hidden}"]],data:{}});function mE(t){return ss(0,[(t()(),Hi(0,0,null,null,3,"div",[],null,null,null,null,null)),(t()(),Hi(1,0,null,null,2,"mat-icon",[["class","mat-icon notranslate"],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==t.component.startEditing()&&r),r},lw,uw)),Do(2,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),(t()(),rs(-1,0,[" edit "]))],function(t,e){t(e,2,0)},function(t,e){t(e,1,0,_o(e,2).inline,"primary"!==_o(e,2).color&&"accent"!==_o(e,2).color&&"warn"!==_o(e,2).color)})}function yE(t){return ss(0,[(t()(),Hi(0,0,null,null,14,"div",[],null,null,null,null,null)),(t()(),Hi(1,0,null,null,13,"form",[],null,null,null,null,null)),(t()(),Hi(2,0,null,null,12,"mat-form-field",[["class","mat-form-field"]],[[2,"mat-form-field-appearance-standard",null],[2,"mat-form-field-appearance-fill",null],[2,"mat-form-field-appearance-outline",null],[2,"mat-form-field-appearance-legacy",null],[2,"mat-form-field-invalid",null],[2,"mat-form-field-can-float",null],[2,"mat-form-field-should-float",null],[2,"mat-form-field-has-label",null],[2,"mat-form-field-hide-placeholder",null],[2,"mat-form-field-disabled",null],[2,"mat-form-field-autofilled",null],[2,"mat-focused",null],[2,"mat-accent",null],[2,"mat-warn",null],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"_mat-animation-noopable",null]],null,null,Aw,gw)),Do(3,7520256,null,7,mw,[Oe,Sr,[2,Ep],[2,Ec],[2,dw],gu,Jn,[2,rb]],null,null),Yo(335544320,2,{_control:0}),Yo(335544320,3,{_placeholderChild:0}),Yo(335544320,4,{_labelChild:0}),Yo(603979776,5,{_errorChildren:1}),Yo(603979776,6,{_hintChildren:1}),Yo(603979776,7,{_prefixChildren:1}),Yo(603979776,8,{_suffixChildren:1}),(t()(),Hi(11,0,[[1,0],["descriptionInput",1]],1,3,"textarea",[["cdkAutosizeMinRows","3"],["cdkTextareaAutosize",""],["class","cdk-textarea-autosize mat-input-element mat-form-field-autofill-control"],["cols","30"],["matInput",""],["maxlength","189"],["placeholder","description"],["rows","1"]],[[2,"mat-input-server",null],[1,"id",0],[1,"placeholder",0],[8,"disabled",0],[8,"required",0],[1,"readonly",0],[1,"aria-describedby",0],[1,"aria-invalid",0],[1,"aria-required",0]],[[null,"input"],[null,"blur"],[null,"focus"]],function(t,e,n){var r=!0;return"input"===e&&(r=!1!==_o(t,12)._noopInputHandler()&&r),"blur"===e&&(r=!1!==_o(t,13)._focusChanged(!1)&&r),"focus"===e&&(r=!1!==_o(t,13)._focusChanged(!0)&&r),"input"===e&&(r=!1!==_o(t,13)._onInput()&&r),r},null,null)),Do(12,4603904,null,0,Dw,[Oe,gu,Jn],{minRows:[0,"minRows"],maxRows:[1,"maxRows"],enabled:[2,"enabled"]},null),Do(13,999424,null,0,Lw,[Oe,gu,[8,null],[2,xg],[2,kg],ip,[8,null],Nw,Jn],{placeholder:[0,"placeholder"],value:[1,"value"]},null),Po(2048,[[2,4]],cw,null,[Lw])],function(t,e){var n=e.component;t(e,12,0,"3",n.maxDescriptionRows,""),t(e,13,0,"description",e.parent.context.ngIf.description||n.defaultDescription(e.parent.context.ngIf.displayName))},function(t,e){t(e,2,1,["standard"==_o(e,3).appearance,"fill"==_o(e,3).appearance,"outline"==_o(e,3).appearance,"legacy"==_o(e,3).appearance,_o(e,3)._control.errorState,_o(e,3)._canLabelFloat,_o(e,3)._shouldLabelFloat(),_o(e,3)._hasFloatingLabel(),_o(e,3)._hideControlPlaceholder(),_o(e,3)._control.disabled,_o(e,3)._control.autofilled,_o(e,3)._control.focused,"accent"==_o(e,3).color,"warn"==_o(e,3).color,_o(e,3)._shouldForward("untouched"),_o(e,3)._shouldForward("touched"),_o(e,3)._shouldForward("pristine"),_o(e,3)._shouldForward("dirty"),_o(e,3)._shouldForward("valid"),_o(e,3)._shouldForward("invalid"),_o(e,3)._shouldForward("pending"),!_o(e,3)._animationsEnabled]),t(e,11,0,_o(e,13)._isServer,_o(e,13).id,_o(e,13).placeholder,_o(e,13).disabled,_o(e,13).required,_o(e,13).readonly&&!_o(e,13)._isNativeSelect||null,_o(e,13)._ariaDescribedby||null,_o(e,13).errorState,_o(e,13).required.toString())})}function gE(t){return ss(0,[(t()(),Hi(0,0,null,null,6,"div",[],null,null,null,null,null)),(t()(),Hi(1,0,null,null,5,"button",[["class","mat-menu-item"],["mat-menu-item",""]],[[1,"role",0],[2,"mat-menu-item-highlighted",null],[2,"mat-menu-item-submenu-trigger",null],[1,"tabindex",0],[1,"aria-disabled",0],[1,"disabled",0]],[[null,"click"],[null,"mouseenter"]],function(t,e,n){var r=!0,i=t.component;return"click"===e&&(r=!1!==_o(t,2)._checkDisabled(n)&&r),"mouseenter"===e&&(r=!1!==_o(t,2)._handleMouseEnter()&&r),"click"===e&&(r=!1!==i.copyToClipboard(t.parent.context.$implicit)&&r),r},eE,tE)),Do(2,180224,[[9,4]],0,Hw,[Oe,au,Yh,[2,Bw]],null,null),(t()(),Hi(3,0,null,0,2,"mat-icon",[["class","mat-icon notranslate"],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],null,null,lw,uw)),Do(4,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),(t()(),rs(-1,0,["file_copy"])),(t()(),rs(-1,0,[" Copy url "]))],function(t,e){t(e,4,0)},function(t,e){t(e,1,0,_o(e,2).role,_o(e,2)._highlighted,_o(e,2)._triggersSubmenu,_o(e,2)._getTabIndex(),_o(e,2).disabled.toString(),_o(e,2).disabled||null),t(e,3,0,_o(e,4).inline,"primary"!==_o(e,4).color&&"accent"!==_o(e,4).color&&"warn"!==_o(e,4).color)})}function vE(t){return ss(0,[(t()(),Hi(0,0,null,null,26,"div",[],null,null,null,null,null)),(t()(),Hi(1,0,null,null,1,"app-public-account",[],null,null,null,hE,iE)),Do(2,114688,null,0,rE,[nE],{uid:[0,"uid"],mode:[1,"mode"],allowMenu:[2,"allowMenu"],menu:[3,"menu"]},null),(t()(),Hi(3,0,null,null,23,"mat-menu",[],null,null,null,$w,Jw)),Do(4,1294336,[["publicAccountMenu",4]],2,Ww,[Oe,Jn,zw],null,null),Yo(603979776,9,{items:1}),Yo(335544320,10,{lazyContent:0}),Po(2048,null,Bw,null,[Ww]),(t()(),Hi(8,0,null,0,5,"button",[["class","mat-menu-item"],["mat-menu-item",""]],[[1,"role",0],[2,"mat-menu-item-highlighted",null],[2,"mat-menu-item-submenu-trigger",null],[1,"tabindex",0],[1,"aria-disabled",0],[1,"disabled",0]],[[null,"click"],[null,"mouseenter"]],function(t,e,n){var r=!0,i=t.component;return"click"===e&&(r=!1!==_o(t,9)._checkDisabled(n)&&r),"mouseenter"===e&&(r=!1!==_o(t,9)._handleMouseEnter()&&r),"click"===e&&(r=!1!==i.friends.removeFriend(t.context.$implicit)&&r),r},eE,tE)),Do(9,180224,[[9,4]],0,Hw,[Oe,au,Yh,[2,Bw]],null,null),(t()(),Hi(10,0,null,0,2,"mat-icon",[["class","mat-icon notranslate"],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],null,null,lw,uw)),Do(11,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),(t()(),rs(-1,0,["person_add_disabled"])),(t()(),rs(-1,0,[" Remove friend "])),(t()(),Hi(14,0,null,0,10,"button",[["class","mat-menu-item"],["mat-menu-item",""],["routerLinkActive","active"]],[[1,"role",0],[2,"mat-menu-item-highlighted",null],[2,"mat-menu-item-submenu-trigger",null],[1,"tabindex",0],[1,"aria-disabled",0],[1,"disabled",0]],[[null,"click"],[null,"mouseenter"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==_o(t,15)._checkDisabled(n)&&r),"mouseenter"===e&&(r=!1!==_o(t,15)._handleMouseEnter()&&r),"click"===e&&(r=!1!==_o(t,16).onClick()&&r),r},eE,tE)),Do(15,180224,[[9,4]],0,Hw,[Oe,au,Yh,[2,Bw]],null,null),Do(16,16384,[[11,4]],0,_m,[vm,ud,[8,null],Me,Oe],{routerLink:[0,"routerLink"]},null),ns(32,17,new Array(2)),Do(18,1720320,null,2,Em,[vm,Oe,Me,Sr],{routerLinkActive:[0,"routerLinkActive"]},null),Yo(603979776,11,{links:1}),Yo(603979776,12,{linksWithHrefs:1}),(t()(),Hi(21,0,null,0,2,"mat-icon",[["class","mat-icon notranslate"],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],null,null,lw,uw)),Do(22,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),(t()(),rs(-1,0,["account_circle"])),(t()(),rs(-1,0,["Profile "])),(t()(),Bi(16777216,null,0,1,null,gE)),Do(26,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,e.context.$implicit,"card",!0,_o(e,4)),t(e,4,0),t(e,11,0);var r=t(e,17,0,"/user",e.context.$implicit);t(e,16,0,r),t(e,18,0,"active"),t(e,22,0),t(e,26,0,n.canCopy())},function(t,e){t(e,8,0,_o(e,9).role,_o(e,9)._highlighted,_o(e,9)._triggersSubmenu,_o(e,9)._getTabIndex(),_o(e,9).disabled.toString(),_o(e,9).disabled||null),t(e,10,0,_o(e,11).inline,"primary"!==_o(e,11).color&&"accent"!==_o(e,11).color&&"warn"!==_o(e,11).color),t(e,14,0,_o(e,15).role,_o(e,15)._highlighted,_o(e,15)._triggersSubmenu,_o(e,15)._getTabIndex(),_o(e,15).disabled.toString(),_o(e,15).disabled||null),t(e,21,0,_o(e,22).inline,"primary"!==_o(e,22).color&&"accent"!==_o(e,22).color&&"warn"!==_o(e,22).color)})}function _E(t){return ss(0,[(t()(),Hi(0,0,null,null,38,"div",[["class","account-container"]],null,null,null,null,null)),(t()(),Hi(1,0,null,null,37,"mat-card",[["class","mat-card"]],null,null,null,oy,iy)),Do(2,49152,null,0,ey,[],null,null),(t()(),Hi(3,0,null,0,9,"mat-card-header",[["class","mat-card-header"]],null,null,null,ay,sy)),Do(4,49152,null,0,ny,[],null,null),(t()(),Hi(5,0,null,1,2,"mat-card-title",[["class","mat-card-title"]],null,null,null,null,null)),Do(6,16384,null,0,Zm,[],null,null),(t()(),rs(7,null,[" "," "])),(t()(),Hi(8,0,null,1,2,"mat-card-subtitle",[["class","mat-card-subtitle"]],null,null,null,null,null)),Do(9,16384,null,0,$m,[],null,null),(t()(),rs(10,null,[" "," "])),(t()(),Hi(11,0,null,0,1,"div",[["class","avatar mat-card-avatar"],["mat-card-avatar",""]],[[4,"background-image",null]],null,null,null,null)),Do(12,16384,null,0,ty,[],null,null),(t()(),Hi(13,0,null,0,25,"mat-card-content",[["class","mat-card-content"]],null,null,null,null,null)),Do(14,16384,null,0,Jm,[],null,null),(t()(),Hi(15,0,null,null,19,"mat-card",[["class","mat-card"]],null,null,null,oy,iy)),Do(16,49152,null,0,ey,[],null,null),(t()(),Hi(17,0,null,0,13,"mat-card-header",[["class","mat-card-header"]],null,null,null,ay,sy)),Do(18,49152,null,0,ny,[],null,null),(t()(),Hi(19,0,null,1,2,"mat-card-title",[["class","mat-card-title"]],null,null,null,null,null)),Do(20,16384,null,0,Zm,[],null,null),(t()(),rs(-1,null,["Description"])),(t()(),Hi(22,0,null,1,2,"mat-card-subtitle",[["class","mat-card-subtitle"]],null,null,null,null,null)),Do(23,16384,null,0,$m,[],null,null),(t()(),rs(-1,null,["this is supposed to describe you"])),(t()(),Hi(25,0,null,0,5,"div",[["class","mat-card-avatar"],["mat-card-avatar",""]],null,null,null,null,null)),Do(26,16384,null,0,ty,[],null,null),(t()(),Hi(27,0,null,null,3,"button",[["mat-mini-fab",""]],[[8,"disabled",0],[2,"_mat-animation-noopable",null]],null,null,db,fb)),Do(28,180224,null,0,hb,[Oe,gu,Yh,[2,rb]],null,null),(t()(),Bi(16777216,null,0,1,null,mE)),Do(30,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),Hi(31,0,null,0,3,"mat-card-content",[["class","mat-card-content"]],null,null,null,null,null)),Do(32,16384,null,0,Jm,[],null,null),(t()(),Bi(16777216,null,null,1,null,yE)),Do(34,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),Hi(35,0,null,null,3,"mat-list",[["class","mat-list mat-list-base"]],null,null,null,sb,ob)),Do(36,704512,null,0,Dg,[Oe],null,null),(t()(),Bi(16777216,null,0,1,null,vE)),Do(38,278528,null,0,Ga,[wr,pn,qr],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,30,0,!n.editing,_o(e.parent,4)),t(e,34,0,n.editing,_o(e.parent,5)),t(e,38,0,n.friends.uids)},function(t,e){t(e,7,0,e.context.ngIf.displayName),t(e,10,0,e.context.ngIf.email),t(e,11,0,"url("+e.context.ngIf.photoUrl+")"),t(e,27,0,_o(e,28).disabled||null,"NoopAnimations"===_o(e,28)._animationMode)})}function bE(t){return ss(0,[(t()(),Hi(0,0,null,null,3,"div",[],null,null,null,null,null)),(t()(),Hi(1,0,null,null,2,"mat-icon",[["class","mat-icon notranslate"],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==t.component.saveDescription(t.context.ngIf.uid)&&r),r},lw,uw)),Do(2,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),(t()(),rs(-1,0,[" save "]))],function(t,e){t(e,2,0)},function(t,e){t(e,1,0,_o(e,2).inline,"primary"!==_o(e,2).color&&"accent"!==_o(e,2).color&&"warn"!==_o(e,2).color)})}function wE(t){return ss(0,[(t()(),Bi(16777216,null,null,2,null,bE)),Do(1,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),Ro(131072,ou,[Sr]),(t()(),Bi(0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,pi(e,1,0,_o(e,2).transform(n.auth.user)))},null)}function EE(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"div",[],null,null,null,null,null)),(t()(),rs(1,null,[" "," "]))],null,function(t,e){t(e,1,0,e.parent.context.ngIf.description)})}function SE(t){return ss(0,[(t()(),Hi(0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),Bi(16777216,null,null,1,null,EE)),Do(2,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null)],function(t,e){t(e,2,0,e.context.ngIf.description,_o(e.parent.parent,6))},null)}function CE(t){return ss(0,[(t()(),Bi(16777216,null,null,2,null,SE)),Do(1,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),Ro(131072,ou,[Sr]),(t()(),Bi(0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,pi(e,1,0,_o(e,2).transform(n.auth.user)))},null)}function TE(t){return ss(0,[(t()(),Hi(0,0,null,null,5,"div",[["class","withoutDescContainer"]],null,null,null,null,null)),(t()(),Hi(1,0,null,null,1,"div",[["class","noDescInfo"]],null,null,null,null,null)),(t()(),rs(-1,null,[" You dont have a description: "])),(t()(),Hi(3,0,null,null,2,"button",[["color","primary"],["mat-raised-button",""]],[[8,"disabled",0],[2,"_mat-animation-noopable",null]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==t.component.startEditing()&&r),r},db,fb)),Do(4,180224,null,0,hb,[Oe,gu,Yh,[2,rb]],{color:[0,"color"]},null),(t()(),rs(-1,0,[" Create your description "]))],function(t,e){t(e,4,0,"primary")},function(t,e){t(e,3,0,_o(e,4).disabled||null,"NoopAnimations"===_o(e,4)._animationMode)})}function IE(t){return ss(0,[Yo(671088640,1,{currentDescription:0}),(t()(),Bi(16777216,null,null,2,null,_E)),Do(2,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),Ro(131072,ou,[Sr]),(t()(),Bi(0,[["save",2]],null,0,null,wE)),(t()(),Bi(0,[["notEditing",2]],null,0,null,CE)),(t()(),Bi(0,[["withoutDesc",2]],null,0,null,TE))],function(t,e){var n=e.component;t(e,2,0,pi(e,2,0,_o(e,3).transform(n.auth.user)))},null)}function xE(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"app-account",[],null,null,null,IE,dE)),Do(1,114688,null,0,fE,[Ub,pE,vm],null,null)],function(t,e){t(e,1,0)},null)}var kE=ao("app-account",fE,xE,{},{},[]),AE=function(){function t(){}return t.prototype.ngOnInit=function(){},t}(),OE=mi({encapsulation:0,styles:[[""]],data:{}});function NE(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"p",[],null,null,null,null,null)),(t()(),rs(-1,null,[" users works!\n"]))],null,null)}function DE(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"app-users",[],null,null,null,NE,OE)),Do(1,114688,null,0,AE,[],null,null)],function(t,e){t(e,1,0)},null)}var RE=ao("app-users",AE,DE,{},{},[]),PE=function(){function t(t,e,n,r,i){this.auth=t,this.pas=e,this.router=n,this.route=r,this.friends=i}return t.prototype.ngOnInit=function(){var t=this;this.uid=this.route.paramMap.pipe(K(function(t){return t.get("uid")})),this.user=this.route.paramMap.pipe(dl(function(e){return t.pas.getUser(e.get("uid"))}))},t}(),ME=mi({encapsulation:0,styles:[[""]],data:{}});function LE(t){return ss(0,[(t()(),Hi(0,0,null,null,5,"div",[],null,null,null,null,null)),(t()(),Hi(1,0,null,null,4,"div",[],null,[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==t.component.friends.removeFriend(t.parent.context.ngIf)&&r),r},null,null)),(t()(),Hi(2,0,null,null,2,"mat-icon",[["class","mat-icon notranslate"],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],null,null,lw,uw)),Do(3,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),(t()(),rs(-1,0,["person_add_disabled"])),(t()(),rs(-1,null,[" Remove friend "]))],function(t,e){t(e,3,0)},function(t,e){t(e,2,0,_o(e,3).inline,"primary"!==_o(e,3).color&&"accent"!==_o(e,3).color&&"warn"!==_o(e,3).color)})}function FE(t){return ss(0,[(t()(),Hi(0,0,null,null,4,"div",[],null,[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==t.component.friends.addFriend(t.parent.context.ngIf)&&r),r},null,null)),(t()(),Hi(1,0,null,null,2,"mat-icon",[["class","mat-icon notranslate"],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],null,null,lw,uw)),Do(2,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),(t()(),rs(-1,0,["person"])),(t()(),rs(-1,null,[" Add friend "]))],function(t,e){t(e,2,0)},function(t,e){t(e,1,0,_o(e,2).inline,"primary"!==_o(e,2).color&&"accent"!==_o(e,2).color&&"warn"!==_o(e,2).color)})}function jE(t){return ss(0,[(t()(),Hi(0,0,null,null,12,"div",[],null,null,null,null,null)),(t()(),Hi(1,0,null,null,1,"app-public-account",[],null,null,null,hE,iE)),Do(2,114688,null,0,rE,[nE],{uid:[0,"uid"],allowMenu:[1,"allowMenu"],menu:[2,"menu"]},null),(t()(),Hi(3,0,null,null,8,"mat-menu",[],null,null,null,$w,Jw)),Do(4,1294336,[["userMenu",4]],2,Ww,[Oe,Jn,zw],null,null),Yo(603979776,1,{items:1}),Yo(335544320,2,{lazyContent:0}),Po(2048,null,Bw,null,[Ww]),(t()(),Hi(8,0,null,0,3,"button",[["class","mat-menu-item"],["mat-menu-item",""]],[[1,"role",0],[2,"mat-menu-item-highlighted",null],[2,"mat-menu-item-submenu-trigger",null],[1,"tabindex",0],[1,"aria-disabled",0],[1,"disabled",0]],[[null,"click"],[null,"mouseenter"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==_o(t,9)._checkDisabled(n)&&r),"mouseenter"===e&&(r=!1!==_o(t,9)._handleMouseEnter()&&r),r},eE,tE)),Do(9,180224,[[1,4]],0,Hw,[Oe,au,Yh,[2,Bw]],null,null),(t()(),Bi(16777216,null,0,1,null,LE)),Do(11,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),Bi(0,[["addFriend",2]],null,0,null,FE))],function(t,e){var n=e.component;t(e,2,0,e.context.ngIf,!0,_o(e,4)),t(e,4,0),t(e,11,0,n.friends.uids&&-1!=n.friends.uids.indexOf(e.context.ngIf),_o(e,12))},function(t,e){t(e,8,0,_o(e,9).role,_o(e,9)._highlighted,_o(e,9)._triggersSubmenu,_o(e,9)._getTabIndex(),_o(e,9).disabled.toString(),_o(e,9).disabled||null)})}function UE(t){return ss(0,[(t()(),Hi(0,0,null,null,3,"div",[],null,null,null,null,null)),(t()(),Bi(16777216,null,null,2,null,jE)),Do(2,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),Ro(131072,ou,[Sr])],function(t,e){var n=e.component;t(e,2,0,pi(e,2,0,_o(e,3).transform(n.uid)))},null)}function VE(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"app-user",[],null,null,null,UE,ME)),Do(1,114688,null,0,PE,[Ub,nE,vm,ud,pE],null,null)],function(t,e){t(e,1,0)},null)}var qE=ao("app-user",PE,VE,{},{},[]);function BE(t){throw Error("A drawer was already declared for 'position=\""+t+"\"'")}var HE=new vt("MAT_DRAWER_DEFAULT_AUTOSIZE",{providedIn:"root",factory:function(){return!1}}),zE=function(t){function e(e,n,r,i,o){var s=t.call(this,r,i,o)||this;return s._changeDetectorRef=e,s._container=n,s}return Object(r.__extends)(e,t),e.prototype.ngAfterContentInit=function(){var t=this;this._container._contentMarginChanges.subscribe(function(){t._changeDetectorRef.markForCheck()})},e}(Sl),WE=function(){function t(t,e,n,r,i,o){var s,a=this;this._elementRef=t,this._focusTrapFactory=e,this._focusMonitor=n,this._platform=r,this._ngZone=i,this._doc=o,this._elementFocusedBeforeDrawerWasOpened=null,this._enableAnimations=!1,this._position="start",this._mode="over",this._disableClose=!1,this._autoFocus=!0,this._animationStarted=new D,this._animationEnd=new D,this._animationState="void",this.openedChange=new hn(!0),this._destroyed=new D,this.onPositionChanged=new hn,this._modeChanged=new D,this._opened=!1,this.openedChange.subscribe(function(t){t?(a._doc&&(a._elementFocusedBeforeDrawerWasOpened=a._doc.activeElement),a._isFocusTrapEnabled&&a._focusTrap&&a._trapFocus()):a._restoreFocus()}),this._ngZone.runOutsideAngular(function(){rl(a._elementRef.nativeElement,"keydown").pipe(hl(function(t){return t.keyCode===Aa&&!a.disableClose}),Ku(a._destroyed)).subscribe(function(t){return a._ngZone.run(function(){a.close(),t.stopPropagation()})})}),this._animationEnd.pipe((s=function(t,e){return t.fromState===e.fromState&&t.toState===e.toState},function(t){return t.lift(new il(s,void 0))})).subscribe(function(t){var e=t.fromState,n=t.toState;(0===n.indexOf("open")&&"void"===e||"void"===n&&0===e.indexOf("open"))&&a.openedChange.emit(a._opened)})}return Object.defineProperty(t.prototype,"position",{get:function(){return this._position},set:function(t){(t="end"===t?"end":"start")!=this._position&&(this._position=t,this.onPositionChanged.emit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"mode",{get:function(){return this._mode},set:function(t){this._mode=t,this._modeChanged.next()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disableClose",{get:function(){return this._disableClose},set:function(t){this._disableClose=Ca(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"autoFocus",{get:function(){return this._autoFocus},set:function(t){this._autoFocus=Ca(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_openedStream",{get:function(){return this.openedChange.pipe(hl(function(t){return t}),K(function(){}))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"openedStart",{get:function(){return this._animationStarted.pipe(hl(function(t){return t.fromState!==t.toState&&0===t.toState.indexOf("open")}),K(function(){}))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_closedStream",{get:function(){return this.openedChange.pipe(hl(function(t){return!t}),K(function(){}))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"closedStart",{get:function(){return this._animationStarted.pipe(hl(function(t){return t.fromState!==t.toState&&"void"===t.toState}),K(function(){}))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_isFocusTrapEnabled",{get:function(){return this.opened&&"side"!==this.mode},enumerable:!0,configurable:!0}),t.prototype._trapFocus=function(){var t=this;this.autoFocus&&this._focusTrap.focusInitialElementWhenReady().then(function(e){e||"function"!=typeof t._elementRef.nativeElement.focus||t._elementRef.nativeElement.focus()})},t.prototype._restoreFocus=function(){if(this.autoFocus){var t=this._doc&&this._doc.activeElement;t&&this._elementRef.nativeElement.contains(t)&&(this._elementFocusedBeforeDrawerWasOpened instanceof HTMLElement?this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened,this._openedVia):this._elementRef.nativeElement.blur()),this._elementFocusedBeforeDrawerWasOpened=null,this._openedVia=null}},t.prototype.ngAfterContentInit=function(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._focusTrap.enabled=this._isFocusTrapEnabled},t.prototype.ngAfterContentChecked=function(){this._platform.isBrowser&&(this._enableAnimations=!0)},t.prototype.ngOnDestroy=function(){this._focusTrap&&this._focusTrap.destroy(),this._animationStarted.complete(),this._animationEnd.complete(),this._destroyed.next(),this._destroyed.complete()},Object.defineProperty(t.prototype,"opened",{get:function(){return this._opened},set:function(t){this.toggle(Ca(t))},enumerable:!0,configurable:!0}),t.prototype.open=function(t){return this.toggle(!0,t)},t.prototype.close=function(){return this.toggle(!1)},t.prototype.toggle=function(t,e){var n=this;return void 0===t&&(t=!this.opened),void 0===e&&(e="program"),this._opened=t,t?(this._animationState=this._enableAnimations?"open":"open-instant",this._openedVia=e):(this._animationState="void",this._restoreFocus()),this._focusTrap&&(this._focusTrap.enabled=this._isFocusTrapEnabled),new Promise(function(t){n.openedChange.pipe(kl(1)).subscribe(function(e){return t(e?"open":"close")})})},Object.defineProperty(t.prototype,"_width",{get:function(){return this._elementRef.nativeElement&&this._elementRef.nativeElement.offsetWidth||0},enumerable:!0,configurable:!0}),t}(),QE=function(){function t(t,e,n,r,i,o,s){void 0===i&&(i=!1);var a=this;this._dir=t,this._element=e,this._ngZone=n,this._changeDetectorRef=r,this._animationMode=o,this.backdropClick=new hn,this._destroyed=new D,this._doCheckSubject=new D,this._contentMargins={left:null,right:null},this._contentMarginChanges=new D,t&&t.change.pipe(Ku(this._destroyed)).subscribe(function(){a._validateDrawers(),a._updateContentMargins()}),s&&s.change().pipe(Ku(this._destroyed)).subscribe(function(){return a._updateContentMargins()}),this._autosize=i}return Object.defineProperty(t.prototype,"start",{get:function(){return this._start},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"end",{get:function(){return this._end},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"autosize",{get:function(){return this._autosize},set:function(t){this._autosize=Ca(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasBackdrop",{get:function(){return null==this._backdropOverride?!this._start||"side"!==this._start.mode||!this._end||"side"!==this._end.mode:this._backdropOverride},set:function(t){this._backdropOverride=null==t?null:Ca(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollable",{get:function(){return this._userContent||this._content},enumerable:!0,configurable:!0}),t.prototype.ngAfterContentInit=function(){var t=this;this._drawers.changes.pipe(Qu(null)).subscribe(function(){t._validateDrawers(),t._drawers.forEach(function(e){t._watchDrawerToggle(e),t._watchDrawerPosition(e),t._watchDrawerMode(e)}),(!t._drawers.length||t._isDrawerOpen(t._start)||t._isDrawerOpen(t._end))&&t._updateContentMargins(),t._changeDetectorRef.markForCheck()}),this._doCheckSubject.pipe(Fu(10),Ku(this._destroyed)).subscribe(function(){return t._updateContentMargins()})},t.prototype.ngOnDestroy=function(){this._doCheckSubject.complete(),this._destroyed.next(),this._destroyed.complete()},t.prototype.open=function(){this._drawers.forEach(function(t){return t.open()})},t.prototype.close=function(){this._drawers.forEach(function(t){return t.close()})},t.prototype.ngDoCheck=function(){var t=this;this._autosize&&this._isPushed()&&this._ngZone.runOutsideAngular(function(){return t._doCheckSubject.next()})},t.prototype._watchDrawerToggle=function(t){var e=this;t._animationStarted.pipe(hl(function(t){return t.fromState!==t.toState}),Ku(this._drawers.changes)).subscribe(function(t){"open-instant"!==t.toState&&"NoopAnimations"!==e._animationMode&&e._element.nativeElement.classList.add("mat-drawer-transition"),e._updateContentMargins(),e._changeDetectorRef.markForCheck()}),"side"!==t.mode&&t.openedChange.pipe(Ku(this._drawers.changes)).subscribe(function(){return e._setContainerClass(t.opened)})},t.prototype._watchDrawerPosition=function(t){var e=this;t&&t.onPositionChanged.pipe(Ku(this._drawers.changes)).subscribe(function(){e._ngZone.onMicrotaskEmpty.asObservable().pipe(kl(1)).subscribe(function(){e._validateDrawers()})})},t.prototype._watchDrawerMode=function(t){var e=this;t&&t._modeChanged.pipe(Ku(rt(this._drawers.changes,this._destroyed))).subscribe(function(){e._updateContentMargins(),e._changeDetectorRef.markForCheck()})},t.prototype._setContainerClass=function(t){t?this._element.nativeElement.classList.add("mat-drawer-opened"):this._element.nativeElement.classList.remove("mat-drawer-opened")},t.prototype._validateDrawers=function(){var t=this;this._start=this._end=null,this._drawers.forEach(function(e){"end"==e.position?(null!=t._end&&BE("end"),t._end=e):(null!=t._start&&BE("start"),t._start=e)}),this._right=this._left=null,this._dir&&"rtl"===this._dir.value?(this._left=this._end,this._right=this._start):(this._left=this._start,this._right=this._end)},t.prototype._isPushed=function(){return this._isDrawerOpen(this._start)&&"over"!=this._start.mode||this._isDrawerOpen(this._end)&&"over"!=this._end.mode},t.prototype._onBackdropClicked=function(){this.backdropClick.emit(),this._closeModalDrawer()},t.prototype._closeModalDrawer=function(){var t=this;[this._start,this._end].filter(function(e){return e&&!e.disableClose&&t._canHaveBackdrop(e)}).forEach(function(t){return t.close()})},t.prototype._isShowingBackdrop=function(){return this._isDrawerOpen(this._start)&&this._canHaveBackdrop(this._start)||this._isDrawerOpen(this._end)&&this._canHaveBackdrop(this._end)},t.prototype._canHaveBackdrop=function(t){return"side"!==t.mode||!!this._backdropOverride},t.prototype._isDrawerOpen=function(t){return null!=t&&t.opened},t.prototype._updateContentMargins=function(){var t=this,e=0,n=0;if(this._left&&this._left.opened&&("side"==this._left.mode?e+=this._left._width:"push"==this._left.mode&&(e+=r=this._left._width,n-=r)),this._right&&this._right.opened)if("side"==this._right.mode)n+=this._right._width;else if("push"==this._right.mode){var r;n+=r=this._right._width,e-=r}n=n||null,(e=e||null)===this._contentMargins.left&&n===this._contentMargins.right||(this._contentMargins={left:e,right:n},this._ngZone.run(function(){return t._contentMarginChanges.next(t._contentMargins)}))},t}(),KE=function(t){function e(e,n,r,i,o){return t.call(this,e,n,r,i,o)||this}return Object(r.__extends)(e,t),e}(zE),GE=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._fixedInViewport=!1,e._fixedTopGap=0,e._fixedBottomGap=0,e}return Object(r.__extends)(e,t),Object.defineProperty(e.prototype,"fixedInViewport",{get:function(){return this._fixedInViewport},set:function(t){this._fixedInViewport=Ca(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fixedTopGap",{get:function(){return this._fixedTopGap},set:function(t){this._fixedTopGap=Ta(t)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fixedBottomGap",{get:function(){return this._fixedBottomGap},set:function(t){this._fixedBottomGap=Ta(t)},enumerable:!0,configurable:!0}),e}(WE),YE=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(r.__extends)(e,t),e}(QE),XE=function(){return function(){}}(),JE=mi({encapsulation:2,styles:[],data:{}});function ZE(t){return ss(2,[ts(null,0)],null,null)}var $E=mi({encapsulation:2,styles:[],data:{animation:[{type:7,name:"transform",definitions:[{type:0,name:"open, open-instant",styles:{type:6,styles:{transform:"none",visibility:"visible"},offset:null},options:void 0},{type:0,name:"void",styles:{type:6,styles:{"box-shadow":"none",visibility:"hidden"},offset:null},options:void 0},{type:1,expr:"void => open-instant",animation:{type:4,styles:null,timings:"0ms"},options:null},{type:1,expr:"void <=> open, open-instant => void",animation:{type:4,styles:null,timings:"400ms cubic-bezier(0.25, 0.8, 0.25, 1)"},options:null}],options:{}}]}});function tS(t){return ss(2,[(t()(),Hi(0,0,null,null,1,"div",[["class","mat-drawer-inner-container"]],null,null,null,null,null)),ts(null,0)],null,null)}var eS=mi({encapsulation:2,styles:[".mat-drawer-container{position:relative;z-index:1;box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-opened{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:background-color,visibility}@media (-ms-high-contrast:active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%,0,0)}@media (-ms-high-contrast:active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media (-ms-high-contrast:active){.mat-drawer.mat-drawer-end,[dir=rtl] .mat-drawer{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%,0,0)}[dir=rtl] .mat-drawer{transform:translate3d(100%,0,0)}[dir=rtl] .mat-drawer.mat-drawer-end{left:0;right:auto;transform:translate3d(-100%,0,0)}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}"],data:{}});function nS(t){return ss(0,[(t()(),Hi(0,0,null,null,0,"div",[["class","mat-drawer-backdrop"]],[[2,"mat-drawer-shown",null]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==t.component._onBackdropClicked()&&r),r},null,null))],null,function(t,e){t(e,0,0,e.component._isShowingBackdrop())})}function rS(t){return ss(0,[(t()(),Hi(0,0,null,null,3,"mat-sidenav-content",[["cdkScrollable",""],["class","mat-drawer-content mat-sidenav-content"]],[[4,"margin-left","px"],[4,"margin-right","px"]],null,null,ZE,JE)),Do(1,212992,null,0,Sl,[Oe,El,Jn,[2,Ec]],null,null),Do(2,1294336,null,0,KE,[Sr,YE,Oe,El,Jn],null,null),ts(0,2)],function(t,e){t(e,1,0),t(e,2,0)},function(t,e){t(e,0,0,_o(e,2)._container._contentMargins.left,_o(e,2)._container._contentMargins.right)})}function iS(t){return ss(2,[Yo(402653184,1,{_userContent:0}),(t()(),Bi(16777216,null,null,1,null,nS)),Do(2,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),ts(null,0),ts(null,1),(t()(),Bi(16777216,null,null,1,null,rS)),Do(6,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.hasBackdrop),t(e,6,0,!n._content)},null)}var oS=function(){function t(t){this.auth=t,this.menuRoutes=[{path:"account",icon:"person",name:"account",description:"all about you"},{path:"logs",icon:"library_books",name:"logs",description:"server logs"}]}return t.prototype.ngOnInit=function(){},t}(),sS=mi({encapsulation:0,styles:[[".avata-wrapper[_ngcontent-%COMP%]{display:flex;justify-content:center;flex-direction:column;align-items:center}a[_ngcontent-%COMP%]{text-decoration:none;color:#fff;font-style:normal}@media only screen and (max-width:720px){.menu-item-name[_ngcontent-%COMP%]{opacity:0;width:0;height:0}}"]],data:{}});function aS(t){return ss(0,[(t()(),Hi(0,0,null,null,0,"div",[],null,null,null,null,null))],null,null)}function uS(t){return ss(0,[(t()(),Hi(0,0,null,null,15,"div",[],null,null,null,null,null)),(t()(),Hi(1,16777216,null,null,14,"a",[["matTooltipPosition","after"]],[[1,"target",0],[8,"href",4]],[[null,"longpress"],[null,"keydown"],[null,"touchend"],[null,"click"]],function(t,e,n){var r=!0;return"longpress"===e&&(r=!1!==_o(t,2).show()&&r),"keydown"===e&&(r=!1!==_o(t,2)._handleKeydown(n)&&r),"touchend"===e&&(r=!1!==_o(t,2)._handleTouchend()&&r),"click"===e&&(r=!1!==_o(t,3).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&r),r},null,null)),Do(2,147456,null,0,dc,[oc,Oe,El,wr,Jn,gu,Vh,Yh,hc,[2,Ec],[2,fc],[2,yh]],{position:[0,"position"],message:[1,"message"]},null),Do(3,671744,null,0,bm,[vm,ud,Da],{routerLink:[0,"routerLink"]},null),(t()(),Hi(4,0,null,null,11,"mat-list-item",[["class","mat-list-item"]],[[2,"mat-list-item-avatar",null],[2,"mat-list-item-with-avatar",null]],null,null,ub,ab)),Do(5,1228800,null,3,Pg,[Oe,[2,Ng],[2,Dg],Sr],null,null),Yo(603979776,4,{_lines:1}),Yo(335544320,5,{_avatar:0}),Yo(335544320,6,{_icon:0}),(t()(),Hi(9,0,null,1,2,"h4",[["class","menu-item-name mat-line"],["mat-line",""]],null,null,null,null,null)),Do(10,16384,[[4,4]],0,lp,[],null,null),(t()(),rs(11,null,["",""])),(t()(),Hi(12,0,null,0,3,"mat-icon",[["class","mat-icon notranslate mat-list-icon"],["mat-list-icon",""],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],null,null,lw,uw)),Do(13,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),Do(14,16384,[[6,4]],0,Rg,[],null,null),(t()(),rs(15,0,["",""]))],function(t,e){t(e,2,0,"after",e.context.$implicit.description),t(e,3,0,e.context.$implicit.path),t(e,13,0)},function(t,e){t(e,1,0,_o(e,3).target,_o(e,3).href),t(e,4,0,_o(e,5)._avatar||_o(e,5)._icon,_o(e,5)._avatar||_o(e,5)._icon),t(e,11,0,e.context.$implicit.name),t(e,12,0,_o(e,13).inline,"primary"!==_o(e,13).color&&"accent"!==_o(e,13).color&&"warn"!==_o(e,13).color),t(e,15,0,e.context.$implicit.icon)})}function lS(t){return ss(0,[(t()(),Hi(0,0,null,null,3,"div",[],null,null,null,null,null)),(t()(),Hi(1,16777216,null,null,2,"div",[["aria-haspopup","true"],["class","avatar mat-card-avatar"],["mat-card-avatar",""]],[[4,"background-image",null],[1,"aria-expanded",0]],[[null,"mousedown"],[null,"keydown"],[null,"click"]],function(t,e,n){var r=!0;return"mousedown"===e&&(r=!1!==_o(t,3)._handleMousedown(n)&&r),"keydown"===e&&(r=!1!==_o(t,3)._handleKeydown(n)&&r),"click"===e&&(r=!1!==_o(t,3)._handleClick(n)&&r),r},null,null)),Do(2,16384,null,0,ty,[],null,null),Do(3,1196032,null,0,Yw,[oc,Oe,wr,Qw,[2,Ww],[8,null],[2,Ec],Yh],{menu:[0,"menu"]},null)],function(t,e){t(e,3,0,_o(e.parent.parent,15))},function(t,e){t(e,1,0,"url("+e.context.ngIf.photoUrl+")",_o(e,3).menuOpen||null)})}function cS(t){return ss(0,[(t()(),Bi(16777216,null,null,2,null,lS)),Do(1,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"]},null),Ro(131072,ou,[Sr]),(t()(),Bi(0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,pi(e,1,0,_o(e,2).transform(n.auth.user)))},null)}function hS(t){return ss(0,[(t()(),Hi(0,0,null,null,4,"button",[["class","menu-login"],["mat-mini-fab",""]],[[8,"disabled",0],[2,"_mat-animation-noopable",null]],null,null,db,fb)),Do(1,180224,null,0,hb,[Oe,gu,Yh,[2,rb]],null,null),(t()(),Hi(2,0,null,0,2,"mat-icon",[["class","mat-icon notranslate"],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],null,null,lw,uw)),Do(3,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),(t()(),rs(-1,0,["person"]))],function(t,e){t(e,3,0)},function(t,e){t(e,0,0,_o(e,1).disabled||null,"NoopAnimations"===_o(e,1)._animationMode),t(e,2,0,_o(e,3).inline,"primary"!==_o(e,3).color&&"accent"!==_o(e,3).color&&"warn"!==_o(e,3).color)})}function pS(t){return ss(0,[(t()(),Hi(0,0,null,null,13,"div",[["class","full"],["color","primary"]],null,null,null,null,null)),(t()(),Hi(1,0,null,null,12,"mat-list",[["class","mat-list mat-list-base"]],null,null,null,sb,ob)),Do(2,704512,null,0,Dg,[Oe],null,null),(t()(),Hi(3,0,null,0,8,"mat-list-item",[["class","mat-list-item"]],[[2,"mat-list-item-avatar",null],[2,"mat-list-item-with-avatar",null]],null,null,ub,ab)),Do(4,1228800,null,3,Pg,[Oe,[2,Ng],[2,Dg],Sr],null,null),Yo(603979776,1,{_lines:1}),Yo(335544320,2,{_avatar:0}),Yo(335544320,3,{_icon:0}),(t()(),Hi(8,0,null,2,3,"div",[["class","avatar-wrapper"]],null,null,null,null,null)),(t()(),Bi(16777216,null,null,2,null,aS)),Do(10,16384,null,0,Xa,[wr,pn],{ngIf:[0,"ngIf"],ngIfThen:[1,"ngIfThen"],ngIfElse:[2,"ngIfElse"]},null),Ro(131072,ou,[Sr]),(t()(),Bi(16777216,null,0,1,null,uS)),Do(13,278528,null,0,Ga,[wr,pn,qr],{ngForOf:[0,"ngForOf"]},null),(t()(),Hi(14,0,null,null,18,"mat-menu",[],null,null,null,$w,Jw)),Do(15,1294336,[["accMenu",4]],2,Ww,[Oe,Jn,zw],null,null),Yo(603979776,7,{items:1}),Yo(335544320,8,{lazyContent:0}),Po(2048,null,Bw,null,[Ww]),(t()(),Hi(19,0,null,0,6,"button",[["class","mat-menu-item"],["mat-menu-item",""]],[[1,"role",0],[2,"mat-menu-item-highlighted",null],[2,"mat-menu-item-submenu-trigger",null],[1,"tabindex",0],[1,"aria-disabled",0],[1,"disabled",0]],[[null,"click"],[null,"mouseenter"]],function(t,e,n){var r=!0,i=t.component;return"click"===e&&(r=!1!==_o(t,20)._checkDisabled(n)&&r),"mouseenter"===e&&(r=!1!==_o(t,20)._handleMouseEnter()&&r),"click"===e&&(r=!1!==i.auth.logout()&&r),r},eE,tE)),Do(20,180224,[[7,4]],0,Hw,[Oe,au,Yh,[2,Bw]],null,null),(t()(),Hi(21,0,null,0,2,"mat-icon",[["class","mat-icon notranslate"],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],null,null,lw,uw)),Do(22,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),(t()(),rs(-1,0,["arrow_right_alt"])),(t()(),Hi(24,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),rs(-1,null,["Logout"])),(t()(),Hi(26,0,null,0,6,"button",[["class","mat-menu-item"],["mat-menu-item",""]],[[1,"role",0],[2,"mat-menu-item-highlighted",null],[2,"mat-menu-item-submenu-trigger",null],[1,"tabindex",0],[1,"aria-disabled",0],[1,"disabled",0]],[[null,"click"],[null,"mouseenter"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==_o(t,27)._checkDisabled(n)&&r),"mouseenter"===e&&(r=!1!==_o(t,27)._handleMouseEnter()&&r),r},eE,tE)),Do(27,180224,[[7,4]],0,Hw,[Oe,au,Yh,[2,Bw]],null,null),(t()(),Hi(28,0,null,0,2,"mat-icon",[["class","mat-icon notranslate"],["role","img"]],[[2,"mat-icon-inline",null],[2,"mat-icon-no-color",null]],null,null,lw,uw)),Do(29,9158656,null,0,sw,[Oe,Zb,[8,null],[2,nw]],null,null),(t()(),rs(-1,0,["account_circle"])),(t()(),Hi(31,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),rs(-1,null,["Profile"])),(t()(),Bi(0,[["authenticated",2]],null,0,null,cS)),(t()(),Bi(0,[["guest",2]],null,0,null,hS))],function(t,e){var n=e.component;t(e,10,0,pi(e,10,0,_o(e,11).transform(n.auth.user)),_o(e,33),_o(e,34)),t(e,13,0,n.menuRoutes),t(e,15,0),t(e,22,0),t(e,29,0)},function(t,e){t(e,3,0,_o(e,4)._avatar||_o(e,4)._icon,_o(e,4)._avatar||_o(e,4)._icon),t(e,19,0,_o(e,20).role,_o(e,20)._highlighted,_o(e,20)._triggersSubmenu,_o(e,20)._getTabIndex(),_o(e,20).disabled.toString(),_o(e,20).disabled||null),t(e,21,0,_o(e,22).inline,"primary"!==_o(e,22).color&&"accent"!==_o(e,22).color&&"warn"!==_o(e,22).color),t(e,26,0,_o(e,27).role,_o(e,27)._highlighted,_o(e,27)._triggersSubmenu,_o(e,27)._getTabIndex(),_o(e,27).disabled.toString(),_o(e,27).disabled||null),t(e,28,0,_o(e,29).inline,"primary"!==_o(e,29).color&&"accent"!==_o(e,29).color&&"warn"!==_o(e,29).color)})}var fS=mi({encapsulation:0,styles:[[".main[_ngcontent-%COMP%], .main-menu[_ngcontent-%COMP%]{height:100%}.main-menu[_ngcontent-%COMP%]   .menu-sidebar[_ngcontent-%COMP%]{width:10%}@media only screen and (max-width:1200px){.main-menu[_ngcontent-%COMP%]   .menu-sidebar[_ngcontent-%COMP%]{width:15%}}@media only screen and (max-width:1000px){.main-menu[_ngcontent-%COMP%]   .menu-sidebar[_ngcontent-%COMP%]{width:20%}}@media only screen and (max-width:720px){.main-menu[_ngcontent-%COMP%]   .menu-sidebar[_ngcontent-%COMP%]{width:67px}}"]],data:{}});function dS(t){return ss(0,[(t()(),Hi(0,0,null,null,12,"div",[["class","main"]],null,null,null,null,null)),(t()(),Hi(1,0,null,null,11,"mat-sidenav-container",[["class","main-menu mat-drawer-container mat-sidenav-container"]],[[2,"mat-drawer-container-explicit-backdrop",null]],null,null,iS,eS)),Do(2,1490944,null,2,YE,[[2,Ec],Oe,Jn,Sr,HE,[2,rb],[2,Tl]],null,null),Yo(603979776,1,{_drawers:1}),Yo(335544320,2,{_content:0}),(t()(),Hi(5,0,null,0,3,"mat-sidenav",[["class","menu-sidebar mat-drawer mat-sidenav"],["mode","side"],["opened",""],["tabIndex","-1"]],[[40,"@transform",0],[1,"align",0],[2,"mat-drawer-end",null],[2,"mat-drawer-over",null],[2,"mat-drawer-push",null],[2,"mat-drawer-side",null],[2,"mat-sidenav-fixed",null],[4,"top","px"],[4,"bottom","px"]],[["component","@transform.start"],["component","@transform.done"]],function(t,e,n){var r=!0;return"component:@transform.start"===e&&(r=!1!==_o(t,6)._animationStarted.next(n)&&r),"component:@transform.done"===e&&(r=!1!==_o(t,6)._animationEnd.next(n)&&r),r},tS,$E)),Do(6,3325952,[[1,4],["sidenav",4]],0,GE,[Oe,Qh,Yh,gu,Jn,[2,au]],{mode:[0,"mode"],opened:[1,"opened"]},null),(t()(),Hi(7,0,null,0,1,"app-menu",[],null,null,null,pS,sS)),Do(8,114688,null,0,oS,[Ub],null,null),(t()(),Hi(9,0,null,1,3,"mat-sidenav-content",[["class","mat-drawer-content mat-sidenav-content"]],[[4,"margin-left","px"],[4,"margin-right","px"]],null,null,ZE,JE)),Do(10,1294336,[[2,4]],0,KE,[Sr,YE,Oe,El,Jn],null,null),(t()(),Hi(11,16777216,null,0,1,"router-outlet",[],null,null,null,null,null)),Do(12,212992,null,0,Tm,[Cm,wr,Te,[8,null],Sr],null,null)],function(t,e){t(e,2,0),t(e,6,0,"side",""),t(e,8,0),t(e,10,0),t(e,12,0)},function(t,e){t(e,1,0,_o(e,2)._backdropOverride),t(e,5,0,_o(e,6)._animationState,null,"end"===_o(e,6).position,"over"===_o(e,6).mode,"push"===_o(e,6).mode,"side"===_o(e,6).mode,_o(e,6).fixedInViewport,_o(e,6).fixedInViewport?_o(e,6).fixedTopGap:null,_o(e,6).fixedInViewport?_o(e,6).fixedBottomGap:null),t(e,9,0,_o(e,10)._container._contentMargins.left,_o(e,10)._container._contentMargins.right)})}function mS(t){return ss(0,[(t()(),Hi(0,0,null,null,1,"app-root",[],null,null,null,dS,fS)),Do(1,49152,null,0,da,[],null,null)],null,null)}var yS=ao("app-root",da,mS,{},{},[]),gS=function(){return function(){}}(),vS=function(){return function(){}}(),_S=function(){return function(){}}(),bS=function(){function t(t,e){this.auth=t,this.router=e}return t.prototype.canActivate=function(t,e){var n=this;return this.auth.user.pipe(kl(1),K(function(t){return!!t}),Rh(function(t){t||(console.log("acces denied"),n.router.navigate(["/login"]))}))},t.ngInjectableDef=yt({factory:function(){return new t(Qt(Ub),Qt(vm))},token:t,providedIn:"root"}),t}(),wS=function(){return function(){}}(),ES=function(){return function(){}}(),SS=ha(fa,[da],function(t){return function(t){for(var e={},n=[],r=!1,i=0;i<t.length;i++){var o=t[i];o.token===_e&&!0===o.value&&(r=!0),1073741824&o.flags&&n.push(o.token),o.index=i,e[hi(o.token)]=o}return{factory:null,providersByKey:e,providers:t,modules:n,isRoot:r}}([Zi(512,Te,Ie,[[8,[Ip,Xm,Yy,Kb,kE,RE,qE,yS]],[3,Te],ke]),Zi(4608,Fy,jy,[au,Pn,My]),Zi(4608,Uy,Uy,[Fy,Ly]),Zi(5120,Ay,function(t){return[t]},[Uy]),Zi(4608,Ry,Ry,[]),Zi(6144,Dy,null,[Ry]),Zi(4608,Py,Py,[Dy]),Zi(6144,py,null,[Py]),Zi(4608,hy,Vy,[py,oe]),Zi(4608,xy,xy,[hy]),Zi(5120,Kr,Xr,[[3,Kr]]),Zi(4608,Ha,za,[Kr,[2,Ba]]),Zi(5120,On,Nn,[]),Zi(5120,qr,Gr,[]),Zi(5120,Br,Yr,[]),Zi(4608,Eh,Sh,[au]),Zi(6144,je,null,[Eh]),Zi(4608,mh,up,[[2,op],[2,$h]]),Zi(5120,Bc,function(t,e,n,r,i,o,s,a){return[new fh(t,e,n),new wh(r),new vh(i,o,s,a)]},[au,Jn,Pn,au,au,mh,Ln,[2,yh]]),Zi(4608,Hc,Hc,[Bc,Jn]),Zi(135680,Qc,Qc,[au]),Zi(4608,$c,$c,[Hc,Qc]),Zi(5120,ov,tb,[]),Zi(5120,Yv,eb,[]),Zi(4608,T_,$_,[au,ov,Yv]),Zi(5120,Re,nb,[$c,T_,Jn]),Zi(6144,Wc,null,[Qc]),Zi(4608,or,or,[Jn]),Zi(4608,ma,Q_,[Re,Rc]),Zi(4608,gc,gc,[]),Zi(4608,ip,ip,[]),Zi(4608,oc,oc,[zl,Jl,Te,rc,Xl,oe,Jn,au,Ec,[2,Pa]]),Zi(5120,sc,ac,[oc]),Zi(5120,Qw,Kw,[oc]),Zi(5120,hc,pc,[oc]),Zi(4608,Cb,Cb,[_b,[2,bb],Pn,Jn]),Zi(4608,Lb,Lb,[_b,[2,bb],[2,Nb],[2,Rb],Pn,Jn,[2,Db]]),Zi(5120,ud,Bm,[vm]),Zi(4608,Am,Am,[]),Zi(6144,xm,null,[Am]),Zi(135680,Om,Om,[vm,yn,zn,oe,xm]),Zi(4608,km,km,[]),Zi(5120,Nm,Fm,[vm,du,Dm]),Zi(5120,Qm,Wm,[Hm]),Zi(5120,Mn,function(t){return[t]},[Qm]),Zi(4608,Ub,Ub,[Cb,Lb,vm]),Zi(5120,wb,Eb,[_b,[2,bb]]),Zi(1073742336,qy,qy,[]),Zi(1073742336,By,By,[]),Zi(1073742336,su,su,[]),Zi(1024,Tn,Nh,[]),Zi(1024,lr,function(){return[Mm()]},[]),Zi(512,Hm,Hm,[oe]),Zi(1024,kn,function(t,e){return[(n=t,Uc("probe",qc),Uc("coreTokens",Object(r.__assign)({},Vc,(n||[]).reduce(function(t,e){return t[e.name]=e.token,t},{}))),function(){return qc}),zm(e)];var n},[[2,lr],Hm]),Zi(512,An,An,[[2,kn]]),Zi(131584,dr,dr,[Jn,Ln,oe,Tn,Te,An]),Zi(1073742336,Jr,Jr,[dr]),Zi(1073742336,Dh,Dh,[[3,Dh]]),Zi(1073742336,ib,ib,[]),Zi(1073742336,Sc,Sc,[]),Zi(1073742336,$h,$h,[[2,Zh],[2,yh]]),Zi(1073742336,vu,vu,[]),Zi(1073742336,bp,bp,[]),Zi(1073742336,pb,pb,[]),Zi(1073742336,ry,ry,[]),Zi(1073742336,Rw,Rw,[]),Zi(1073742336,bc,bc,[]),Zi(1073742336,yw,yw,[]),Zi(1073742336,Fw,Fw,[]),Zi(1073742336,aw,aw,[]),Zi(1073742336,gS,gS,[]),Zi(1073742336,Cl,Cl,[]),Zi(1073742336,XE,XE,[]),Zi(1073742336,Ll,Ll,[]),Zi(1073742336,uc,uc,[]),Zi(1073742336,Xw,Xw,[]),Zi(1073742336,hp,hp,[]),Zi(1073742336,vS,vS,[]),Zi(1073742336,wp,wp,[]),Zi(1073742336,Lg,Lg,[]),Zi(1073742336,Mg,Mg,[]),Zi(1073742336,Jh,Jh,[]),Zi(1073742336,yc,yc,[]),Zi(1073742336,_S,_S,[]),Zi(1073742336,Tb,Tb,[]),Zi(1073742336,Fb,Fb,[]),Zi(1024,Rm,Um,[[3,vm]]),Zi(512,Vf,qf,[]),Zi(512,Cm,Cm,[]),Zi(256,Dm,{},[]),Zi(1024,Da,jm,[Oa,[2,Ra],Dm]),Zi(512,Pa,Pa,[Da]),Zi(512,zn,zn,[]),Zi(512,yn,_r,[zn,[2,gr]]),Zi(1024,hm,function(){return[[{path:"logs",component:zy},{path:"login",component:Vb},{path:"account",component:fE,canActivate:[bS]},{path:"users",component:AE},{path:"user/:uid",component:PE}]]},[]),Zi(1024,vm,qm,[dr,Vf,Cm,Pa,oe,yn,zn,hm,Dm,[2,fm],[2,lm]]),Zi(1073742336,Lm,Lm,[[2,Rm],[2,vm]]),Zi(1073742336,wS,wS,[]),Zi(1073742336,ES,ES,[]),Zi(1073742336,Sb,Sb,[]),Zi(1073742336,fa,fa,[]),Zi(256,My,"XSRF-TOKEN",[]),Zi(256,Ly,"X-XSRF-TOKEN",[]),Zi(256,_e,!0,[]),Zi(256,rb,"BrowserAnimations",[]),Zi(256,_b,{apiKey:"AIzaSyBMhf35HijKKSRZdRYt_eBNLGadhQKdZVY",authDomain:"planets-io.firebaseapp.com",databaseURL:"https://planets-io.firebaseio.com",projectId:"planets-io",storageBucket:"planets-io.appspot.com",messagingSenderId:"209812924936"},[]),Zi(256,bb,void 0,[])])});(function(){if(qe)throw new Error("Cannot enable prod mode after platform setup.");Ve=!1})(),Oh().bootstrapModuleFactory(SS).catch(function(t){return console.error(t)})},zVF4:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n("mrSG"),i={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},o=function(t,e){if(!t)throw s(e)},s=function(t){return new Error("Firebase Database ("+i.SDK_VERSION+") INTERNAL ASSERT FAILED: "+t)},a=function(t){for(var e=[],n=0,r=0;r<t.length;r++){var i=t.charCodeAt(r);i<128?e[n++]=i:i<2048?(e[n++]=i>>6|192,e[n++]=63&i|128):55296==(64512&i)&&r+1<t.length&&56320==(64512&t.charCodeAt(r+1))?(i=65536+((1023&i)<<10)+(1023&t.charCodeAt(++r)),e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=63&i|128):(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=63&i|128)}return e},u={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray:function(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();for(var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[],i=0;i<t.length;i+=3){var o=t[i],s=i+1<t.length,a=s?t[i+1]:0,u=i+2<t.length,l=u?t[i+2]:0,c=(15&a)<<2|l>>6,h=63&l;u||(h=64,s||(c=64)),r.push(n[o>>2],n[(3&o)<<4|a>>4],n[c],n[h])}return r.join("")},encodeString:function(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(a(t),e)},decodeString:function(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){for(var e=[],n=0,r=0;n<t.length;){var i=t[n++];if(i<128)e[r++]=String.fromCharCode(i);else if(i>191&&i<224){var o=t[n++];e[r++]=String.fromCharCode((31&i)<<6|63&o)}else if(i>239&&i<365){var s=((7&i)<<18|(63&(o=t[n++]))<<12|(63&(a=t[n++]))<<6|63&t[n++])-65536;e[r++]=String.fromCharCode(55296+(s>>10)),e[r++]=String.fromCharCode(56320+(1023&s))}else{o=t[n++];var a=t[n++];e[r++]=String.fromCharCode((15&i)<<12|(63&o)<<6|63&a)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray:function(t,e){this.init_();for(var n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[],i=0;i<t.length;){var o=n[t.charAt(i++)],s=i<t.length?n[t.charAt(i)]:0,a=++i<t.length?n[t.charAt(i)]:64,u=++i<t.length?n[t.charAt(i)]:64;if(++i,null==o||null==s||null==a||null==u)throw Error();r.push(o<<2|s>>4),64!=a&&(r.push(s<<4&240|a>>2),64!=u&&r.push(a<<6&192|u))}return r},init_:function(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(var t=0;t<this.ENCODED_VALS.length;t++)this.byteToCharMap_[t]=this.ENCODED_VALS.charAt(t),this.charToByteMap_[this.byteToCharMap_[t]]=t,this.byteToCharMapWebSafe_[t]=this.ENCODED_VALS_WEBSAFE.charAt(t),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[t]]=t,t>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}},l=function(t){try{return u.decodeString(t,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function c(t,e){if(!(e instanceof Object))return e;switch(e.constructor){case Date:return new Date(e.getTime());case Object:void 0===t&&(t={});break;case Array:t=[];break;default:return e}for(var n in e)e.hasOwnProperty(n)&&(t[n]=c(t[n],e[n]));return t}var h=function(){function t(){var t=this;this.promise=new Promise(function(e,n){t.resolve=e,t.reject=n})}return t.prototype.wrapCallback=function(t){var e=this;return function(n,r){n?e.reject(n):e.resolve(r),"function"==typeof t&&(e.promise.catch(function(){}),1===t.length?t(n):t(n,r))}},t}(),p=function(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""},f=Error.captureStackTrace,d=function(){return function(t,e){if(this.code=t,this.message=e,f)f(this,m.prototype.create);else try{throw Error.apply(this,arguments)}catch(n){this.name="FirebaseError",Object.defineProperty(this,"stack",{get:function(){return n.stack}})}}}();d.prototype=Object.create(Error.prototype),d.prototype.constructor=d,d.prototype.name="FirebaseError";var m=function(){function t(t,e,n){this.service=t,this.serviceName=e,this.errors=n,this.pattern=/\{\$([^}]+)}/g}return t.prototype.create=function(t,e){void 0===e&&(e={});var n,r=this.errors[t],i=this.service+"/"+t;n=void 0===r?"Error":r.replace(this.pattern,function(t,n){var r=e[n];return void 0!==r?r.toString():"<"+n+"?>"});var o=new d(i,n=this.serviceName+": "+n+" ("+i+").");for(var s in e)e.hasOwnProperty(s)&&"_"!==s.slice(-1)&&(o[s]=e[s]);return o},t}();function y(t){return JSON.parse(t)}var g=function(t){var e={},n={},r={},i="";try{var o=t.split(".");e=y(l(o[0])||""),n=y(l(o[1])||""),i=o[2],r=n.d||{},delete n.d}catch(s){}return{header:e,claims:n,data:r,signature:i}},v=function(t,e){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])},_=function(t,e){return v(e,function(e,n){t[e]=n}),t},b=function(t,e,n){for(var r in t)if(e.call(n,t[r],r,t))return r},w=function(t){function e(){var e=t.call(this)||this;e.chain_=[],e.buf_=[],e.W_=[],e.pad_=[],e.inbuf_=0,e.total_=0,e.blockSize=64,e.pad_[0]=128;for(var n=1;n<e.blockSize;++n)e.pad_[n]=0;return e.reset(),e}return r.__extends(e,t),e.prototype.reset=function(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0},e.prototype.compress_=function(t,e){e||(e=0);var n=this.W_;if("string"==typeof t)for(var r=0;r<16;r++)n[r]=t.charCodeAt(e)<<24|t.charCodeAt(e+1)<<16|t.charCodeAt(e+2)<<8|t.charCodeAt(e+3),e+=4;else for(r=0;r<16;r++)n[r]=t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3],e+=4;for(r=16;r<80;r++)n[r]=4294967295&((h=n[r-3]^n[r-8]^n[r-14]^n[r-16])<<1|h>>>31);var i,o,s=this.chain_[0],a=this.chain_[1],u=this.chain_[2],l=this.chain_[3],c=this.chain_[4];for(r=0;r<80;r++){r<40?r<20?(i=l^a&(u^l),o=1518500249):(i=a^u^l,o=1859775393):r<60?(i=a&u|l&(a|u),o=2400959708):(i=a^u^l,o=3395469782);var h=(s<<5|s>>>27)+i+c+o+n[r]&4294967295;c=l,l=u,u=4294967295&(a<<30|a>>>2),a=s,s=h}this.chain_[0]=this.chain_[0]+s&4294967295,this.chain_[1]=this.chain_[1]+a&4294967295,this.chain_[2]=this.chain_[2]+u&4294967295,this.chain_[3]=this.chain_[3]+l&4294967295,this.chain_[4]=this.chain_[4]+c&4294967295},e.prototype.update=function(t,e){if(null!=t){void 0===e&&(e=t.length);for(var n=e-this.blockSize,r=0,i=this.buf_,o=this.inbuf_;r<e;){if(0==o)for(;r<=n;)this.compress_(t,r),r+=this.blockSize;if("string"==typeof t){for(;r<e;)if(i[o]=t.charCodeAt(r),++r,++o==this.blockSize){this.compress_(i),o=0;break}}else for(;r<e;)if(i[o]=t[r],++r,++o==this.blockSize){this.compress_(i),o=0;break}}this.inbuf_=o,this.total_+=e}},e.prototype.digest=function(){var t=[],e=8*this.total_;this.update(this.pad_,this.inbuf_<56?56-this.inbuf_:this.blockSize-(this.inbuf_-56));for(var n=this.blockSize-1;n>=56;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);var r=0;for(n=0;n<5;n++)for(var i=24;i>=0;i-=8)t[r]=this.chain_[n]>>i&255,++r;return t},e}(function(){return function(){this.blockSize=-1}}()),E=function(){function t(t,e){var n=this;this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=e,this.task.then(function(){t(n)}).catch(function(t){n.error(t)})}return t.prototype.next=function(t){this.forEachObserver(function(e){e.next(t)})},t.prototype.error=function(t){this.forEachObserver(function(e){e.error(t)}),this.close(t)},t.prototype.complete=function(){this.forEachObserver(function(t){t.complete()}),this.close()},t.prototype.subscribe=function(t,e,n){var r,i=this;if(void 0===t&&void 0===e&&void 0===n)throw new Error("Missing Observer.");void 0===(r=function(t,e){if("object"!=typeof t||null===t)return!1;for(var n=0,r=["next","error","complete"];n<r.length;n++){var i=r[n];if(i in t&&"function"==typeof t[i])return!0}return!1}(t)?t:{next:t,error:e,complete:n}).next&&(r.next=S),void 0===r.error&&(r.error=S),void 0===r.complete&&(r.complete=S);var o=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(function(){try{i.finalError?r.error(i.finalError):r.complete()}catch(t){}}),this.observers.push(r),o},t.prototype.unsubscribeOne=function(t){void 0!==this.observers&&void 0!==this.observers[t]&&(delete this.observers[t],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))},t.prototype.forEachObserver=function(t){if(!this.finalized)for(var e=0;e<this.observers.length;e++)this.sendOne(e,t)},t.prototype.sendOne=function(t,e){var n=this;this.task.then(function(){if(void 0!==n.observers&&void 0!==n.observers[t])try{e(n.observers[t])}catch(r){"undefined"!=typeof console&&console.error&&console.error(r)}})},t.prototype.close=function(t){var e=this;this.finalized||(this.finalized=!0,void 0!==t&&(this.finalError=t),this.task.then(function(){e.observers=void 0,e.onNoObservers=void 0}))},t}();function S(){}function C(t,e,n){var r="";switch(e){case 1:r=n?"first":"First";break;case 2:r=n?"second":"Second";break;case 3:r=n?"third":"Third";break;case 4:r=n?"fourth":"Fourth";break;default:throw new Error("errorPrefix called with argumentNumber > 4.  Need to update it?")}return t+" failed: "+r+" argument "}e.assert=o,e.assertionError=s,e.base64=u,e.base64Decode=l,e.base64Encode=function(t){var e=a(t);return u.encodeByteArray(e,!0)},e.CONSTANTS=i,e.deepCopy=function(t){return c(void 0,t)},e.deepExtend=c,e.patchProperty=function(t,e,n){t[e]=n},e.Deferred=h,e.getUA=p,e.isMobileCordova=function(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(p())},e.isNodeSdk=function(){return!0===i.NODE_CLIENT||!0===i.NODE_ADMIN},e.isReactNative=function(){return"object"==typeof navigator&&"ReactNative"===navigator.product},e.ErrorFactory=m,e.FirebaseError=d,e.patchCapture=function(t){var e=f;return f=t,e},e.jsonEval=y,e.stringify=function(t){return JSON.stringify(t)},e.decode=g,e.isAdmin=function(t){var e=g(t).claims;return"object"==typeof e&&!0===e.admin},e.issuedAtTime=function(t){var e=g(t).claims;return"object"==typeof e&&e.hasOwnProperty("iat")?e.iat:null},e.isValidFormat=function(t){var e=g(t).claims;return!!e&&"object"==typeof e&&e.hasOwnProperty("iat")},e.isValidTimestamp=function(t){var e,n,r=g(t).claims,i=Math.floor((new Date).getTime()/1e3);return"object"==typeof r&&(r.hasOwnProperty("nbf")?e=r.nbf:r.hasOwnProperty("iat")&&(e=r.iat),n=r.hasOwnProperty("exp")?r.exp:e+86400),i&&e&&n&&i>=e&&i<=n},e.clone=function(t){return _({},t)},e.contains=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.every=function(t,e){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&!e(n,t[n]))return!1;return!0},e.extend=_,e.findKey=b,e.findValue=function(t,e,n){var r=b(t,e,n);return r&&t[r]},e.forEach=v,e.getAnyKey=function(t){for(var e in t)return e},e.getCount=function(t){var e=0;for(var n in t)e++;return e},e.getValues=function(t){var e=[],n=0;for(var r in t)e[n++]=t[r];return e},e.isEmpty=function(t){for(var e in t)return!1;return!0},e.isNonNullObject=function(t){return"object"==typeof t&&null!==t},e.map=function(t,e,n){var r={};for(var i in t)r[i]=e.call(n,t[i],i,t);return r},e.safeGet=function(t,e){if(Object.prototype.hasOwnProperty.call(t,e))return t[e]},e.querystring=function(t){var e=[];return v(t,function(t,n){Array.isArray(n)?n.forEach(function(n){e.push(encodeURIComponent(t)+"="+encodeURIComponent(n))}):e.push(encodeURIComponent(t)+"="+encodeURIComponent(n))}),e.length?"&"+e.join("&"):""},e.querystringDecode=function(t){var e={};return t.replace(/^\?/,"").split("&").forEach(function(t){if(t){var n=t.split("=");e[n[0]]=n[1]}}),e},e.Sha1=w,e.async=function(t,e){return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];Promise.resolve(!0).then(function(){t.apply(void 0,n)}).catch(function(t){e&&e(t)})}},e.createSubscribe=function(t,e){var n=new E(t,e);return n.subscribe.bind(n)},e.errorPrefix=C,e.validateArgCount=function(t,e,n,r){var i;if(r<e?i="at least "+e:r>n&&(i=0===n?"none":"no more than "+n),i)throw new Error(t+" failed: Was called with "+r+(1===r?" argument.":" arguments.")+" Expects "+i+".")},e.validateCallback=function(t,e,n,r){if((!r||n)&&"function"!=typeof n)throw new Error(C(t,e,r)+"must be a valid function.")},e.validateContextObject=function(t,e,n,r){if((!r||n)&&("object"!=typeof n||null===n))throw new Error(C(t,e,r)+"must be a valid context object.")},e.validateNamespace=function(t,e,n,r){if((!r||n)&&"string"!=typeof n)throw new Error(C(t,e,r)+"must be a valid firebase namespace.")},e.stringLength=function(t){for(var e=0,n=0;n<t.length;n++){var r=t.charCodeAt(n);r<128?e++:r<2048?e+=2:r>=55296&&r<=56319?(e+=4,n++):e+=3}return e},e.stringToByteArray=function(t){for(var e=[],n=0,r=0;r<t.length;r++){var i=t.charCodeAt(r);if(i>=55296&&i<=56319){var s=i-55296;o(++r<t.length,"Surrogate pair missing trail surrogate."),i=65536+(s<<10)+(t.charCodeAt(r)-56320)}i<128?e[n++]=i:i<2048?(e[n++]=i>>6|192,e[n++]=63&i|128):i<65536?(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=63&i|128):(e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=63&i|128)}return e}},"zkF/":function(t,e,n){var r=n("IutQ"),i=n("3Gxb").f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return s&&"[object Window]"==o.call(t)?function(t){try{return i(t)}catch(e){return s.slice()}}(t):i(r(t))}}},[[0,0]]]);
\ No newline at end of file
diff --git a/typescript/simio-client/docs/polyfills.8bbb231b43165d65d357.js b/typescript/simio-client/docs/polyfills.8bbb231b43165d65d357.js
new file mode 100644
index 0000000..46fd98b
--- /dev/null
+++ b/typescript/simio-client/docs/polyfills.8bbb231b43165d65d357.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{"0TWp":function(e,t,n){!function(){"use strict";!function(e){var t=e.performance;function n(e){t&&t.mark&&t.mark(e)}function r(e,n){t&&t.measure&&t.measure(e,n)}n("Zone");var o=!0===e.__zone_symbol__forceDuplicateZoneCheck;if(e.Zone){if(o||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}var a,i=function(){function t(e,t){this._parent=e,this._name=t?t.name||"unnamed":"<root>",this._properties=t&&t.properties||{},this._zoneDelegate=new c(this,this._parent&&this._parent._zoneDelegate,t)}return t.assertZonePatched=function(){if(e.Promise!==Z.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(t,"root",{get:function(){for(var e=t.current;e.parent;)e=e.parent;return e},enumerable:!0,configurable:!0}),Object.defineProperty(t,"current",{get:function(){return O.zone},enumerable:!0,configurable:!0}),Object.defineProperty(t,"currentTask",{get:function(){return P},enumerable:!0,configurable:!0}),t.__load_patch=function(a,i){if(Z.hasOwnProperty(a)){if(o)throw Error("Already loaded patch: "+a)}else if(!e["__Zone_disable_"+a]){var s="Zone:"+a;n(s),Z[a]=i(e,t,z),r(s,s)}},Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),t.prototype.get=function(e){var t=this.getZoneWith(e);if(t)return t._properties[e]},t.prototype.getZoneWith=function(e){for(var t=this;t;){if(t._properties.hasOwnProperty(e))return t;t=t._parent}return null},t.prototype.fork=function(e){if(!e)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,e)},t.prototype.wrap=function(e,t){if("function"!=typeof e)throw new Error("Expecting function got: "+e);var n=this._zoneDelegate.intercept(this,e,t),r=this;return function(){return r.runGuarded(n,this,arguments,t)}},t.prototype.run=function(e,t,n,r){O={parent:O,zone:this};try{return this._zoneDelegate.invoke(this,e,t,n,r)}finally{O=O.parent}},t.prototype.runGuarded=function(e,t,n,r){void 0===t&&(t=null),O={parent:O,zone:this};try{try{return this._zoneDelegate.invoke(this,e,t,n,r)}catch(o){if(this._zoneDelegate.handleError(this,o))throw o}}finally{O=O.parent}},t.prototype.runTask=function(e,t,n){if(e.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(e.zone||y).name+"; Execution: "+this.name+")");if(e.state!==m||e.type!==D&&e.type!==S){var r=e.state!=b;r&&e._transitionTo(b,_),e.runCount++;var o=P;P=e,O={parent:O,zone:this};try{e.type==S&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,t,n)}catch(a){if(this._zoneDelegate.handleError(this,a))throw a}}finally{e.state!==m&&e.state!==w&&(e.type==D||e.data&&e.data.isPeriodic?r&&e._transitionTo(_,b):(e.runCount=0,this._updateTaskCount(e,-1),r&&e._transitionTo(m,b,m))),O=O.parent,P=o}}},t.prototype.scheduleTask=function(e){if(e.zone&&e.zone!==this)for(var t=this;t;){if(t===e.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+e.zone.name);t=t.parent}e._transitionTo(k,m);var n=[];e._zoneDelegates=n,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(r){throw e._transitionTo(w,k,m),this._zoneDelegate.handleError(this,r),r}return e._zoneDelegates===n&&this._updateTaskCount(e,1),e.state==k&&e._transitionTo(_,k),e},t.prototype.scheduleMicroTask=function(e,t,n,r){return this.scheduleTask(new l(E,e,t,n,r,void 0))},t.prototype.scheduleMacroTask=function(e,t,n,r,o){return this.scheduleTask(new l(S,e,t,n,r,o))},t.prototype.scheduleEventTask=function(e,t,n,r,o){return this.scheduleTask(new l(D,e,t,n,r,o))},t.prototype.cancelTask=function(e){if(e.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(e.zone||y).name+"; Execution: "+this.name+")");e._transitionTo(T,_,b);try{this._zoneDelegate.cancelTask(this,e)}catch(t){throw e._transitionTo(w,T),this._zoneDelegate.handleError(this,t),t}return this._updateTaskCount(e,-1),e._transitionTo(m,T),e.runCount=0,e},t.prototype._updateTaskCount=function(e,t){var n=e._zoneDelegates;-1==t&&(e._zoneDelegates=null);for(var r=0;r<n.length;r++)n[r]._updateTaskCount(e.type,t)},t.__symbol__=I,t}(),s={name:"",onHasTask:function(e,t,n,r){return e.hasTask(n,r)},onScheduleTask:function(e,t,n,r){return e.scheduleTask(n,r)},onInvokeTask:function(e,t,n,r,o,a){return e.invokeTask(n,r,o,a)},onCancelTask:function(e,t,n,r){return e.cancelTask(n,r)}},c=function(){function e(e,t,n){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=e,this._parentDelegate=t,this._forkZS=n&&(n&&n.onFork?n:t._forkZS),this._forkDlgt=n&&(n.onFork?t:t._forkDlgt),this._forkCurrZone=n&&(n.onFork?this.zone:t.zone),this._interceptZS=n&&(n.onIntercept?n:t._interceptZS),this._interceptDlgt=n&&(n.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=n&&(n.onIntercept?this.zone:t.zone),this._invokeZS=n&&(n.onInvoke?n:t._invokeZS),this._invokeDlgt=n&&(n.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=n&&(n.onInvoke?this.zone:t.zone),this._handleErrorZS=n&&(n.onHandleError?n:t._handleErrorZS),this._handleErrorDlgt=n&&(n.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=n&&(n.onHandleError?this.zone:t.zone),this._scheduleTaskZS=n&&(n.onScheduleTask?n:t._scheduleTaskZS),this._scheduleTaskDlgt=n&&(n.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=n&&(n.onScheduleTask?this.zone:t.zone),this._invokeTaskZS=n&&(n.onInvokeTask?n:t._invokeTaskZS),this._invokeTaskDlgt=n&&(n.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=n&&(n.onInvokeTask?this.zone:t.zone),this._cancelTaskZS=n&&(n.onCancelTask?n:t._cancelTaskZS),this._cancelTaskDlgt=n&&(n.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=n&&(n.onCancelTask?this.zone:t.zone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;var r=n&&n.onHasTask;(r||t&&t._hasTaskZS)&&(this._hasTaskZS=r?n:s,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=e,n.onScheduleTask||(this._scheduleTaskZS=s,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),n.onInvokeTask||(this._invokeTaskZS=s,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),n.onCancelTask||(this._cancelTaskZS=s,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}return e.prototype.fork=function(e,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,e,t):new i(e,t)},e.prototype.intercept=function(e,t,n){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,e,t,n):t},e.prototype.invoke=function(e,t,n,r,o){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,e,t,n,r,o):t.apply(n,r)},e.prototype.handleError=function(e,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,e,t)},e.prototype.scheduleTask=function(e,t){var n=t;if(this._scheduleTaskZS)this._hasTaskZS&&n._zoneDelegates.push(this._hasTaskDlgtOwner),(n=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,e,t))||(n=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=E)throw new Error("Task is missing scheduleFn.");v(t)}return n},e.prototype.invokeTask=function(e,t,n,r){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,e,t,n,r):t.callback.apply(n,r)},e.prototype.cancelTask=function(e,t){var n;if(this._cancelTaskZS)n=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,e,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");n=t.cancelFn(t)}return n},e.prototype.hasTask=function(e,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,e,t)}catch(n){this.handleError(e,n)}},e.prototype._updateTaskCount=function(e,t){var n=this._taskCounts,r=n[e],o=n[e]=r+t;if(o<0)throw new Error("More tasks executed then were scheduled.");0!=r&&0!=o||this.hasTask(this.zone,{microTask:n.microTask>0,macroTask:n.macroTask>0,eventTask:n.eventTask>0,change:e})},e}(),l=function(){function t(n,r,o,a,i,s){this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=n,this.source=r,this.data=a,this.scheduleFn=i,this.cancelFn=s,this.callback=o;var c=this;this.invoke=n===D&&a&&a.useG?t.invokeTask:function(){return t.invokeTask.call(e,c,this,arguments)}}return t.invokeTask=function(e,t,n){e||(e=this),C++;try{return e.runCount++,e.zone.runTask(e,t,n)}finally{1==C&&g(),C--}},Object.defineProperty(t.prototype,"zone",{get:function(){return this._zone},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"state",{get:function(){return this._state},enumerable:!0,configurable:!0}),t.prototype.cancelScheduleRequest=function(){this._transitionTo(m,k)},t.prototype._transitionTo=function(e,t,n){if(this._state!==t&&this._state!==n)throw new Error(this.type+" '"+this.source+"': can not transition to '"+e+"', expecting state '"+t+"'"+(n?" or '"+n+"'":"")+", was '"+this._state+"'.");this._state=e,e==m&&(this._zoneDelegates=null)},t.prototype.toString=function(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)},t.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}},t}(),u=I("setTimeout"),f=I("Promise"),p=I("then"),h=[],d=!1;function v(t){if(0===C&&0===h.length)if(a||e[f]&&(a=e[f].resolve(0)),a){var n=a[p];n||(n=a.then),n.call(a,g)}else e[u](g,0);t&&h.push(t)}function g(){if(!d){for(d=!0;h.length;){var e=h;h=[];for(var t=0;t<e.length;t++){var n=e[t];try{n.zone.runTask(n,null,null)}catch(r){z.onUnhandledError(r)}}}z.microtaskDrainDone(),d=!1}}var y={name:"NO ZONE"},m="notScheduled",k="scheduling",_="scheduled",b="running",T="canceling",w="unknown",E="microTask",S="macroTask",D="eventTask",Z={},z={symbol:I,currentZoneFrame:function(){return O},onUnhandledError:j,microtaskDrainDone:j,scheduleMicroTask:v,showUncaughtError:function(){return!i[I("ignoreConsoleErrorUncaughtError")]},patchEventTarget:function(){return[]},patchOnProperties:j,patchMethod:function(){return j},bindArguments:function(){return[]},patchThen:function(){return j},setNativePromise:function(e){e&&"function"==typeof e.resolve&&(a=e.resolve(0))}},O={parent:null,zone:new i(null,null)},P=null,C=0;function j(){}function I(e){return"__zone_symbol__"+e}r("Zone","Zone"),e.Zone=i}("undefined"!=typeof window&&window||"undefined"!=typeof self&&self||global);var e=function(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}};Zone.__load_patch("ZoneAwarePromise",function(t,n,r){var o=Object.getOwnPropertyDescriptor,a=Object.defineProperty,i=r.symbol,s=[],c=i("Promise"),l=i("then"),u="__creationTrace__";r.onUnhandledError=function(e){if(r.showUncaughtError()){var t=e&&e.rejection;t?console.error("Unhandled Promise rejection:",t instanceof Error?t.message:t,"; Zone:",e.zone.name,"; Task:",e.task&&e.task.source,"; Value:",t,t instanceof Error?t.stack:void 0):console.error(e)}},r.microtaskDrainDone=function(){for(;s.length;)for(var e=function(){var e=s.shift();try{e.zone.runGuarded(function(){throw e})}catch(t){p(t)}};s.length;)e()};var f=i("unhandledPromiseRejectionHandler");function p(e){r.onUnhandledError(e);try{var t=n[f];t&&"function"==typeof t&&t.call(this,e)}catch(o){}}function h(e){return e&&e.then}function d(e){return e}function v(e){return M.reject(e)}var g=i("state"),y=i("value"),m=i("finally"),k=i("parentPromiseValue"),_=i("parentPromiseState"),b="Promise.then",T=null,w=!0,E=!1,S=0;function D(e,t){return function(n){try{P(e,t,n)}catch(r){P(e,!1,r)}}}var Z=function(){var e=!1;return function(t){return function(){e||(e=!0,t.apply(null,arguments))}}},z="Promise resolved with itself",O=i("currentTaskTrace");function P(e,t,o){var i,c=Z();if(e===o)throw new TypeError(z);if(e[g]===T){var l=null;try{"object"!=typeof o&&"function"!=typeof o||(l=o&&o.then)}catch(v){return c(function(){P(e,!1,v)})(),e}if(t!==E&&o instanceof M&&o.hasOwnProperty(g)&&o.hasOwnProperty(y)&&o[g]!==T)j(o),P(e,o[g],o[y]);else if(t!==E&&"function"==typeof l)try{l.call(o,c(D(e,t)),c(D(e,!1)))}catch(v){c(function(){P(e,!1,v)})()}else{e[g]=t;var f=e[y];if(e[y]=o,e[m]===m&&t===w&&(e[g]=e[_],e[y]=e[k]),t===E&&o instanceof Error){var p=n.currentTask&&n.currentTask.data&&n.currentTask.data[u];p&&a(o,O,{configurable:!0,enumerable:!1,writable:!0,value:p})}for(var h=0;h<f.length;)I(e,f[h++],f[h++],f[h++],f[h++]);if(0==f.length&&t==E){e[g]=S;try{throw new Error("Uncaught (in promise): "+((i=o)&&i.toString===Object.prototype.toString?(i.constructor&&i.constructor.name||"")+": "+JSON.stringify(i):i?i.toString():Object.prototype.toString.call(i))+(o&&o.stack?"\n"+o.stack:""))}catch(v){var d=v;d.rejection=o,d.promise=e,d.zone=n.current,d.task=n.currentTask,s.push(d),r.scheduleMicroTask()}}}}return e}var C=i("rejectionHandledHandler");function j(e){if(e[g]===S){try{var t=n[C];t&&"function"==typeof t&&t.call(this,{rejection:e[y],promise:e})}catch(o){}e[g]=E;for(var r=0;r<s.length;r++)e===s[r].promise&&s.splice(r,1)}}function I(e,t,n,r,o){j(e);var a=e[g],i=a?"function"==typeof r?r:d:"function"==typeof o?o:v;t.scheduleMicroTask(b,function(){try{var r=e[y],o=n&&m===n[m];o&&(n[k]=r,n[_]=a);var s=t.run(i,void 0,o&&i!==v&&i!==d?[]:[r]);P(n,!0,s)}catch(c){P(n,!1,c)}},n)}var M=function(){function t(e){if(!(this instanceof t))throw new Error("Must be an instanceof Promise.");this[g]=T,this[y]=[];try{e&&e(D(this,w),D(this,E))}catch(n){P(this,!1,n)}}return t.toString=function(){return"function ZoneAwarePromise() { [native code] }"},t.resolve=function(e){return P(new this(null),w,e)},t.reject=function(e){return P(new this(null),E,e)},t.race=function(t){var n,r,o,a,i=new this(function(e,t){o=e,a=t});function s(e){i&&(i=o(e))}function c(e){i&&(i=a(e))}try{for(var l=e(t),u=l.next();!u.done;u=l.next()){var f=u.value;h(f)||(f=this.resolve(f)),f.then(s,c)}}catch(p){n={error:p}}finally{try{u&&!u.done&&(r=l.return)&&r.call(l)}finally{if(n)throw n.error}}return i},t.all=function(t){var n,r,o,a,i=new this(function(e,t){o=e,a=t}),s=2,c=0,l=[],u=function(e){h(e)||(e=f.resolve(e));var t=c;e.then(function(e){l[t]=e,0==--s&&o(l)},a),s++,c++},f=this;try{for(var p=e(t),d=p.next();!d.done;d=p.next())u(d.value)}catch(v){n={error:v}}finally{try{d&&!d.done&&(r=p.return)&&r.call(p)}finally{if(n)throw n.error}}return 0==(s-=2)&&o(l),i},t.prototype.then=function(e,t){var r=new this.constructor(null),o=n.current;return this[g]==T?this[y].push(o,r,e,t):I(this,o,r,e,t),r},t.prototype.catch=function(e){return this.then(null,e)},t.prototype.finally=function(e){var t=new this.constructor(null);t[m]=m;var r=n.current;return this[g]==T?this[y].push(r,t,e,e):I(this,r,t,e,e),t},t}();M.resolve=M.resolve,M.reject=M.reject,M.race=M.race,M.all=M.all;var L=t[c]=t.Promise,x=n.__symbol__("ZoneAwarePromise"),R=o(t,"Promise");R&&!R.configurable||(R&&delete R.writable,R&&delete R.value,R||(R={configurable:!0,enumerable:!0}),R.get=function(){return t[x]?t[x]:t[c]},R.set=function(e){e===M?t[x]=e:(t[c]=e,e.prototype[l]||F(e),r.setNativePromise(e))},a(t,"Promise",R)),t.Promise=M;var H=i("thenPatched");function F(e){var t=e.prototype,n=o(t,"then");if(!n||!1!==n.writable&&n.configurable){var r=t.then;t[l]=r,e.prototype.then=function(e,t){var n=this;return new M(function(e,t){r.call(n,e,t)}).then(e,t)},e[H]=!0}}return r.patchThen=F,L&&F(L),Promise[n.__symbol__("uncaughtPromiseErrors")]=s,M}),Zone.__load_patch("fetch",function(e,t,n){var r=e.fetch,o=e.Promise,a=n.symbol("thenPatched"),i=n.symbol("fetchTaskScheduling"),s=n.symbol("fetchTaskAborting");if("function"==typeof r){var c=e.AbortController,l="function"==typeof c,u=null;l&&(e.AbortController=function(){var e=new c;return e.signal.abortController=e,e},u=n.patchMethod(c.prototype,"abort",function(e){return function(t,n){return t.task?t.task.zone.cancelTask(t.task):e.apply(t,n)}}));var f=function(){};e.fetch=function(){var e=this,c=Array.prototype.slice.call(arguments),p=c.length>1?c[1]:null,h=p&&p.signal;return new Promise(function(p,d){var v=t.current.scheduleMacroTask("fetch",f,c,function(){var s,l=t.current;try{l[i]=!0,s=r.apply(e,c)}catch(f){return void d(f)}finally{l[i]=!1}if(!(s instanceof o)){var u=s.constructor;u[a]||n.patchThen(u)}s.then(function(e){"notScheduled"!==v.state&&v.invoke(),p(e)},function(e){"notScheduled"!==v.state&&v.invoke(),d(e)})},function(){if(l)if(h&&h.abortController&&!h.aborted&&"function"==typeof h.abortController.abort&&u)try{t.current[s]=!0,u.call(h.abortController)}finally{t.current[s]=!1}else d("cancel fetch need a AbortController.signal");else d("No AbortController supported, can not cancel fetch")});h&&h.abortController&&(h.abortController.task=v)})}}});var t=Object.getOwnPropertyDescriptor,n=Object.defineProperty,r=Object.getPrototypeOf,o=Object.create,a=Array.prototype.slice,i="addEventListener",s="removeEventListener",c=Zone.__symbol__(i),l=Zone.__symbol__(s),u="true",f="false",p="__zone_symbol__";function h(e,t){return Zone.current.wrap(e,t)}function d(e,t,n,r,o){return Zone.current.scheduleMacroTask(e,t,n,r,o)}var v=Zone.__symbol__,g="undefined"!=typeof window,y=g?window:void 0,m=g&&y||"object"==typeof self&&self||global,k="removeAttribute",_=[null];function b(e,t){for(var n=e.length-1;n>=0;n--)"function"==typeof e[n]&&(e[n]=h(e[n],t+"_"+n));return e}function T(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&void 0===e.set)}var w="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,E=!("nw"in m)&&void 0!==m.process&&"[object process]"==={}.toString.call(m.process),S=!E&&!w&&!(!g||!y.HTMLElement),D=void 0!==m.process&&"[object process]"==={}.toString.call(m.process)&&!w&&!(!g||!y.HTMLElement),Z={},z=function(e){if(e=e||m.event){var t=Z[e.type];t||(t=Z[e.type]=v("ON_PROPERTY"+e.type));var n,r=this||e.target||m,o=r[t];return S&&r===y&&"error"===e.type?!0===(n=o&&o.call(this,e.message,e.filename,e.lineno,e.colno,e.error))&&e.preventDefault():null==(n=o&&o.apply(this,arguments))||n||e.preventDefault(),n}};function O(e,r,o){var a=t(e,r);if(!a&&o&&t(o,r)&&(a={enumerable:!0,configurable:!0}),a&&a.configurable){var i=v("on"+r+"patched");if(!e.hasOwnProperty(i)||!e[i]){delete a.writable,delete a.value;var s=a.get,c=a.set,l=r.substr(2),u=Z[l];u||(u=Z[l]=v("ON_PROPERTY"+l)),a.set=function(t){var n=this;n||e!==m||(n=m),n&&(n[u]&&n.removeEventListener(l,z),c&&c.apply(n,_),"function"==typeof t?(n[u]=t,n.addEventListener(l,z,!1)):n[u]=null)},a.get=function(){var t=this;if(t||e!==m||(t=m),!t)return null;var n=t[u];if(n)return n;if(s){var o=s&&s.call(this);if(o)return a.set.call(this,o),"function"==typeof t[k]&&t.removeAttribute(r),o}return null},n(e,r,a),e[i]=!0}}}function P(e,t,n){if(t)for(var r=0;r<t.length;r++)O(e,"on"+t[r],n);else{var o=[];for(var a in e)"on"==a.substr(0,2)&&o.push(a);for(var i=0;i<o.length;i++)O(e,o[i],n)}}var C=v("originalInstance");function j(e){var t=m[e];if(t){m[v(e)]=t,m[e]=function(){var n=b(arguments,e);switch(n.length){case 0:this[C]=new t;break;case 1:this[C]=new t(n[0]);break;case 2:this[C]=new t(n[0],n[1]);break;case 3:this[C]=new t(n[0],n[1],n[2]);break;case 4:this[C]=new t(n[0],n[1],n[2],n[3]);break;default:throw new Error("Arg list too long.")}},L(m[e],t);var r,o=new t(function(){});for(r in o)"XMLHttpRequest"===e&&"responseBlob"===r||function(t){"function"==typeof o[t]?m[e].prototype[t]=function(){return this[C][t].apply(this[C],arguments)}:n(m[e].prototype,t,{set:function(n){"function"==typeof n?(this[C][t]=h(n,e+"."+t),L(this[C][t],n)):this[C][t]=n},get:function(){return this[C][t]}})}(r);for(r in t)"prototype"!==r&&t.hasOwnProperty(r)&&(m[e][r]=t[r])}}var I=!1;function M(e,n,o){for(var a=e;a&&!a.hasOwnProperty(n);)a=r(a);!a&&e[n]&&(a=e);var i,s,c=v(n),l=null;if(a&&!(l=a[c])&&(l=a[c]=a[n],T(a&&t(a,n)))){var u=o(l,c,n);a[n]=function(){return u(this,arguments)},L(a[n],l),I&&(i=l,s=a[n],"function"==typeof Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(i).forEach(function(e){var t=Object.getOwnPropertyDescriptor(i,e);Object.defineProperty(s,e,{get:function(){return i[e]},set:function(n){(!t||t.writable&&"function"==typeof t.set)&&(i[e]=n)},enumerable:!t||t.enumerable,configurable:!t||t.configurable})}))}return l}function L(e,t){e[v("OriginalDelegate")]=t}var x=!1,R=!1;function H(){try{var e=y.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch(t){}return!1}function F(){if(x)return R;x=!0;try{var e=y.navigator.userAgent;return-1===e.indexOf("MSIE ")&&-1===e.indexOf("Trident/")&&-1===e.indexOf("Edge/")||(R=!0),R}catch(t){}}Zone.__load_patch("toString",function(e){var t=Function.prototype.toString,n=v("OriginalDelegate"),r=v("Promise"),o=v("Error"),a=function(){if("function"==typeof this){var a=this[n];if(a)return"function"==typeof a?t.apply(this[n],arguments):Object.prototype.toString.call(a);if(this===Promise){var i=e[r];if(i)return t.apply(i,arguments)}if(this===Error){var s=e[o];if(s)return t.apply(s,arguments)}}return t.apply(this,arguments)};a[n]=t,Function.prototype.toString=a;var i=Object.prototype.toString;Object.prototype.toString=function(){return this instanceof Promise?"[object Promise]":i.apply(this,arguments)}});var A=!1;if("undefined"!=typeof window)try{var B=Object.defineProperty({},"passive",{get:function(){A=!0}});window.addEventListener("test",B,B),window.removeEventListener("test",B,B)}catch(me){A=!1}var N={useG:!0},q={},W={},X=/^__zone_symbol__(\w+)(true|false)$/,G="__zone_symbol__propagationStopped";function U(e,t,n){var o=n&&n.add||i,a=n&&n.rm||s,c=n&&n.listeners||"eventListeners",l=n&&n.rmAll||"removeAllListeners",h=v(o),d="."+o+":",g="prependListener",y="."+g+":",m=function(e,t,n){if(!e.isRemoved){var r=e.callback;"object"==typeof r&&r.handleEvent&&(e.callback=function(e){return r.handleEvent(e)},e.originalDelegate=r),e.invoke(e,t,[n]);var o=e.options;o&&"object"==typeof o&&o.once&&t[a].call(t,n.type,e.originalDelegate?e.originalDelegate:e.callback,o)}},k=function(t){if(t=t||e.event){var n=this||t.target||e,r=n[q[t.type][f]];if(r)if(1===r.length)m(r[0],n,t);else for(var o=r.slice(),a=0;a<o.length&&(!t||!0!==t[G]);a++)m(o[a],n,t)}},_=function(t){if(t=t||e.event){var n=this||t.target||e,r=n[q[t.type][u]];if(r)if(1===r.length)m(r[0],n,t);else for(var o=r.slice(),a=0;a<o.length&&(!t||!0!==t[G]);a++)m(o[a],n,t)}};function b(t,n){if(!t)return!1;var i=!0;n&&void 0!==n.useG&&(i=n.useG);var s=n&&n.vh,m=!0;n&&void 0!==n.chkDup&&(m=n.chkDup);var b=!1;n&&void 0!==n.rt&&(b=n.rt);for(var T=t;T&&!T.hasOwnProperty(o);)T=r(T);if(!T&&t[o]&&(T=t),!T)return!1;if(T[h])return!1;var w,S=n&&n.eventNameToString,D={},Z=T[h]=T[o],z=T[v(a)]=T[a],O=T[v(c)]=T[c],P=T[v(l)]=T[l];function C(e){A||"boolean"==typeof D.options||null==D.options||(e.options=!!D.options.capture,D.options=e.options)}n&&n.prepend&&(w=T[v(n.prepend)]=T[n.prepend]);var j=i?function(e){if(!D.isExisting)return C(e),Z.call(D.target,D.eventName,D.capture?_:k,D.options)}:function(e){return C(e),Z.call(D.target,D.eventName,e.invoke,D.options)},I=i?function(e){if(!e.isRemoved){var t=q[e.eventName],n=void 0;t&&(n=t[e.capture?u:f]);var r=n&&e.target[n];if(r)for(var o=0;o<r.length;o++)if(r[o]===e){r.splice(o,1),e.isRemoved=!0,0===r.length&&(e.allRemoved=!0,e.target[n]=null);break}}if(e.allRemoved)return z.call(e.target,e.eventName,e.capture?_:k,e.options)}:function(e){return z.call(e.target,e.eventName,e.invoke,e.options)},M=n&&n.diff?n.diff:function(e,t){var n=typeof t;return"function"===n&&e.callback===t||"object"===n&&e.originalDelegate===t},x=Zone[Zone.__symbol__("BLACK_LISTED_EVENTS")],R=function(t,n,r,o,a,c){return void 0===a&&(a=!1),void 0===c&&(c=!1),function(){var l=this||e,h=arguments[0],d=arguments[1];if(!d)return t.apply(this,arguments);if(E&&"uncaughtException"===h)return t.apply(this,arguments);var v=!1;if("function"!=typeof d){if(!d.handleEvent)return t.apply(this,arguments);v=!0}if(!s||s(t,d,l,arguments)){var g,y=arguments[2];if(x)for(var k=0;k<x.length;k++)if(h===x[k])return t.apply(this,arguments);var _=!1;void 0===y?g=!1:!0===y?g=!0:!1===y?g=!1:(g=!!y&&!!y.capture,_=!!y&&!!y.once);var b,T=Zone.current,w=q[h];if(w)b=w[g?u:f];else{var Z=(S?S(h):h)+f,z=(S?S(h):h)+u,O=p+Z,P=p+z;q[h]={},q[h][f]=O,q[h][u]=P,b=g?P:O}var C,j=l[b],I=!1;if(j){if(I=!0,m)for(k=0;k<j.length;k++)if(M(j[k],d))return}else j=l[b]=[];var L=l.constructor.name,R=W[L];R&&(C=R[h]),C||(C=L+n+(S?S(h):h)),D.options=y,_&&(D.options.once=!1),D.target=l,D.capture=g,D.eventName=h,D.isExisting=I;var H=i?N:void 0;H&&(H.taskData=D);var F=T.scheduleEventTask(C,d,H,r,o);return D.target=null,H&&(H.taskData=null),_&&(y.once=!0),(A||"boolean"!=typeof F.options)&&(F.options=y),F.target=l,F.capture=g,F.eventName=h,v&&(F.originalDelegate=d),c?j.unshift(F):j.push(F),a?l:void 0}}};return T[o]=R(Z,d,j,I,b),w&&(T[g]=R(w,y,function(e){return w.call(D.target,D.eventName,e.invoke,D.options)},I,b,!0)),T[a]=function(){var t,n=this||e,r=arguments[0],o=arguments[2];t=void 0!==o&&(!0===o||!1!==o&&!!o&&!!o.capture);var a=arguments[1];if(!a)return z.apply(this,arguments);if(!s||s(z,a,n,arguments)){var i,c=q[r];c&&(i=c[t?u:f]);var l=i&&n[i];if(l)for(var p=0;p<l.length;p++){var h=l[p];if(M(h,a))return l.splice(p,1),h.isRemoved=!0,0===l.length&&(h.allRemoved=!0,n[i]=null),h.zone.cancelTask(h),b?n:void 0}return z.apply(this,arguments)}},T[c]=function(){for(var t=arguments[0],n=[],r=V(this||e,S?S(t):t),o=0;o<r.length;o++){var a=r[o];n.push(a.originalDelegate?a.originalDelegate:a.callback)}return n},T[l]=function(){var t=this||e,n=arguments[0];if(n){var r=q[n];if(r){var o=t[r[f]],i=t[r[u]];if(o){var s=o.slice();for(h=0;h<s.length;h++)this[a].call(this,n,(c=s[h]).originalDelegate?c.originalDelegate:c.callback,c.options)}if(i)for(s=i.slice(),h=0;h<s.length;h++){var c;this[a].call(this,n,(c=s[h]).originalDelegate?c.originalDelegate:c.callback,c.options)}}}else{for(var p=Object.keys(t),h=0;h<p.length;h++){var d=X.exec(p[h]),v=d&&d[1];v&&"removeListener"!==v&&this[l].call(this,v)}this[l].call(this,"removeListener")}if(b)return this},L(T[o],Z),L(T[a],z),P&&L(T[l],P),O&&L(T[c],O),!0}for(var T=[],w=0;w<t.length;w++)T[w]=b(t[w],n);return T}function V(e,t){var n=[];for(var r in e){var o=X.exec(r),a=o&&o[1];if(a&&(!t||a===t)){var i=e[r];if(i)for(var s=0;s<i.length;s++)n.push(i[s])}}return n}var J=v("zoneTask");function K(e,t,n,r){var o=null,a=null;n+=r;var i={};function s(t){var n=t.data;return n.args[0]=function(){try{t.invoke.apply(this,arguments)}finally{t.data&&t.data.isPeriodic||("number"==typeof n.handleId?delete i[n.handleId]:n.handleId&&(n.handleId[J]=null))}},n.handleId=o.apply(e,n.args),t}function c(e){return a(e.data.handleId)}o=M(e,t+=r,function(n){return function(o,a){if("function"==typeof a[0]){var l=d(t,a[0],{isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?a[1]||0:void 0,args:a},s,c);if(!l)return l;var u=l.data.handleId;return"number"==typeof u?i[u]=l:u&&(u[J]=l),u&&u.ref&&u.unref&&"function"==typeof u.ref&&"function"==typeof u.unref&&(l.ref=u.ref.bind(u),l.unref=u.unref.bind(u)),"number"==typeof u||u?u:l}return n.apply(e,a)}}),a=M(e,n,function(t){return function(n,r){var o,a=r[0];"number"==typeof a?o=i[a]:(o=a&&a[J])||(o=a),o&&"string"==typeof o.type?"notScheduled"!==o.state&&(o.cancelFn&&o.data.isPeriodic||0===o.runCount)&&("number"==typeof a?delete i[a]:a&&(a[J]=null),o.zone.cancelTask(o)):t.apply(e,r)}})}var Y=Object[v("defineProperty")]=Object.defineProperty,Q=Object[v("getOwnPropertyDescriptor")]=Object.getOwnPropertyDescriptor,$=Object.create,ee=v("unconfigurables");function te(e,t){return e&&e[ee]&&e[ee][t]}function ne(e,t,n){return Object.isFrozen(n)||(n.configurable=!0),n.configurable||(e[ee]||Object.isFrozen(e)||Y(e,ee,{writable:!0,value:{}}),e[ee]&&(e[ee][t]=!0)),n}function re(e,t,n,r){try{return Y(e,t,n)}catch(a){if(!n.configurable)throw a;void 0===r?delete n.configurable:n.configurable=r;try{return Y(e,t,n)}catch(a){var o=null;try{o=JSON.stringify(n)}catch(a){o=n.toString()}console.log("Attempting to configure '"+t+"' with descriptor '"+o+"' on object '"+e+"' and got error, giving up: "+a)}}}var oe=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplyconnected","vrdisplaydisconnected","vrdisplaypresentchange"],ae=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],ie=["load"],se=["blur","error","focus","load","resize","scroll","messageerror"],ce=["bounce","finish","start"],le=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],ue=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],fe=["close","error","open","message"],pe=["error","message"],he=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],oe,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function de(e,t,n,r){e&&P(e,function(e,t,n){if(!n||0===n.length)return t;var r=n.filter(function(t){return t.target===e});if(!r||0===r.length)return t;var o=r[0].ignoreProperties;return t.filter(function(e){return-1===o.indexOf(e)})}(e,t,n),r)}function ve(e,c){if(!E||D){var l="undefined"!=typeof WebSocket;if(function(){if((S||D)&&!t(HTMLElement.prototype,"onclick")&&"undefined"!=typeof Element){var e=t(Element.prototype,"onclick");if(e&&!e.configurable)return!1}var r=XMLHttpRequest.prototype,o=t(r,"onreadystatechange");if(o){n(r,"onreadystatechange",{enumerable:!0,configurable:!0,get:function(){return!0}});var a=!!(s=new XMLHttpRequest).onreadystatechange;return n(r,"onreadystatechange",o||{}),a}var i=v("fake");n(r,"onreadystatechange",{enumerable:!0,configurable:!0,get:function(){return this[i]},set:function(e){this[i]=e}});var s,c=function(){};return(s=new XMLHttpRequest).onreadystatechange=c,a=s[i]===c,s.onreadystatechange=null,a}()){var u=c.__Zone_ignore_on_properties;if(S){var f=window,p=H?[{target:f,ignoreProperties:["error"]}]:[];de(f,he.concat(["messageerror"]),u?u.concat(p):u,r(f)),de(Document.prototype,he,u),void 0!==f.SVGElement&&de(f.SVGElement.prototype,he,u),de(Element.prototype,he,u),de(HTMLElement.prototype,he,u),de(HTMLMediaElement.prototype,ae,u),de(HTMLFrameSetElement.prototype,oe.concat(se),u),de(HTMLBodyElement.prototype,oe.concat(se),u),de(HTMLFrameElement.prototype,ie,u),de(HTMLIFrameElement.prototype,ie,u);var d=f.HTMLMarqueeElement;d&&de(d.prototype,ce,u);var g=f.Worker;g&&de(g.prototype,pe,u)}de(XMLHttpRequest.prototype,le,u);var y=c.XMLHttpRequestEventTarget;y&&de(y&&y.prototype,le,u),"undefined"!=typeof IDBIndex&&(de(IDBIndex.prototype,ue,u),de(IDBRequest.prototype,ue,u),de(IDBOpenDBRequest.prototype,ue,u),de(IDBDatabase.prototype,ue,u),de(IDBTransaction.prototype,ue,u),de(IDBCursor.prototype,ue,u)),l&&de(WebSocket.prototype,fe,u)}else!function(){for(var e=function(e){var t=he[e],n="on"+t;self.addEventListener(t,function(e){var t,r,o=e.target;for(r=o?o.constructor.name+"."+n:"unknown."+n;o;)o[n]&&!o[n][ge]&&((t=h(o[n],r))[ge]=o[n],o[n]=t),o=o.parentElement},!0)},t=0;t<he.length;t++)e(t)}(),j("XMLHttpRequest"),l&&function(e,n){var r=n.WebSocket;n.EventTarget||U(n,[r.prototype]),n.WebSocket=function(e,n){var c,l,u=arguments.length>1?new r(e,n):new r(e),f=t(u,"onmessage");return f&&!1===f.configurable?(c=o(u),l=u,[i,s,"send","close"].forEach(function(e){c[e]=function(){var t=a.call(arguments);if(e===i||e===s){var n=t.length>0?t[0]:void 0;if(n){var r=Zone.__symbol__("ON_PROPERTY"+n);u[r]=c[r]}}return u[e].apply(u,t)}})):c=u,P(c,["close","error","message","open"],l),c};var c=n.WebSocket;for(var l in r)c[l]=r[l]}(0,c)}}var ge=v("unbound");function ye(e,n,r,o){var a=Zone.__symbol__(r);if(!e[a]){var i=e[a]=e[r];e[r]=function(a,s,c){return s&&s.prototype&&o.forEach(function(e){var o,a,i,c,l=n+"."+r+"::"+e,u=s.prototype;if(u.hasOwnProperty(e)){var f=t(u,e);f&&f.value?(f.value=h(f.value,l),c=(i=f).configurable,re(o=s.prototype,a=e,i=ne(o,a,i),c)):u[e]&&(u[e]=h(u[e],l))}else u[e]&&(u[e]=h(u[e],l))}),i.call(e,a,s,c)},L(e[r],i)}}Zone.__load_patch("util",function(e,t,n){n.patchOnProperties=P,n.patchMethod=M,n.bindArguments=b}),Zone.__load_patch("timers",function(e){K(e,"set","clear","Timeout"),K(e,"set","clear","Interval"),K(e,"set","clear","Immediate")}),Zone.__load_patch("requestAnimationFrame",function(e){K(e,"request","cancel","AnimationFrame"),K(e,"mozRequest","mozCancel","AnimationFrame"),K(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",function(e,t){for(var n=["alert","prompt","confirm"],r=0;r<n.length;r++)M(e,n[r],function(n,r,o){return function(r,a){return t.current.run(n,e,a,o)}})}),Zone.__load_patch("EventTarget",function(e,t,n){var r=t.__symbol__("BLACK_LISTED_EVENTS");e[r]&&(t[r]=e[r]),function(e,t){!function(e,t){var n=e.Event;n&&n.prototype&&t.patchMethod(n.prototype,"stopImmediatePropagation",function(e){return function(t,n){t[G]=!0,e&&e.apply(t,n)}})}(e,t)}(e,n),function(e,t){var n="Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video",r="ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket".split(","),o=[],a=e.wtf,i=n.split(",");a?o=i.map(function(e){return"HTML"+e+"Element"}).concat(r):e.EventTarget?o.push("EventTarget"):o=r;for(var s=e.__Zone_disable_IE_check||!1,c=e.__Zone_enable_cross_context_check||!1,l=F(),h="function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }",d=0;d<he.length;d++){var v=p+((_=he[d])+f),g=p+(_+u);q[_]={},q[_][f]=v,q[_][u]=g}for(d=0;d<n.length;d++)for(var y=i[d],m=W[y]={},k=0;k<he.length;k++){var _;m[_=he[k]]=y+".addEventListener:"+_}var b=[];for(d=0;d<o.length;d++){var T=e[o[d]];b.push(T&&T.prototype)}U(e,b,{vh:function(e,t,n,r){if(!s&&l){if(c)try{var o;if("[object FunctionWrapper]"===(o=t.toString())||o==h)return e.apply(n,r),!1}catch(a){return e.apply(n,r),!1}else if("[object FunctionWrapper]"===(o=t.toString())||o==h)return e.apply(n,r),!1}else if(c)try{t.toString()}catch(a){return e.apply(n,r),!1}return!0}}),t.patchEventTarget=U}(e,n);var o=e.XMLHttpRequestEventTarget;o&&o.prototype&&n.patchEventTarget(e,[o.prototype]),j("MutationObserver"),j("WebKitMutationObserver"),j("IntersectionObserver"),j("FileReader")}),Zone.__load_patch("on_property",function(e,t,n){ve(0,e),Object.defineProperty=function(e,t,n){if(te(e,t))throw new TypeError("Cannot assign to read only property '"+t+"' of "+e);var r=n.configurable;return"prototype"!==t&&(n=ne(e,t,n)),re(e,t,n,r)},Object.defineProperties=function(e,t){return Object.keys(t).forEach(function(n){Object.defineProperty(e,n,t[n])}),e},Object.create=function(e,t){return"object"!=typeof t||Object.isFrozen(t)||Object.keys(t).forEach(function(n){t[n]=ne(e,n,t[n])}),$(e,t)},Object.getOwnPropertyDescriptor=function(e,t){var n=Q(e,t);return n&&te(e,t)&&(n.configurable=!1),n}}),Zone.__load_patch("customElements",function(e,t,n){(S||D)&&"registerElement"in e.document&&ye(document,"Document","registerElement",["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"]),(S||D)&&"customElements"in e&&ye(e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}),Zone.__load_patch("canvas",function(e){var t=e.HTMLCanvasElement;void 0!==t&&t.prototype&&t.prototype.toBlob&&function(e,n,r){var o=null;function a(e){var t=e.data;return t.args[t.cbIdx]=function(){e.invoke.apply(this,arguments)},o.apply(t.target,t.args),e}o=M(t.prototype,"toBlob",function(e){return function(t,n){var r=function(e,t){return{name:"HTMLCanvasElement.toBlob",target:e,cbIdx:0,args:t}}(t,n);return r.cbIdx>=0&&"function"==typeof n[r.cbIdx]?d(r.name,n[r.cbIdx],r,a):e.apply(t,n)}})}()}),Zone.__load_patch("XHR",function(e,t){!function(u){var f=XMLHttpRequest.prototype,p=f[c],h=f[l];if(!p){var g=e.XMLHttpRequestEventTarget;if(g){var y=g.prototype;p=y[c],h=y[l]}}var m="readystatechange",k="scheduled";function _(e){var t=e.data,r=t.target;r[a]=!1,r[s]=!1;var i=r[o];p||(p=r[c],h=r[l]),i&&h.call(r,m,i);var u=r[o]=function(){if(r.readyState===r.DONE)if(!t.aborted&&r[a]&&e.state===k){var n=r.__zone_symbol__loadfalse;if(n&&n.length>0){var o=e.invoke;e.invoke=function(){for(var n=r.__zone_symbol__loadfalse,a=0;a<n.length;a++)n[a]===e&&n.splice(a,1);t.aborted||e.state!==k||o.call(e)},n.push(e)}else e.invoke()}else t.aborted||!1!==r[a]||(r[s]=!0)};return p.call(r,m,u),r[n]||(r[n]=e),D.apply(r,t.args),r[a]=!0,e}function b(){}function T(e){var t=e.data;return t.aborted=!0,Z.apply(t.target,t.args)}var w=M(f,"open",function(){return function(e,t){return e[r]=0==t[2],e[i]=t[1],w.apply(e,t)}}),E=v("fetchTaskAborting"),S=v("fetchTaskScheduling"),D=M(f,"send",function(){return function(e,n){if(!0===t.current[S])return D.apply(e,n);if(e[r])return D.apply(e,n);var o={target:e,url:e[i],isPeriodic:!1,args:n,aborted:!1},a=d("XMLHttpRequest.send",b,o,_,T);e&&!0===e[s]&&!o.aborted&&a.state===k&&a.invoke()}}),Z=M(f,"abort",function(){return function(e,r){var o=e[n];if(o&&"string"==typeof o.type){if(null==o.cancelFn||o.data&&o.data.aborted)return;o.zone.cancelTask(o)}else if(!0===t.current[E])return Z.apply(e,r)}})}();var n=v("xhrTask"),r=v("xhrSync"),o=v("xhrListener"),a=v("xhrScheduled"),i=v("xhrURL"),s=v("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",function(e){e.navigator&&e.navigator.geolocation&&function(e,n){for(var r=e.constructor.name,o=function(o){var a=n[o],i=e[a];if(i){if(!T(t(e,a)))return"continue";e[a]=function(e){var t=function(){return e.apply(this,b(arguments,r+"."+a))};return L(t,e),t}(i)}},a=0;a<n.length;a++)o(a)}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",function(e,t){function n(t){return function(n){V(e,t).forEach(function(r){var o=e.PromiseRejectionEvent;if(o){var a=new o(t,{promise:n.promise,reason:n.rejection});r.invoke(a)}})}}e.PromiseRejectionEvent&&(t[v("unhandledPromiseRejectionHandler")]=n("unhandledrejection"),t[v("rejectionHandledHandler")]=n("rejectionhandled"))})}()},2:function(e,t,n){e.exports=n("hN/g")},"hN/g":function(e,t,n){"use strict";n.r(t),n("0TWp")}},[[2,0]]]);
\ No newline at end of file
diff --git a/typescript/simio-client/docs/runtime.26209474bfa8dc87a77c.js b/typescript/simio-client/docs/runtime.26209474bfa8dc87a77c.js
new file mode 100644
index 0000000..941798b
--- /dev/null
+++ b/typescript/simio-client/docs/runtime.26209474bfa8dc87a77c.js
@@ -0,0 +1 @@
+!function(e){function r(r){for(var n,f,i=r[0],l=r[1],a=r[2],c=0,s=[];c<i.length;c++)o[f=i[c]]&&s.push(o[f][0]),o[f]=0;for(n in l)Object.prototype.hasOwnProperty.call(l,n)&&(e[n]=l[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++)0!==o[t[i]]&&(n=!1);n&&(u.splice(r--,1),e=f(f.s=t[0]))}return e}var n={},o={0:0},u=[];function f(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.m=e,f.c=n,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)f.d(t,n,(function(r){return e[r]}).bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="";var i=window.webpackJsonp=window.webpackJsonp||[],l=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var p=l;t()}([]);
\ No newline at end of file
diff --git a/typescript/simio-client/docs/styles.257a2b02527cbc698feb.css b/typescript/simio-client/docs/styles.257a2b02527cbc698feb.css
new file mode 100644
index 0000000..0781da7
--- /dev/null
+++ b/typescript/simio-client/docs/styles.257a2b02527cbc698feb.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:6px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,"Helvetica Neue",sans-serif;margin:0 0 12px}.mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,"Helvetica Neue",sans-serif;margin:0 0 12px}.mat-body-2,.mat-body-strong{font:500 14px/24px Roboto,"Helvetica Neue",sans-serif}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto,"Helvetica Neue",sans-serif}.mat-body p,.mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-caption,.mat-small{font:400 12px/20px Roboto,"Helvetica Neue",sans-serif}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,"Helvetica Neue",sans-serif;margin:0 0 56px;letter-spacing:-.05em}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,"Helvetica Neue",sans-serif;margin:0 0 64px;letter-spacing:-.02em}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,"Helvetica Neue",sans-serif;margin:0 0 64px;letter-spacing:-.005em}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,"Helvetica Neue",sans-serif;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto,"Helvetica Neue",sans-serif}.mat-button,.mat-fab,.mat-flat-button,.mat-icon-button,.mat-mini-fab,.mat-raised-button,.mat-stroked-button{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500}.mat-button-toggle,.mat-card{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-content,.mat-card-subtitle{font-size:14px}.mat-checkbox{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-remove.mat-icon,.mat-chip .mat-chip-trailing-icon.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}.mat-expansion-panel-header{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,"Helvetica Neue",sans-serif}.mat-form-field{font-size:inherit;font-weight:400;line-height:1.125;font-family:Roboto,"Helvetica Neue",sans-serif}.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-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{-webkit-transform:translateY(-1.34375em) scale(.75);transform:translateY(-1.34375em) scale(.75);width:133.33333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{-webkit-transform:translateY(-1.34374em) scale(.75);transform:translateY(-1.34374em) scale(.75);width:133.33334%}.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:.66667em;top:calc(100% - 1.79167em)}.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-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{-webkit-transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.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{-webkit-transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);-ms-transform:translateY(-1.28124em) scale(.75);width:133.33334%}.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{-webkit-transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);-ms-transform:translateY(-1.28123em) scale(.75);width:133.33335%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.54167em;top:calc(100% - 1.66667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{-webkit-transform:translateY(-1.28122em) scale(.75);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{-webkit-transform:translateY(-1.28121em) scale(.75);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{-webkit-transform:translateY(-1.2812em) scale(.75);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-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{-webkit-transform:translateY(-.59375em) scale(.75);transform:translateY(-.59375em) scale(.75);width:133.33333%}.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{-webkit-transform:translateY(-.59374em) scale(.75);transform:translateY(-.59374em) scale(.75);width:133.33334%}.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-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{-webkit-transform:translateY(-1.59375em) scale(.75);transform:translateY(-1.59375em) scale(.75);width:133.33333%}.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{-webkit-transform:translateY(-1.59374em) scale(.75);transform:translateY(-1.59374em) scale(.75);width:133.33334%}.mat-grid-tile-footer,.mat-grid-tile-header{font-size:14px}.mat-grid-tile-footer .mat-line,.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2),.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,"Helvetica Neue",sans-serif;font-size: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-horizontal,.mat-stepper-vertical{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;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[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),.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;color:#fff}.mat-optgroup-label{font:500 14px/24px Roboto,"Helvetica Neue",sans-serif;color:rgba(255,255,255,.7)}.mat-simple-snackbar{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-ripple{overflow:hidden;position:relative}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,-webkit-transform 0s cubic-bezier(0,0,.2,1);transition:opacity,transform 0s cubic-bezier(0,0,.2,1);transition:opacity,transform 0s cubic-bezier(0,0,.2,1),-webkit-transform 0s cubic-bezier(0,0,.2,1);-webkit-transform:scale(0);transform:scale(0)}@media (-ms-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;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-global-overlay-wrapper,.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-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;top:0;bottom:0;left:0;right: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}@media screen and (-ms-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,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.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}@-webkit-keyframes cdk-text-field-autofill-start{/*!*/}@keyframes cdk-text-field-autofill-start{/*!*/}@-webkit-keyframes cdk-text-field-autofill-end{/*!*/}@keyframes cdk-text-field-autofill-end{/*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{-webkit-animation-name:cdk-text-field-autofill-start;animation-name:cdk-text-field-autofill-start}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){-webkit-animation-name:cdk-text-field-autofill-end;animation-name:cdk-text-field-autofill-end}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{height:auto!important;overflow:hidden!important;padding:2px 0!important;box-sizing:content-box!important}.mat-ripple-element{background-color:rgba(255,255,255,.1)}.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled),.mat-option:focus:not(.mat-option-disabled),.mat-option:hover:not(.mat-option-disabled){background:rgba(255,255,255,.04)}.mat-option.mat-active{background:rgba(255,255,255,.04);color:#fff}.mat-option.mat-option-disabled{color:rgba(255,255,255,.5)}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#c2185b}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#b0bec5}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#f44336}.mat-optgroup-disabled .mat-optgroup-label{color:rgba(255,255,255,.5)}.mat-pseudo-checkbox{color:rgba(255,255,255,.7)}.mat-pseudo-checkbox::after{color:#303030}.mat-pseudo-checkbox-disabled{color:#686868}.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate,.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate{background:#b0bec5}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#c2185b}.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:#686868}.mat-elevation-z0{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-elevation-z1{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mat-elevation-z2{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-elevation-z3{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.mat-elevation-z4{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-elevation-z5{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.mat-elevation-z6{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-elevation-z7{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.mat-elevation-z8{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-elevation-z9{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.mat-elevation-z10{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.mat-elevation-z11{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.mat-elevation-z12{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-elevation-z13{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.mat-elevation-z14{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.mat-elevation-z15{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.mat-elevation-z16{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mat-elevation-z17{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.mat-elevation-z18{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.mat-elevation-z19{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.mat-elevation-z20{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.mat-elevation-z21{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.mat-elevation-z22{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.mat-elevation-z23{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.mat-elevation-z24{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.mat-app-background{background-color:#303030;color:#fff}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#424242;color:#fff}.mat-autocomplete-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#424242}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:#fff}@media (-ms-high-contrast:active){.mat-badge-content{outline:solid 1px;border-radius:0}.mat-checkbox-disabled{opacity:.5}}.mat-badge-accent .mat-badge-content{background:#b0bec5;color:rgba(0,0,0,.87)}.mat-badge-warn .mat-badge-content{color:#fff;background:#f44336}.mat-badge{position:relative}.mat-badge-hidden .mat-badge-content{display:none}.mat-badge-disabled .mat-badge-content{background:#6e6e6e;color:rgba(255,255,255,.5)}.mat-badge-content{color:#fff;background:#c2185b;position:absolute;text-align:center;display:inline-block;border-radius:50%;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;-webkit-transform:scale(.6);transform:scale(.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.mat-badge-content.mat-badge-active{-webkit-transform:none;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-bottom-sheet-container{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);background:#424242;color:#fff}.mat-button,.mat-icon-button,.mat-stroked-button{color:inherit;background:0 0}.mat-button.mat-primary,.mat-icon-button.mat-primary,.mat-stroked-button.mat-primary{color:#c2185b}.mat-button.mat-accent,.mat-icon-button.mat-accent,.mat-stroked-button.mat-accent{color:#b0bec5}.mat-button.mat-warn,.mat-icon-button.mat-warn,.mat-stroked-button.mat-warn{color:#f44336}.mat-button.mat-accent[disabled],.mat-button.mat-primary[disabled],.mat-button.mat-warn[disabled],.mat-button[disabled][disabled],.mat-icon-button.mat-accent[disabled],.mat-icon-button.mat-primary[disabled],.mat-icon-button.mat-warn[disabled],.mat-icon-button[disabled][disabled],.mat-stroked-button.mat-accent[disabled],.mat-stroked-button.mat-primary[disabled],.mat-stroked-button.mat-warn[disabled],.mat-stroked-button[disabled][disabled]{color:rgba(255,255,255,.3)}.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:#c2185b}.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:#b0bec5}.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[disabled] .mat-button-focus-overlay,.mat-icon-button[disabled] .mat-button-focus-overlay,.mat-stroked-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:#fff}.mat-stroked-button:not([disabled]){border-color:rgba(255,255,255,.12)}.mat-fab,.mat-flat-button,.mat-mini-fab,.mat-raised-button{color:#fff;background-color:#424242}.mat-fab.mat-primary,.mat-flat-button.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{color:#fff;background-color:#c2185b}.mat-fab.mat-accent,.mat-flat-button.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{color:rgba(0,0,0,.87);background-color:#b0bec5}.mat-fab.mat-warn,.mat-flat-button.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{color:#fff;background-color:#f44336}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-flat-button.mat-accent[disabled],.mat-flat-button.mat-primary[disabled],.mat-flat-button.mat-warn[disabled],.mat-flat-button[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{color:rgba(255,255,255,.3);background-color:rgba(255,255,255,.12)}.mat-fab.mat-primary .mat-ripple-element,.mat-flat-button.mat-primary .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element{background-color:rgba(255,255,255,.1)}.mat-fab.mat-accent .mat-ripple-element,.mat-flat-button.mat-accent .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element{background-color:rgba(0,0,0,.1)}.mat-fab.mat-warn .mat-ripple-element,.mat-flat-button.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element{background-color:rgba(255,255,255,.1)}.mat-flat-button:not([class*=mat-elevation-z]),.mat-stroked-button:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-raised-button:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-raised-button:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-raised-button[disabled]:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-fab:not([class*=mat-elevation-z]),.mat-mini-fab:not([class*=mat-elevation-z]){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-fab:not([disabled]):active:not([class*=mat-elevation-z]),.mat-mini-fab:not([disabled]):active:not([class*=mat-elevation-z]){box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-fab[disabled]:not([class*=mat-elevation-z]),.mat-mini-fab[disabled]:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-button-toggle-group,.mat-button-toggle-standalone{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{box-shadow:none;border:1px solid rgba(255,255,255,.12)}.mat-button-toggle{color:rgba(255,255,255,.5)}.mat-button-toggle .mat-button-toggle-focus-overlay{background-color:rgba(255,255,255,.12)}.mat-button-toggle-appearance-standard{color:#fff;background:#424242}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:#fff}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:1px solid rgba(255,255,255,.12)}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:1px solid rgba(255,255,255,.12)}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle+.mat-button-toggle{border-left:none;border-right:none;border-top:1px solid rgba(255,255,255,.12)}.mat-button-toggle-checked{background-color:#212121;color:rgba(255,255,255,.7)}.mat-button-toggle-checked.mat-button-toggle-appearance-standard{color:#fff}.mat-button-toggle-disabled{color:rgba(255,255,255,.3);background-color:#000}.mat-button-toggle-disabled.mat-button-toggle-appearance-standard{background:#424242}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#424242}.mat-card{background:#424242;color:#fff}.mat-card:not([class*=mat-elevation-z]){box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mat-card.mat-card-flat:not([class*=mat-elevation-z]){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-card-subtitle{color:rgba(255,255,255,.7)}.mat-checkbox-frame{border-color:rgba(255,255,255,.7)}.mat-checkbox-checkmark{fill:#303030}.mat-checkbox-checkmark-path{stroke:#303030!important}@media (-ms-high-contrast:black-on-white){.mat-checkbox-checkmark-path{stroke:#000!important}}.mat-checkbox-mixedmark{background-color:#303030}.mat-checkbox-checked.mat-primary .mat-checkbox-background,.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#c2185b}.mat-checkbox-checked.mat-accent .mat-checkbox-background,.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#b0bec5}.mat-checkbox-checked.mat-warn .mat-checkbox-background,.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#f44336}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#686868}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#686868}.mat-checkbox-disabled .mat-checkbox-label{color:rgba(255,255,255,.7)}@media (-ms-high-contrast:active){.mat-checkbox-background{background:0 0}}.mat-checkbox:not(.mat-checkbox-disabled).mat-primary .mat-checkbox-ripple .mat-ripple-element{background-color:#c2185b}.mat-checkbox:not(.mat-checkbox-disabled).mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#b0bec5}.mat-checkbox:not(.mat-checkbox-disabled).mat-warn .mat-checkbox-ripple .mat-ripple-element{background-color:#f44336}.mat-chip.mat-standard-chip{background-color:#616161;color:#fff}.mat-chip.mat-standard-chip .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.mat-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:#fff}.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary{background-color:#c2185b;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:rgba(255,255,255,.1)}.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:rgba(255,255,255,.1)}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent{background-color:#b0bec5;color:rgba(0,0,0,.87)}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:rgba(0,0,0,.87);opacity:.4}.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element{background:rgba(0,0,0,.1)}.mat-table{background:#424242}.mat-table tbody,.mat-table tfoot,.mat-table thead,.mat-table-sticky,[mat-footer-row],[mat-header-row],[mat-row],mat-footer-row,mat-header-row,mat-row{background:inherit}mat-footer-row,mat-header-row,mat-row,td.mat-cell,td.mat-footer-cell,th.mat-header-cell{border-bottom-color:rgba(255,255,255,.12)}.mat-header-cell{color:rgba(255,255,255,.7)}.mat-cell,.mat-footer-cell{color:#fff}.mat-calendar-arrow{border-top-color:#fff}.mat-datepicker-content .mat-calendar-next-button,.mat-datepicker-content .mat-calendar-previous-button,.mat-datepicker-toggle{color:#fff}.mat-calendar-table-header{color:rgba(255,255,255,.5)}.mat-calendar-table-header-divider::after{background:rgba(255,255,255,.12)}.mat-calendar-body-label{color:rgba(255,255,255,.7)}.mat-calendar-body-cell-content{color:#fff;border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){color:rgba(255,255,255,.5)}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){background-color:rgba(255,255,255,.04)}.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(255,255,255,.5)}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(255,255,255,.3)}.mat-calendar-body-selected{background-color:#c2185b;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(194,24,91,.4)}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);background-color:#424242;color:#fff}.mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#b0bec5;color:rgba(0,0,0,.87)}.mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(176,190,197,.4)}.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px rgba(0,0,0,.87)}.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:rgba(244,67,54,.4)}.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content-touch{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-datepicker-toggle-active{color:#c2185b}.mat-datepicker-toggle-active.mat-accent{color:#b0bec5}.mat-datepicker-toggle-active.mat-warn{color:#f44336}.mat-dialog-container{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);background:#424242;color:#fff}.mat-divider{border-top-color:rgba(255,255,255,.12)}.mat-divider-vertical{border-right-color:rgba(255,255,255,.12)}.mat-expansion-panel{background:#424242;color:#fff}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-action-row{border-top-color:rgba(255,255,255,.12)}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:rgba(255,255,255,.04)}@media (hover:none){.mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#424242}}.mat-expansion-panel-header-title{color:#fff}.mat-expansion-indicator::after,.mat-expansion-panel-header-description{color:rgba(255,255,255,.7)}.mat-expansion-panel-header[aria-disabled=true]{color:rgba(255,255,255,.3)}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.mat-form-field-label,.mat-hint{color:rgba(255,255,255,.7)}.mat-form-field.mat-focused .mat-form-field-label{color:#c2185b}.mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#b0bec5}.mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#b0bec5}.mat-form-field-ripple{background-color:#fff}.mat-form-field.mat-focused .mat-form-field-ripple{background-color:#c2185b}.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#b0bec5}.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:#c2185b}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after{color:#b0bec5}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after,.mat-form-field.mat-form-field-invalid .mat-form-field-label,.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker,.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent{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:rgba(255,255,255,.7)}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em;background-color:rgba(255,255,255,.7)}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0,rgba(255,255,255,.7) 33%,transparent 0);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-standard .mat-form-field-underline{background-color:rgba(255,255,255,.7)}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(255,255,255,.7) 0,rgba(255,255,255,.7) 33%,transparent 0);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-fill .mat-form-field-flex{background-color:rgba(255,255,255,.1)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:rgba(255,255,255,.05)}.mat-form-field-appearance-fill .mat-form-field-underline::before{background-color:rgba(255,255,255,.5)}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:rgba(255,255,255,.5)}.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:rgba(255,255,255,.3)}.mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#fff}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#c2185b}.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#b0bec5}.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:rgba(255,255,255,.5)}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:rgba(255,255,255,.15)}.mat-icon.mat-primary{color:#c2185b}.mat-icon.mat-accent{color:#b0bec5}.mat-icon.mat-warn{color:#f44336}.mat-form-field-type-mat-native-select .mat-form-field-infix::after{color:rgba(255,255,255,.7)}.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after,.mat-input-element:disabled{color:rgba(255,255,255,.5)}.mat-input-element{caret-color:#c2185b}.mat-input-element::-ms-input-placeholder{color:rgba(255,255,255,.5)}.mat-input-element::placeholder{color:rgba(255,255,255,.5)}.mat-input-element::-moz-placeholder{color:rgba(255,255,255,.5)}.mat-input-element::-webkit-input-placeholder{color:rgba(255,255,255,.5)}.mat-input-element:-ms-input-placeholder{color:rgba(255,255,255,.5)}.mat-input-element option{color:rgba(0,0,0,.87)}.mat-input-element option:disabled{color:rgba(0,0,0,.38)}.mat-accent .mat-input-element{caret-color:#b0bec5}.mat-form-field-invalid .mat-input-element,.mat-warn .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:#fff}.mat-list-base .mat-subheader{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500;color:rgba(255,255,255,.7)}.mat-list-item-disabled{background-color:#000}.mat-action-list .mat-list-item:focus,.mat-action-list .mat-list-item:hover,.mat-list-option:focus,.mat-list-option:hover,.mat-nav-list .mat-list-item:focus,.mat-nav-list .mat-list-item:hover{background:rgba(255,255,255,.04)}.mat-menu-panel{background:#424242}.mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-menu-item{background:0 0;color:#fff}.mat-menu-item[disabled],.mat-menu-item[disabled]::after{color:rgba(255,255,255,.5)}.mat-menu-item .mat-icon-no-color,.mat-menu-item-submenu-trigger::after{color:#fff}.mat-menu-item-highlighted:not([disabled]),.mat-menu-item.cdk-keyboard-focused:not([disabled]),.mat-menu-item.cdk-program-focused:not([disabled]),.mat-menu-item:hover:not([disabled]){background:rgba(255,255,255,.04)}.mat-paginator{background:#424242}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:rgba(255,255,255,.7)}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid #fff;border-right:2px solid #fff}.mat-paginator-first,.mat-paginator-last{border-top:2px solid #fff}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-last{border-color:rgba(255,255,255,.5)}.mat-progress-bar-background{fill:#e91e63}.mat-progress-bar-buffer{background-color:#e91e63}.mat-progress-bar-fill::after{background-color:#c2185b}.mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#cfd8dc}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#cfd8dc}.mat-progress-bar.mat-accent .mat-progress-bar-fill::after{background-color:#b0bec5}.mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-fill::after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#c2185b}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#b0bec5}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:rgba(255,255,255,.7)}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#c2185b}.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:#c2185b}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#b0bec5}.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:#b0bec5}.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-outer-circle,.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle{border-color:rgba(255,255,255,.5)}.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle,.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:rgba(255,255,255,.5)}.mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:rgba(255,255,255,.5)}.mat-radio-button .mat-ripple-element{background-color:#fff}.mat-select-value{color:#fff}.mat-select-disabled .mat-select-value,.mat-select-placeholder{color:rgba(255,255,255,.5)}.mat-select-arrow{color:rgba(255,255,255,.7)}.mat-select-panel{background:#424242}.mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(255,255,255,.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#c2185b}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#b0bec5}.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow,.mat-form-field.mat-focused.mat-warn .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:rgba(255,255,255,.5)}.mat-drawer-container{background-color:#303030;color:#fff}.mat-drawer{background-color:#424242;color:#fff}.mat-drawer.mat-drawer-push{background-color:#424242}.mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mat-drawer-side{border-right:1px solid rgba(255,255,255,.12)}.mat-drawer-side.mat-drawer-end,[dir=rtl] .mat-drawer-side{border-left:1px solid rgba(255,255,255,.12);border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:1px solid rgba(255,255,255,.12)}.mat-drawer-backdrop.mat-drawer-shown{background-color:rgba(189,189,189,.6)}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#b0bec5}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:rgba(176,190,197,.54)}.mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#b0bec5}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#c2185b}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:rgba(194,24,91,.54)}.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#c2185b}.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:rgba(244,67,54,.54)}.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#f44336}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#fff}.mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);background-color:#bdbdbd}.mat-slide-toggle-bar{background-color:rgba(255,255,255,.5)}.mat-slider-track-background{background-color:rgba(255,255,255,.3)}.mat-primary .mat-slider-thumb,.mat-primary .mat-slider-thumb-label,.mat-primary .mat-slider-track-fill{background-color:#c2185b}.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-accent .mat-slider-thumb,.mat-accent .mat-slider-thumb-label,.mat-accent .mat-slider-track-fill{background-color:#b0bec5}.mat-accent .mat-slider-thumb-label-text{color:rgba(0,0,0,.87)}.mat-warn .mat-slider-thumb,.mat-warn .mat-slider-thumb-label,.mat-warn .mat-slider-track-fill{background-color:#f44336}.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider-focus-ring{background-color:rgba(176,190,197,.2)}.cdk-focused .mat-slider-track-background,.mat-slider-disabled .mat-slider-thumb,.mat-slider-disabled .mat-slider-track-background,.mat-slider-disabled .mat-slider-track-fill,.mat-slider-disabled:hover .mat-slider-track-background,.mat-slider:hover .mat-slider-track-background{background-color:rgba(255,255,255,.3)}.mat-slider-min-value .mat-slider-focus-ring{background-color:rgba(255,255,255,.12)}.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#fff}.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:rgba(255,255,255,.3)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:rgba(255,255,255,.3);background-color:transparent}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:rgba(255,255,255,.3)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:rgba(255,255,255,.3)}.mat-slider-has-ticks .mat-slider-wrapper::after{border-color:rgba(255,255,255,.7)}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(255,255,255,.7),rgba(255,255,255,.7) 2px,transparent 0,transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover{background-color:rgba(255,255,255,.04)}@media (hover:none){.mat-step-header:hover{background:0 0}}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:rgba(255,255,255,.7)}.mat-step-header .mat-step-icon{background-color:rgba(255,255,255,.7);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:#c2185b;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:#fff}.mat-step-header .mat-step-label.mat-step-label-error{color:#f44336}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#424242}.mat-stepper-vertical-line::before{border-left-color:rgba(255,255,255,.12)}.mat-horizontal-stepper-header::after,.mat-horizontal-stepper-header::before,.mat-stepper-horizontal-line{border-top-color:rgba(255,255,255,.12)}.mat-sort-header-arrow{color:#c6c6c6}.mat-tab-header,.mat-tab-nav-bar{border-bottom:1px solid rgba(255,255,255,.12)}.mat-tab-group-inverted-header .mat-tab-header,.mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid rgba(255,255,255,.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:#fff}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.5)}.mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.5)}.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:rgba(233,30,99,.3)}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#c2185b}.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar{background-color:#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:rgba(207,216,220,.3)}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#b0bec5}.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar{background-color:rgba(0,0,0,.87)}.mat-tab-group.mat-warn .mat-tab-label.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:rgba(255,205,210,.3)}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#f44336}.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.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:rgba(233,30,99,.3)}.mat-tab-group.mat-background-primary .mat-tab-header,.mat-tab-group.mat-background-primary .mat-tab-links,.mat-tab-nav-bar.mat-background-primary .mat-tab-header,.mat-tab-nav-bar.mat-background-primary .mat-tab-links{background-color:#c2185b}.mat-tab-group.mat-background-primary .mat-tab-label,.mat-tab-group.mat-background-primary .mat-tab-link,.mat-tab-nav-bar.mat-background-primary .mat-tab-label,.mat-tab-nav-bar.mat-background-primary .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-primary .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary .mat-ripple-element{background-color:rgba(255,255,255,.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:rgba(207,216,220,.3)}.mat-tab-group.mat-background-accent .mat-tab-header,.mat-tab-group.mat-background-accent .mat-tab-links,.mat-tab-nav-bar.mat-background-accent .mat-tab-header,.mat-tab-nav-bar.mat-background-accent .mat-tab-links{background-color:#b0bec5}.mat-tab-group.mat-background-accent .mat-tab-label,.mat-tab-group.mat-background-accent .mat-tab-link,.mat-tab-nav-bar.mat-background-accent .mat-tab-label,.mat-tab-nav-bar.mat-background-accent .mat-tab-link{color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-accent .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent .mat-ripple-element{background-color:rgba(0,0,0,.12)}.mat-tab-group.mat-background-warn .mat-tab-label.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:rgba(255,205,210,.3)}.mat-tab-group.mat-background-warn .mat-tab-header,.mat-tab-group.mat-background-warn .mat-tab-links,.mat-tab-nav-bar.mat-background-warn .mat-tab-header,.mat-tab-nav-bar.mat-background-warn .mat-tab-links{background-color:#f44336}.mat-tab-group.mat-background-warn .mat-tab-label,.mat-tab-group.mat-background-warn .mat-tab-link,.mat-tab-nav-bar.mat-background-warn .mat-tab-label,.mat-tab-nav-bar.mat-background-warn .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-warn .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-toolbar{background:#212121;color:#fff}.mat-toolbar.mat-primary{background:#c2185b;color:#fff}.mat-toolbar.mat-accent{background:#b0bec5;color:rgba(0,0,0,.87)}.mat-toolbar.mat-warn{background:#f44336;color:#fff}.mat-toolbar .mat-focused .mat-form-field-ripple,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-form-field-underline{background-color:currentColor}.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-select-value{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-tooltip{background:rgba(97,97,97,.9)}.mat-tree{font-family:Roboto,"Helvetica Neue",sans-serif;background:#424242}.mat-nested-tree-node,.mat-tree-node{font-weight:400;font-size:14px;color:#fff}.mat-snack-bar-container{color:rgba(0,0,0,.87);background:#fafafa;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-simple-snackbar-action{color:inherit}.avatar{background-size:cover}body,html{height:100%;width:100%;display:block}body{margin:0;font-family:Roboto,"Helvetica Neue",sans-serif}app-login,app-login div{height:100%}
\ No newline at end of file
diff --git a/typescript/simio-client/e2e/protractor.conf.js b/typescript/simio-client/e2e/protractor.conf.js
new file mode 100644
index 0000000..86776a3
--- /dev/null
+++ b/typescript/simio-client/e2e/protractor.conf.js
@@ -0,0 +1,28 @@
+// Protractor configuration file, see link for more information
+// https://github.com/angular/protractor/blob/master/lib/config.ts
+
+const { SpecReporter } = require('jasmine-spec-reporter');
+
+exports.config = {
+  allScriptsTimeout: 11000,
+  specs: [
+    './src/**/*.e2e-spec.ts'
+  ],
+  capabilities: {
+    'browserName': 'chrome'
+  },
+  directConnect: true,
+  baseUrl: 'http://localhost:4200/',
+  framework: 'jasmine',
+  jasmineNodeOpts: {
+    showColors: true,
+    defaultTimeoutInterval: 30000,
+    print: function() {}
+  },
+  onPrepare() {
+    require('ts-node').register({
+      project: require('path').join(__dirname, './tsconfig.e2e.json')
+    });
+    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
+  }
+};
\ No newline at end of file
diff --git a/typescript/simio-client/e2e/src/app.e2e-spec.ts b/typescript/simio-client/e2e/src/app.e2e-spec.ts
new file mode 100644
index 0000000..0030f05
--- /dev/null
+++ b/typescript/simio-client/e2e/src/app.e2e-spec.ts
@@ -0,0 +1,23 @@
+import { AppPage } from './app.po';
+import { browser, logging } from 'protractor';
+
+describe('workspace-project App', () => {
+  let page: AppPage;
+
+  beforeEach(() => {
+    page = new AppPage();
+  });
+
+  it('should display welcome message', () => {
+    page.navigateTo();
+    expect(page.getTitleText()).toEqual('Welcome to angular-client!');
+  });
+
+  afterEach(async () => {
+    // Assert that there are no errors emitted from the browser
+    const logs = await browser.manage().logs().get(logging.Type.BROWSER);
+    expect(logs).not.toContain(jasmine.objectContaining({
+      level: logging.Level.SEVERE,
+    }));
+  });
+});
diff --git a/typescript/simio-client/e2e/src/app.po.ts b/typescript/simio-client/e2e/src/app.po.ts
new file mode 100644
index 0000000..5776aa9
--- /dev/null
+++ b/typescript/simio-client/e2e/src/app.po.ts
@@ -0,0 +1,11 @@
+import { browser, by, element } from 'protractor';
+
+export class AppPage {
+  navigateTo() {
+    return browser.get(browser.baseUrl) as Promise<any>;
+  }
+
+  getTitleText() {
+    return element(by.css('app-root h1')).getText() as Promise<string>;
+  }
+}
diff --git a/typescript/simio-client/e2e/tsconfig.e2e.json b/typescript/simio-client/e2e/tsconfig.e2e.json
new file mode 100644
index 0000000..a6dd622
--- /dev/null
+++ b/typescript/simio-client/e2e/tsconfig.e2e.json
@@ -0,0 +1,13 @@
+{
+  "extends": "../tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../out-tsc/app",
+    "module": "commonjs",
+    "target": "es5",
+    "types": [
+      "jasmine",
+      "jasminewd2",
+      "node"
+    ]
+  }
+}
\ No newline at end of file
diff --git a/typescript/simio-client/package-lock.json b/typescript/simio-client/package-lock.json
new file mode 100644
index 0000000..f763e4e
--- /dev/null
+++ b/typescript/simio-client/package-lock.json
@@ -0,0 +1,10480 @@
+{
+  "name": "angular-client",
+  "version": "0.0.0",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@angular-devkit/architect": {
+      "version": "0.13.8",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.8.tgz",
+      "integrity": "sha512-gxUs5rhnP576T8ZclKqxlspiChrqRtqaJo54wqNVFvYKEjRZKyMa+1AK6p0oD9zcIToEkcjknj3BbtQa27lLHg==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.3.8",
+        "rxjs": "6.3.3"
+      }
+    },
+    "@angular-devkit/build-angular": {
+      "version": "0.13.8",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.13.8.tgz",
+      "integrity": "sha512-uRb8CKC0hUdcE+Fv2Ov9LJNelyjsiMuddBpo8pdTKCIHVVC6hvip9S/Z18Tvb207kKI3k7Dn+Ji1J63mCqmQzA==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.13.8",
+        "@angular-devkit/build-optimizer": "0.13.8",
+        "@angular-devkit/build-webpack": "0.13.8",
+        "@angular-devkit/core": "7.3.8",
+        "@ngtools/webpack": "7.3.8",
+        "ajv": "6.9.1",
+        "autoprefixer": "9.4.6",
+        "circular-dependency-plugin": "5.0.2",
+        "clean-css": "4.2.1",
+        "copy-webpack-plugin": "4.6.0",
+        "file-loader": "3.0.1",
+        "glob": "7.1.3",
+        "istanbul-instrumenter-loader": "3.0.1",
+        "karma-source-map-support": "1.3.0",
+        "less": "3.9.0",
+        "less-loader": "4.1.0",
+        "license-webpack-plugin": "2.1.0",
+        "loader-utils": "1.2.3",
+        "mini-css-extract-plugin": "0.5.0",
+        "minimatch": "3.0.4",
+        "node-sass": "4.11.0",
+        "open": "6.0.0",
+        "parse5": "4.0.0",
+        "postcss": "7.0.14",
+        "postcss-import": "12.0.1",
+        "postcss-loader": "3.0.0",
+        "raw-loader": "1.0.0",
+        "rxjs": "6.3.3",
+        "sass-loader": "7.1.0",
+        "semver": "5.6.0",
+        "source-map-loader": "0.2.4",
+        "source-map-support": "0.5.10",
+        "speed-measure-webpack-plugin": "1.3.1",
+        "stats-webpack-plugin": "0.7.0",
+        "style-loader": "0.23.1",
+        "stylus": "0.54.5",
+        "stylus-loader": "3.0.2",
+        "terser-webpack-plugin": "1.2.2",
+        "tree-kill": "1.2.1",
+        "webpack": "4.29.0",
+        "webpack-dev-middleware": "3.5.1",
+        "webpack-dev-server": "3.1.14",
+        "webpack-merge": "4.2.1",
+        "webpack-sources": "1.3.0",
+        "webpack-subresource-integrity": "1.1.0-rc.6"
+      }
+    },
+    "@angular-devkit/build-optimizer": {
+      "version": "0.13.8",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.13.8.tgz",
+      "integrity": "sha512-RvYxtsdYuvpFb1iivVixylSVN/Q8LsQ449uYuqEe3OsDjQBvUVG2fMLPOQjmKWhi0NC9WSsNiUluxLDNdvd0Vw==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "1.2.3",
+        "source-map": "0.5.6",
+        "typescript": "3.2.4",
+        "webpack-sources": "1.3.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.6",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+          "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+          "dev": true
+        }
+      }
+    },
+    "@angular-devkit/build-webpack": {
+      "version": "0.13.8",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.13.8.tgz",
+      "integrity": "sha512-WMyn1vUHyx+VfJKgYuEHrICwQzPMDTaUNB1zlvzZt9gX/9H+XnetrebeWBZCITPXHBw/377oA6wmiHWJ0yaZRw==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.13.8",
+        "@angular-devkit/core": "7.3.8",
+        "rxjs": "6.3.3"
+      }
+    },
+    "@angular-devkit/core": {
+      "version": "7.3.8",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.8.tgz",
+      "integrity": "sha512-3X9uzaZXFpm5o2TSzhD6wEOtVU32CgeytKjD1Scxj+uMMVo48SWLlKiFh312T+smI9ko7tOT8VqxglwYkWosgg==",
+      "dev": true,
+      "requires": {
+        "ajv": "6.9.1",
+        "chokidar": "2.0.4",
+        "fast-json-stable-stringify": "2.0.0",
+        "rxjs": "6.3.3",
+        "source-map": "0.7.3"
+      }
+    },
+    "@angular-devkit/schematics": {
+      "version": "7.3.8",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.3.8.tgz",
+      "integrity": "sha512-mvaKoORZIaW/h0VNZ3IQWP0qThRCZRX6869FNlzV0jlW0mhn07XbiIGHCGGSCDRxS7qJ0VbuIVnKXntF+iDeWw==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.3.8",
+        "rxjs": "6.3.3"
+      }
+    },
+    "@angular/animations": {
+      "version": "7.2.12",
+      "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.12.tgz",
+      "integrity": "sha512-J7d9hYXNqNz2kVxKEZlAAn4iojjF63WfGenEnMCtFgXU26ok03EAiR+VaiIqIvcevxvvR+iDrCHb+Hub0C212w==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/cli": {
+      "version": "7.3.8",
+      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.3.8.tgz",
+      "integrity": "sha512-5ldU1idvWstmRaavGZen9WRjfjIViERGt8NYuLLI7dgVLYOPF5TyFoTnpT5nxkiCopp4tPIcpbzPV394Bxmdtg==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.13.8",
+        "@angular-devkit/core": "7.3.8",
+        "@angular-devkit/schematics": "7.3.8",
+        "@schematics/angular": "7.3.8",
+        "@schematics/update": "0.13.8",
+        "@yarnpkg/lockfile": "1.1.0",
+        "ini": "1.3.5",
+        "inquirer": "6.2.1",
+        "npm-package-arg": "6.1.0",
+        "open": "6.0.0",
+        "pacote": "9.4.0",
+        "semver": "5.6.0",
+        "symbol-observable": "1.2.0"
+      }
+    },
+    "@angular/common": {
+      "version": "7.2.12",
+      "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.12.tgz",
+      "integrity": "sha512-JzcysRDfx2dvvcZ4uwgn+6gFDYlbH9j2Uyz6fWOSinAA0kcleOu/Gb77XbCI5M3Xvh1hxHVyz0Zxv/Pi0Y1O1g==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/compiler": {
+      "version": "7.2.12",
+      "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.12.tgz",
+      "integrity": "sha512-B1N+/ECqIQz7PD2Zjb/21OOCmrXkl8DSXCBGNMXOSng+uYJM4dFPWkYkaAeHj8gcLDHvIPWlsapJ6JqyB3RPxA==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/compiler-cli": {
+      "version": "7.2.12",
+      "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.12.tgz",
+      "integrity": "sha512-EXJuN9XuYjO9gwe5JWfatb64ljPjItZh5bd1MQtntMJONS4ntOtwiCd9RuNVK2ZXM7Co9PcvzE1qynB6tMseCw==",
+      "dev": true,
+      "requires": {
+        "canonical-path": "1.0.0",
+        "chokidar": "^2.1.1",
+        "convert-source-map": "^1.5.1",
+        "dependency-graph": "^0.7.2",
+        "magic-string": "^0.25.0",
+        "minimist": "^1.2.0",
+        "reflect-metadata": "^0.1.2",
+        "shelljs": "^0.8.1",
+        "source-map": "^0.6.1",
+        "tslib": "^1.9.0",
+        "yargs": "9.0.1"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+          "dev": true
+        },
+        "chokidar": {
+          "version": "2.1.5",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz",
+          "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==",
+          "dev": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.1",
+            "braces": "^2.3.2",
+            "fsevents": "^1.2.7",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.3",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "normalize-path": "^3.0.0",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.2.1",
+            "upath": "^1.1.1"
+          }
+        },
+        "cross-spawn": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^4.0.1",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        },
+        "execa": {
+          "version": "0.7.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+          "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^5.0.1",
+            "get-stream": "^3.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "load-json-file": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "parse-json": "^2.2.0",
+            "pify": "^2.0.0",
+            "strip-bom": "^3.0.0"
+          }
+        },
+        "mem": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+          "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^1.0.0"
+          }
+        },
+        "mimic-fn": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+          "dev": true
+        },
+        "normalize-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+          "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+          "dev": true
+        },
+        "os-locale": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+          "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+          "dev": true,
+          "requires": {
+            "execa": "^0.7.0",
+            "lcid": "^1.0.0",
+            "mem": "^1.1.0"
+          }
+        },
+        "path-type": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+          "dev": true,
+          "requires": {
+            "pify": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        },
+        "read-pkg": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+          "dev": true,
+          "requires": {
+            "load-json-file": "^2.0.0",
+            "normalize-package-data": "^2.3.2",
+            "path-type": "^2.0.0"
+          }
+        },
+        "read-pkg-up": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+          "dev": true,
+          "requires": {
+            "find-up": "^2.0.0",
+            "read-pkg": "^2.0.0"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
+          }
+        },
+        "strip-bom": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+          "dev": true
+        },
+        "which-module": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+          "dev": true
+        },
+        "y18n": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+          "dev": true
+        },
+        "yargs": {
+          "version": "9.0.1",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz",
+          "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0",
+            "cliui": "^3.2.0",
+            "decamelize": "^1.1.1",
+            "get-caller-file": "^1.0.1",
+            "os-locale": "^2.0.0",
+            "read-pkg-up": "^2.0.0",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^1.0.1",
+            "set-blocking": "^2.0.0",
+            "string-width": "^2.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^3.2.1",
+            "yargs-parser": "^7.0.0"
+          }
+        },
+        "yargs-parser": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0"
+          }
+        }
+      }
+    },
+    "@angular/core": {
+      "version": "7.2.12",
+      "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.12.tgz",
+      "integrity": "sha512-E5BtJPL4Fz1xyGTsoE4LELoZ33x0S0lJ0iUKqLRFeKKYM/fJ8l8mVNSZ7LnURTwpcjCiHcCRMcaCfuXWj7Kqhw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/forms": {
+      "version": "7.2.12",
+      "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.12.tgz",
+      "integrity": "sha512-gQU8663C9LOyuza87XDkEQ2HXbaLt3LY8X45swUNfe+BvpKNhF5ZwwY22d93wuzvm/vFrCTPK7949ImfUW0XnA==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/language-service": {
+      "version": "7.2.12",
+      "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.12.tgz",
+      "integrity": "sha512-dHHcAtCQ+ECoZa/bkm1diMZuxy/e+x2/qzClfKquO47EPqOIXYKCKZRqgGNHxdbUSRpmIEanfj/li4S7doCHZw==",
+      "dev": true
+    },
+    "@angular/platform-browser": {
+      "version": "7.2.12",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.12.tgz",
+      "integrity": "sha512-rhKxUtWM6LfM0cK0kVzQpdnzfGeL3KImk6kNn+RrZiXLk2N/pnwbrzfd6VUtm+zdg54S4BO8ui1NahwIC/PSKw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/platform-browser-dynamic": {
+      "version": "7.2.12",
+      "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.12.tgz",
+      "integrity": "sha512-maKmjCTaS+jrXnor9qVJZfkWAKrt6neIlYrjvcr9v2YUqv9vdMcd5WRaODvIXBqwh65gpMxk3hbZ48Yjh8EbBQ==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@angular/router": {
+      "version": "7.2.12",
+      "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.12.tgz",
+      "integrity": "sha512-n7EFKuOa6YDDvGZT/t7mXfQMuomkTVPJcWkpfPrViAKi4mcUnaU5IqYiBnv/WJfDDqocVD/Yf9YQD9zAajthEw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "@babel/code-frame": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
+      "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
+      "dev": true,
+      "requires": {
+        "@babel/highlight": "^7.0.0"
+      }
+    },
+    "@babel/generator": {
+      "version": "7.4.0",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.0.tgz",
+      "integrity": "sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.4.0",
+        "jsesc": "^2.5.1",
+        "lodash": "^4.17.11",
+        "source-map": "^0.5.0",
+        "trim-right": "^1.0.1"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "2.5.2",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+          "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-function-name": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
+      "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-get-function-arity": "^7.0.0",
+        "@babel/template": "^7.1.0",
+        "@babel/types": "^7.0.0"
+      }
+    },
+    "@babel/helper-get-function-arity": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
+      "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.0.0"
+      }
+    },
+    "@babel/helper-split-export-declaration": {
+      "version": "7.4.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz",
+      "integrity": "sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.4.0"
+      }
+    },
+    "@babel/highlight": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
+      "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.0.0",
+        "esutils": "^2.0.2",
+        "js-tokens": "^4.0.0"
+      },
+      "dependencies": {
+        "js-tokens": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+          "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/parser": {
+      "version": "7.4.3",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.3.tgz",
+      "integrity": "sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ==",
+      "dev": true
+    },
+    "@babel/template": {
+      "version": "7.4.0",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.0.tgz",
+      "integrity": "sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.0.0",
+        "@babel/parser": "^7.4.0",
+        "@babel/types": "^7.4.0"
+      }
+    },
+    "@babel/traverse": {
+      "version": "7.4.3",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.3.tgz",
+      "integrity": "sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.0.0",
+        "@babel/generator": "^7.4.0",
+        "@babel/helper-function-name": "^7.1.0",
+        "@babel/helper-split-export-declaration": "^7.4.0",
+        "@babel/parser": "^7.4.3",
+        "@babel/types": "^7.4.0",
+        "debug": "^4.1.0",
+        "globals": "^11.1.0",
+        "lodash": "^4.17.11"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "globals": {
+          "version": "11.11.0",
+          "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
+          "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/types": {
+      "version": "7.4.0",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.0.tgz",
+      "integrity": "sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==",
+      "dev": true,
+      "requires": {
+        "esutils": "^2.0.2",
+        "lodash": "^4.17.11",
+        "to-fast-properties": "^2.0.0"
+      },
+      "dependencies": {
+        "to-fast-properties": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+          "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+          "dev": true
+        }
+      }
+    },
+    "@ngtools/webpack": {
+      "version": "7.3.8",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.3.8.tgz",
+      "integrity": "sha512-gfjSKz+F/2T4tZHpnQ1XqelKP/CIfI87XdoHsOI53ceTUrAkVKsOb3ULmEfkcdsdQZ/HhmCiLivcutHcW8xkhQ==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.3.8",
+        "enhanced-resolve": "4.1.0",
+        "rxjs": "6.3.3",
+        "tree-kill": "1.2.1",
+        "webpack-sources": "1.3.0"
+      }
+    },
+    "@schematics/angular": {
+      "version": "7.3.8",
+      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.3.8.tgz",
+      "integrity": "sha512-7o90bnIxXNpJhWPDY/zCedcG6KMIihz7a4UQe6UdlhEX21MNZLYFiDiR5Vmsx39wjm2EfPh3JTuBIHGmMCXkQQ==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.3.8",
+        "@angular-devkit/schematics": "7.3.8",
+        "typescript": "3.2.4"
+      }
+    },
+    "@schematics/update": {
+      "version": "0.13.8",
+      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.13.8.tgz",
+      "integrity": "sha512-2jP9w7Nnn24jOdrJtWjoS9LsNPmO9/Eu/+gDxBAVERCqR71mtNW+DopgWDtxleE9jri/pZWrHwShGFCSS7w23g==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/core": "7.3.8",
+        "@angular-devkit/schematics": "7.3.8",
+        "@yarnpkg/lockfile": "1.1.0",
+        "ini": "1.3.5",
+        "pacote": "9.4.0",
+        "rxjs": "6.3.3",
+        "semver": "5.6.0",
+        "semver-intersect": "1.4.0"
+      }
+    },
+    "@types/jasmine": {
+      "version": "2.8.16",
+      "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.16.tgz",
+      "integrity": "sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g==",
+      "dev": true
+    },
+    "@types/jasminewd2": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.6.tgz",
+      "integrity": "sha512-2ZOKrxb8bKRmP/po5ObYnRDgFE4i+lQiEB27bAMmtMWLgJSqlIDqlLx6S0IRorpOmOPRQ6O80NujTmQAtBkeNw==",
+      "dev": true,
+      "requires": {
+        "@types/jasmine": "*"
+      }
+    },
+    "@types/node": {
+      "version": "8.9.5",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz",
+      "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==",
+      "dev": true
+    },
+    "@types/q": {
+      "version": "0.0.32",
+      "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz",
+      "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
+      "dev": true
+    },
+    "@types/selenium-webdriver": {
+      "version": "3.0.16",
+      "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz",
+      "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==",
+      "dev": true
+    },
+    "@types/source-list-map": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
+      "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==",
+      "dev": true
+    },
+    "@types/webpack-sources": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.5.tgz",
+      "integrity": "sha512-zfvjpp7jiafSmrzJ2/i3LqOyTYTuJ7u1KOXlKgDlvsj9Rr0x7ZiYu5lZbXwobL7lmsRNtPXlBfmaUD8eU2Hu8w==",
+      "dev": true,
+      "requires": {
+        "@types/node": "*",
+        "@types/source-list-map": "*",
+        "source-map": "^0.6.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "@webassemblyjs/ast": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz",
+      "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/helper-module-context": "1.7.11",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
+        "@webassemblyjs/wast-parser": "1.7.11"
+      }
+    },
+    "@webassemblyjs/floating-point-hex-parser": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz",
+      "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-api-error": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz",
+      "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-buffer": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz",
+      "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-code-frame": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz",
+      "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/wast-printer": "1.7.11"
+      }
+    },
+    "@webassemblyjs/helper-fsm": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz",
+      "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-module-context": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz",
+      "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-wasm-bytecode": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz",
+      "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-wasm-section": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz",
+      "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-buffer": "1.7.11",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
+        "@webassemblyjs/wasm-gen": "1.7.11"
+      }
+    },
+    "@webassemblyjs/ieee754": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz",
+      "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==",
+      "dev": true,
+      "requires": {
+        "@xtuc/ieee754": "^1.2.0"
+      }
+    },
+    "@webassemblyjs/leb128": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz",
+      "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==",
+      "dev": true,
+      "requires": {
+        "@xtuc/long": "4.2.1"
+      }
+    },
+    "@webassemblyjs/utf8": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz",
+      "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==",
+      "dev": true
+    },
+    "@webassemblyjs/wasm-edit": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz",
+      "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-buffer": "1.7.11",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
+        "@webassemblyjs/helper-wasm-section": "1.7.11",
+        "@webassemblyjs/wasm-gen": "1.7.11",
+        "@webassemblyjs/wasm-opt": "1.7.11",
+        "@webassemblyjs/wasm-parser": "1.7.11",
+        "@webassemblyjs/wast-printer": "1.7.11"
+      }
+    },
+    "@webassemblyjs/wasm-gen": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz",
+      "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
+        "@webassemblyjs/ieee754": "1.7.11",
+        "@webassemblyjs/leb128": "1.7.11",
+        "@webassemblyjs/utf8": "1.7.11"
+      }
+    },
+    "@webassemblyjs/wasm-opt": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz",
+      "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-buffer": "1.7.11",
+        "@webassemblyjs/wasm-gen": "1.7.11",
+        "@webassemblyjs/wasm-parser": "1.7.11"
+      }
+    },
+    "@webassemblyjs/wasm-parser": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz",
+      "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-api-error": "1.7.11",
+        "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
+        "@webassemblyjs/ieee754": "1.7.11",
+        "@webassemblyjs/leb128": "1.7.11",
+        "@webassemblyjs/utf8": "1.7.11"
+      }
+    },
+    "@webassemblyjs/wast-parser": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz",
+      "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/floating-point-hex-parser": "1.7.11",
+        "@webassemblyjs/helper-api-error": "1.7.11",
+        "@webassemblyjs/helper-code-frame": "1.7.11",
+        "@webassemblyjs/helper-fsm": "1.7.11",
+        "@xtuc/long": "4.2.1"
+      }
+    },
+    "@webassemblyjs/wast-printer": {
+      "version": "1.7.11",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz",
+      "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/wast-parser": "1.7.11",
+        "@xtuc/long": "4.2.1"
+      }
+    },
+    "@xtuc/ieee754": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+      "dev": true
+    },
+    "@xtuc/long": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz",
+      "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==",
+      "dev": true
+    },
+    "@yarnpkg/lockfile": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz",
+      "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==",
+      "dev": true
+    },
+    "JSONStream": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+      "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+      "dev": true,
+      "requires": {
+        "jsonparse": "^1.2.0",
+        "through": ">=2.2.7 <3"
+      }
+    },
+    "abbrev": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+      "dev": true,
+      "optional": true
+    },
+    "accepts": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
+      "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+      "dev": true,
+      "requires": {
+        "mime-types": "~2.1.18",
+        "negotiator": "0.6.1"
+      }
+    },
+    "acorn": {
+      "version": "6.1.1",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
+      "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==",
+      "dev": true
+    },
+    "acorn-dynamic-import": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz",
+      "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==",
+      "dev": true
+    },
+    "adm-zip": {
+      "version": "0.4.13",
+      "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.13.tgz",
+      "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==",
+      "dev": true
+    },
+    "after": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
+      "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
+      "dev": true
+    },
+    "agent-base": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
+      "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
+      "dev": true,
+      "requires": {
+        "es6-promisify": "^5.0.0"
+      }
+    },
+    "agentkeepalive": {
+      "version": "3.5.2",
+      "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz",
+      "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==",
+      "dev": true,
+      "requires": {
+        "humanize-ms": "^1.2.1"
+      }
+    },
+    "ajv": {
+      "version": "6.9.1",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
+      "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+      "dev": true,
+      "requires": {
+        "fast-deep-equal": "^2.0.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      }
+    },
+    "ajv-errors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+      "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+      "dev": true
+    },
+    "ajv-keywords": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz",
+      "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==",
+      "dev": true
+    },
+    "amdefine": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+      "dev": true
+    },
+    "ansi-colors": {
+      "version": "3.2.4",
+      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+      "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+      "dev": true
+    },
+    "ansi-escapes": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+      "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+      "dev": true
+    },
+    "ansi-html": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+      "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+      "dev": true
+    },
+    "ansi-regex": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+      "dev": true
+    },
+    "ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "dev": true,
+      "requires": {
+        "color-convert": "^1.9.0"
+      }
+    },
+    "anymatch": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+      "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+      "dev": true,
+      "requires": {
+        "micromatch": "^3.1.4",
+        "normalize-path": "^2.1.1"
+      }
+    },
+    "app-root-path": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz",
+      "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==",
+      "dev": true
+    },
+    "append-transform": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
+      "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
+      "dev": true,
+      "requires": {
+        "default-require-extensions": "^2.0.0"
+      }
+    },
+    "aproba": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+      "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+      "dev": true
+    },
+    "are-we-there-yet": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+      "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "delegates": "^1.0.0",
+        "readable-stream": "^2.0.6"
+      }
+    },
+    "argparse": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+      "dev": true,
+      "requires": {
+        "sprintf-js": "~1.0.2"
+      }
+    },
+    "arr-diff": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+      "dev": true
+    },
+    "arr-flatten": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+      "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+      "dev": true
+    },
+    "arr-union": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+      "dev": true
+    },
+    "array-find-index": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+      "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+      "dev": true,
+      "optional": true
+    },
+    "array-flatten": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
+      "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
+      "dev": true
+    },
+    "array-slice": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
+      "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
+      "dev": true
+    },
+    "array-union": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+      "dev": true,
+      "requires": {
+        "array-uniq": "^1.0.1"
+      }
+    },
+    "array-uniq": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+      "dev": true
+    },
+    "array-unique": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+      "dev": true
+    },
+    "arraybuffer.slice": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
+      "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
+      "dev": true
+    },
+    "arrify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+      "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+      "dev": true
+    },
+    "asap": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+      "dev": true,
+      "optional": true
+    },
+    "asn1": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+      "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+      "dev": true,
+      "requires": {
+        "safer-buffer": "~2.1.0"
+      }
+    },
+    "asn1.js": {
+      "version": "4.10.1",
+      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+      "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "assert": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+      "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+      "dev": true,
+      "requires": {
+        "util": "0.10.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+          "dev": true
+        },
+        "util": {
+          "version": "0.10.3",
+          "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+          "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+          "dev": true,
+          "requires": {
+            "inherits": "2.0.1"
+          }
+        }
+      }
+    },
+    "assert-plus": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+      "dev": true
+    },
+    "assign-symbols": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+      "dev": true
+    },
+    "async": {
+      "version": "2.6.2",
+      "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
+      "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.11"
+      }
+    },
+    "async-each": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.2.tgz",
+      "integrity": "sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==",
+      "dev": true
+    },
+    "async-foreach": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+      "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+      "dev": true,
+      "optional": true
+    },
+    "async-limiter": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
+      "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
+      "dev": true
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+      "dev": true
+    },
+    "atob": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+      "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+      "dev": true
+    },
+    "autoprefixer": {
+      "version": "9.4.6",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz",
+      "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.4.1",
+        "caniuse-lite": "^1.0.30000929",
+        "normalize-range": "^0.1.2",
+        "num2fraction": "^1.2.2",
+        "postcss": "^7.0.13",
+        "postcss-value-parser": "^3.3.1"
+      }
+    },
+    "aws-sign2": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+      "dev": true
+    },
+    "aws4": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+      "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
+      "dev": true
+    },
+    "babel-code-frame": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+      "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "esutils": "^2.0.2",
+        "js-tokens": "^3.0.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "babel-generator": {
+      "version": "6.26.1",
+      "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+      "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+      "dev": true,
+      "requires": {
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "detect-indent": "^4.0.0",
+        "jsesc": "^1.3.0",
+        "lodash": "^4.17.4",
+        "source-map": "^0.5.7",
+        "trim-right": "^1.0.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "babel-messages": {
+      "version": "6.23.0",
+      "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+      "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+      "dev": true,
+      "requires": {
+        "core-js": "^2.4.0",
+        "regenerator-runtime": "^0.11.0"
+      }
+    },
+    "babel-template": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+      "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "babel-traverse": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "babylon": "^6.18.0",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-traverse": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+      "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "^6.26.0",
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "babylon": "^6.18.0",
+        "debug": "^2.6.8",
+        "globals": "^9.18.0",
+        "invariant": "^2.2.2",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-types": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "esutils": "^2.0.2",
+        "lodash": "^4.17.4",
+        "to-fast-properties": "^1.0.3"
+      }
+    },
+    "babylon": {
+      "version": "6.18.0",
+      "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+      "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+      "dev": true
+    },
+    "backo2": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+      "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
+      "dev": true
+    },
+    "balanced-match": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+      "dev": true
+    },
+    "base": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+      "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+      "dev": true,
+      "requires": {
+        "cache-base": "^1.0.1",
+        "class-utils": "^0.3.5",
+        "component-emitter": "^1.2.1",
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.1",
+        "mixin-deep": "^1.2.0",
+        "pascalcase": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "base64-arraybuffer": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
+      "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
+      "dev": true
+    },
+    "base64-js": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
+      "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
+      "dev": true
+    },
+    "base64id": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
+      "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
+      "dev": true
+    },
+    "batch": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+      "dev": true
+    },
+    "bcrypt-pbkdf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+      "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+      "dev": true,
+      "requires": {
+        "tweetnacl": "^0.14.3"
+      }
+    },
+    "better-assert": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
+      "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
+      "dev": true,
+      "requires": {
+        "callsite": "1.0.0"
+      }
+    },
+    "big.js": {
+      "version": "5.2.2",
+      "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+      "dev": true
+    },
+    "binary-extensions": {
+      "version": "1.13.1",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+      "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+      "dev": true
+    },
+    "blob": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
+      "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==",
+      "dev": true
+    },
+    "block-stream": {
+      "version": "0.0.9",
+      "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+      "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "inherits": "~2.0.0"
+      }
+    },
+    "blocking-proxy": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz",
+      "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==",
+      "dev": true,
+      "requires": {
+        "minimist": "^1.2.0"
+      }
+    },
+    "bluebird": {
+      "version": "3.5.4",
+      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz",
+      "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==",
+      "dev": true
+    },
+    "bn.js": {
+      "version": "4.11.8",
+      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+      "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+      "dev": true
+    },
+    "body-parser": {
+      "version": "1.18.3",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
+      "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
+      "dev": true,
+      "requires": {
+        "bytes": "3.0.0",
+        "content-type": "~1.0.4",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "http-errors": "~1.6.3",
+        "iconv-lite": "0.4.23",
+        "on-finished": "~2.3.0",
+        "qs": "6.5.2",
+        "raw-body": "2.3.3",
+        "type-is": "~1.6.16"
+      }
+    },
+    "bonjour": {
+      "version": "3.5.0",
+      "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+      "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+      "dev": true,
+      "requires": {
+        "array-flatten": "^2.1.0",
+        "deep-equal": "^1.0.1",
+        "dns-equal": "^1.0.0",
+        "dns-txt": "^2.0.2",
+        "multicast-dns": "^6.0.1",
+        "multicast-dns-service-types": "^1.1.0"
+      }
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "braces": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+      "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+      "dev": true,
+      "requires": {
+        "arr-flatten": "^1.1.0",
+        "array-unique": "^0.3.2",
+        "extend-shallow": "^2.0.1",
+        "fill-range": "^4.0.0",
+        "isobject": "^3.0.1",
+        "repeat-element": "^1.1.2",
+        "snapdragon": "^0.8.1",
+        "snapdragon-node": "^2.0.1",
+        "split-string": "^3.0.2",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "brorand": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+      "dev": true
+    },
+    "browserify-aes": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+      "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+      "dev": true,
+      "requires": {
+        "buffer-xor": "^1.0.3",
+        "cipher-base": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.3",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "browserify-cipher": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+      "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+      "dev": true,
+      "requires": {
+        "browserify-aes": "^1.0.4",
+        "browserify-des": "^1.0.0",
+        "evp_bytestokey": "^1.0.0"
+      }
+    },
+    "browserify-des": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+      "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "des.js": "^1.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "browserify-rsa": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+      "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "randombytes": "^2.0.1"
+      }
+    },
+    "browserify-sign": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.1",
+        "browserify-rsa": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "create-hmac": "^1.1.2",
+        "elliptic": "^6.0.0",
+        "inherits": "^2.0.1",
+        "parse-asn1": "^5.0.0"
+      }
+    },
+    "browserify-zlib": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+      "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+      "dev": true,
+      "requires": {
+        "pako": "~1.0.5"
+      }
+    },
+    "browserslist": {
+      "version": "4.5.4",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.4.tgz",
+      "integrity": "sha512-rAjx494LMjqKnMPhFkuLmLp8JWEX0o8ADTGeAbOqaF+XCvYLreZrG5uVjnPBlAQ8REZK4pzXGvp0bWgrFtKaag==",
+      "dev": true,
+      "requires": {
+        "caniuse-lite": "^1.0.30000955",
+        "electron-to-chromium": "^1.3.122",
+        "node-releases": "^1.1.13"
+      }
+    },
+    "browserstack": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.2.tgz",
+      "integrity": "sha512-+6AFt9HzhKykcPF79W6yjEUJcdvZOV0lIXdkORXMJftGrDl0OKWqRF4GHqpDNkxiceDT/uB7Fb/aDwktvXX7dg==",
+      "dev": true,
+      "requires": {
+        "https-proxy-agent": "^2.2.1"
+      }
+    },
+    "buffer": {
+      "version": "4.9.1",
+      "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+      "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+      "dev": true,
+      "requires": {
+        "base64-js": "^1.0.2",
+        "ieee754": "^1.1.4",
+        "isarray": "^1.0.0"
+      }
+    },
+    "buffer-alloc": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+      "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+      "dev": true,
+      "requires": {
+        "buffer-alloc-unsafe": "^1.1.0",
+        "buffer-fill": "^1.0.0"
+      }
+    },
+    "buffer-alloc-unsafe": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+      "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+      "dev": true
+    },
+    "buffer-fill": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+      "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+      "dev": true
+    },
+    "buffer-from": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+      "dev": true
+    },
+    "buffer-indexof": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+      "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+      "dev": true
+    },
+    "buffer-xor": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+      "dev": true
+    },
+    "builtin-modules": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+      "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+      "dev": true
+    },
+    "builtin-status-codes": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+      "dev": true
+    },
+    "builtins": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+      "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
+      "dev": true
+    },
+    "bytes": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+      "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+      "dev": true
+    },
+    "cacache": {
+      "version": "10.0.4",
+      "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+      "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.1",
+        "chownr": "^1.0.1",
+        "glob": "^7.1.2",
+        "graceful-fs": "^4.1.11",
+        "lru-cache": "^4.1.1",
+        "mississippi": "^2.0.0",
+        "mkdirp": "^0.5.1",
+        "move-concurrently": "^1.0.1",
+        "promise-inflight": "^1.0.1",
+        "rimraf": "^2.6.2",
+        "ssri": "^5.2.4",
+        "unique-filename": "^1.1.0",
+        "y18n": "^4.0.0"
+      }
+    },
+    "cache-base": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+      "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+      "dev": true,
+      "requires": {
+        "collection-visit": "^1.0.0",
+        "component-emitter": "^1.2.1",
+        "get-value": "^2.0.6",
+        "has-value": "^1.0.0",
+        "isobject": "^3.0.1",
+        "set-value": "^2.0.0",
+        "to-object-path": "^0.3.0",
+        "union-value": "^1.0.0",
+        "unset-value": "^1.0.0"
+      }
+    },
+    "callsite": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
+      "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
+      "dev": true
+    },
+    "camelcase": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+      "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+      "dev": true,
+      "optional": true
+    },
+    "camelcase-keys": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase": "^2.0.0",
+        "map-obj": "^1.0.0"
+      }
+    },
+    "caniuse-lite": {
+      "version": "1.0.30000957",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000957.tgz",
+      "integrity": "sha512-8wxNrjAzyiHcLXN/iunskqQnJquQQ6VX8JHfW5kLgAPRSiSuKZiNfmIkP5j7jgyXqAQBSoXyJxfnbCFS0ThSiQ==",
+      "dev": true
+    },
+    "canonical-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz",
+      "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==",
+      "dev": true
+    },
+    "caseless": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+      "dev": true
+    },
+    "chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      },
+      "dependencies": {
+        "supports-color": {
+          "version": "5.5.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        }
+      }
+    },
+    "chardet": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+      "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+      "dev": true
+    },
+    "chokidar": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+      "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+      "dev": true,
+      "requires": {
+        "anymatch": "^2.0.0",
+        "async-each": "^1.0.0",
+        "braces": "^2.3.0",
+        "fsevents": "^1.2.2",
+        "glob-parent": "^3.1.0",
+        "inherits": "^2.0.1",
+        "is-binary-path": "^1.0.0",
+        "is-glob": "^4.0.0",
+        "lodash.debounce": "^4.0.8",
+        "normalize-path": "^2.1.1",
+        "path-is-absolute": "^1.0.0",
+        "readdirp": "^2.0.0",
+        "upath": "^1.0.5"
+      }
+    },
+    "chownr": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
+      "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
+      "dev": true
+    },
+    "chrome-trace-event": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz",
+      "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==",
+      "dev": true,
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "cipher-base": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+      "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "circular-dependency-plugin": {
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz",
+      "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==",
+      "dev": true
+    },
+    "circular-json": {
+      "version": "0.5.9",
+      "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz",
+      "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==",
+      "dev": true
+    },
+    "class-utils": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+      "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+      "dev": true,
+      "requires": {
+        "arr-union": "^3.1.0",
+        "define-property": "^0.2.5",
+        "isobject": "^3.0.0",
+        "static-extend": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "clean-css": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
+      "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
+      "dev": true,
+      "requires": {
+        "source-map": "~0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "cli-cursor": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+      "dev": true,
+      "requires": {
+        "restore-cursor": "^2.0.0"
+      }
+    },
+    "cli-width": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+      "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+      "dev": true
+    },
+    "cliui": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+      "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+      "dev": true,
+      "requires": {
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1",
+        "wrap-ansi": "^2.0.0"
+      }
+    },
+    "clone": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+      "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
+      "dev": true
+    },
+    "clone-deep": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
+      "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
+      "dev": true,
+      "requires": {
+        "for-own": "^1.0.0",
+        "is-plain-object": "^2.0.4",
+        "kind-of": "^6.0.0",
+        "shallow-clone": "^1.0.0"
+      }
+    },
+    "co": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+      "dev": true
+    },
+    "code-point-at": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+      "dev": true
+    },
+    "codelyzer": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.5.0.tgz",
+      "integrity": "sha512-oO6vCkjqsVrEsmh58oNlnJkRXuA30hF8cdNAQV9DytEalDwyOFRvHMnlKFzmOStNerOmPGZU9GAHnBo4tGvtiQ==",
+      "dev": true,
+      "requires": {
+        "app-root-path": "^2.1.0",
+        "css-selector-tokenizer": "^0.7.0",
+        "cssauron": "^1.4.0",
+        "semver-dsl": "^1.0.1",
+        "source-map": "^0.5.7",
+        "sprintf-js": "^1.1.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "sprintf-js": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+          "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
+          "dev": true
+        }
+      }
+    },
+    "collection-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+      "dev": true,
+      "requires": {
+        "map-visit": "^1.0.0",
+        "object-visit": "^1.0.0"
+      }
+    },
+    "color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "dev": true,
+      "requires": {
+        "color-name": "1.1.3"
+      }
+    },
+    "color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+      "dev": true
+    },
+    "colors": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+      "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+      "dev": true
+    },
+    "combine-lists": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz",
+      "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.5.0"
+      }
+    },
+    "combined-stream": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
+      "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
+      "dev": true,
+      "requires": {
+        "delayed-stream": "~1.0.0"
+      }
+    },
+    "commander": {
+      "version": "2.20.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
+      "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
+      "dev": true
+    },
+    "commondir": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+      "dev": true
+    },
+    "compare-versions": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.4.0.tgz",
+      "integrity": "sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg==",
+      "dev": true
+    },
+    "component-bind": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
+      "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
+      "dev": true
+    },
+    "component-emitter": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+      "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+      "dev": true
+    },
+    "component-inherit": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
+      "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
+      "dev": true
+    },
+    "compressible": {
+      "version": "2.0.16",
+      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.16.tgz",
+      "integrity": "sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA==",
+      "dev": true,
+      "requires": {
+        "mime-db": ">= 1.38.0 < 2"
+      }
+    },
+    "compression": {
+      "version": "1.7.4",
+      "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+      "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.5",
+        "bytes": "3.0.0",
+        "compressible": "~2.0.16",
+        "debug": "2.6.9",
+        "on-headers": "~1.0.2",
+        "safe-buffer": "5.1.2",
+        "vary": "~1.1.2"
+      }
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+      "dev": true
+    },
+    "concat-stream": {
+      "version": "1.6.2",
+      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+      "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+      "dev": true,
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.2.2",
+        "typedarray": "^0.0.6"
+      }
+    },
+    "connect": {
+      "version": "3.6.6",
+      "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
+      "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "finalhandler": "1.1.0",
+        "parseurl": "~1.3.2",
+        "utils-merge": "1.0.1"
+      },
+      "dependencies": {
+        "finalhandler": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
+          "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
+          "dev": true,
+          "requires": {
+            "debug": "2.6.9",
+            "encodeurl": "~1.0.1",
+            "escape-html": "~1.0.3",
+            "on-finished": "~2.3.0",
+            "parseurl": "~1.3.2",
+            "statuses": "~1.3.1",
+            "unpipe": "~1.0.0"
+          }
+        },
+        "statuses": {
+          "version": "1.3.1",
+          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
+          "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
+          "dev": true
+        }
+      }
+    },
+    "connect-history-api-fallback": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+      "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
+      "dev": true
+    },
+    "console-browserify": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+      "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+      "dev": true,
+      "requires": {
+        "date-now": "^0.1.4"
+      }
+    },
+    "console-control-strings": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+      "dev": true,
+      "optional": true
+    },
+    "constants-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+      "dev": true
+    },
+    "content-disposition": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+      "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
+      "dev": true
+    },
+    "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==",
+      "dev": true
+    },
+    "convert-source-map": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
+      "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.1"
+      }
+    },
+    "cookie": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+      "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+      "dev": true
+    },
+    "cookie-signature": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+      "dev": true
+    },
+    "copy-concurrently": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+      "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1",
+        "fs-write-stream-atomic": "^1.0.8",
+        "iferr": "^0.1.5",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.0"
+      }
+    },
+    "copy-descriptor": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+      "dev": true
+    },
+    "copy-webpack-plugin": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz",
+      "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==",
+      "dev": true,
+      "requires": {
+        "cacache": "^10.0.4",
+        "find-cache-dir": "^1.0.0",
+        "globby": "^7.1.1",
+        "is-glob": "^4.0.0",
+        "loader-utils": "^1.1.0",
+        "minimatch": "^3.0.4",
+        "p-limit": "^1.0.0",
+        "serialize-javascript": "^1.4.0"
+      }
+    },
+    "core-js": {
+      "version": "2.6.5",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz",
+      "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A=="
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+      "dev": true
+    },
+    "cosmiconfig": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz",
+      "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==",
+      "dev": true,
+      "requires": {
+        "is-directory": "^0.3.1",
+        "js-yaml": "^3.9.0",
+        "parse-json": "^4.0.0",
+        "require-from-string": "^2.0.1"
+      },
+      "dependencies": {
+        "parse-json": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+          "dev": true,
+          "requires": {
+            "error-ex": "^1.3.1",
+            "json-parse-better-errors": "^1.0.1"
+          }
+        }
+      }
+    },
+    "create-ecdh": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+      "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "elliptic": "^6.0.0"
+      }
+    },
+    "create-hash": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+      "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "inherits": "^2.0.1",
+        "md5.js": "^1.3.4",
+        "ripemd160": "^2.0.1",
+        "sha.js": "^2.4.0"
+      }
+    },
+    "create-hmac": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+      "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.3",
+        "create-hash": "^1.1.0",
+        "inherits": "^2.0.1",
+        "ripemd160": "^2.0.0",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "cross-spawn": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+      "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "lru-cache": "^4.0.1",
+        "which": "^1.2.9"
+      }
+    },
+    "crypto-browserify": {
+      "version": "3.12.0",
+      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+      "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+      "dev": true,
+      "requires": {
+        "browserify-cipher": "^1.0.0",
+        "browserify-sign": "^4.0.0",
+        "create-ecdh": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "create-hmac": "^1.1.0",
+        "diffie-hellman": "^5.0.0",
+        "inherits": "^2.0.1",
+        "pbkdf2": "^3.0.3",
+        "public-encrypt": "^4.0.0",
+        "randombytes": "^2.0.0",
+        "randomfill": "^1.0.3"
+      }
+    },
+    "css-parse": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz",
+      "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=",
+      "dev": true
+    },
+    "css-selector-tokenizer": {
+      "version": "0.7.1",
+      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
+      "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
+      "dev": true,
+      "requires": {
+        "cssesc": "^0.1.0",
+        "fastparse": "^1.1.1",
+        "regexpu-core": "^1.0.0"
+      }
+    },
+    "cssauron": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz",
+      "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=",
+      "dev": true,
+      "requires": {
+        "through": "X.X.X"
+      }
+    },
+    "cssesc": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+      "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+      "dev": true
+    },
+    "currently-unhandled": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+      "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "array-find-index": "^1.0.1"
+      }
+    },
+    "custom-event": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
+      "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
+      "dev": true
+    },
+    "cyclist": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
+      "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
+      "dev": true
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "date-format": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
+      "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=",
+      "dev": true
+    },
+    "date-now": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+      "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+      "dev": true
+    },
+    "debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "requires": {
+        "ms": "2.0.0"
+      }
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+      "dev": true
+    },
+    "decode-uri-component": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+      "dev": true
+    },
+    "deep-equal": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
+      "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
+      "dev": true
+    },
+    "default-gateway": {
+      "version": "2.7.2",
+      "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz",
+      "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==",
+      "dev": true,
+      "requires": {
+        "execa": "^0.10.0",
+        "ip-regex": "^2.1.0"
+      }
+    },
+    "default-require-extensions": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
+      "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=",
+      "dev": true,
+      "requires": {
+        "strip-bom": "^3.0.0"
+      },
+      "dependencies": {
+        "strip-bom": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+          "dev": true
+        }
+      }
+    },
+    "define-property": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+      "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+      "dev": true,
+      "requires": {
+        "is-descriptor": "^1.0.2",
+        "isobject": "^3.0.1"
+      },
+      "dependencies": {
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "del": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
+      "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
+      "dev": true,
+      "requires": {
+        "globby": "^6.1.0",
+        "is-path-cwd": "^1.0.0",
+        "is-path-in-cwd": "^1.0.0",
+        "p-map": "^1.1.1",
+        "pify": "^3.0.0",
+        "rimraf": "^2.2.8"
+      },
+      "dependencies": {
+        "globby": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+          "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "glob": "^7.0.3",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          },
+          "dependencies": {
+            "pify": {
+              "version": "2.3.0",
+              "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+              "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+              "dev": true
+            }
+          }
+        }
+      }
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+      "dev": true
+    },
+    "delegates": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+      "dev": true,
+      "optional": true
+    },
+    "depd": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+      "dev": true
+    },
+    "dependency-graph": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz",
+      "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==",
+      "dev": true
+    },
+    "des.js": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+      "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "destroy": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+      "dev": true
+    },
+    "detect-indent": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+      "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+      "dev": true,
+      "requires": {
+        "repeating": "^2.0.0"
+      }
+    },
+    "detect-node": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
+      "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
+      "dev": true
+    },
+    "di": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
+      "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
+      "dev": true
+    },
+    "diff": {
+      "version": "3.5.0",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+      "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+      "dev": true
+    },
+    "diffie-hellman": {
+      "version": "5.0.3",
+      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+      "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "miller-rabin": "^4.0.0",
+        "randombytes": "^2.0.0"
+      }
+    },
+    "dir-glob": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+      "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+      "dev": true,
+      "requires": {
+        "path-type": "^3.0.0"
+      }
+    },
+    "dns-equal": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+      "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+      "dev": true
+    },
+    "dns-packet": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
+      "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
+      "dev": true,
+      "requires": {
+        "ip": "^1.1.0",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "dns-txt": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+      "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+      "dev": true,
+      "requires": {
+        "buffer-indexof": "^1.0.0"
+      }
+    },
+    "dom-serialize": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
+      "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
+      "dev": true,
+      "requires": {
+        "custom-event": "~1.0.0",
+        "ent": "~2.2.0",
+        "extend": "^3.0.0",
+        "void-elements": "^2.0.0"
+      }
+    },
+    "domain-browser": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+      "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+      "dev": true
+    },
+    "duplexify": {
+      "version": "3.7.1",
+      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+      "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "ecc-jsbn": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+      "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+      "dev": true,
+      "requires": {
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.1.0"
+      }
+    },
+    "ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+      "dev": true
+    },
+    "electron-to-chromium": {
+      "version": "1.3.122",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.122.tgz",
+      "integrity": "sha512-3RKoIyCN4DhP2dsmleuFvpJAIDOseWH88wFYBzb22CSwoFDSWRc4UAMfrtc9h8nBdJjTNIN3rogChgOy6eFInw==",
+      "dev": true
+    },
+    "elliptic": {
+      "version": "6.4.1",
+      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
+      "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.4.0",
+        "brorand": "^1.0.1",
+        "hash.js": "^1.0.0",
+        "hmac-drbg": "^1.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.0"
+      }
+    },
+    "emojis-list": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+      "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+      "dev": true
+    },
+    "encodeurl": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+      "dev": true
+    },
+    "encoding": {
+      "version": "0.1.12",
+      "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+      "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+      "dev": true,
+      "requires": {
+        "iconv-lite": "~0.4.13"
+      }
+    },
+    "end-of-stream": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+      "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+      "dev": true,
+      "requires": {
+        "once": "^1.4.0"
+      }
+    },
+    "engine.io": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz",
+      "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.4",
+        "base64id": "1.0.0",
+        "cookie": "0.3.1",
+        "debug": "~3.1.0",
+        "engine.io-parser": "~2.1.0",
+        "ws": "~3.3.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
+    "engine.io-client": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
+      "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
+      "dev": true,
+      "requires": {
+        "component-emitter": "1.2.1",
+        "component-inherit": "0.0.3",
+        "debug": "~3.1.0",
+        "engine.io-parser": "~2.1.1",
+        "has-cors": "1.1.0",
+        "indexof": "0.0.1",
+        "parseqs": "0.0.5",
+        "parseuri": "0.0.5",
+        "ws": "~3.3.1",
+        "xmlhttprequest-ssl": "~1.5.4",
+        "yeast": "0.1.2"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
+    "engine.io-parser": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
+      "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
+      "dev": true,
+      "requires": {
+        "after": "0.8.2",
+        "arraybuffer.slice": "~0.0.7",
+        "base64-arraybuffer": "0.1.5",
+        "blob": "0.0.5",
+        "has-binary2": "~1.0.2"
+      }
+    },
+    "enhanced-resolve": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
+      "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "memory-fs": "^0.4.0",
+        "tapable": "^1.0.0"
+      }
+    },
+    "ent": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
+      "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
+      "dev": true
+    },
+    "err-code": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
+      "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
+      "dev": true
+    },
+    "errno": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+      "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+      "dev": true,
+      "requires": {
+        "prr": "~1.0.1"
+      }
+    },
+    "error-ex": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+      "dev": true,
+      "requires": {
+        "is-arrayish": "^0.2.1"
+      }
+    },
+    "es6-promise": {
+      "version": "4.2.6",
+      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz",
+      "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==",
+      "dev": true
+    },
+    "es6-promisify": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+      "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+      "dev": true,
+      "requires": {
+        "es6-promise": "^4.0.3"
+      }
+    },
+    "escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+      "dev": true
+    },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+      "dev": true
+    },
+    "eslint-scope": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+      "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+      "dev": true,
+      "requires": {
+        "esrecurse": "^4.1.0",
+        "estraverse": "^4.1.1"
+      }
+    },
+    "esprima": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+      "dev": true
+    },
+    "esrecurse": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+      "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+      "dev": true,
+      "requires": {
+        "estraverse": "^4.1.0"
+      }
+    },
+    "estraverse": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+      "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+      "dev": true
+    },
+    "esutils": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+      "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+      "dev": true
+    },
+    "etag": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+      "dev": true
+    },
+    "eventemitter3": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
+      "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==",
+      "dev": true
+    },
+    "events": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
+      "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
+      "dev": true
+    },
+    "eventsource": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
+      "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
+      "dev": true,
+      "requires": {
+        "original": "^1.0.0"
+      }
+    },
+    "evp_bytestokey": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+      "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+      "dev": true,
+      "requires": {
+        "md5.js": "^1.3.4",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "execa": {
+      "version": "0.10.0",
+      "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
+      "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
+      "dev": true,
+      "requires": {
+        "cross-spawn": "^6.0.0",
+        "get-stream": "^3.0.0",
+        "is-stream": "^1.1.0",
+        "npm-run-path": "^2.0.0",
+        "p-finally": "^1.0.0",
+        "signal-exit": "^3.0.0",
+        "strip-eof": "^1.0.0"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "6.0.5",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+          "dev": true,
+          "requires": {
+            "nice-try": "^1.0.4",
+            "path-key": "^2.0.1",
+            "semver": "^5.5.0",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        }
+      }
+    },
+    "exit": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+      "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+      "dev": true
+    },
+    "expand-braces": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
+      "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=",
+      "dev": true,
+      "requires": {
+        "array-slice": "^0.2.3",
+        "array-unique": "^0.2.1",
+        "braces": "^0.1.2"
+      },
+      "dependencies": {
+        "array-unique": {
+          "version": "0.2.1",
+          "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+          "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+          "dev": true
+        },
+        "braces": {
+          "version": "0.1.5",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz",
+          "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=",
+          "dev": true,
+          "requires": {
+            "expand-range": "^0.1.0"
+          }
+        }
+      }
+    },
+    "expand-brackets": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+      "dev": true,
+      "requires": {
+        "debug": "^2.3.3",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "posix-character-classes": "^0.1.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "expand-range": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz",
+      "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=",
+      "dev": true,
+      "requires": {
+        "is-number": "^0.1.1",
+        "repeat-string": "^0.2.2"
+      },
+      "dependencies": {
+        "is-number": {
+          "version": "0.1.1",
+          "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz",
+          "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=",
+          "dev": true
+        },
+        "repeat-string": {
+          "version": "0.2.2",
+          "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz",
+          "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=",
+          "dev": true
+        }
+      }
+    },
+    "express": {
+      "version": "4.16.4",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
+      "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.5",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.18.3",
+        "content-disposition": "0.5.2",
+        "content-type": "~1.0.4",
+        "cookie": "0.3.1",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "1.1.1",
+        "fresh": "0.5.2",
+        "merge-descriptors": "1.0.1",
+        "methods": "~1.1.2",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.2",
+        "path-to-regexp": "0.1.7",
+        "proxy-addr": "~2.0.4",
+        "qs": "6.5.2",
+        "range-parser": "~1.2.0",
+        "safe-buffer": "5.1.2",
+        "send": "0.16.2",
+        "serve-static": "1.13.2",
+        "setprototypeof": "1.1.0",
+        "statuses": "~1.4.0",
+        "type-is": "~1.6.16",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      },
+      "dependencies": {
+        "array-flatten": {
+          "version": "1.1.1",
+          "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+          "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+          "dev": true
+        }
+      }
+    },
+    "extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+      "dev": true
+    },
+    "extend-shallow": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+      "dev": true,
+      "requires": {
+        "assign-symbols": "^1.0.0",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "external-editor": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
+      "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
+      "dev": true,
+      "requires": {
+        "chardet": "^0.7.0",
+        "iconv-lite": "^0.4.24",
+        "tmp": "^0.0.33"
+      },
+      "dependencies": {
+        "iconv-lite": {
+          "version": "0.4.24",
+          "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+          "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+          "dev": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3"
+          }
+        }
+      }
+    },
+    "extglob": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+      "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+      "dev": true,
+      "requires": {
+        "array-unique": "^0.3.2",
+        "define-property": "^1.0.0",
+        "expand-brackets": "^2.1.4",
+        "extend-shallow": "^2.0.1",
+        "fragment-cache": "^0.2.1",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "extsprintf": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+      "dev": true
+    },
+    "fast-deep-equal": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+      "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+      "dev": true
+    },
+    "fast-json-stable-stringify": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+      "dev": true
+    },
+    "fastparse": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
+      "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
+      "dev": true
+    },
+    "faye-websocket": {
+      "version": "0.10.0",
+      "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+      "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+      "dev": true,
+      "requires": {
+        "websocket-driver": ">=0.5.1"
+      }
+    },
+    "figgy-pudding": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
+      "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
+      "dev": true
+    },
+    "figures": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+      "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+      "dev": true,
+      "requires": {
+        "escape-string-regexp": "^1.0.5"
+      }
+    },
+    "file-loader": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz",
+      "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.0.2",
+        "schema-utils": "^1.0.0"
+      }
+    },
+    "fileset": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
+      "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
+      "dev": true,
+      "requires": {
+        "glob": "^7.0.3",
+        "minimatch": "^3.0.3"
+      }
+    },
+    "fill-range": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1",
+        "to-regex-range": "^2.1.0"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "finalhandler": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
+      "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.2",
+        "statuses": "~1.4.0",
+        "unpipe": "~1.0.0"
+      }
+    },
+    "find-cache-dir": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+      "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+      "dev": true,
+      "requires": {
+        "commondir": "^1.0.1",
+        "make-dir": "^1.0.0",
+        "pkg-dir": "^2.0.0"
+      }
+    },
+    "find-up": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+      "dev": true,
+      "requires": {
+        "locate-path": "^2.0.0"
+      }
+    },
+    "flatted": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz",
+      "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==",
+      "dev": true
+    },
+    "flush-write-stream": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+      "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.3.6"
+      }
+    },
+    "follow-redirects": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
+      "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
+      "dev": true,
+      "requires": {
+        "debug": "^3.2.6"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
+    "for-in": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+      "dev": true
+    },
+    "for-own": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+      "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+      "dev": true,
+      "requires": {
+        "for-in": "^1.0.1"
+      }
+    },
+    "forever-agent": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+      "dev": true
+    },
+    "form-data": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+      "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+      "dev": true,
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.6",
+        "mime-types": "^2.1.12"
+      }
+    },
+    "forwarded": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+      "dev": true
+    },
+    "fragment-cache": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+      "dev": true,
+      "requires": {
+        "map-cache": "^0.2.2"
+      }
+    },
+    "fresh": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+      "dev": true
+    },
+    "from2": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0"
+      }
+    },
+    "fs-access": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
+      "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=",
+      "dev": true,
+      "requires": {
+        "null-check": "^1.0.0"
+      }
+    },
+    "fs-minipass": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
+      "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
+      "dev": true,
+      "requires": {
+        "minipass": "^2.2.1"
+      }
+    },
+    "fs-write-stream-atomic": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+      "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "iferr": "^0.1.5",
+        "imurmurhash": "^0.1.4",
+        "readable-stream": "1 || 2"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+      "dev": true
+    },
+    "fsevents": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz",
+      "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "nan": "^2.9.2",
+        "node-pre-gyp": "^0.10.0"
+      },
+      "dependencies": {
+        "abbrev": {
+          "version": "1.1.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "ansi-regex": {
+          "version": "2.1.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "aproba": {
+          "version": "1.2.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "are-we-there-yet": {
+          "version": "1.1.5",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "delegates": "^1.0.0",
+            "readable-stream": "^2.0.6"
+          }
+        },
+        "balanced-match": {
+          "version": "1.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "brace-expansion": {
+          "version": "1.1.11",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "balanced-match": "^1.0.0",
+            "concat-map": "0.0.1"
+          }
+        },
+        "chownr": {
+          "version": "1.1.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "code-point-at": {
+          "version": "1.1.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "concat-map": {
+          "version": "0.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "console-control-strings": {
+          "version": "1.1.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "core-util-is": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "debug": {
+          "version": "2.6.9",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "deep-extend": {
+          "version": "0.6.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "delegates": {
+          "version": "1.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "detect-libc": {
+          "version": "1.0.3",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "fs-minipass": {
+          "version": "1.2.5",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minipass": "^2.2.1"
+          }
+        },
+        "fs.realpath": {
+          "version": "1.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "gauge": {
+          "version": "2.7.4",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "aproba": "^1.0.3",
+            "console-control-strings": "^1.0.0",
+            "has-unicode": "^2.0.0",
+            "object-assign": "^4.1.0",
+            "signal-exit": "^3.0.0",
+            "string-width": "^1.0.1",
+            "strip-ansi": "^3.0.1",
+            "wide-align": "^1.1.0"
+          }
+        },
+        "glob": {
+          "version": "7.1.3",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "has-unicode": {
+          "version": "2.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "iconv-lite": {
+          "version": "0.4.24",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3"
+          }
+        },
+        "ignore-walk": {
+          "version": "3.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minimatch": "^3.0.4"
+          }
+        },
+        "inflight": {
+          "version": "1.0.6",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "once": "^1.3.0",
+            "wrappy": "1"
+          }
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "ini": {
+          "version": "1.3.5",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "brace-expansion": "^1.1.7"
+          }
+        },
+        "minimist": {
+          "version": "0.0.8",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "minipass": {
+          "version": "2.3.5",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.0"
+          }
+        },
+        "minizlib": {
+          "version": "1.2.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minipass": "^2.2.1"
+          }
+        },
+        "mkdirp": {
+          "version": "0.5.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minimist": "0.0.8"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "needle": {
+          "version": "2.2.4",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "debug": "^2.1.2",
+            "iconv-lite": "^0.4.4",
+            "sax": "^1.2.4"
+          }
+        },
+        "node-pre-gyp": {
+          "version": "0.10.3",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "detect-libc": "^1.0.2",
+            "mkdirp": "^0.5.1",
+            "needle": "^2.2.1",
+            "nopt": "^4.0.1",
+            "npm-packlist": "^1.1.6",
+            "npmlog": "^4.0.2",
+            "rc": "^1.2.7",
+            "rimraf": "^2.6.1",
+            "semver": "^5.3.0",
+            "tar": "^4"
+          }
+        },
+        "nopt": {
+          "version": "4.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "abbrev": "1",
+            "osenv": "^0.1.4"
+          }
+        },
+        "npm-bundled": {
+          "version": "1.0.5",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "npm-packlist": {
+          "version": "1.2.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ignore-walk": "^3.0.1",
+            "npm-bundled": "^1.0.1"
+          }
+        },
+        "npmlog": {
+          "version": "4.1.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "are-we-there-yet": "~1.1.2",
+            "console-control-strings": "~1.1.0",
+            "gauge": "~2.7.3",
+            "set-blocking": "~2.0.0"
+          }
+        },
+        "number-is-nan": {
+          "version": "1.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "object-assign": {
+          "version": "4.1.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "once": {
+          "version": "1.4.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "wrappy": "1"
+          }
+        },
+        "os-homedir": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "os-tmpdir": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "osenv": {
+          "version": "0.1.5",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "os-homedir": "^1.0.0",
+            "os-tmpdir": "^1.0.0"
+          }
+        },
+        "path-is-absolute": {
+          "version": "1.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "process-nextick-args": {
+          "version": "2.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "rc": {
+          "version": "1.2.8",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "deep-extend": "^0.6.0",
+            "ini": "~1.3.0",
+            "minimist": "^1.2.0",
+            "strip-json-comments": "~2.0.1"
+          },
+          "dependencies": {
+            "minimist": {
+              "version": "1.2.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            }
+          }
+        },
+        "readable-stream": {
+          "version": "2.3.6",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "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"
+          }
+        },
+        "rimraf": {
+          "version": "2.6.3",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "safer-buffer": {
+          "version": "2.1.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "sax": {
+          "version": "1.2.4",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "semver": {
+          "version": "5.6.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "set-blocking": {
+          "version": "2.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "signal-exit": {
+          "version": "3.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
+          }
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "strip-json-comments": {
+          "version": "2.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "tar": {
+          "version": "4.4.8",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "chownr": "^1.1.1",
+            "fs-minipass": "^1.2.5",
+            "minipass": "^2.3.4",
+            "minizlib": "^1.1.1",
+            "mkdirp": "^0.5.0",
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.2"
+          }
+        },
+        "util-deprecate": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "wide-align": {
+          "version": "1.1.3",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "string-width": "^1.0.2 || 2"
+          }
+        },
+        "wrappy": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "fstream": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+      "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "inherits": "~2.0.0",
+        "mkdirp": ">=0.5 0",
+        "rimraf": "2"
+      }
+    },
+    "gauge": {
+      "version": "2.7.4",
+      "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "aproba": "^1.0.3",
+        "console-control-strings": "^1.0.0",
+        "has-unicode": "^2.0.0",
+        "object-assign": "^4.1.0",
+        "signal-exit": "^3.0.0",
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1",
+        "wide-align": "^1.1.0"
+      }
+    },
+    "gaze": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+      "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "globule": "^1.0.0"
+      }
+    },
+    "genfun": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz",
+      "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==",
+      "dev": true
+    },
+    "get-caller-file": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+      "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+      "dev": true
+    },
+    "get-stdin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+      "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+      "dev": true,
+      "optional": true
+    },
+    "get-stream": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+      "dev": true
+    },
+    "get-value": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+      "dev": true
+    },
+    "getpass": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "glob": {
+      "version": "7.1.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+      "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+      "dev": true,
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      }
+    },
+    "glob-parent": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+      "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+      "dev": true,
+      "requires": {
+        "is-glob": "^3.1.0",
+        "path-dirname": "^1.0.0"
+      },
+      "dependencies": {
+        "is-glob": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+          "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+          "dev": true,
+          "requires": {
+            "is-extglob": "^2.1.0"
+          }
+        }
+      }
+    },
+    "globals": {
+      "version": "9.18.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+      "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+      "dev": true
+    },
+    "globby": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+      "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+      "dev": true,
+      "requires": {
+        "array-union": "^1.0.1",
+        "dir-glob": "^2.0.0",
+        "glob": "^7.1.2",
+        "ignore": "^3.3.5",
+        "pify": "^3.0.0",
+        "slash": "^1.0.0"
+      }
+    },
+    "globule": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
+      "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "glob": "~7.1.1",
+        "lodash": "~4.17.10",
+        "minimatch": "~3.0.2"
+      }
+    },
+    "graceful-fs": {
+      "version": "4.1.15",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+      "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+      "dev": true
+    },
+    "handle-thing": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz",
+      "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==",
+      "dev": true
+    },
+    "handlebars": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.1.tgz",
+      "integrity": "sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA==",
+      "dev": true,
+      "requires": {
+        "neo-async": "^2.6.0",
+        "optimist": "^0.6.1",
+        "source-map": "^0.6.1",
+        "uglify-js": "^3.1.4"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "har-schema": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+      "dev": true
+    },
+    "har-validator": {
+      "version": "5.1.3",
+      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+      "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+      "dev": true,
+      "requires": {
+        "ajv": "^6.5.5",
+        "har-schema": "^2.0.0"
+      }
+    },
+    "has-ansi": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "has-binary2": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
+      "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
+      "dev": true,
+      "requires": {
+        "isarray": "2.0.1"
+      },
+      "dependencies": {
+        "isarray": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+          "dev": true
+        }
+      }
+    },
+    "has-cors": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
+      "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
+      "dev": true
+    },
+    "has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+      "dev": true
+    },
+    "has-unicode": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+      "dev": true,
+      "optional": true
+    },
+    "has-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+      "dev": true,
+      "requires": {
+        "get-value": "^2.0.6",
+        "has-values": "^1.0.0",
+        "isobject": "^3.0.0"
+      }
+    },
+    "has-values": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+      "dev": true,
+      "requires": {
+        "is-number": "^3.0.0",
+        "kind-of": "^4.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "hash-base": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+      "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "hash.js": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+      "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "minimalistic-assert": "^1.0.1"
+      }
+    },
+    "hmac-drbg": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+      "dev": true,
+      "requires": {
+        "hash.js": "^1.0.3",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.1"
+      }
+    },
+    "hosted-git-info": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+      "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
+      "dev": true
+    },
+    "hpack.js": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+      "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "obuf": "^1.0.0",
+        "readable-stream": "^2.0.1",
+        "wbuf": "^1.1.0"
+      }
+    },
+    "html-entities": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
+      "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+      "dev": true
+    },
+    "http-cache-semantics": {
+      "version": "3.8.1",
+      "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+      "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==",
+      "dev": true
+    },
+    "http-deceiver": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+      "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+      "dev": true
+    },
+    "http-errors": {
+      "version": "1.6.3",
+      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+      "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+      "dev": true,
+      "requires": {
+        "depd": "~1.1.2",
+        "inherits": "2.0.3",
+        "setprototypeof": "1.1.0",
+        "statuses": ">= 1.4.0 < 2"
+      }
+    },
+    "http-parser-js": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz",
+      "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==",
+      "dev": true
+    },
+    "http-proxy": {
+      "version": "1.17.0",
+      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
+      "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
+      "dev": true,
+      "requires": {
+        "eventemitter3": "^3.0.0",
+        "follow-redirects": "^1.0.0",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "http-proxy-agent": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
+      "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
+      "dev": true,
+      "requires": {
+        "agent-base": "4",
+        "debug": "3.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
+    "http-proxy-middleware": {
+      "version": "0.18.0",
+      "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
+      "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
+      "dev": true,
+      "requires": {
+        "http-proxy": "^1.16.2",
+        "is-glob": "^4.0.0",
+        "lodash": "^4.17.5",
+        "micromatch": "^3.1.9"
+      }
+    },
+    "http-signature": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "jsprim": "^1.2.2",
+        "sshpk": "^1.7.0"
+      }
+    },
+    "https-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+      "dev": true
+    },
+    "https-proxy-agent": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
+      "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
+      "dev": true,
+      "requires": {
+        "agent-base": "^4.1.0",
+        "debug": "^3.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
+    "humanize-ms": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+      "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
+      "dev": true,
+      "requires": {
+        "ms": "^2.0.0"
+      }
+    },
+    "iconv-lite": {
+      "version": "0.4.23",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+      "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+      "dev": true,
+      "requires": {
+        "safer-buffer": ">= 2.1.2 < 3"
+      }
+    },
+    "ieee754": {
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+      "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+      "dev": true
+    },
+    "iferr": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+      "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+      "dev": true
+    },
+    "ignore": {
+      "version": "3.3.10",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+      "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+      "dev": true
+    },
+    "ignore-walk": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
+      "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
+      "dev": true,
+      "requires": {
+        "minimatch": "^3.0.4"
+      }
+    },
+    "image-size": {
+      "version": "0.5.5",
+      "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
+      "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+      "dev": true,
+      "optional": true
+    },
+    "immediate": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+      "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
+      "dev": true
+    },
+    "import-cwd": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+      "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+      "dev": true,
+      "requires": {
+        "import-from": "^2.1.0"
+      }
+    },
+    "import-from": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+      "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "import-local": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+      "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+      "dev": true,
+      "requires": {
+        "pkg-dir": "^3.0.0",
+        "resolve-cwd": "^2.0.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
+          "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+          "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+          "dev": true,
+          "requires": {
+            "find-up": "^3.0.0"
+          }
+        }
+      }
+    },
+    "imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+      "dev": true
+    },
+    "in-publish": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
+      "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
+      "dev": true,
+      "optional": true
+    },
+    "indent-string": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+      "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "repeating": "^2.0.0"
+      }
+    },
+    "indexof": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
+      "dev": true
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "dev": true,
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+      "dev": true
+    },
+    "ini": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+      "dev": true
+    },
+    "inquirer": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz",
+      "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==",
+      "dev": true,
+      "requires": {
+        "ansi-escapes": "^3.0.0",
+        "chalk": "^2.0.0",
+        "cli-cursor": "^2.1.0",
+        "cli-width": "^2.0.0",
+        "external-editor": "^3.0.0",
+        "figures": "^2.0.0",
+        "lodash": "^4.17.10",
+        "mute-stream": "0.0.7",
+        "run-async": "^2.2.0",
+        "rxjs": "^6.1.0",
+        "string-width": "^2.1.0",
+        "strip-ansi": "^5.0.0",
+        "through": "^2.3.6"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          },
+          "dependencies": {
+            "strip-ansi": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "strip-ansi": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^4.1.0"
+          },
+          "dependencies": {
+            "ansi-regex": {
+              "version": "4.1.0",
+              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+              "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+              "dev": true
+            }
+          }
+        }
+      }
+    },
+    "internal-ip": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz",
+      "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==",
+      "dev": true,
+      "requires": {
+        "default-gateway": "^2.6.0",
+        "ipaddr.js": "^1.5.2"
+      }
+    },
+    "interpret": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+      "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
+      "dev": true
+    },
+    "invariant": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+      "dev": true,
+      "requires": {
+        "loose-envify": "^1.0.0"
+      }
+    },
+    "invert-kv": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+      "dev": true
+    },
+    "ip": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+      "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+      "dev": true
+    },
+    "ip-regex": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+      "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+      "dev": true
+    },
+    "ipaddr.js": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
+      "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=",
+      "dev": true
+    },
+    "is-accessor-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-arrayish": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+      "dev": true
+    },
+    "is-binary-path": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+      "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+      "dev": true,
+      "requires": {
+        "binary-extensions": "^1.0.0"
+      }
+    },
+    "is-buffer": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+      "dev": true
+    },
+    "is-data-descriptor": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+      "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+      "dev": true,
+      "requires": {
+        "is-accessor-descriptor": "^0.1.6",
+        "is-data-descriptor": "^0.1.4",
+        "kind-of": "^5.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+          "dev": true
+        }
+      }
+    },
+    "is-directory": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+      "dev": true
+    },
+    "is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+      "dev": true
+    },
+    "is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+      "dev": true
+    },
+    "is-finite": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+      "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+      "dev": true,
+      "requires": {
+        "number-is-nan": "^1.0.0"
+      }
+    },
+    "is-fullwidth-code-point": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+      "dev": true,
+      "requires": {
+        "number-is-nan": "^1.0.0"
+      }
+    },
+    "is-glob": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+      "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+      "dev": true,
+      "requires": {
+        "is-extglob": "^2.1.1"
+      }
+    },
+    "is-number": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-path-cwd": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+      "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+      "dev": true
+    },
+    "is-path-in-cwd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
+      "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
+      "dev": true,
+      "requires": {
+        "is-path-inside": "^1.0.0"
+      }
+    },
+    "is-path-inside": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+      "dev": true,
+      "requires": {
+        "path-is-inside": "^1.0.1"
+      }
+    },
+    "is-plain-object": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "is-promise": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+      "dev": true
+    },
+    "is-stream": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+      "dev": true
+    },
+    "is-typedarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+      "dev": true
+    },
+    "is-utf8": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+      "dev": true,
+      "optional": true
+    },
+    "is-windows": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+      "dev": true
+    },
+    "is-wsl": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+      "dev": true
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+      "dev": true
+    },
+    "isbinaryfile": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
+      "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
+      "dev": true,
+      "requires": {
+        "buffer-alloc": "^1.2.0"
+      }
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+      "dev": true
+    },
+    "isobject": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+      "dev": true
+    },
+    "isstream": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+      "dev": true
+    },
+    "istanbul-api": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.1.tgz",
+      "integrity": "sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw==",
+      "dev": true,
+      "requires": {
+        "async": "^2.6.1",
+        "compare-versions": "^3.2.1",
+        "fileset": "^2.0.3",
+        "istanbul-lib-coverage": "^2.0.3",
+        "istanbul-lib-hook": "^2.0.3",
+        "istanbul-lib-instrument": "^3.1.0",
+        "istanbul-lib-report": "^2.0.4",
+        "istanbul-lib-source-maps": "^3.0.2",
+        "istanbul-reports": "^2.1.1",
+        "js-yaml": "^3.12.0",
+        "make-dir": "^1.3.0",
+        "minimatch": "^3.0.4",
+        "once": "^1.4.0"
+      },
+      "dependencies": {
+        "istanbul-lib-coverage": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
+          "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==",
+          "dev": true
+        },
+        "istanbul-lib-instrument": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz",
+          "integrity": "sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==",
+          "dev": true,
+          "requires": {
+            "@babel/generator": "^7.0.0",
+            "@babel/parser": "^7.0.0",
+            "@babel/template": "^7.0.0",
+            "@babel/traverse": "^7.0.0",
+            "@babel/types": "^7.0.0",
+            "istanbul-lib-coverage": "^2.0.3",
+            "semver": "^5.5.0"
+          }
+        }
+      }
+    },
+    "istanbul-instrumenter-loader": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz",
+      "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==",
+      "dev": true,
+      "requires": {
+        "convert-source-map": "^1.5.0",
+        "istanbul-lib-instrument": "^1.7.3",
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^0.3.0"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "5.5.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+          "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+          "dev": true,
+          "requires": {
+            "co": "^4.6.0",
+            "fast-deep-equal": "^1.0.0",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.3.0"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+          "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+          "dev": true
+        },
+        "json-schema-traverse": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+          "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+          "dev": true
+        },
+        "schema-utils": {
+          "version": "0.3.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
+          "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
+          "dev": true,
+          "requires": {
+            "ajv": "^5.0.0"
+          }
+        }
+      }
+    },
+    "istanbul-lib-coverage": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz",
+      "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==",
+      "dev": true
+    },
+    "istanbul-lib-hook": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.3.tgz",
+      "integrity": "sha512-CLmEqwEhuCYtGcpNVJjLV1DQyVnIqavMLFHV/DP+np/g3qvdxu3gsPqYoJMXm15sN84xOlckFB3VNvRbf5yEgA==",
+      "dev": true,
+      "requires": {
+        "append-transform": "^1.0.0"
+      }
+    },
+    "istanbul-lib-instrument": {
+      "version": "1.10.2",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz",
+      "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==",
+      "dev": true,
+      "requires": {
+        "babel-generator": "^6.18.0",
+        "babel-template": "^6.16.0",
+        "babel-traverse": "^6.18.0",
+        "babel-types": "^6.18.0",
+        "babylon": "^6.18.0",
+        "istanbul-lib-coverage": "^1.2.1",
+        "semver": "^5.3.0"
+      }
+    },
+    "istanbul-lib-report": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz",
+      "integrity": "sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA==",
+      "dev": true,
+      "requires": {
+        "istanbul-lib-coverage": "^2.0.3",
+        "make-dir": "^1.3.0",
+        "supports-color": "^6.0.0"
+      },
+      "dependencies": {
+        "istanbul-lib-coverage": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
+          "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==",
+          "dev": true
+        }
+      }
+    },
+    "istanbul-lib-source-maps": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz",
+      "integrity": "sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ==",
+      "dev": true,
+      "requires": {
+        "debug": "^4.1.1",
+        "istanbul-lib-coverage": "^2.0.3",
+        "make-dir": "^1.3.0",
+        "rimraf": "^2.6.2",
+        "source-map": "^0.6.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "istanbul-lib-coverage": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
+          "integrity": "sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "istanbul-reports": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.1.1.tgz",
+      "integrity": "sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw==",
+      "dev": true,
+      "requires": {
+        "handlebars": "^4.1.0"
+      }
+    },
+    "jasmine": {
+      "version": "2.8.0",
+      "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz",
+      "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=",
+      "dev": true,
+      "requires": {
+        "exit": "^0.1.2",
+        "glob": "^7.0.6",
+        "jasmine-core": "~2.8.0"
+      },
+      "dependencies": {
+        "jasmine-core": {
+          "version": "2.8.0",
+          "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz",
+          "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=",
+          "dev": true
+        }
+      }
+    },
+    "jasmine-core": {
+      "version": "2.99.1",
+      "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz",
+      "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=",
+      "dev": true
+    },
+    "jasmine-spec-reporter": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz",
+      "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==",
+      "dev": true,
+      "requires": {
+        "colors": "1.1.2"
+      }
+    },
+    "jasminewd2": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz",
+      "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=",
+      "dev": true
+    },
+    "js-base64": {
+      "version": "2.5.1",
+      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
+      "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
+      "dev": true,
+      "optional": true
+    },
+    "js-tokens": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+      "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+      "dev": true
+    },
+    "js-yaml": {
+      "version": "3.13.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz",
+      "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==",
+      "dev": true,
+      "requires": {
+        "argparse": "^1.0.7",
+        "esprima": "^4.0.0"
+      }
+    },
+    "jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+      "dev": true
+    },
+    "jsesc": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+      "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+      "dev": true
+    },
+    "json-parse-better-errors": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+      "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+      "dev": true
+    },
+    "json-schema": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+      "dev": true
+    },
+    "json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true
+    },
+    "json-stringify-safe": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+      "dev": true
+    },
+    "json3": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
+      "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
+      "dev": true
+    },
+    "json5": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+      "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+      "dev": true,
+      "requires": {
+        "minimist": "^1.2.0"
+      }
+    },
+    "jsonparse": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+      "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
+      "dev": true
+    },
+    "jsprim": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "1.0.0",
+        "extsprintf": "1.3.0",
+        "json-schema": "0.2.3",
+        "verror": "1.10.0"
+      }
+    },
+    "jszip": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.1.tgz",
+      "integrity": "sha512-iCMBbo4eE5rb1VCpm5qXOAaUiRKRUKiItn8ah2YQQx9qymmSAY98eyQfioChEYcVQLh0zxJ3wS4A0mh90AVPvw==",
+      "dev": true,
+      "requires": {
+        "lie": "~3.3.0",
+        "pako": "~1.0.2",
+        "readable-stream": "~2.3.6",
+        "set-immediate-shim": "~1.0.1"
+      }
+    },
+    "karma": {
+      "version": "3.1.4",
+      "resolved": "https://registry.npmjs.org/karma/-/karma-3.1.4.tgz",
+      "integrity": "sha512-31Vo8Qr5glN+dZEVIpnPCxEGleqE0EY6CtC2X9TagRV3rRQ3SNrvfhddICkJgUK3AgqpeKSZau03QumTGhGoSw==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.3.0",
+        "body-parser": "^1.16.1",
+        "chokidar": "^2.0.3",
+        "colors": "^1.1.0",
+        "combine-lists": "^1.0.0",
+        "connect": "^3.6.0",
+        "core-js": "^2.2.0",
+        "di": "^0.0.1",
+        "dom-serialize": "^2.2.0",
+        "expand-braces": "^0.1.1",
+        "flatted": "^2.0.0",
+        "glob": "^7.1.1",
+        "graceful-fs": "^4.1.2",
+        "http-proxy": "^1.13.0",
+        "isbinaryfile": "^3.0.0",
+        "lodash": "^4.17.5",
+        "log4js": "^3.0.0",
+        "mime": "^2.3.1",
+        "minimatch": "^3.0.2",
+        "optimist": "^0.6.1",
+        "qjobs": "^1.1.4",
+        "range-parser": "^1.2.0",
+        "rimraf": "^2.6.0",
+        "safe-buffer": "^5.0.1",
+        "socket.io": "2.1.1",
+        "source-map": "^0.6.1",
+        "tmp": "0.0.33",
+        "useragent": "2.3.0"
+      },
+      "dependencies": {
+        "mime": {
+          "version": "2.4.1",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.1.tgz",
+          "integrity": "sha512-VRUfmQO0rCd3hKwBymAn3kxYzBHr3I/wdVMywgG3HhXOwrCQgN84ZagpdTm2tZ4TNtwsSmyJWYO88mb5XvzGqQ==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "karma-chrome-launcher": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz",
+      "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==",
+      "dev": true,
+      "requires": {
+        "fs-access": "^1.0.0",
+        "which": "^1.2.1"
+      }
+    },
+    "karma-coverage-istanbul-reporter": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.5.tgz",
+      "integrity": "sha512-yPvAlKtY3y+rKKWbOo0CzBMVTvJEeMOgbMXuVv3yWvS8YtYKC98AU9vFF0mVBZ2RP1E9SgS90+PT6Kf14P3S4w==",
+      "dev": true,
+      "requires": {
+        "istanbul-api": "^2.1.1",
+        "minimatch": "^3.0.4"
+      }
+    },
+    "karma-jasmine": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz",
+      "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=",
+      "dev": true
+    },
+    "karma-jasmine-html-reporter": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz",
+      "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=",
+      "dev": true,
+      "requires": {
+        "karma-jasmine": "^1.0.2"
+      }
+    },
+    "karma-source-map-support": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz",
+      "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==",
+      "dev": true,
+      "requires": {
+        "source-map-support": "^0.5.5"
+      }
+    },
+    "killable": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+      "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==",
+      "dev": true
+    },
+    "kind-of": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+      "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+      "dev": true
+    },
+    "lcid": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+      "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+      "dev": true,
+      "requires": {
+        "invert-kv": "^1.0.0"
+      }
+    },
+    "less": {
+      "version": "3.9.0",
+      "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz",
+      "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==",
+      "dev": true,
+      "requires": {
+        "clone": "^2.1.2",
+        "errno": "^0.1.1",
+        "graceful-fs": "^4.1.2",
+        "image-size": "~0.5.0",
+        "mime": "^1.4.1",
+        "mkdirp": "^0.5.0",
+        "promise": "^7.1.1",
+        "request": "^2.83.0",
+        "source-map": "~0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "less-loader": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz",
+      "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==",
+      "dev": true,
+      "requires": {
+        "clone": "^2.1.1",
+        "loader-utils": "^1.1.0",
+        "pify": "^3.0.0"
+      }
+    },
+    "license-webpack-plugin": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.0.tgz",
+      "integrity": "sha512-vDiBeMWxjE9n6TabQ9J4FH8urFdsRK0Nvxn1cit9biCiR9aq1zBR0X2BlAkEiIG6qPamLeU0GzvIgLkrFc398A==",
+      "dev": true,
+      "requires": {
+        "@types/webpack-sources": "^0.1.5",
+        "webpack-sources": "^1.2.0"
+      }
+    },
+    "lie": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
+      "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+      "dev": true,
+      "requires": {
+        "immediate": "~3.0.5"
+      }
+    },
+    "load-json-file": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+      "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "parse-json": "^2.2.0",
+        "pify": "^2.0.0",
+        "pinkie-promise": "^2.0.0",
+        "strip-bom": "^2.0.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "loader-runner": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+      "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+      "dev": true
+    },
+    "loader-utils": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+      "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+      "dev": true,
+      "requires": {
+        "big.js": "^5.2.2",
+        "emojis-list": "^2.0.0",
+        "json5": "^1.0.1"
+      }
+    },
+    "locate-path": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+      "dev": true,
+      "requires": {
+        "p-locate": "^2.0.0",
+        "path-exists": "^3.0.0"
+      }
+    },
+    "lodash": {
+      "version": "4.17.11",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
+      "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
+      "dev": true
+    },
+    "lodash.assign": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+      "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
+      "dev": true,
+      "optional": true
+    },
+    "lodash.clonedeep": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+      "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+      "dev": true
+    },
+    "lodash.debounce": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
+      "dev": true
+    },
+    "lodash.mergewith": {
+      "version": "4.6.1",
+      "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
+      "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
+      "dev": true,
+      "optional": true
+    },
+    "lodash.tail": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
+      "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
+      "dev": true
+    },
+    "log4js": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.6.tgz",
+      "integrity": "sha512-ezXZk6oPJCWL483zj64pNkMuY/NcRX5MPiB0zE6tjZM137aeusrOnW1ecxgF9cmwMWkBMhjteQxBPoZBh9FDxQ==",
+      "dev": true,
+      "requires": {
+        "circular-json": "^0.5.5",
+        "date-format": "^1.2.0",
+        "debug": "^3.1.0",
+        "rfdc": "^1.1.2",
+        "streamroller": "0.7.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
+    "loglevel": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
+      "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=",
+      "dev": true
+    },
+    "loose-envify": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+      "dev": true,
+      "requires": {
+        "js-tokens": "^3.0.0 || ^4.0.0"
+      }
+    },
+    "loud-rejection": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "currently-unhandled": "^0.4.1",
+        "signal-exit": "^3.0.0"
+      }
+    },
+    "lru-cache": {
+      "version": "4.1.5",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+      "dev": true,
+      "requires": {
+        "pseudomap": "^1.0.2",
+        "yallist": "^2.1.2"
+      }
+    },
+    "magic-string": {
+      "version": "0.25.2",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.2.tgz",
+      "integrity": "sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg==",
+      "dev": true,
+      "requires": {
+        "sourcemap-codec": "^1.4.4"
+      }
+    },
+    "make-dir": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+      "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+      "dev": true,
+      "requires": {
+        "pify": "^3.0.0"
+      }
+    },
+    "make-error": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
+      "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
+      "dev": true
+    },
+    "make-fetch-happen": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz",
+      "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==",
+      "dev": true,
+      "requires": {
+        "agentkeepalive": "^3.4.1",
+        "cacache": "^11.0.1",
+        "http-cache-semantics": "^3.8.1",
+        "http-proxy-agent": "^2.1.0",
+        "https-proxy-agent": "^2.2.1",
+        "lru-cache": "^4.1.2",
+        "mississippi": "^3.0.0",
+        "node-fetch-npm": "^2.0.2",
+        "promise-retry": "^1.1.1",
+        "socks-proxy-agent": "^4.0.0",
+        "ssri": "^6.0.0"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "11.3.2",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
+          "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.3",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.3",
+            "graceful-fs": "^4.1.15",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.2",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
+            "y18n": "^4.0.0"
+          },
+          "dependencies": {
+            "lru-cache": {
+              "version": "5.1.1",
+              "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+              "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+              "dev": true,
+              "requires": {
+                "yallist": "^3.0.2"
+              }
+            }
+          }
+        },
+        "mississippi": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+          "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+          "dev": true,
+          "requires": {
+            "concat-stream": "^1.5.0",
+            "duplexify": "^3.4.2",
+            "end-of-stream": "^1.1.0",
+            "flush-write-stream": "^1.0.0",
+            "from2": "^2.1.0",
+            "parallel-transform": "^1.1.0",
+            "pump": "^3.0.0",
+            "pumpify": "^1.3.3",
+            "stream-each": "^1.1.0",
+            "through2": "^2.0.0"
+          }
+        },
+        "pump": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "ssri": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+          "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+          "dev": true,
+          "requires": {
+            "figgy-pudding": "^3.5.1"
+          }
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
+      }
+    },
+    "map-age-cleaner": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+      "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
+      "dev": true,
+      "requires": {
+        "p-defer": "^1.0.0"
+      }
+    },
+    "map-cache": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+      "dev": true
+    },
+    "map-obj": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+      "dev": true,
+      "optional": true
+    },
+    "map-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+      "dev": true,
+      "requires": {
+        "object-visit": "^1.0.0"
+      }
+    },
+    "md5.js": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+      "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+      "dev": true,
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "media-typer": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+      "dev": true
+    },
+    "mem": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+      "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+      "dev": true,
+      "requires": {
+        "map-age-cleaner": "^0.1.1",
+        "mimic-fn": "^2.0.0",
+        "p-is-promise": "^2.0.0"
+      }
+    },
+    "memory-fs": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+      "dev": true,
+      "requires": {
+        "errno": "^0.1.3",
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "meow": {
+      "version": "3.7.0",
+      "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase-keys": "^2.0.0",
+        "decamelize": "^1.1.2",
+        "loud-rejection": "^1.0.0",
+        "map-obj": "^1.0.1",
+        "minimist": "^1.1.3",
+        "normalize-package-data": "^2.3.4",
+        "object-assign": "^4.0.1",
+        "read-pkg-up": "^1.0.1",
+        "redent": "^1.0.0",
+        "trim-newlines": "^1.0.0"
+      }
+    },
+    "merge-descriptors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+      "dev": true
+    },
+    "methods": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+      "dev": true
+    },
+    "micromatch": {
+      "version": "3.1.10",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+      "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+      "dev": true,
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "braces": "^2.3.1",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "extglob": "^2.0.4",
+        "fragment-cache": "^0.2.1",
+        "kind-of": "^6.0.2",
+        "nanomatch": "^1.2.9",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.2"
+      }
+    },
+    "miller-rabin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+      "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.0.0",
+        "brorand": "^1.0.1"
+      }
+    },
+    "mime": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+      "dev": true,
+      "optional": true
+    },
+    "mime-db": {
+      "version": "1.38.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
+      "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
+      "dev": true
+    },
+    "mime-types": {
+      "version": "2.1.22",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
+      "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
+      "dev": true,
+      "requires": {
+        "mime-db": "~1.38.0"
+      }
+    },
+    "mimic-fn": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+      "dev": true
+    },
+    "mini-css-extract-plugin": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz",
+      "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^1.0.0",
+        "webpack-sources": "^1.1.0"
+      }
+    },
+    "minimalistic-assert": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+      "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+      "dev": true
+    },
+    "minimalistic-crypto-utils": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+      "dev": true
+    },
+    "minimatch": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+      "dev": true,
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "minimist": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+      "dev": true
+    },
+    "minipass": {
+      "version": "2.3.5",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
+      "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.2",
+        "yallist": "^3.0.0"
+      },
+      "dependencies": {
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
+      }
+    },
+    "minizlib": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
+      "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
+      "dev": true,
+      "requires": {
+        "minipass": "^2.2.1"
+      }
+    },
+    "mississippi": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+      "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+      "dev": true,
+      "requires": {
+        "concat-stream": "^1.5.0",
+        "duplexify": "^3.4.2",
+        "end-of-stream": "^1.1.0",
+        "flush-write-stream": "^1.0.0",
+        "from2": "^2.1.0",
+        "parallel-transform": "^1.1.0",
+        "pump": "^2.0.1",
+        "pumpify": "^1.3.3",
+        "stream-each": "^1.1.0",
+        "through2": "^2.0.0"
+      }
+    },
+    "mixin-deep": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
+      "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+      "dev": true,
+      "requires": {
+        "for-in": "^1.0.2",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "mixin-object": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
+      "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
+      "dev": true,
+      "requires": {
+        "for-in": "^0.1.3",
+        "is-extendable": "^0.1.1"
+      },
+      "dependencies": {
+        "for-in": {
+          "version": "0.1.8",
+          "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
+          "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=",
+          "dev": true
+        }
+      }
+    },
+    "mkdirp": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+      "dev": true,
+      "requires": {
+        "minimist": "0.0.8"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "0.0.8",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+          "dev": true
+        }
+      }
+    },
+    "move-concurrently": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+      "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1",
+        "copy-concurrently": "^1.0.0",
+        "fs-write-stream-atomic": "^1.0.8",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.3"
+      }
+    },
+    "ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+      "dev": true
+    },
+    "multicast-dns": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+      "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+      "dev": true,
+      "requires": {
+        "dns-packet": "^1.3.1",
+        "thunky": "^1.0.2"
+      }
+    },
+    "multicast-dns-service-types": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+      "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+      "dev": true
+    },
+    "mute-stream": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+      "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+      "dev": true
+    },
+    "nan": {
+      "version": "2.13.2",
+      "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
+      "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
+      "dev": true,
+      "optional": true
+    },
+    "nanomatch": {
+      "version": "1.2.13",
+      "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+      "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+      "dev": true,
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "fragment-cache": "^0.2.1",
+        "is-windows": "^1.0.2",
+        "kind-of": "^6.0.2",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      }
+    },
+    "negotiator": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
+      "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
+      "dev": true
+    },
+    "neo-async": {
+      "version": "2.6.0",
+      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz",
+      "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==",
+      "dev": true
+    },
+    "nice-try": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+      "dev": true
+    },
+    "node-fetch-npm": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz",
+      "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==",
+      "dev": true,
+      "requires": {
+        "encoding": "^0.1.11",
+        "json-parse-better-errors": "^1.0.0",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "node-forge": {
+      "version": "0.7.5",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
+      "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==",
+      "dev": true
+    },
+    "node-gyp": {
+      "version": "3.8.0",
+      "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+      "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "fstream": "^1.0.0",
+        "glob": "^7.0.3",
+        "graceful-fs": "^4.1.2",
+        "mkdirp": "^0.5.0",
+        "nopt": "2 || 3",
+        "npmlog": "0 || 1 || 2 || 3 || 4",
+        "osenv": "0",
+        "request": "^2.87.0",
+        "rimraf": "2",
+        "semver": "~5.3.0",
+        "tar": "^2.0.0",
+        "which": "1"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "5.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "node-libs-browser": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz",
+      "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==",
+      "dev": true,
+      "requires": {
+        "assert": "^1.1.1",
+        "browserify-zlib": "^0.2.0",
+        "buffer": "^4.3.0",
+        "console-browserify": "^1.1.0",
+        "constants-browserify": "^1.0.0",
+        "crypto-browserify": "^3.11.0",
+        "domain-browser": "^1.1.1",
+        "events": "^3.0.0",
+        "https-browserify": "^1.0.0",
+        "os-browserify": "^0.3.0",
+        "path-browserify": "0.0.0",
+        "process": "^0.11.10",
+        "punycode": "^1.2.4",
+        "querystring-es3": "^0.2.0",
+        "readable-stream": "^2.3.3",
+        "stream-browserify": "^2.0.1",
+        "stream-http": "^2.7.2",
+        "string_decoder": "^1.0.0",
+        "timers-browserify": "^2.0.4",
+        "tty-browserify": "0.0.0",
+        "url": "^0.11.0",
+        "util": "^0.11.0",
+        "vm-browserify": "0.0.4"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+          "dev": true
+        }
+      }
+    },
+    "node-releases": {
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.13.tgz",
+      "integrity": "sha512-fKZGviSXR6YvVPyc011NHuJDSD8gFQvLPmc2d2V3BS4gr52ycyQ1Xzs7a8B+Ax3Ni/W+5h1h4SqmzeoA8WZRmA==",
+      "dev": true,
+      "requires": {
+        "semver": "^5.3.0"
+      }
+    },
+    "node-sass": {
+      "version": "4.11.0",
+      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz",
+      "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "async-foreach": "^0.1.3",
+        "chalk": "^1.1.1",
+        "cross-spawn": "^3.0.0",
+        "gaze": "^1.0.0",
+        "get-stdin": "^4.0.1",
+        "glob": "^7.0.3",
+        "in-publish": "^2.0.0",
+        "lodash.assign": "^4.2.0",
+        "lodash.clonedeep": "^4.3.2",
+        "lodash.mergewith": "^4.6.0",
+        "meow": "^3.7.0",
+        "mkdirp": "^0.5.1",
+        "nan": "^2.10.0",
+        "node-gyp": "^3.8.0",
+        "npmlog": "^4.0.0",
+        "request": "^2.88.0",
+        "sass-graph": "^2.2.4",
+        "stdout-stream": "^1.4.0",
+        "true-case-path": "^1.0.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true,
+          "optional": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "nopt": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "abbrev": "1"
+      }
+    },
+    "normalize-package-data": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+      "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+      "dev": true,
+      "requires": {
+        "hosted-git-info": "^2.1.4",
+        "resolve": "^1.10.0",
+        "semver": "2 || 3 || 4 || 5",
+        "validate-npm-package-license": "^3.0.1"
+      }
+    },
+    "normalize-path": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+      "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+      "dev": true,
+      "requires": {
+        "remove-trailing-separator": "^1.0.1"
+      }
+    },
+    "normalize-range": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+      "dev": true
+    },
+    "npm-bundled": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz",
+      "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
+      "dev": true
+    },
+    "npm-package-arg": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz",
+      "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==",
+      "dev": true,
+      "requires": {
+        "hosted-git-info": "^2.6.0",
+        "osenv": "^0.1.5",
+        "semver": "^5.5.0",
+        "validate-npm-package-name": "^3.0.0"
+      }
+    },
+    "npm-packlist": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz",
+      "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
+      "dev": true,
+      "requires": {
+        "ignore-walk": "^3.0.1",
+        "npm-bundled": "^1.0.1"
+      }
+    },
+    "npm-pick-manifest": {
+      "version": "2.2.3",
+      "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz",
+      "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==",
+      "dev": true,
+      "requires": {
+        "figgy-pudding": "^3.5.1",
+        "npm-package-arg": "^6.0.0",
+        "semver": "^5.4.1"
+      }
+    },
+    "npm-registry-fetch": {
+      "version": "3.9.0",
+      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz",
+      "integrity": "sha512-srwmt8YhNajAoSAaDWndmZgx89lJwIZ1GWxOuckH4Coek4uHv5S+o/l9FLQe/awA+JwTnj4FJHldxhlXdZEBmw==",
+      "dev": true,
+      "requires": {
+        "JSONStream": "^1.3.4",
+        "bluebird": "^3.5.1",
+        "figgy-pudding": "^3.4.1",
+        "lru-cache": "^4.1.3",
+        "make-fetch-happen": "^4.0.1",
+        "npm-package-arg": "^6.1.0"
+      }
+    },
+    "npm-run-path": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+      "dev": true,
+      "requires": {
+        "path-key": "^2.0.0"
+      }
+    },
+    "npmlog": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+      "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "are-we-there-yet": "~1.1.2",
+        "console-control-strings": "~1.1.0",
+        "gauge": "~2.7.3",
+        "set-blocking": "~2.0.0"
+      }
+    },
+    "null-check": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz",
+      "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=",
+      "dev": true
+    },
+    "num2fraction": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+      "dev": true
+    },
+    "number-is-nan": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+      "dev": true
+    },
+    "oauth-sign": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+      "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+      "dev": true
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+      "dev": true
+    },
+    "object-component": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
+      "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
+      "dev": true
+    },
+    "object-copy": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+      "dev": true,
+      "requires": {
+        "copy-descriptor": "^0.1.0",
+        "define-property": "^0.2.5",
+        "kind-of": "^3.0.3"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "object-visit": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.0"
+      }
+    },
+    "object.pick": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "obuf": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+      "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+      "dev": true
+    },
+    "on-finished": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+      "dev": true,
+      "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==",
+      "dev": true
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "dev": true,
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "onetime": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+      "dev": true,
+      "requires": {
+        "mimic-fn": "^1.0.0"
+      },
+      "dependencies": {
+        "mimic-fn": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+          "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+          "dev": true
+        }
+      }
+    },
+    "open": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/open/-/open-6.0.0.tgz",
+      "integrity": "sha512-/yb5mVZBz7mHLySMiSj2DcLtMBbFPJk5JBKEkHVZFxZAPzeg3L026O0T+lbdz1B2nyDnkClRSwRQJdeVUIF7zw==",
+      "dev": true,
+      "requires": {
+        "is-wsl": "^1.1.0"
+      }
+    },
+    "opn": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+      "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+      "dev": true,
+      "requires": {
+        "is-wsl": "^1.1.0"
+      }
+    },
+    "optimist": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+      "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+      "dev": true,
+      "requires": {
+        "minimist": "~0.0.1",
+        "wordwrap": "~0.0.2"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "0.0.10",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+          "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
+          "dev": true
+        }
+      }
+    },
+    "original": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+      "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
+      "dev": true,
+      "requires": {
+        "url-parse": "^1.4.3"
+      }
+    },
+    "os-browserify": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+      "dev": true
+    },
+    "os-homedir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+      "dev": true
+    },
+    "os-locale": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+      "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "lcid": "^1.0.0"
+      }
+    },
+    "os-tmpdir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+      "dev": true
+    },
+    "osenv": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+      "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+      "dev": true,
+      "requires": {
+        "os-homedir": "^1.0.0",
+        "os-tmpdir": "^1.0.0"
+      }
+    },
+    "p-defer": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+      "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
+      "dev": true
+    },
+    "p-finally": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+      "dev": true
+    },
+    "p-is-promise": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz",
+      "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==",
+      "dev": true
+    },
+    "p-limit": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+      "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+      "dev": true,
+      "requires": {
+        "p-try": "^1.0.0"
+      }
+    },
+    "p-locate": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+      "dev": true,
+      "requires": {
+        "p-limit": "^1.1.0"
+      }
+    },
+    "p-map": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+      "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
+      "dev": true
+    },
+    "p-try": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+      "dev": true
+    },
+    "pacote": {
+      "version": "9.4.0",
+      "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.4.0.tgz",
+      "integrity": "sha512-WQ1KL/phGMkedYEQx9ODsjj7xvwLSpdFJJdEXrLyw5SILMxcTNt5DTxT2Z93fXuLFYJBlZJdnwdalrQdB/rX5w==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.3",
+        "cacache": "^11.3.2",
+        "figgy-pudding": "^3.5.1",
+        "get-stream": "^4.1.0",
+        "glob": "^7.1.3",
+        "lru-cache": "^5.1.1",
+        "make-fetch-happen": "^4.0.1",
+        "minimatch": "^3.0.4",
+        "minipass": "^2.3.5",
+        "mississippi": "^3.0.0",
+        "mkdirp": "^0.5.1",
+        "normalize-package-data": "^2.4.0",
+        "npm-package-arg": "^6.1.0",
+        "npm-packlist": "^1.1.12",
+        "npm-pick-manifest": "^2.2.3",
+        "npm-registry-fetch": "^3.8.0",
+        "osenv": "^0.1.5",
+        "promise-inflight": "^1.0.1",
+        "promise-retry": "^1.1.1",
+        "protoduck": "^5.0.1",
+        "rimraf": "^2.6.2",
+        "safe-buffer": "^5.1.2",
+        "semver": "^5.6.0",
+        "ssri": "^6.0.1",
+        "tar": "^4.4.8",
+        "unique-filename": "^1.1.1",
+        "which": "^1.3.1"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "11.3.2",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
+          "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.3",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.3",
+            "graceful-fs": "^4.1.15",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.2",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
+            "y18n": "^4.0.0"
+          }
+        },
+        "get-stream": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+          "dev": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "dev": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "mississippi": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+          "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+          "dev": true,
+          "requires": {
+            "concat-stream": "^1.5.0",
+            "duplexify": "^3.4.2",
+            "end-of-stream": "^1.1.0",
+            "flush-write-stream": "^1.0.0",
+            "from2": "^2.1.0",
+            "parallel-transform": "^1.1.0",
+            "pump": "^3.0.0",
+            "pumpify": "^1.3.3",
+            "stream-each": "^1.1.0",
+            "through2": "^2.0.0"
+          }
+        },
+        "pump": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "ssri": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+          "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+          "dev": true,
+          "requires": {
+            "figgy-pudding": "^3.5.1"
+          }
+        },
+        "tar": {
+          "version": "4.4.8",
+          "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
+          "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
+          "dev": true,
+          "requires": {
+            "chownr": "^1.1.1",
+            "fs-minipass": "^1.2.5",
+            "minipass": "^2.3.4",
+            "minizlib": "^1.1.1",
+            "mkdirp": "^0.5.0",
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.2"
+          }
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
+      }
+    },
+    "pako": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
+      "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
+      "dev": true
+    },
+    "parallel-transform": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
+      "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
+      "dev": true,
+      "requires": {
+        "cyclist": "~0.2.2",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.1.5"
+      }
+    },
+    "parse-asn1": {
+      "version": "5.1.4",
+      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz",
+      "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==",
+      "dev": true,
+      "requires": {
+        "asn1.js": "^4.0.0",
+        "browserify-aes": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.0",
+        "pbkdf2": "^3.0.3",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "parse-json": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+      "dev": true,
+      "requires": {
+        "error-ex": "^1.2.0"
+      }
+    },
+    "parse5": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
+      "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
+      "dev": true
+    },
+    "parseqs": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
+      "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
+      "dev": true,
+      "requires": {
+        "better-assert": "~1.0.0"
+      }
+    },
+    "parseuri": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
+      "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
+      "dev": true,
+      "requires": {
+        "better-assert": "~1.0.0"
+      }
+    },
+    "parseurl": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+      "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
+      "dev": true
+    },
+    "pascalcase": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+      "dev": true
+    },
+    "path-browserify": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+      "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
+      "dev": true
+    },
+    "path-dirname": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+      "dev": true
+    },
+    "path-exists": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+      "dev": true
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+      "dev": true
+    },
+    "path-is-inside": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+      "dev": true
+    },
+    "path-key": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+      "dev": true
+    },
+    "path-parse": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+      "dev": true
+    },
+    "path-to-regexp": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+      "dev": true
+    },
+    "path-type": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+      "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+      "dev": true,
+      "requires": {
+        "pify": "^3.0.0"
+      }
+    },
+    "pbkdf2": {
+      "version": "3.0.17",
+      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
+      "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
+      "dev": true,
+      "requires": {
+        "create-hash": "^1.1.2",
+        "create-hmac": "^1.1.4",
+        "ripemd160": "^2.0.1",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "performance-now": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+      "dev": true
+    },
+    "pify": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+      "dev": true
+    },
+    "pinkie": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+      "dev": true
+    },
+    "pinkie-promise": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+      "dev": true,
+      "requires": {
+        "pinkie": "^2.0.0"
+      }
+    },
+    "pkg-dir": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+      "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+      "dev": true,
+      "requires": {
+        "find-up": "^2.1.0"
+      }
+    },
+    "portfinder": {
+      "version": "1.0.20",
+      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz",
+      "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==",
+      "dev": true,
+      "requires": {
+        "async": "^1.5.2",
+        "debug": "^2.2.0",
+        "mkdirp": "0.5.x"
+      },
+      "dependencies": {
+        "async": {
+          "version": "1.5.2",
+          "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+          "dev": true
+        }
+      }
+    },
+    "posix-character-classes": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+      "dev": true
+    },
+    "postcss": {
+      "version": "7.0.14",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz",
+      "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.2",
+        "source-map": "^0.6.1",
+        "supports-color": "^6.1.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-import": {
+      "version": "12.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz",
+      "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.1",
+        "postcss-value-parser": "^3.2.3",
+        "read-cache": "^1.0.0",
+        "resolve": "^1.1.7"
+      }
+    },
+    "postcss-load-config": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz",
+      "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==",
+      "dev": true,
+      "requires": {
+        "cosmiconfig": "^4.0.0",
+        "import-cwd": "^2.0.0"
+      }
+    },
+    "postcss-loader": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
+      "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "postcss": "^7.0.0",
+        "postcss-load-config": "^2.0.0",
+        "schema-utils": "^1.0.0"
+      }
+    },
+    "postcss-value-parser": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+      "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+      "dev": true
+    },
+    "process": {
+      "version": "0.11.10",
+      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+      "dev": true
+    },
+    "process-nextick-args": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+      "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+      "dev": true
+    },
+    "promise": {
+      "version": "7.3.1",
+      "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+      "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "asap": "~2.0.3"
+      }
+    },
+    "promise-inflight": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+      "dev": true
+    },
+    "promise-retry": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz",
+      "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=",
+      "dev": true,
+      "requires": {
+        "err-code": "^1.0.0",
+        "retry": "^0.10.0"
+      }
+    },
+    "protoduck": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz",
+      "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==",
+      "dev": true,
+      "requires": {
+        "genfun": "^5.0.0"
+      }
+    },
+    "protractor": {
+      "version": "5.4.2",
+      "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.2.tgz",
+      "integrity": "sha512-zlIj64Cr6IOWP7RwxVeD8O4UskLYPoyIcg0HboWJL9T79F1F0VWtKkGTr/9GN6BKL+/Q/GmM7C9kFVCfDbP5sA==",
+      "dev": true,
+      "requires": {
+        "@types/q": "^0.0.32",
+        "@types/selenium-webdriver": "^3.0.0",
+        "blocking-proxy": "^1.0.0",
+        "browserstack": "^1.5.1",
+        "chalk": "^1.1.3",
+        "glob": "^7.0.3",
+        "jasmine": "2.8.0",
+        "jasminewd2": "^2.1.0",
+        "optimist": "~0.6.0",
+        "q": "1.4.1",
+        "saucelabs": "^1.5.0",
+        "selenium-webdriver": "3.6.0",
+        "source-map-support": "~0.4.0",
+        "webdriver-js-extender": "2.1.0",
+        "webdriver-manager": "^12.0.6"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "del": {
+          "version": "2.2.2",
+          "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+          "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+          "dev": true,
+          "requires": {
+            "globby": "^5.0.0",
+            "is-path-cwd": "^1.0.0",
+            "is-path-in-cwd": "^1.0.0",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0",
+            "rimraf": "^2.2.8"
+          }
+        },
+        "globby": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+          "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "arrify": "^1.0.0",
+            "glob": "^7.0.3",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "source-map-support": {
+          "version": "0.4.18",
+          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+          "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+          "dev": true,
+          "requires": {
+            "source-map": "^0.5.6"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        },
+        "webdriver-manager": {
+          "version": "12.1.1",
+          "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.1.tgz",
+          "integrity": "sha512-L9TEQmZs6JbMMRQI1w60mfps265/NCr0toYJl7p/R2OAk6oXAfwI6jqYP7EWae+d7Ad2S2Aj4+rzxoSjqk3ZuA==",
+          "dev": true,
+          "requires": {
+            "adm-zip": "^0.4.9",
+            "chalk": "^1.1.1",
+            "del": "^2.2.0",
+            "glob": "^7.0.3",
+            "ini": "^1.3.4",
+            "minimist": "^1.2.0",
+            "q": "^1.4.1",
+            "request": "^2.87.0",
+            "rimraf": "^2.5.2",
+            "semver": "^5.3.0",
+            "xml2js": "^0.4.17"
+          }
+        }
+      }
+    },
+    "proxy-addr": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
+      "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
+      "dev": true,
+      "requires": {
+        "forwarded": "~0.1.2",
+        "ipaddr.js": "1.8.0"
+      }
+    },
+    "prr": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+      "dev": true
+    },
+    "pseudomap": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+      "dev": true
+    },
+    "psl": {
+      "version": "1.1.31",
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
+      "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
+      "dev": true
+    },
+    "public-encrypt": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+      "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "browserify-rsa": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "parse-asn1": "^5.0.0",
+        "randombytes": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "pump": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+      "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "once": "^1.3.1"
+      }
+    },
+    "pumpify": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+      "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+      "dev": true,
+      "requires": {
+        "duplexify": "^3.6.0",
+        "inherits": "^2.0.3",
+        "pump": "^2.0.0"
+      }
+    },
+    "punycode": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+      "dev": true
+    },
+    "q": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
+      "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
+      "dev": true
+    },
+    "qjobs": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
+      "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
+      "dev": true
+    },
+    "qs": {
+      "version": "6.5.2",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+      "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+      "dev": true
+    },
+    "querystring": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+      "dev": true
+    },
+    "querystring-es3": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+      "dev": true
+    },
+    "querystringify": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
+      "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
+      "dev": true
+    },
+    "randombytes": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "randomfill": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+      "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+      "dev": true,
+      "requires": {
+        "randombytes": "^2.0.5",
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "range-parser": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
+      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
+      "dev": true
+    },
+    "raw-body": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
+      "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
+      "dev": true,
+      "requires": {
+        "bytes": "3.0.0",
+        "http-errors": "1.6.3",
+        "iconv-lite": "0.4.23",
+        "unpipe": "1.0.0"
+      }
+    },
+    "raw-loader": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-1.0.0.tgz",
+      "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^1.0.0"
+      }
+    },
+    "read-cache": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+      "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+      "dev": true,
+      "requires": {
+        "pify": "^2.3.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        }
+      }
+    },
+    "read-pkg": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+      "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "load-json-file": "^1.0.0",
+        "normalize-package-data": "^2.3.2",
+        "path-type": "^1.0.0"
+      },
+      "dependencies": {
+        "path-type": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "read-pkg-up": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "find-up": "^1.0.0",
+        "read-pkg": "^1.0.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "path-exists": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "path-exists": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "pinkie-promise": "^2.0.0"
+          }
+        }
+      }
+    },
+    "readable-stream": {
+      "version": "2.3.6",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+      "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+      "dev": true,
+      "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"
+      }
+    },
+    "readdirp": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+      "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.11",
+        "micromatch": "^3.1.10",
+        "readable-stream": "^2.0.2"
+      }
+    },
+    "rechoir": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+      "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+      "dev": true,
+      "requires": {
+        "resolve": "^1.1.6"
+      }
+    },
+    "redent": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "indent-string": "^2.1.0",
+        "strip-indent": "^1.0.1"
+      }
+    },
+    "reflect-metadata": {
+      "version": "0.1.13",
+      "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
+      "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
+      "dev": true
+    },
+    "regenerate": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
+      "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
+      "dev": true
+    },
+    "regenerator-runtime": {
+      "version": "0.11.1",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+      "dev": true
+    },
+    "regex-not": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+      "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^3.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "regexpu-core": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+      "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+      "dev": true,
+      "requires": {
+        "regenerate": "^1.2.1",
+        "regjsgen": "^0.2.0",
+        "regjsparser": "^0.1.4"
+      }
+    },
+    "regjsgen": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+      "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+      "dev": true
+    },
+    "regjsparser": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+      "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+      "dev": true,
+      "requires": {
+        "jsesc": "~0.5.0"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+          "dev": true
+        }
+      }
+    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+      "dev": true
+    },
+    "repeat-element": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+      "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+      "dev": true
+    },
+    "repeat-string": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+      "dev": true
+    },
+    "repeating": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+      "dev": true,
+      "requires": {
+        "is-finite": "^1.0.0"
+      }
+    },
+    "request": {
+      "version": "2.88.0",
+      "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+      "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+      "dev": true,
+      "requires": {
+        "aws-sign2": "~0.7.0",
+        "aws4": "^1.8.0",
+        "caseless": "~0.12.0",
+        "combined-stream": "~1.0.6",
+        "extend": "~3.0.2",
+        "forever-agent": "~0.6.1",
+        "form-data": "~2.3.2",
+        "har-validator": "~5.1.0",
+        "http-signature": "~1.2.0",
+        "is-typedarray": "~1.0.0",
+        "isstream": "~0.1.2",
+        "json-stringify-safe": "~5.0.1",
+        "mime-types": "~2.1.19",
+        "oauth-sign": "~0.9.0",
+        "performance-now": "^2.1.0",
+        "qs": "~6.5.2",
+        "safe-buffer": "^5.1.2",
+        "tough-cookie": "~2.4.3",
+        "tunnel-agent": "^0.6.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+      "dev": true
+    },
+    "require-from-string": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+      "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+      "dev": true
+    },
+    "require-main-filename": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+      "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+      "dev": true
+    },
+    "requires-port": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+      "dev": true
+    },
+    "resolve": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
+      "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
+      "dev": true,
+      "requires": {
+        "path-parse": "^1.0.6"
+      }
+    },
+    "resolve-cwd": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+      "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "resolve-from": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+      "dev": true
+    },
+    "resolve-url": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+      "dev": true
+    },
+    "restore-cursor": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+      "dev": true,
+      "requires": {
+        "onetime": "^2.0.0",
+        "signal-exit": "^3.0.2"
+      }
+    },
+    "ret": {
+      "version": "0.1.15",
+      "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+      "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+      "dev": true
+    },
+    "retry": {
+      "version": "0.10.1",
+      "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
+      "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
+      "dev": true
+    },
+    "rfdc": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz",
+      "integrity": "sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA==",
+      "dev": true
+    },
+    "rimraf": {
+      "version": "2.6.3",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+      "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+      "dev": true,
+      "requires": {
+        "glob": "^7.1.3"
+      }
+    },
+    "ripemd160": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+      "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+      "dev": true,
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1"
+      }
+    },
+    "run-async": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+      "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+      "dev": true,
+      "requires": {
+        "is-promise": "^2.1.0"
+      }
+    },
+    "run-queue": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+      "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1"
+      }
+    },
+    "rxjs": {
+      "version": "6.3.3",
+      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
+      "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "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==",
+      "dev": true
+    },
+    "safe-regex": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+      "dev": true,
+      "requires": {
+        "ret": "~0.1.10"
+      }
+    },
+    "safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+      "dev": true
+    },
+    "sass-graph": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
+      "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "glob": "^7.0.0",
+        "lodash": "^4.0.0",
+        "scss-tokenizer": "^0.2.3",
+        "yargs": "^7.0.0"
+      }
+    },
+    "sass-loader": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz",
+      "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==",
+      "dev": true,
+      "requires": {
+        "clone-deep": "^2.0.1",
+        "loader-utils": "^1.0.1",
+        "lodash.tail": "^4.1.1",
+        "neo-async": "^2.5.0",
+        "pify": "^3.0.0",
+        "semver": "^5.5.0"
+      }
+    },
+    "saucelabs": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz",
+      "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==",
+      "dev": true,
+      "requires": {
+        "https-proxy-agent": "^2.2.1"
+      }
+    },
+    "sax": {
+      "version": "0.5.8",
+      "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
+      "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
+      "dev": true
+    },
+    "schema-utils": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+      "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+      "dev": true,
+      "requires": {
+        "ajv": "^6.1.0",
+        "ajv-errors": "^1.0.0",
+        "ajv-keywords": "^3.1.0"
+      }
+    },
+    "scss-tokenizer": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+      "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "js-base64": "^2.1.8",
+        "source-map": "^0.4.2"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.4.4",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "select-hose": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+      "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+      "dev": true
+    },
+    "selenium-webdriver": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz",
+      "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==",
+      "dev": true,
+      "requires": {
+        "jszip": "^3.1.3",
+        "rimraf": "^2.5.4",
+        "tmp": "0.0.30",
+        "xml2js": "^0.4.17"
+      },
+      "dependencies": {
+        "tmp": {
+          "version": "0.0.30",
+          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz",
+          "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=",
+          "dev": true,
+          "requires": {
+            "os-tmpdir": "~1.0.1"
+          }
+        }
+      }
+    },
+    "selfsigned": {
+      "version": "1.10.4",
+      "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz",
+      "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==",
+      "dev": true,
+      "requires": {
+        "node-forge": "0.7.5"
+      }
+    },
+    "semver": {
+      "version": "5.6.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
+      "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+      "dev": true
+    },
+    "semver-dsl": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz",
+      "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=",
+      "dev": true,
+      "requires": {
+        "semver": "^5.3.0"
+      }
+    },
+    "semver-intersect": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz",
+      "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==",
+      "dev": true,
+      "requires": {
+        "semver": "^5.0.0"
+      }
+    },
+    "send": {
+      "version": "0.16.2",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
+      "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "destroy": "~1.0.4",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "0.5.2",
+        "http-errors": "~1.6.2",
+        "mime": "1.4.1",
+        "ms": "2.0.0",
+        "on-finished": "~2.3.0",
+        "range-parser": "~1.2.0",
+        "statuses": "~1.4.0"
+      },
+      "dependencies": {
+        "mime": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+          "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
+          "dev": true
+        }
+      }
+    },
+    "serialize-javascript": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz",
+      "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==",
+      "dev": true
+    },
+    "serve-index": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+      "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.4",
+        "batch": "0.6.1",
+        "debug": "2.6.9",
+        "escape-html": "~1.0.3",
+        "http-errors": "~1.6.2",
+        "mime-types": "~2.1.17",
+        "parseurl": "~1.3.2"
+      }
+    },
+    "serve-static": {
+      "version": "1.13.2",
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
+      "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
+      "dev": true,
+      "requires": {
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "parseurl": "~1.3.2",
+        "send": "0.16.2"
+      }
+    },
+    "set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+      "dev": true
+    },
+    "set-immediate-shim": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+      "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
+      "dev": true
+    },
+    "set-value": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
+      "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-extendable": "^0.1.1",
+        "is-plain-object": "^2.0.3",
+        "split-string": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "setimmediate": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+      "dev": true
+    },
+    "setprototypeof": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+      "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+      "dev": true
+    },
+    "sha.js": {
+      "version": "2.4.11",
+      "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+      "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "shallow-clone": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
+      "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
+      "dev": true,
+      "requires": {
+        "is-extendable": "^0.1.1",
+        "kind-of": "^5.0.0",
+        "mixin-object": "^2.0.1"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+          "dev": true
+        }
+      }
+    },
+    "shebang-command": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+      "dev": true,
+      "requires": {
+        "shebang-regex": "^1.0.0"
+      }
+    },
+    "shebang-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+      "dev": true
+    },
+    "shelljs": {
+      "version": "0.8.3",
+      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz",
+      "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==",
+      "dev": true,
+      "requires": {
+        "glob": "^7.0.0",
+        "interpret": "^1.0.0",
+        "rechoir": "^0.6.2"
+      }
+    },
+    "signal-exit": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+      "dev": true
+    },
+    "slash": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+      "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+      "dev": true
+    },
+    "smart-buffer": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz",
+      "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==",
+      "dev": true
+    },
+    "snapdragon": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+      "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+      "dev": true,
+      "requires": {
+        "base": "^0.11.1",
+        "debug": "^2.2.0",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "map-cache": "^0.2.2",
+        "source-map": "^0.5.6",
+        "source-map-resolve": "^0.5.0",
+        "use": "^3.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "snapdragon-node": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+      "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+      "dev": true,
+      "requires": {
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.0",
+        "snapdragon-util": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "snapdragon-util": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+      "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.2.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "socket.io": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
+      "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
+      "dev": true,
+      "requires": {
+        "debug": "~3.1.0",
+        "engine.io": "~3.2.0",
+        "has-binary2": "~1.0.2",
+        "socket.io-adapter": "~1.1.0",
+        "socket.io-client": "2.1.1",
+        "socket.io-parser": "~3.2.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
+    "socket.io-adapter": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
+      "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=",
+      "dev": true
+    },
+    "socket.io-client": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
+      "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
+      "dev": true,
+      "requires": {
+        "backo2": "1.0.2",
+        "base64-arraybuffer": "0.1.5",
+        "component-bind": "1.0.0",
+        "component-emitter": "1.2.1",
+        "debug": "~3.1.0",
+        "engine.io-client": "~3.2.0",
+        "has-binary2": "~1.0.2",
+        "has-cors": "1.1.0",
+        "indexof": "0.0.1",
+        "object-component": "0.0.3",
+        "parseqs": "0.0.5",
+        "parseuri": "0.0.5",
+        "socket.io-parser": "~3.2.0",
+        "to-array": "0.1.4"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
+    "socket.io-parser": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
+      "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
+      "dev": true,
+      "requires": {
+        "component-emitter": "1.2.1",
+        "debug": "~3.1.0",
+        "isarray": "2.0.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "isarray": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+          "dev": true
+        }
+      }
+    },
+    "sockjs": {
+      "version": "0.3.19",
+      "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
+      "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
+      "dev": true,
+      "requires": {
+        "faye-websocket": "^0.10.0",
+        "uuid": "^3.0.1"
+      }
+    },
+    "sockjs-client": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz",
+      "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==",
+      "dev": true,
+      "requires": {
+        "debug": "^3.2.5",
+        "eventsource": "^1.0.7",
+        "faye-websocket": "~0.11.1",
+        "inherits": "^2.0.3",
+        "json3": "^3.3.2",
+        "url-parse": "^1.4.3"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "faye-websocket": {
+          "version": "0.11.1",
+          "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
+          "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
+          "dev": true,
+          "requires": {
+            "websocket-driver": ">=0.5.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
+    "socks": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz",
+      "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==",
+      "dev": true,
+      "requires": {
+        "ip": "^1.1.5",
+        "smart-buffer": "4.0.2"
+      }
+    },
+    "socks-proxy-agent": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz",
+      "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==",
+      "dev": true,
+      "requires": {
+        "agent-base": "~4.2.1",
+        "socks": "~2.3.2"
+      }
+    },
+    "source-list-map": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+      "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+      "dev": true
+    },
+    "source-map": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+      "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+      "dev": true
+    },
+    "source-map-loader": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz",
+      "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==",
+      "dev": true,
+      "requires": {
+        "async": "^2.5.0",
+        "loader-utils": "^1.1.0"
+      }
+    },
+    "source-map-resolve": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+      "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+      "dev": true,
+      "requires": {
+        "atob": "^2.1.1",
+        "decode-uri-component": "^0.2.0",
+        "resolve-url": "^0.2.1",
+        "source-map-url": "^0.4.0",
+        "urix": "^0.1.0"
+      }
+    },
+    "source-map-support": {
+      "version": "0.5.10",
+      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz",
+      "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==",
+      "dev": true,
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "source-map": "^0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "source-map-url": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+      "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+      "dev": true
+    },
+    "sourcemap-codec": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz",
+      "integrity": "sha512-CYAPYdBu34781kLHkaW3m6b/uUSyMOC2R61gcYMWooeuaGtjof86ZA/8T+qVPPt7np1085CR9hmMGrySwEc8Xg==",
+      "dev": true
+    },
+    "spdx-correct": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+      "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+      "dev": true,
+      "requires": {
+        "spdx-expression-parse": "^3.0.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-exceptions": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+      "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+      "dev": true
+    },
+    "spdx-expression-parse": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+      "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+      "dev": true,
+      "requires": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-license-ids": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz",
+      "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==",
+      "dev": true
+    },
+    "spdy": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz",
+      "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==",
+      "dev": true,
+      "requires": {
+        "debug": "^4.1.0",
+        "handle-thing": "^2.0.0",
+        "http-deceiver": "^1.2.7",
+        "select-hose": "^2.0.0",
+        "spdy-transport": "^3.0.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
+    "spdy-transport": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+      "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+      "dev": true,
+      "requires": {
+        "debug": "^4.1.0",
+        "detect-node": "^2.0.4",
+        "hpack.js": "^2.1.6",
+        "obuf": "^1.1.2",
+        "readable-stream": "^3.0.6",
+        "wbuf": "^1.7.3"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        },
+        "readable-stream": {
+          "version": "3.3.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz",
+          "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        }
+      }
+    },
+    "speed-measure-webpack-plugin": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz",
+      "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.0.1"
+      }
+    },
+    "split-string": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+      "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^3.0.0"
+      }
+    },
+    "sprintf-js": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+      "dev": true
+    },
+    "sshpk": {
+      "version": "1.16.1",
+      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+      "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+      "dev": true,
+      "requires": {
+        "asn1": "~0.2.3",
+        "assert-plus": "^1.0.0",
+        "bcrypt-pbkdf": "^1.0.0",
+        "dashdash": "^1.12.0",
+        "ecc-jsbn": "~0.1.1",
+        "getpass": "^0.1.1",
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.0.2",
+        "tweetnacl": "~0.14.0"
+      }
+    },
+    "ssri": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+      "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "static-extend": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+      "dev": true,
+      "requires": {
+        "define-property": "^0.2.5",
+        "object-copy": "^0.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "stats-webpack-plugin": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.7.0.tgz",
+      "integrity": "sha512-NT0YGhwuQ0EOX+uPhhUcI6/+1Sq/pMzNuSCBVT4GbFl/ac6I/JZefBcjlECNfAb1t3GOx5dEj1Z7x0cAxeeVLQ==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.4"
+      }
+    },
+    "statuses": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+      "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+      "dev": true
+    },
+    "stdout-stream": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+      "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "stream-browserify": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+      "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+      "dev": true,
+      "requires": {
+        "inherits": "~2.0.1",
+        "readable-stream": "^2.0.2"
+      }
+    },
+    "stream-each": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+      "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "stream-http": {
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+      "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+      "dev": true,
+      "requires": {
+        "builtin-status-codes": "^3.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.3.6",
+        "to-arraybuffer": "^1.0.0",
+        "xtend": "^4.0.0"
+      }
+    },
+    "stream-shift": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+      "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+      "dev": true
+    },
+    "streamroller": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz",
+      "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==",
+      "dev": true,
+      "requires": {
+        "date-format": "^1.2.0",
+        "debug": "^3.1.0",
+        "mkdirp": "^0.5.1",
+        "readable-stream": "^2.3.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
+    "string-width": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+      "dev": true,
+      "requires": {
+        "code-point-at": "^1.0.0",
+        "is-fullwidth-code-point": "^1.0.0",
+        "strip-ansi": "^3.0.0"
+      }
+    },
+    "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==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "strip-ansi": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "strip-bom": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+      "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "is-utf8": "^0.2.0"
+      }
+    },
+    "strip-eof": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+      "dev": true
+    },
+    "strip-indent": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+      "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "get-stdin": "^4.0.1"
+      }
+    },
+    "style-loader": {
+      "version": "0.23.1",
+      "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz",
+      "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^1.0.0"
+      }
+    },
+    "stylus": {
+      "version": "0.54.5",
+      "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz",
+      "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=",
+      "dev": true,
+      "requires": {
+        "css-parse": "1.7.x",
+        "debug": "*",
+        "glob": "7.0.x",
+        "mkdirp": "0.5.x",
+        "sax": "0.5.x",
+        "source-map": "0.1.x"
+      },
+      "dependencies": {
+        "glob": {
+          "version": "7.0.6",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
+          "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.2",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "source-map": {
+          "version": "0.1.43",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
+          "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
+          "dev": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "stylus-loader": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz",
+      "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.0.2",
+        "lodash.clonedeep": "^4.5.0",
+        "when": "~3.6.x"
+      }
+    },
+    "supports-color": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+      "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+      "dev": true,
+      "requires": {
+        "has-flag": "^3.0.0"
+      }
+    },
+    "symbol-observable": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+      "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
+      "dev": true
+    },
+    "tapable": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz",
+      "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==",
+      "dev": true
+    },
+    "tar": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+      "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "block-stream": "*",
+        "fstream": "^1.0.2",
+        "inherits": "2"
+      }
+    },
+    "terser": {
+      "version": "3.17.0",
+      "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
+      "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
+      "dev": true,
+      "requires": {
+        "commander": "^2.19.0",
+        "source-map": "~0.6.1",
+        "source-map-support": "~0.5.10"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "terser-webpack-plugin": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz",
+      "integrity": "sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg==",
+      "dev": true,
+      "requires": {
+        "cacache": "^11.0.2",
+        "find-cache-dir": "^2.0.0",
+        "schema-utils": "^1.0.0",
+        "serialize-javascript": "^1.4.0",
+        "source-map": "^0.6.1",
+        "terser": "^3.16.1",
+        "webpack-sources": "^1.1.0",
+        "worker-farm": "^1.5.2"
+      },
+      "dependencies": {
+        "cacache": {
+          "version": "11.3.2",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
+          "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
+          "dev": true,
+          "requires": {
+            "bluebird": "^3.5.3",
+            "chownr": "^1.1.1",
+            "figgy-pudding": "^3.5.1",
+            "glob": "^7.1.3",
+            "graceful-fs": "^4.1.15",
+            "lru-cache": "^5.1.1",
+            "mississippi": "^3.0.0",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.6.2",
+            "ssri": "^6.0.1",
+            "unique-filename": "^1.1.1",
+            "y18n": "^4.0.0"
+          }
+        },
+        "find-cache-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+          "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+          "dev": true,
+          "requires": {
+            "commondir": "^1.0.1",
+            "make-dir": "^2.0.0",
+            "pkg-dir": "^3.0.0"
+          }
+        },
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "lru-cache": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+          "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+          "dev": true,
+          "requires": {
+            "yallist": "^3.0.2"
+          }
+        },
+        "make-dir": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+          "dev": true,
+          "requires": {
+            "pify": "^4.0.1",
+            "semver": "^5.6.0"
+          }
+        },
+        "mississippi": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+          "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+          "dev": true,
+          "requires": {
+            "concat-stream": "^1.5.0",
+            "duplexify": "^3.4.2",
+            "end-of-stream": "^1.1.0",
+            "flush-write-stream": "^1.0.0",
+            "from2": "^2.1.0",
+            "parallel-transform": "^1.1.0",
+            "pump": "^3.0.0",
+            "pumpify": "^1.3.3",
+            "stream-each": "^1.1.0",
+            "through2": "^2.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
+          "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "pify": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+          "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+          "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+          "dev": true,
+          "requires": {
+            "find-up": "^3.0.0"
+          }
+        },
+        "pump": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "ssri": {
+          "version": "6.0.1",
+          "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+          "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+          "dev": true,
+          "requires": {
+            "figgy-pudding": "^3.5.1"
+          }
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+          "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+          "dev": true
+        }
+      }
+    },
+    "through": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+      "dev": true
+    },
+    "through2": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+      "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+      "dev": true,
+      "requires": {
+        "readable-stream": "~2.3.6",
+        "xtend": "~4.0.1"
+      }
+    },
+    "thunky": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz",
+      "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==",
+      "dev": true
+    },
+    "timers-browserify": {
+      "version": "2.0.10",
+      "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
+      "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
+      "dev": true,
+      "requires": {
+        "setimmediate": "^1.0.4"
+      }
+    },
+    "tmp": {
+      "version": "0.0.33",
+      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+      "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+      "dev": true,
+      "requires": {
+        "os-tmpdir": "~1.0.2"
+      }
+    },
+    "to-array": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
+      "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
+      "dev": true
+    },
+    "to-arraybuffer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+      "dev": true
+    },
+    "to-fast-properties": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+      "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+      "dev": true
+    },
+    "to-object-path": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "to-regex": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+      "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+      "dev": true,
+      "requires": {
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "regex-not": "^1.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "to-regex-range": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+      "dev": true,
+      "requires": {
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1"
+      }
+    },
+    "tough-cookie": {
+      "version": "2.4.3",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+      "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+      "dev": true,
+      "requires": {
+        "psl": "^1.1.24",
+        "punycode": "^1.4.1"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+          "dev": true
+        }
+      }
+    },
+    "tree-kill": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz",
+      "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==",
+      "dev": true
+    },
+    "trim-newlines": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+      "dev": true,
+      "optional": true
+    },
+    "trim-right": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+      "dev": true
+    },
+    "true-case-path": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+      "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "glob": "^7.1.2"
+      }
+    },
+    "ts-node": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz",
+      "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==",
+      "dev": true,
+      "requires": {
+        "arrify": "^1.0.0",
+        "buffer-from": "^1.1.0",
+        "diff": "^3.1.0",
+        "make-error": "^1.1.1",
+        "minimist": "^1.2.0",
+        "mkdirp": "^0.5.1",
+        "source-map-support": "^0.5.6",
+        "yn": "^2.0.0"
+      }
+    },
+    "tslib": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
+      "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
+    },
+    "tslint": {
+      "version": "5.11.0",
+      "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz",
+      "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "^6.22.0",
+        "builtin-modules": "^1.1.1",
+        "chalk": "^2.3.0",
+        "commander": "^2.12.1",
+        "diff": "^3.2.0",
+        "glob": "^7.1.1",
+        "js-yaml": "^3.7.0",
+        "minimatch": "^3.0.4",
+        "resolve": "^1.3.2",
+        "semver": "^5.3.0",
+        "tslib": "^1.8.0",
+        "tsutils": "^2.27.2"
+      }
+    },
+    "tsutils": {
+      "version": "2.29.0",
+      "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
+      "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+      "dev": true,
+      "requires": {
+        "tslib": "^1.8.1"
+      }
+    },
+    "tty-browserify": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+      "dev": true
+    },
+    "tunnel-agent": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "tweetnacl": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+      "dev": true
+    },
+    "type-is": {
+      "version": "1.6.16",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
+      "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
+      "dev": true,
+      "requires": {
+        "media-typer": "0.3.0",
+        "mime-types": "~2.1.18"
+      }
+    },
+    "typedarray": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+      "dev": true
+    },
+    "typescript": {
+      "version": "3.2.4",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz",
+      "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==",
+      "dev": true
+    },
+    "uglify-js": {
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.3.tgz",
+      "integrity": "sha512-rIQPT2UMDnk4jRX+w4WO84/pebU2jiLsjgIyrCktYgSvx28enOE3iYQMr+BD1rHiitWnDmpu0cY/LfIEpKcjcw==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "commander": "~2.19.0",
+        "source-map": "~0.6.1"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.19.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
+          "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+          "dev": true,
+          "optional": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "ultron": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+      "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+      "dev": true
+    },
+    "union-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
+      "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+      "dev": true,
+      "requires": {
+        "arr-union": "^3.1.0",
+        "get-value": "^2.0.6",
+        "is-extendable": "^0.1.1",
+        "set-value": "^0.4.3"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "set-value": {
+          "version": "0.4.3",
+          "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
+          "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
+          "dev": true,
+          "requires": {
+            "extend-shallow": "^2.0.1",
+            "is-extendable": "^0.1.1",
+            "is-plain-object": "^2.0.1",
+            "to-object-path": "^0.3.0"
+          }
+        }
+      }
+    },
+    "unique-filename": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+      "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+      "dev": true,
+      "requires": {
+        "unique-slug": "^2.0.0"
+      }
+    },
+    "unique-slug": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz",
+      "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==",
+      "dev": true,
+      "requires": {
+        "imurmurhash": "^0.1.4"
+      }
+    },
+    "unpipe": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+      "dev": true
+    },
+    "unset-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+      "dev": true,
+      "requires": {
+        "has-value": "^0.3.1",
+        "isobject": "^3.0.0"
+      },
+      "dependencies": {
+        "has-value": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+          "dev": true,
+          "requires": {
+            "get-value": "^2.0.3",
+            "has-values": "^0.1.4",
+            "isobject": "^2.0.0"
+          },
+          "dependencies": {
+            "isobject": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+              "dev": true,
+              "requires": {
+                "isarray": "1.0.0"
+              }
+            }
+          }
+        },
+        "has-values": {
+          "version": "0.1.4",
+          "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+          "dev": true
+        }
+      }
+    },
+    "upath": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
+      "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==",
+      "dev": true
+    },
+    "uri-js": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+      "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+      "dev": true,
+      "requires": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "urix": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+      "dev": true
+    },
+    "url": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+      "dev": true,
+      "requires": {
+        "punycode": "1.3.2",
+        "querystring": "0.2.0"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.3.2",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+          "dev": true
+        }
+      }
+    },
+    "url-parse": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz",
+      "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==",
+      "dev": true,
+      "requires": {
+        "querystringify": "^2.0.0",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "use": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+      "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+      "dev": true
+    },
+    "useragent": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz",
+      "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==",
+      "dev": true,
+      "requires": {
+        "lru-cache": "4.1.x",
+        "tmp": "0.0.x"
+      }
+    },
+    "util": {
+      "version": "0.11.1",
+      "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+      "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+      "dev": true,
+      "requires": {
+        "inherits": "2.0.3"
+      }
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+      "dev": true
+    },
+    "utils-merge": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+      "dev": true
+    },
+    "uuid": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+      "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+      "dev": true
+    },
+    "validate-npm-package-license": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+      "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+      "dev": true,
+      "requires": {
+        "spdx-correct": "^3.0.0",
+        "spdx-expression-parse": "^3.0.0"
+      }
+    },
+    "validate-npm-package-name": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+      "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
+      "dev": true,
+      "requires": {
+        "builtins": "^1.0.3"
+      }
+    },
+    "vary": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+      "dev": true
+    },
+    "verror": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "core-util-is": "1.0.2",
+        "extsprintf": "^1.2.0"
+      }
+    },
+    "vm-browserify": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
+      "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+      "dev": true,
+      "requires": {
+        "indexof": "0.0.1"
+      }
+    },
+    "void-elements": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+      "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+      "dev": true
+    },
+    "watchpack": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+      "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+      "dev": true,
+      "requires": {
+        "chokidar": "^2.0.2",
+        "graceful-fs": "^4.1.2",
+        "neo-async": "^2.5.0"
+      }
+    },
+    "wbuf": {
+      "version": "1.7.3",
+      "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+      "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+      "dev": true,
+      "requires": {
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "webdriver-js-extender": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz",
+      "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==",
+      "dev": true,
+      "requires": {
+        "@types/selenium-webdriver": "^3.0.0",
+        "selenium-webdriver": "^3.0.1"
+      }
+    },
+    "webpack": {
+      "version": "4.29.0",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.0.tgz",
+      "integrity": "sha512-pxdGG0keDBtamE1mNvT5zyBdx+7wkh6mh7uzMOo/uRQ/fhsdj5FXkh/j5mapzs060forql1oXqXN9HJGju+y7w==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.7.11",
+        "@webassemblyjs/helper-module-context": "1.7.11",
+        "@webassemblyjs/wasm-edit": "1.7.11",
+        "@webassemblyjs/wasm-parser": "1.7.11",
+        "acorn": "^6.0.5",
+        "acorn-dynamic-import": "^4.0.0",
+        "ajv": "^6.1.0",
+        "ajv-keywords": "^3.1.0",
+        "chrome-trace-event": "^1.0.0",
+        "enhanced-resolve": "^4.1.0",
+        "eslint-scope": "^4.0.0",
+        "json-parse-better-errors": "^1.0.2",
+        "loader-runner": "^2.3.0",
+        "loader-utils": "^1.1.0",
+        "memory-fs": "~0.4.1",
+        "micromatch": "^3.1.8",
+        "mkdirp": "~0.5.0",
+        "neo-async": "^2.5.0",
+        "node-libs-browser": "^2.0.0",
+        "schema-utils": "^0.4.4",
+        "tapable": "^1.1.0",
+        "terser-webpack-plugin": "^1.1.0",
+        "watchpack": "^1.5.0",
+        "webpack-sources": "^1.3.0"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "0.4.7",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
+          "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "webpack-core": {
+      "version": "0.6.9",
+      "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz",
+      "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=",
+      "dev": true,
+      "requires": {
+        "source-list-map": "~0.1.7",
+        "source-map": "~0.4.1"
+      },
+      "dependencies": {
+        "source-list-map": {
+          "version": "0.1.8",
+          "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
+          "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.4.4",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+          "dev": true,
+          "requires": {
+            "amdefine": ">=0.0.4"
+          }
+        }
+      }
+    },
+    "webpack-dev-middleware": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.5.1.tgz",
+      "integrity": "sha512-4dwCh/AyMOYAybggUr8fiCkRnjVDp+Cqlr9c+aaNB3GJYgRGYQWJ1YX/WAKUNA9dPNHZ6QSN2lYDKqjKSI8Vqw==",
+      "dev": true,
+      "requires": {
+        "memory-fs": "~0.4.1",
+        "mime": "^2.3.1",
+        "range-parser": "^1.0.3",
+        "webpack-log": "^2.0.0"
+      },
+      "dependencies": {
+        "mime": {
+          "version": "2.4.1",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.1.tgz",
+          "integrity": "sha512-VRUfmQO0rCd3hKwBymAn3kxYzBHr3I/wdVMywgG3HhXOwrCQgN84ZagpdTm2tZ4TNtwsSmyJWYO88mb5XvzGqQ==",
+          "dev": true
+        }
+      }
+    },
+    "webpack-dev-server": {
+      "version": "3.1.14",
+      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz",
+      "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==",
+      "dev": true,
+      "requires": {
+        "ansi-html": "0.0.7",
+        "bonjour": "^3.5.0",
+        "chokidar": "^2.0.0",
+        "compression": "^1.5.2",
+        "connect-history-api-fallback": "^1.3.0",
+        "debug": "^3.1.0",
+        "del": "^3.0.0",
+        "express": "^4.16.2",
+        "html-entities": "^1.2.0",
+        "http-proxy-middleware": "~0.18.0",
+        "import-local": "^2.0.0",
+        "internal-ip": "^3.0.1",
+        "ip": "^1.1.5",
+        "killable": "^1.0.0",
+        "loglevel": "^1.4.1",
+        "opn": "^5.1.0",
+        "portfinder": "^1.0.9",
+        "schema-utils": "^1.0.0",
+        "selfsigned": "^1.9.1",
+        "semver": "^5.6.0",
+        "serve-index": "^1.7.2",
+        "sockjs": "0.3.19",
+        "sockjs-client": "1.3.0",
+        "spdy": "^4.0.0",
+        "strip-ansi": "^3.0.0",
+        "supports-color": "^5.1.0",
+        "url": "^0.11.0",
+        "webpack-dev-middleware": "3.4.0",
+        "webpack-log": "^2.0.0",
+        "yargs": "12.0.2"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+          "dev": true
+        },
+        "cliui": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+          "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+          "dev": true,
+          "requires": {
+            "string-width": "^2.1.1",
+            "strip-ansi": "^4.0.0",
+            "wrap-ansi": "^2.0.0"
+          },
+          "dependencies": {
+            "strip-ansi": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "cross-spawn": {
+          "version": "6.0.5",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+          "dev": true,
+          "requires": {
+            "nice-try": "^1.0.4",
+            "path-key": "^2.0.1",
+            "semver": "^5.5.0",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        },
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "decamelize": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
+          "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
+          "dev": true,
+          "requires": {
+            "xregexp": "4.0.0"
+          }
+        },
+        "execa": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^6.0.0",
+            "get-stream": "^4.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          }
+        },
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "get-stream": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+          "dev": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
+        "invert-kv": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+          "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "lcid": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+          "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+          "dev": true,
+          "requires": {
+            "invert-kv": "^2.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "mime": {
+          "version": "2.4.1",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.1.tgz",
+          "integrity": "sha512-VRUfmQO0rCd3hKwBymAn3kxYzBHr3I/wdVMywgG3HhXOwrCQgN84ZagpdTm2tZ4TNtwsSmyJWYO88mb5XvzGqQ==",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        },
+        "os-locale": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+          "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+          "dev": true,
+          "requires": {
+            "execa": "^1.0.0",
+            "lcid": "^2.0.0",
+            "mem": "^4.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
+          "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "pump": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+          "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          },
+          "dependencies": {
+            "strip-ansi": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "supports-color": {
+          "version": "5.5.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        },
+        "webpack-dev-middleware": {
+          "version": "3.4.0",
+          "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz",
+          "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==",
+          "dev": true,
+          "requires": {
+            "memory-fs": "~0.4.1",
+            "mime": "^2.3.1",
+            "range-parser": "^1.0.3",
+            "webpack-log": "^2.0.0"
+          }
+        },
+        "which-module": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+          "dev": true
+        },
+        "yargs": {
+          "version": "12.0.2",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz",
+          "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==",
+          "dev": true,
+          "requires": {
+            "cliui": "^4.0.0",
+            "decamelize": "^2.0.0",
+            "find-up": "^3.0.0",
+            "get-caller-file": "^1.0.1",
+            "os-locale": "^3.0.0",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^1.0.1",
+            "set-blocking": "^2.0.0",
+            "string-width": "^2.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^3.2.1 || ^4.0.0",
+            "yargs-parser": "^10.1.0"
+          }
+        },
+        "yargs-parser": {
+          "version": "10.1.0",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
+          "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
+          "dev": true,
+          "requires": {
+            "camelcase": "^4.1.0"
+          }
+        }
+      }
+    },
+    "webpack-log": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+      "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+      "dev": true,
+      "requires": {
+        "ansi-colors": "^3.0.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "webpack-merge": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz",
+      "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.5"
+      }
+    },
+    "webpack-sources": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
+      "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
+      "dev": true,
+      "requires": {
+        "source-list-map": "^2.0.0",
+        "source-map": "~0.6.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "webpack-subresource-integrity": {
+      "version": "1.1.0-rc.6",
+      "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz",
+      "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==",
+      "dev": true,
+      "requires": {
+        "webpack-core": "^0.6.8"
+      }
+    },
+    "websocket-driver": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
+      "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
+      "dev": true,
+      "requires": {
+        "http-parser-js": ">=0.4.0",
+        "websocket-extensions": ">=0.1.1"
+      }
+    },
+    "websocket-extensions": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+      "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+      "dev": true
+    },
+    "when": {
+      "version": "3.6.4",
+      "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz",
+      "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=",
+      "dev": true
+    },
+    "which": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+      "dev": true,
+      "requires": {
+        "isexe": "^2.0.0"
+      }
+    },
+    "which-module": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+      "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+      "dev": true,
+      "optional": true
+    },
+    "wide-align": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+      "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "string-width": "^1.0.2 || 2"
+      }
+    },
+    "wordwrap": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+      "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+      "dev": true
+    },
+    "worker-farm": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz",
+      "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==",
+      "dev": true,
+      "requires": {
+        "errno": "~0.1.7"
+      }
+    },
+    "wrap-ansi": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+      "dev": true,
+      "requires": {
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1"
+      }
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+      "dev": true
+    },
+    "ws": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+      "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+      "dev": true,
+      "requires": {
+        "async-limiter": "~1.0.0",
+        "safe-buffer": "~5.1.0",
+        "ultron": "~1.1.0"
+      }
+    },
+    "xml2js": {
+      "version": "0.4.19",
+      "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
+      "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
+      "dev": true,
+      "requires": {
+        "sax": ">=0.6.0",
+        "xmlbuilder": "~9.0.1"
+      },
+      "dependencies": {
+        "sax": {
+          "version": "1.2.4",
+          "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+          "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+          "dev": true
+        }
+      }
+    },
+    "xmlbuilder": {
+      "version": "9.0.7",
+      "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+      "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
+      "dev": true
+    },
+    "xmlhttprequest-ssl": {
+      "version": "1.5.5",
+      "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
+      "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",
+      "dev": true
+    },
+    "xregexp": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
+      "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
+      "dev": true
+    },
+    "xtend": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+      "dev": true
+    },
+    "y18n": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+      "dev": true
+    },
+    "yallist": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+      "dev": true
+    },
+    "yargs": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+      "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase": "^3.0.0",
+        "cliui": "^3.2.0",
+        "decamelize": "^1.1.1",
+        "get-caller-file": "^1.0.1",
+        "os-locale": "^1.4.0",
+        "read-pkg-up": "^1.0.1",
+        "require-directory": "^2.1.1",
+        "require-main-filename": "^1.0.1",
+        "set-blocking": "^2.0.0",
+        "string-width": "^1.0.2",
+        "which-module": "^1.0.0",
+        "y18n": "^3.2.1",
+        "yargs-parser": "^5.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+          "dev": true,
+          "optional": true
+        },
+        "y18n": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "yargs-parser": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+      "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "camelcase": "^3.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+          "dev": true,
+          "optional": true
+        }
+      }
+    },
+    "yeast": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
+      "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
+      "dev": true
+    },
+    "yn": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
+      "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
+      "dev": true
+    },
+    "zone.js": {
+      "version": "0.8.29",
+      "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.29.tgz",
+      "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ=="
+    }
+  }
+}
diff --git a/typescript/simio-client/package.json b/typescript/simio-client/package.json
new file mode 100644
index 0000000..93308ab
--- /dev/null
+++ b/typescript/simio-client/package.json
@@ -0,0 +1,48 @@
+{
+  "name": "angular-client",
+  "version": "0.0.0",
+  "scripts": {
+    "ng": "ng",
+    "start": "ng serve",
+    "build": "ng build",
+    "test": "ng test",
+    "lint": "ng lint",
+    "e2e": "ng e2e"
+  },
+  "private": true,
+  "dependencies": {
+    "@angular/animations": "~7.2.0",
+    "@angular/common": "~7.2.0",
+    "@angular/compiler": "~7.2.0",
+    "@angular/core": "~7.2.0",
+    "@angular/forms": "~7.2.0",
+    "@angular/platform-browser": "~7.2.0",
+    "@angular/platform-browser-dynamic": "~7.2.0",
+    "@angular/router": "~7.2.0",
+    "core-js": "^2.5.4",
+    "rxjs": "~6.3.3",
+    "tslib": "^1.9.0",
+    "zone.js": "~0.8.26"
+  },
+  "devDependencies": {
+    "@angular-devkit/build-angular": "~0.13.0",
+    "@angular/cli": "~7.3.0",
+    "@angular/compiler-cli": "~7.2.0",
+    "@angular/language-service": "~7.2.0",
+    "@types/node": "~8.9.4",
+    "@types/jasmine": "~2.8.8",
+    "@types/jasminewd2": "~2.0.3",
+    "codelyzer": "~4.5.0",
+    "jasmine-core": "~2.99.1",
+    "jasmine-spec-reporter": "~4.2.1",
+    "karma": "~3.1.1",
+    "karma-chrome-launcher": "~2.2.0",
+    "karma-coverage-istanbul-reporter": "~2.0.1",
+    "karma-jasmine": "~1.1.2",
+    "karma-jasmine-html-reporter": "^0.2.2",
+    "protractor": "~5.4.0",
+    "ts-node": "~7.0.0",
+    "tslint": "~5.11.0",
+    "typescript": "~3.2.2"
+  }
+}
diff --git a/typescript/simio-client/src/app/app-routing.module.ts b/typescript/simio-client/src/app/app-routing.module.ts
new file mode 100644
index 0000000..d425c6f
--- /dev/null
+++ b/typescript/simio-client/src/app/app-routing.module.ts
@@ -0,0 +1,10 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+const routes: Routes = [];
+
+@NgModule({
+  imports: [RouterModule.forRoot(routes)],
+  exports: [RouterModule]
+})
+export class AppRoutingModule { }
diff --git a/typescript/simio-client/src/app/app.component.html b/typescript/simio-client/src/app/app.component.html
new file mode 100644
index 0000000..0f3d9d8
--- /dev/null
+++ b/typescript/simio-client/src/app/app.component.html
@@ -0,0 +1,21 @@
+<!--The content below is only a placeholder and can be replaced.-->
+<div style="text-align:center">
+  <h1>
+    Welcome to {{ title }}!
+  </h1>
+  <img width="300" alt="Angular Logo" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==">
+</div>
+<h2>Here are some links to help you start: </h2>
+<ul>
+  <li>
+    <h2><a target="_blank" rel="noopener" href="https://angular.io/tutorial">Tour of Heroes</a></h2>
+  </li>
+  <li>
+    <h2><a target="_blank" rel="noopener" href="https://angular.io/cli">CLI Documentation</a></h2>
+  </li>
+  <li>
+    <h2><a target="_blank" rel="noopener" href="https://blog.angular.io/">Angular blog</a></h2>
+  </li>
+</ul>
+
+<router-outlet></router-outlet>
diff --git a/typescript/simio-client/src/app/app.component.scss b/typescript/simio-client/src/app/app.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/typescript/simio-client/src/app/app.component.spec.ts b/typescript/simio-client/src/app/app.component.spec.ts
new file mode 100644
index 0000000..1226c94
--- /dev/null
+++ b/typescript/simio-client/src/app/app.component.spec.ts
@@ -0,0 +1,35 @@
+import { TestBed, async } from '@angular/core/testing';
+import { RouterTestingModule } from '@angular/router/testing';
+import { AppComponent } from './app.component';
+
+describe('AppComponent', () => {
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      imports: [
+        RouterTestingModule
+      ],
+      declarations: [
+        AppComponent
+      ],
+    }).compileComponents();
+  }));
+
+  it('should create the app', () => {
+    const fixture = TestBed.createComponent(AppComponent);
+    const app = fixture.debugElement.componentInstance;
+    expect(app).toBeTruthy();
+  });
+
+  it(`should have as title 'angular-client'`, () => {
+    const fixture = TestBed.createComponent(AppComponent);
+    const app = fixture.debugElement.componentInstance;
+    expect(app.title).toEqual('angular-client');
+  });
+
+  it('should render title in a h1 tag', () => {
+    const fixture = TestBed.createComponent(AppComponent);
+    fixture.detectChanges();
+    const compiled = fixture.debugElement.nativeElement;
+    expect(compiled.querySelector('h1').textContent).toContain('Welcome to angular-client!');
+  });
+});
diff --git a/typescript/simio-client/src/app/app.component.ts b/typescript/simio-client/src/app/app.component.ts
new file mode 100644
index 0000000..9d69592
--- /dev/null
+++ b/typescript/simio-client/src/app/app.component.ts
@@ -0,0 +1,10 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-root',
+  templateUrl: './app.component.html',
+  styleUrls: ['./app.component.scss']
+})
+export class AppComponent {
+  title = 'angular-client';
+}
diff --git a/typescript/simio-client/src/app/app.module.ts b/typescript/simio-client/src/app/app.module.ts
new file mode 100644
index 0000000..2c3ba29
--- /dev/null
+++ b/typescript/simio-client/src/app/app.module.ts
@@ -0,0 +1,18 @@
+import { BrowserModule } from '@angular/platform-browser';
+import { NgModule } from '@angular/core';
+
+import { AppRoutingModule } from './app-routing.module';
+import { AppComponent } from './app.component';
+
+@NgModule({
+  declarations: [
+    AppComponent
+  ],
+  imports: [
+    BrowserModule,
+    AppRoutingModule
+  ],
+  providers: [],
+  bootstrap: [AppComponent]
+})
+export class AppModule { }
diff --git a/typescript/simio-client/src/app/components/menu/menu.component.ts b/typescript/simio-client/src/app/components/menu/menu.component.ts
new file mode 100644
index 0000000..1400f4e
--- /dev/null
+++ b/typescript/simio-client/src/app/components/menu/menu.component.ts
@@ -0,0 +1,35 @@
+import { Component, OnInit } from '@angular/core';
+import { AuthService } from 'src/app/core/services/auth.service';
+
+interface MenuRoute{
+  path:string;
+  icon:string;
+  name:string;
+  description?:string;
+}
+
+@Component({
+  selector: 'app-menu',
+  templateUrl: './menu.component.html',
+  styleUrls: ['./menu.component.scss']
+})
+export class MenuComponent implements OnInit {
+
+  menuRoutes:MenuRoute[] = [{
+    path:"account",
+    icon:"person",
+    name:"account",
+    description:"all about you"
+  },{
+    path:"logs",
+    icon:"library_books",
+    name:"logs",
+    description:"server logs"
+  }]
+
+  constructor( public auth:AuthService ) { }
+
+  ngOnInit() {
+  }
+
+}
diff --git a/typescript/simio-client/src/assets/.gitkeep b/typescript/simio-client/src/assets/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/typescript/simio-client/src/browserslist b/typescript/simio-client/src/browserslist
new file mode 100644
index 0000000..37371cb
--- /dev/null
+++ b/typescript/simio-client/src/browserslist
@@ -0,0 +1,11 @@
+# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers
+# For additional information regarding the format and rule options, please see:
+# https://github.com/browserslist/browserslist#queries
+#
+# For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed
+
+> 0.5%
+last 2 versions
+Firefox ESR
+not dead
+not IE 9-11
\ No newline at end of file
diff --git a/typescript/simio-client/src/environments/environment.prod.ts b/typescript/simio-client/src/environments/environment.prod.ts
new file mode 100644
index 0000000..f58504f
--- /dev/null
+++ b/typescript/simio-client/src/environments/environment.prod.ts
@@ -0,0 +1,11 @@
+export const environment = {
+  production: true,
+  firebase: {
+    apiKey: "AIzaSyBMhf35HijKKSRZdRYt_eBNLGadhQKdZVY",
+    authDomain: "planets-io.firebaseapp.com",
+    databaseURL: "https://planets-io.firebaseio.com",
+    projectId: "planets-io",
+    storageBucket: "planets-io.appspot.com",
+    messagingSenderId: "209812924936"
+  }
+};
diff --git a/typescript/simio-client/src/environments/environment.ts b/typescript/simio-client/src/environments/environment.ts
new file mode 100644
index 0000000..7b4f817
--- /dev/null
+++ b/typescript/simio-client/src/environments/environment.ts
@@ -0,0 +1,16 @@
+// This file can be replaced during build by using the `fileReplacements` array.
+// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
+// The list of file replacements can be found in `angular.json`.
+
+export const environment = {
+  production: false
+};
+
+/*
+ * For easier debugging in development mode, you can import the following file
+ * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
+ *
+ * This import should be commented out in production mode because it will have a negative impact
+ * on performance if an error is thrown.
+ */
+// import 'zone.js/dist/zone-error';  // Included with Angular CLI.
diff --git a/typescript/simio-client/src/favicon.ico b/typescript/simio-client/src/favicon.ico
new file mode 100644
index 0000000..8081c7c
Binary files /dev/null and b/typescript/simio-client/src/favicon.ico differ
diff --git a/typescript/simio-client/src/index.html b/typescript/simio-client/src/index.html
new file mode 100644
index 0000000..4c0ec7f
--- /dev/null
+++ b/typescript/simio-client/src/index.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <title>AngularClient</title>
+  <base href="/">
+
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link rel="icon" type="image/x-icon" href="favicon.ico">
+</head>
+<body>
+  <app-root></app-root>
+</body>
+</html>
diff --git a/typescript/simio-client/src/karma.conf.js b/typescript/simio-client/src/karma.conf.js
new file mode 100644
index 0000000..646d4c2
--- /dev/null
+++ b/typescript/simio-client/src/karma.conf.js
@@ -0,0 +1,31 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/1.0/config/configuration-file.html
+
+module.exports = function (config) {
+  config.set({
+    basePath: '',
+    frameworks: ['jasmine', '@angular-devkit/build-angular'],
+    plugins: [
+      require('karma-jasmine'),
+      require('karma-chrome-launcher'),
+      require('karma-jasmine-html-reporter'),
+      require('karma-coverage-istanbul-reporter'),
+      require('@angular-devkit/build-angular/plugins/karma')
+    ],
+    client: {
+      clearContext: false // leave Jasmine Spec Runner output visible in browser
+    },
+    coverageIstanbulReporter: {
+      dir: require('path').join(__dirname, '../coverage/angular-client'),
+      reports: ['html', 'lcovonly', 'text-summary'],
+      fixWebpackSourcePaths: true
+    },
+    reporters: ['progress', 'kjhtml'],
+    port: 9876,
+    colors: true,
+    logLevel: config.LOG_INFO,
+    autoWatch: true,
+    browsers: ['Chrome'],
+    singleRun: false
+  });
+};
diff --git a/typescript/simio-client/src/main.ts b/typescript/simio-client/src/main.ts
new file mode 100644
index 0000000..c7b673c
--- /dev/null
+++ b/typescript/simio-client/src/main.ts
@@ -0,0 +1,12 @@
+import { enableProdMode } from '@angular/core';
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+
+import { AppModule } from './app/app.module';
+import { environment } from './environments/environment';
+
+if (environment.production) {
+  enableProdMode();
+}
+
+platformBrowserDynamic().bootstrapModule(AppModule)
+  .catch(err => console.error(err));
diff --git a/typescript/simio-client/src/polyfills.ts b/typescript/simio-client/src/polyfills.ts
new file mode 100644
index 0000000..75d6393
--- /dev/null
+++ b/typescript/simio-client/src/polyfills.ts
@@ -0,0 +1,63 @@
+/**
+ * This file includes polyfills needed by Angular and is loaded before the app.
+ * You can add your own extra polyfills to this file.
+ *
+ * This file is divided into 2 sections:
+ *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
+ *   2. Application imports. Files imported after ZoneJS that should be loaded before your main
+ *      file.
+ *
+ * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
+ * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
+ * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
+ *
+ * Learn more in https://angular.io/guide/browser-support
+ */
+
+/***************************************************************************************************
+ * BROWSER POLYFILLS
+ */
+
+/** IE10 and IE11 requires the following for NgClass support on SVG elements */
+// import 'classlist.js';  // Run `npm install --save classlist.js`.
+
+/**
+ * Web Animations `@angular/platform-browser/animations`
+ * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
+ * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
+ */
+// import 'web-animations-js';  // Run `npm install --save web-animations-js`.
+
+/**
+ * By default, zone.js will patch all possible macroTask and DomEvents
+ * user can disable parts of macroTask/DomEvents patch by setting following flags
+ * because those flags need to be set before `zone.js` being loaded, and webpack
+ * will put import in the top of bundle, so user need to create a separate file
+ * in this directory (for example: zone-flags.ts), and put the following flags
+ * into that file, and then add the following code before importing zone.js.
+ * import './zone-flags.ts';
+ *
+ * The flags allowed in zone-flags.ts are listed here.
+ *
+ * The following flags will work for all browsers.
+ *
+ * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
+ * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
+ * (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
+ *
+ *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
+ *  with the following flag, it will bypass `zone.js` patch for IE/Edge
+ *
+ *  (window as any).__Zone_enable_cross_context_check = true;
+ *
+ */
+
+/***************************************************************************************************
+ * Zone JS is required by default for Angular itself.
+ */
+import 'zone.js/dist/zone';  // Included with Angular CLI.
+
+
+/***************************************************************************************************
+ * APPLICATION IMPORTS
+ */
diff --git a/typescript/simio-client/src/styles.scss b/typescript/simio-client/src/styles.scss
new file mode 100644
index 0000000..90d4ee0
--- /dev/null
+++ b/typescript/simio-client/src/styles.scss
@@ -0,0 +1 @@
+/* You can add global styles to this file, and also import other style files */
diff --git a/typescript/simio-client/src/test.ts b/typescript/simio-client/src/test.ts
new file mode 100644
index 0000000..1631789
--- /dev/null
+++ b/typescript/simio-client/src/test.ts
@@ -0,0 +1,20 @@
+// This file is required by karma.conf.js and loads recursively all the .spec and framework files
+
+import 'zone.js/dist/zone-testing';
+import { getTestBed } from '@angular/core/testing';
+import {
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting
+} from '@angular/platform-browser-dynamic/testing';
+
+declare const require: any;
+
+// First, initialize the Angular testing environment.
+getTestBed().initTestEnvironment(
+  BrowserDynamicTestingModule,
+  platformBrowserDynamicTesting()
+);
+// Then we find all the tests.
+const context = require.context('./', true, /\.spec\.ts$/);
+// And load the modules.
+context.keys().map(context);
diff --git a/typescript/simio-client/src/tsconfig.app.json b/typescript/simio-client/src/tsconfig.app.json
new file mode 100644
index 0000000..190fd30
--- /dev/null
+++ b/typescript/simio-client/src/tsconfig.app.json
@@ -0,0 +1,11 @@
+{
+  "extends": "../tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../out-tsc/app",
+    "types": []
+  },
+  "exclude": [
+    "test.ts",
+    "**/*.spec.ts"
+  ]
+}
diff --git a/typescript/simio-client/src/tsconfig.spec.json b/typescript/simio-client/src/tsconfig.spec.json
new file mode 100644
index 0000000..de77336
--- /dev/null
+++ b/typescript/simio-client/src/tsconfig.spec.json
@@ -0,0 +1,18 @@
+{
+  "extends": "../tsconfig.json",
+  "compilerOptions": {
+    "outDir": "../out-tsc/spec",
+    "types": [
+      "jasmine",
+      "node"
+    ]
+  },
+  "files": [
+    "test.ts",
+    "polyfills.ts"
+  ],
+  "include": [
+    "**/*.spec.ts",
+    "**/*.d.ts"
+  ]
+}
diff --git a/typescript/simio-client/src/tslint.json b/typescript/simio-client/src/tslint.json
new file mode 100644
index 0000000..52e2c1a
--- /dev/null
+++ b/typescript/simio-client/src/tslint.json
@@ -0,0 +1,17 @@
+{
+    "extends": "../tslint.json",
+    "rules": {
+        "directive-selector": [
+            true,
+            "attribute",
+            "app",
+            "camelCase"
+        ],
+        "component-selector": [
+            true,
+            "element",
+            "app",
+            "kebab-case"
+        ]
+    }
+}
diff --git a/typescript/simio-client/tsconfig.json b/typescript/simio-client/tsconfig.json
new file mode 100644
index 0000000..b271fd9
--- /dev/null
+++ b/typescript/simio-client/tsconfig.json
@@ -0,0 +1,22 @@
+{
+  "compileOnSave": false,
+  "compilerOptions": {
+    "baseUrl": "./",
+    "outDir": "./dist/out-tsc",
+    "sourceMap": true,
+    "declaration": false,
+    "module": "es2015",
+    "moduleResolution": "node",
+    "emitDecoratorMetadata": true,
+    "experimentalDecorators": true,
+    "importHelpers": true,
+    "target": "es5",
+    "typeRoots": [
+      "node_modules/@types"
+    ],
+    "lib": [
+      "es2018",
+      "dom"
+    ]
+  }
+}
diff --git a/typescript/simio-client/tslint.json b/typescript/simio-client/tslint.json
new file mode 100644
index 0000000..868ecba
--- /dev/null
+++ b/typescript/simio-client/tslint.json
@@ -0,0 +1,75 @@
+{
+  "extends": "tslint:recommended",
+  "rulesDirectory": [
+    "codelyzer"
+  ],
+  "rules": {
+    "array-type": false,
+    "arrow-parens": false,
+    "deprecation": {
+      "severity": "warn"
+    },
+    "import-blacklist": [
+      true,
+      "rxjs/Rx"
+    ],
+    "interface-name": false,
+    "max-classes-per-file": false,
+    "max-line-length": [
+      true,
+      140
+    ],
+    "member-access": false,
+    "member-ordering": [
+      true,
+      {
+        "order": [
+          "static-field",
+          "instance-field",
+          "static-method",
+          "instance-method"
+        ]
+      }
+    ],
+    "no-consecutive-blank-lines": false,
+    "no-console": [
+      true,
+      "debug",
+      "info",
+      "time",
+      "timeEnd",
+      "trace"
+    ],
+    "no-empty": false,
+    "no-inferrable-types": [
+      true,
+      "ignore-params"
+    ],
+    "no-non-null-assertion": true,
+    "no-redundant-jsdoc": true,
+    "no-switch-case-fall-through": true,
+    "no-use-before-declare": true,
+    "no-var-requires": false,
+    "object-literal-key-quotes": [
+      true,
+      "as-needed"
+    ],
+    "object-literal-sort-keys": false,
+    "ordered-imports": false,
+    "quotemark": [
+      true,
+      "single"
+    ],
+    "trailing-comma": false,
+    "no-output-on-prefix": true,
+    "use-input-property-decorator": true,
+    "use-output-property-decorator": true,
+    "use-host-property-decorator": true,
+    "no-input-rename": true,
+    "no-output-rename": true,
+    "use-life-cycle-interface": true,
+    "use-pipe-transform-interface": true,
+    "component-class-suffix": true,
+    "directive-class-suffix": true
+  }
+}